Exemplo n.º 1
0
def admin_vote_add_radiofield(id=0):
    vote = Vote.query.get(id)
    temp = vote.form.fields
    temp.append(RadioField('Label', choices=[]))
    vote.form = VoteForm()
    vote.form.fields = temp
    db.session.commit()
    return redirect('/admin/vote/' + str(id) + '/edit/' +
                    str(len(vote.form.fields) - 1))
Exemplo n.º 2
0
def admin_votes_vote_add_textbox(id=0):
    vote = Vote.query.get(id)
    temp = vote.form.fields
    temp.append(TextField('Label'))
    vote.form = VoteForm()
    vote.form.fields = temp
    db.session.commit()
    return redirect('/admin/vote/' + str(id) + '/edit/' +
                    str(len(vote.form.fields) - 1))
Exemplo n.º 3
0
def admin_vote_delete(id=1, index=-1):
    vote = Vote.query.get(id)
    if vote:
        if index < 0:
            db.session.delete(vote)
            db.session.commit()
            return redirect('/admin/votes')
        else:
            temp = vote.form.fields
            vote.form = VoteForm()
            vote.form.fields = util.list_remove(temp, index)
            db.session.commit()
            return redirect('/admin/vote/' + str(id))
    return redirect('/admin/votes')
Exemplo n.º 4
0
def admin_vote(id=-1):
    if not Vote.query.get(id):
        vote = Vote("New Vote")
        vote.description = "Insert Description"
        vote.form = VoteForm()
        db.session.add(vote)
        db.session.commit()
        id = vote.id
        return redirect('/admin/vote/' + str(id) + "/edit")
    #Gets news story corresponding to the url
    vote = Vote.query.order_by(Vote.id).get(id)
    form = vote.form.get()
    return render_template('view/vote/admin/vote.html',
                           vote=dict(id=vote.id,
                                     title=vote.title,
                                     description=util.sanitize(
                                         vote.description)),
                           form=form)
Exemplo n.º 5
0
def admin_votes_vote_edit(id=1, index=-1):
    vote = Vote.query.get(id)
    if vote:
        if index < 0:
            form = VoteEditForm()
            form.users.choices = [(str(user.id), str(user.username))
                                  for user in User.query.order_by(User.id)]
            if form.validate_on_submit():
                vote.title = form.title.data
                vote.description = form.description.data
                temp = [User.query.get(int(id)) for id in form.users.data]
                if form.grade.data == 'all':
                    temp += [user for user in User.query]
                elif form.grade.data != 'none':
                    temp += [
                        user
                        for user in User.query.filter_by(grade=form.grade.data)
                    ]
                vote.users = temp
                vote.start_time = form.start_time.data
                vote.end_time = form.end_time.data
                db.session.commit()
                return redirect(('/admin/vote/' + str(id)))
            else:
                form.title.data = vote.title
                form.description.data = vote.description
                form.users.data = [str(user.id) for user in vote.users]
                form.start_time.data = vote.start_time.strftime(
                    '%Y-%m-%d %H:%M:%S')
                form.end_time.data = vote.end_time.strftime(
                    '%Y-%m-%d %H:%M:%S')
                return render_template('edit/admin/vote.html',
                                       model=vote,
                                       form=form)
        elif index <= len(vote.form.fields):
            temp = vote.form.fields
            field = getattr(vote.form.get(), "id_" + str(index))
            if isinstance(field, MultiCheckboxField):
                form = MultiEditForm()
                if form.validate_on_submit():
                    temp[index] = type(field)(
                        form.title.data,
                        choices=[(str(x).strip(), str(x).strip())
                                 for x in form.choices.data.split('\n')
                                 if str(x).strip() != ''],
                        max_choices=int(form.max_choices.data))
                    vote.form = VoteForm()
                    vote.form.fields = temp
                    db.session.commit()
                    return redirect('/admin/vote/' + str(id))
                else:
                    form.title.data = str(field.label.text)
                    form.choices.data = str('\n'.join(
                        [c[0] for c in field.choices]))
                    form.max_choices.data = field.max_choices
                    return render_template('edit/admin/vote.html',
                                           model=vote,
                                           form=form)
            elif isinstance(field, SelectField) or isinstance(
                    field, RadioField):
                form = OptionEditForm()
                if form.validate_on_submit():
                    temp[index] = type(field)(
                        form.title.data,
                        choices=[(str(x).strip(), str(x).strip())
                                 for x in form.choices.data.split('\n')
                                 if str(x).strip() != ''])
                    vote.form = VoteForm()
                    vote.form.fields = temp
                    db.session.commit()
                    return redirect('/admin/vote/' + str(id))
                else:
                    form.title.data = str(field.label.text)
                    form.choices.data = str('\n'.join(
                        [c[0] for c in field.choices]))
                    return render_template('edit/admin/vote.html',
                                           model=vote,
                                           form=form)
            else:
                form = LabelEditForm()
                if form.validate_on_submit():
                    temp[index] = type(field)(form.title.data)
                    vote.form = VoteForm()
                    vote.form.fields = temp
                    db.session.commit()
                    return redirect('/admin/vote/' + str(id))
                else:
                    form.title.data = str(field.label.text)
                    return render_template('edit/admin/vote.html',
                                           model=vote,
                                           form=form)
        abort(404)