示例#1
0
def server(team_id, server_id, action):
    if not g.user.is_team_leader(team_id):
        flash(u'You must be a team leader to add a server.', 'error')
        return redirect(url_for('teams.my_teams'))

    server = Server.query.filter_by(id=server_id).first()

    if not server or not g.user.is_team_leader(server.team_id):
        flash(u'Server not found.', 'error')
        return redirect(url_for('teams.my_teams'))

    if action == 'edit':
        servers = Server.query.\
                filter_by(team_id=team_id).\
                order_by(Server.name.asc()).\
                all()

        form = ServerForm(request.form, obj=server)
        form.name.validators[0].values = [ s.name for s in servers if s.id != \
                server_id ]

        if form.validate_on_submit():
            form.populate_obj(server)
            db.session.commit()
            flash(u'The server was successfully updated.', 'success')
        else:
            return rt('team_admin/server_form.html',
                      team={
                          'id': team_id,
                          'name': g.user.teams[team_id].name
                      },
                      page={
                          'top': 'my_teams',
                          'sub': 'servers'
                      },
                      server_id=server_id,
                      adding=False,
                      form=form)
    elif action == 'delete':
        if request.method == 'POST':
            db.session.delete(server)
            db.session.commit()
            flash(u'The server was successfully deleted.', 'success')

    return redirect(url_for('servers', team_id=team_id))
示例#2
0
def server(team_id, server_id, action):
    if not g.user.is_team_leader(team_id):
        flash(u'You must be a team leader to add a server.', 'error')
        return redirect(url_for('teams.my_teams'))

    server = Server.query.filter_by(id=server_id).first()

    if not server or not g.user.is_team_leader(server.team_id):
        flash(u'Server not found.', 'error')
        return redirect(url_for('teams.my_teams'))

    if action == 'edit':
        servers = Server.query.\
                filter_by(team_id=team_id).\
                order_by(Server.name.asc()).\
                all()

        form = ServerForm(request.form, obj=server)
        form.name.validators[0].values = [ s.name for s in servers if s.id != \
                server_id ]

        if form.validate_on_submit():
            form.populate_obj(server)
            db.session.commit()
            flash(u'The server was successfully updated.', 'success')
        else:
            return rt('team_admin/server_form.html',
                    team={'id':team_id, 'name':g.user.teams[team_id].name},
                    page={'top':'my_teams', 'sub':'servers'},
                    server_id=server_id,
                    adding=False, form=form)
    elif action == 'delete':
        if request.method == 'POST':
            db.session.delete(server)
            db.session.commit()
            flash(u'The server was successfully deleted.', 'success')

    return redirect(url_for('servers',team_id=team_id))