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)