def gameaccount_edit(request, account_id=None): """Edit an existing game account or create a new one.""" gameaccount = None if account_id is not None: gameaccount = GameAccount.query.get(account_id) if gameaccount is None: raise NotFound() form = EditGameAccountForm(request.user, gameaccount) if request.method == 'POST': if 'cancel' in request.form: return form.redirect('account/gameaccounts') elif request.form.get('delete') and gameaccount: return redirect_to('account/gameaccounts/delete', account_id=account_id) elif form.validate(request.form): if gameaccount is None: gameaccount = form.make_gameaccount() msg = _('The game account %s was registered successfully.') icon = 'add' else: form.save_changes() msg = _('The game account %s was updated successfully.') icon = 'info' account_flash(msg % (escape(gameaccount.account)), icon) db.commit() if 'save_and_continue' in request.form: return redirect_to('account/gameaccounts/edit', account_id=gameaccount.id) return redirect_to('account/gameaccounts') return render_account_response('account/gameaccount_edit.html', 'gameaccounts', form=form.as_widget())
def edit_level(request, level_id=None): """Edit an existing level or create a new one.""" level = None if level_id is not None: level = Level.query.get(level_id) if level is None: raise NotFound() form = EditLevelForm(level) if request.method == 'POST': if 'cancel' in request.form: return form.redirect('admin/levels') elif request.form.get('delete') and level: return redirect_to('admin/levels/delete', level_id=level_id) elif form.validate(request.form): if level is None: level = form.make_level() msg = _('The level %s was created successfully.') icon = 'add' else: form.save_changes() msg = _('The level %s was updated successfully.') icon = 'info' admin_flash(msg % (escape(level.name)), icon) db.commit() if 'save_and_continue' in request.form: return redirect_to('admin/levels/edit', level_id=level.id) return redirect_to('admin/levels') return render_admin_response('admin/level_edit.html', 'levelsquad.levels', form=form.as_widget())
def edit_squad(request, squad_id=None): """Edit an existing squad or create a new one.""" squad = None if squad_id is not None: squad = Squad.query.get(squad_id) if squad is None: raise NotFound() form = EditSquadForm(squad) if request.method == 'POST': if 'cancel' in request.form: return form.redirect('admin/squads') elif request.form.get('delete') and squad: return redirect_to('admin/squads/delete', squad_id=squad.id) elif form.validate(request.form): if squad is None: squad = form.make_squad() msg = _('The squad %s was created successfully.') icon = 'add' else: form.save_changes() msg = _('The squad %s was updated successfully.') icon = 'info' admin_flash(msg % (escape(squad.name)), icon) db.commit() if 'save_and_continue' in request.form: return redirect_to('admin/squads/edit', squad_id=squad.id) return redirect_to('admin/squads') return render_admin_response('admin/squad_edit.html', 'gamesquad.squads', form=form.as_widget())
def edit_group(request, group_id=None): """Edit a Group. This is used to create a group as well.""" group = None if group_id is not None: group = Group.query.get(group_id) if group is None: raise NotFound() form = EditGroupForm(group) if request.method == 'POST': if request.form.get('cancel'): return form.redirect('admin/manage_groups') elif request.form.get('delete') and group: return redirect_to('admin/delete_group', group_id=group.id) elif form.validate(request.form): if group is None: group = form.make_group() msg = _(u'Group %s created successfully.') icon = 'add' else: form.save_changes() msg = _(u'Group %s edited successfully.') icon = 'info' db.commit() html_group_detail = u'<a href="%s">%s</a>' % ( escape(url_for(group)), escape(group.name)) flash(msg % html_group_detail, icon) if request.form.get('save'): return form.redirect('admin/manage_groups') return redirect_to('admin/edit_group', group_id=group.id) return render_admin_response('admin/edit_group.html', 'users_groups.groups', form=form.as_widget())
def edit_game(request, game_id=None): """Edit an existing game or create a new one.""" game = None if game_id is not None: game = Game.query.get(game_id) if game is None: raise NotFound() form = EditGameForm(game) if request.method == 'POST': if 'cancel' in request.form: return form.redirect('admin/games') elif request.form.get('delete') and game: return redirect_to('admin/games/delete', game_id=game.id) elif form.validate(request.form): if game is None: game = form.make_game() msg = _('The game %s was created successfully.') icon = 'add' else: form.save_changes() msg = _('The game %s was updated successfully.') icon = 'info' admin_flash(msg % (escape(game.name)), icon) db.commit() if 'save_and_continue' in request.form: return redirect_to('admin/game_edit', game_id=game.id) return redirect_to('admin/games') return render_admin_response('admin/game_edit.html', 'gamesquad.games', form=form.as_widget())
def delete_group(self): """Deletes a group.""" if self.data["action"] == "relocate": new_group = Group.query.filter_by(self.data["reassign_to"].id).first() for user in self.group.users: if not new_group in user.groups: user.groups.append(new_group) db.commit() signals.before_group_deleted.send(group=self.group, formdata=self.data) db.delete(self.group)
def edit_user(request, user_id=None): """Edit a user. This can also create a user. If a new user is created the dialog is simplified, some unimportant details are left out. """ user = None if user_id is not None: user = User.query.get(user_id) if user is None: raise NotFound() form = EditUserForm(user) if request.method == 'POST': if request.form.get('cancel'): return form.redirect('admin/manage_users') elif request.form.get('delete') and user: return redirect_to('admin/delete_user', user_id=user.id) elif form.validate(request.form): picfile = request.files.get('picfile') if user is None: user = form.make_user() if picfile and form['userpictype'] == 'Upload': picture.place_file(picfile) msg = _(u'User %s created successfully.') icon = 'add' else: picture = UserPicture(request.user) if picfile: form.save_changes() if form['userpictype'] == 'Upload': picture.place_file(picfile) else: pictype = user.userpictype if not form['userpictype']: form.data['userpictype'] = pictype if form['userpictype'] != pictype: picture.remove() form.save_changes() msg = _(u'User %s edited successfully.') icon = 'info' db.commit() html_user_detail = u'<a href="%s">%s</a>' % ( escape(url_for(user)), escape(user.username) ) flash(msg % html_user_detail, icon) if request.form.get('save'): return form.redirect('admin/manage_users') return redirect_to('admin/edit_user', user_id=user.id) return render_admin_response('admin/edit_user.html', 'users_groups.users', form=form.as_widget())
def urls(request): """A config page for URL depending settings.""" form = URLOptionsForm() if request.method == 'POST' and form.validate(request.form): form.apply() db.commit() flash(_(u'URL configuration changed.'), 'configure') # because the next request could reload the application and move # the admin interface we construct the URL to this page by hand. return redirect(form['admin_url_prefix'][1:] + '/options/urls') return render_admin_response('admin/url_options.html', 'options.urls', form=form.as_widget())
def delete_group(request, group_id): """Like all other delete screens just that it deletes a group.""" group = Group.query.get(group_id) if group is None: raise NotFound() form = DeleteGroupForm(group) if request.method == 'POST': if request.form.get('cancel'): return form.redirect('admin/edit_group', group_id=group.id) elif request.form.get('confirm') and form.validate(request.form): form.add_invalid_redirect_target('admin/edit_group', group_id=group.id) form.delete_group() db.commit() return form.redirect('admin/manage_groups') return render_admin_response('admin/delete_group.html', 'users_groups.groups', form=form.as_widget())
def delete_news(request, news_id=None): """Remove given news entry""" newsitem = News.query.get(news_id) if newsitem is None: raise NotFound() form = DeleteNewsForm(newsitem) if request.method == 'POST': if 'cancel' in request.form: return form.redirect('admin/news/edit', news_id=news_id) elif 'confirm' in request.form and form.validate(request.form): title = str(newsitem.title) form.delete_news() db.commit() admin_flash(_('The entry %s was deleted successfully') % title, 'remove') return redirect_to('admin/news') return render_admin_response('admin/news_delete.html', 'news.edit', form=form.as_widget())
def delete_squad(request, squad_id): """Deletes a squad.""" squad = Squad.query.get(squad_id) if squad is None: raise NotFound() form = DeleteSquadForm(squad) if request.method == 'POST': if request.form.get('cancel'): return form.redirect('admin/squads/edit', squad_id=squad.id) elif request.form.get('confirm') and form.validate(request.form): squadname = str(squad.name) form.delete_squad() db.commit() admin_flash(_('%s was deleted successfully') % squadname, 'remove') return redirect_to('admin/squads') return render_admin_response('admin/squad_delete.html', 'gamesquad.squads', form=form.as_widget())
def delete_game(request, game_id): """Deletes a game.""" game = Game.query.get(game_id) if game is None: raise NotFound() form = DeleteGameForm(game) if request.method == 'POST': if request.form.get('cancel'): return form.redirect('admin/games/edit', game_id=game.id) elif request.form.get('confirm') and form.validate(request.form): gamename = str(game.name) form.delete_game() db.commit() admin_flash(_('The game %s was deleted successfully') % gamename, 'remove') return redirect_to('admin/games') return render_admin_response('admin/game_delete.html', 'gamesquad.games', form=form.as_widget())
def adm_delete_gameaccount(request, account_id): """Delete an InGame Account from admin panel""" gameaccount = GameAccount.query.get(account_id) if gameaccount is None: raise NotFound() form = DeleteGameAccountForm(gameaccount) if request.method == 'POST': if request.form.get('cancel'): return form.redirect('admin/edit_user', user_id=gameaccount.user.id) elif request.form.get('confirm') and form.validate(request.form): account = str(gameaccount.account) form.delete_account() db.commit() admin_flash(_('The game account %s was deleted successfully') % account, 'remove') return redirect_to('admin/edit_user', user_id=gameaccount.user.id) return render_admin_response('admin/gameaccount_delete.html', 'users_groups.users', form=form.as_widget())
def delete_level(request, level_id): """Deletes a level.""" level = Level.query.get(level_id) if level is None: raise NotFound() form = DeleteLevelForm(level) if request.method == 'POST': if request.form.get('cancel'): return form.redirect('admin/levels/edit', level_id=level.id) elif request.form.get('confirm') and form.validate(request.form): levelname = str(level.name) form.delete_level() db.commit() admin_flash(_('The level %s was deleted successfully') % levelname, 'remove') return redirect_to('admin/levels') return render_admin_response('admin/level_delete.html', 'levelsquad.levels', form=form.as_widget())
def delete_imaccount(request, account_id, user_id=None): """Delete an Instant Messenger Account from admin panel""" imaccount = IMAccount.query.get(account_id) if imaccount is None: raise NotFound() form = DeleteIMAccountForm(imaccount) if request.method == 'POST': if request.form.get('cancel'): return form.redirect('admin/edit_user', user_id=imaccount.user.id) elif request.form.get('confirm') and form.validate(request.form): account = str(imaccount.account) user_id = imaccount.user.id form.delete_account() db.commit() flash(_('IM account %s was deleted successfully') % account, 'remove') return form.redirect('admin/edit_user', user_id=user_id) return render_admin_response('admin/imaccount_delete.html', 'users_groups.users', form=form.as_widget())
def edit_squadmember(request, squad_id=None, user_id=None): """Edit Squadmemberships""" if squad_id is None: raise NotFound() squad = Squad.query.get(squad_id) if squad is None: raise NotFound() squadmember = None if user_id is not None: squadmember = SquadMember.query.get((user_id,squad_id)) if squadmember is None: raise NotFound() form = EditSquadMemberForm(squad, squadmember) if request.method == 'POST': if 'cancel' in request.form: return form.redirect('admin/squadmembers', squad_id=squad_id) elif request.form.get('delete') and user_id is not None: return redirect_to('admin/squadmembers/delete', squad_id=squad_id, user_id=user_id) elif form.validate(request.form): if squadmember is None: squadmember = form.make_squadmember() msg = _('The squadmember %s was created successfully.') icon = 'add' else: form.save_changes() msg = _('The squadmember %s was updated successfully.') icon = 'info' admin_flash(msg % (escape(squadmember.user.display_name)),icon) db.commit() if 'save_and_continue' in request.form: return redirect_to('admin/squadmembers/edit', squad_id=squad_id, user_id=squadmember.user.id) return redirect_to('admin/squadmembers', squad_id=squad_id) return render_admin_response('admin/squad_editmember.html', 'gamesquad.squads', form=form.as_widget(), squad=squad, squadmember=squadmember)
def acc_delete_gameaccount(request, account_id): """Delete an InGame Account from user-account panel""" gameaccount = GameAccount.query.get(account_id) if gameaccount is None: raise NotFound() form = DeleteGameAccountForm(gameaccount) if gameaccount.user != request.user: raise Forbidden() if request.method == 'POST': if request.form.get('cancel'): return form.redirect('account/gameaccounts') elif request.form.get('confirm') and form.validate(request.form): accountname = str(gameaccount.account) form.delete_account() db.commit() account_flash(_('The game account %s was deleted successfully') % accountname, 'remove') return redirect_to('account/gameaccounts') return render_account_response('account/gameaccount_delete.html', 'gameaccounts', form=form.as_widget())
def delete_squadmember(request, squad_id=None, user_id=None): """Remove Member from Squad""" if squad_id is None or user_id is None: raise NotFound() member = SquadMember.query.get((user_id, squad_id)) if member is None: raise NotFound() form = DeleteSquadMemberForm(member) if request.method == 'POST': if 'cancel' in request.form: return form.redirect('admin/squadmembers/edit', squad_id=squad_id, user_id=user_id) elif request.form.get('confirm') and form.validate(request.form): membername = str(member.user.display_name) squadname = str(member.squad.name) form.delete_member() db.commit() admin_flash(_('Member %s removed from %s') % (membername, squadname), 'remove') return redirect_to('admin/squadmembers', squad_id=squad_id) return render_admin_response('admin/squad_deletemember.html', 'gamesquad.squads', form=form.as_widget())
def edit_news(request, news_id=None): """Edit an existing entry or create a new one.""" newsitem = None if news_id is not None: newsitem = News.query.get(news_id) if newsitem is None: raise NotFound() form = NewsForm(newsitem) if newsitem is None: assert_privilege(privileges.NEWS_CREATE) else: if not newsitem.can_edit(request.user): raise Forbidden() if request.method == 'POST': if 'cancel' in request.form: return form.redirect('admin/news') elif 'delete' in request.form: return redirect_to('admin/news/delete', news_id=news_id) elif form.validate(request.form): if newsitem is None: newsitem = form.make_news(request.user) msg = _('The entry %s was created successfully.') else: form.save_changes() msg = _('The entry %s was updated successfully.') admin_flash(msg % (escape(newsitem.title))) db.commit() if 'save_and_continue' in request.form: return redirect_to('admin/news_edit', news_id=newsitem.id) return redirect_to('admin/news') return render_admin_response('admin/news_edit.html', 'news.edit', form=form.as_widget())
def delete_user(request, user_id): """Like all other delete screens just that it deletes a user.""" user = User.query.get(user_id) if user is None: raise NotFound() form = DeleteUserForm(user) if user == request.user: flash(_(u'You cannot delete yourself.'), 'error') return form.redirect('admin/manage_users') if request.method == 'POST': if 'cancel' in request.form: return form.redirect('admin/edit_user', user_id=user.id) elif 'confirm' in request.form and form.validate(request.form): form.add_invalid_redirect_target('admin/edit_user', user_id=user.id) msg = _(u'User %s removed successfully.') % escape(user.display_name) icon = 'remove' form.delete_user() db.commit() flash(msg, icon) return form.redirect('admin/manage_users') return render_admin_response('admin/delete_user.html', 'users_groups.users', form=form.as_widget())