Ejemplo n.º 1
0
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())
Ejemplo n.º 2
0
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())
Ejemplo n.º 3
0
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())
Ejemplo n.º 4
0
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())
Ejemplo n.º 5
0
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())
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
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())
Ejemplo n.º 8
0
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())
Ejemplo n.º 9
0
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())
Ejemplo n.º 10
0
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())
Ejemplo n.º 11
0
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())
Ejemplo n.º 12
0
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())
Ejemplo n.º 13
0
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())
Ejemplo n.º 14
0
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())
Ejemplo n.º 15
0
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())
Ejemplo n.º 16
0
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)
Ejemplo n.º 17
0
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())
Ejemplo n.º 18
0
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())
Ejemplo n.º 19
0
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())
Ejemplo n.º 20
0
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())