示例#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')
示例#2
0
def edit_expense(id):
    i = None
    if id!="0":
        i = Expense.query.filter_by(id=id).first_or_404()
    form = EditExpenseForm()
    if form.validate_on_submit():
        if id == "0":
            i = Expense()
            i.user_id = current_user.id
            db.session.add(i)
        i.description = form.description.data
        db.session.commit()
        flash(_('Your changes have been saved.'))
        return redirect(url_for('expenses'))
    elif request.method == 'GET':
        if id == "0":
            form.id.data = 0
            form.description.data = ""
        else:    
            form.id.data = i.id
            form.description.data = i.description
    return render_template('edit_expense.html', title=_('Edit Expense'),
                           form=form)