Ejemplo n.º 1
0
def edit_expense(expense_id):

    form = ExpenseForm(request.form)
    if request.method == 'POST':
        expense = Expense.objects.get(id=form.expense_id.data)
        if form.validate():
            if __get_expense_by_name(form.name.data, expense.id) != None:
                return render_template('views/expense_form.html', page_name='edit_expense', page_title='Edit Expense', expense=expense, categories=Category.objects(), error='An expense with that name already exists.')

            expense.name = form.name.data
            expense.category_id = form.category_id.data
            expense.amount = form.amount.data
            expense.date = form.date.data
            expense.save()

            return list_expenses(success='Updated expense "{}".'.format(form.name.data))
        else:
            return render_template('views/expense_form.html', page_name='edit_expense', page_title='Edit Expense', expense=expense, categories=Category.objects(), errors=parse_form_errors(form.errors.items()))

    expense = __get_expense(expense_id)

    if expense == None:
        return no_expense_found()

    return render_template('views/expense_form.html', page_name='edit_expense', page_title='Edit Expense', expense=expense, categories=Category.objects())
Ejemplo n.º 2
0
def create_expense():
    form = ExpenseForm(request.form)
    if request.method == 'POST' and form.validate():
        email = session['email']
        user = User.query.filter_by(email=email).first()
        new_expense = Expense(form.item.data, form.quantity.data,
                              form.price.data)
        new_expense.owner = user
        db.session.add(new_expense)
        db.session.commit()
        return redirect(url_for('expense_list'))
    else:
        return render_template('Expense.html', form=form)
Ejemplo n.º 3
0
def add_expense():

    if len(Category.objects()) < 1:
        return list_expenses(error='You cannot create an expense until you create at least one category.')

    form = ExpenseForm(request.form)
    if request.method == 'POST':
        if form.validate(): 
            if __get_expense_by_name(form.name.data) != None:
                return render_template('views/expense_form.html', page_name='edit_expense', page_title='Edit Expense', categories=Category.objects(), error='An expense with that name already exists.')

            expense = Expense(name=form.name.data, category_id=form.category_id.data, amount=form.amount.data, date=form.date.data)
            expense.save()

            return list_expenses(success='Created new expense "{}".'.format(form.name.data))
        else:
            return render_template('views/expense_form.html', page_name='add_expense', page_title='Add Expense', categories=Category.objects(), errors=parse_form_errors(form.errors.items()))

    return render_template('views/expense_form.html', page_name='add_expense', page_title='Add Expense', categories=Category.objects())