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())
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)
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())