示例#1
0
文件: routes.py 项目: deb17/moneycare
def create():

    form = ExpenseForm()
    modes = PaymentMode.query.filter_by(user_id=current_user.id)
    form.pay_mode.choices = [('', 'Choose one')] + [(m.id, m.mode)
                                                    for m in modes]
    estimates = Budget.query.filter(Budget.user_id == current_user.id,
                                    Budget.active.is_(True))
    form.estimate_entry.choices = [('', 'Choose one')] + [(e.id, e.item)
                                                          for e in estimates]

    if form.validate_on_submit():
        e = Expense()
        e.user_id = current_user.id
        e.description = form.description.data
        e.date = form.date.data
        e.amount = form.amount.data
        e.mode_id = int(form.pay_mode.data)
        e.budget_id = (int(form.estimate_entry.data)
                       if form.estimate_entry.data else None)
        e.comments = form.comments.data
        e.set_tags(form.taglist.data)
        db.session.add(e)
        db.session.commit()
        flash('New expense created.', 'success')
        if request.form.get('submit2') == 'Save and add another':
            return redirect(url_for('expense.create'))
        return redirect(url_for('expense.list_expenses'))

    return render_template('expense/new.html',
                           title='New expense',
                           form=form,
                           heading='Create new expense')