Esempio n. 1
0
def new_entry(file_id=None):
    if g.user.categories.first() == None:
        flash('You need at least one category to start adding entries')
        return redirect(url_for('category',action='new'))

    form = entry_form()
    form.category.choices = [(c.id, c.name) for c in g.user.categories]

    if form.validate_on_submit():
        entry = Entry(user=g.user,
            category_id=form.category.data,
            date=form.date.data,
            due_date=form.due_date.data,
            info=form.info.data)
        if form.amount.data:
            entry.set_amount(euros=form.amount.data)
        if form.check.data == True:
            entry.check = 1

        if file_id:
            file = File.query.get(file_id)
            if file == None:
                abort(500)
            elif file.user != g.user:
                abort(401)
            else:
                file.entry = entry
                db.session.add(file)
        db.session.add(entry)
        db.session.commit()
        flash('New entry added!')
        return redirect(url_for('index'))
    elif request.method != 'POST':
        form.date.data = datetime.utcnow()
    return render_template(
        'entry.html',
        title = 'New entry',
        form = form)