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 new(request): form = ExpenseForm(request.POST or None , initial = { 'year' : date.today().year , 'month' : date.today().month }) type_id = 0 if( request.POST ): type_id = int( request.POST.get('type') or 0 ) form.fields['subtype'].queryset = ExpenseType.objects.filter( father_expense_type = type_id ) if(form.is_valid()): expense = form.save(commit=False) expense.user = UserUtil.get_current_user() expense.year = expense.date_expense.year expense.month = expense.date_expense.month expense.save() return HttpResponseRedirect( "{}?month={}&year={}".format( reverse("search_expenses"), expense.month , expense.year ) ) return render(request ,"expenses/form.html" , { "form" : form } )
def user_expenses(): form = ExpenseForm() category_query = services.get_categories_query(current_user.id) form.category.query = category_query if form.validate_on_submit(): # TODO: Insert expense here services.add_expense(name=form.name.data, value=form.value.data, category=form.category.data, user=current_user) return redirect(url_for('register')) expenses = services.get_expenses_by_user(current_user.id) return render_template('expenses.html', expenses=expenses, form=form)
def _handler(self, post=False): user = users.get_current_user() if user: if post: form = ExpenseForm(user, data=self.request.POST) if form.is_valid(): transaction = form.save(commit=False) transaction.user = user transaction.put() self.redirect(self.request.uri) else: form = ExpenseForm(user) start, end = get_start_end_range(self.request) account_key = self.request.get('account', None) filter_form = FilterForm(user) filter_form.fields['start'].initial = start filter_form.fields['end'].initial = end filter_form.fields['account'].initial = account_key expenses = Transaction.all()\ .filter('user ='******'income =', False)\ .filter('date >=', start)\ .filter('date <=', end) if account_key: expenses = expenses.filter('account =', Account.get(account_key)) expenses = expenses.order('-date').fetch(1000) prefetch_refprops(expenses, Transaction.account) path = os.path.join(os.path.dirname(__file__), 'templates/expenses.html') self.response.out.write(template.render(path, { 'start': start, 'end': end, 'filter_form': filter_form, 'expenses': expenses, 'form': form, 'user': user, 'js_data': calc_expenses_js_data(expenses), 'total': sum([expense.value for expense in expenses]), 'logout_url': users.create_logout_url("/") })) else: self.redirect(users.create_login_url(self.request.uri))
def edit(request , id): user = UserUtil.get_current_user() obj = Expense.objects.get(pk=id, user = user ) form = ExpenseForm(request.POST or None, instance = obj ) type_id = obj.type.pk if( request.POST ): type_id = int( request.POST.get('type') or 0 ) form.fields['subtype'].queryset = ExpenseType.objects.filter( father_expense_type = type_id ) if form.is_valid(): expense = form.save(commit=False) expense.year = expense.date_expense.year expense.month = expense.date_expense.month form.save() return HttpResponseRedirect( "{}?month={}&year={}".format( reverse("search_expenses"), expense.month , expense.year ) ) return render(request ,"expenses/form.html" , { "form" : form } )
def add_expense(): user = g.user form = ExpenseForm() if form.validate_on_submit(): expense = Expense(date=form.date.data, description=form.description.data.strip(), cost=''.join(i for i in form.cost.data.strip() if i.isdigit()), merchant=form.merchant.data, category=form.category.data, creator=user) db.session.add(expense) db.session.commit() flash( "The Expense from: '{}' was added".format(form.merchant.data.name), 'success') return redirect(url_for('dashboard')) return render_template('add_expense.html', user=user, form=form)
def delete(request, id): if (request.POST): expense = Expense.objects.get(pk=id, user=UserUtil.get_current_user()) expense.delete() return HttpResponseRedirect("{}?month={}&year={}".format( reverse("search_expenses"), expense.month, expense.year)) else: form = ExpenseForm(instance=Expense.objects.get( pk=id, user=UserUtil.get_current_user())) return render(request, "expenses/delete.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())
def expense_detail(id): form = ExpenseForm() category_query = services.get_categories_query(current_user.id) form.category.query = category_query if request.method == 'GET': expense = services.get_expense_by_id(id) form.name.data = expense.Expense.name form.value.data = expense.Expense.value form.category.data = expense.Category if form.validate_on_submit(): services.update_expense(id=id, name=form.name.data, value=form.value.data, category=form.category.data) return redirect(url_for('user_expenses')) return render_template('expenses_detail.html', form=form)
def new(request): form = ExpenseForm(request.POST or None, initial={ 'year': date.today().year, 'month': date.today().month }) type_id = 0 if (request.POST): type_id = int(request.POST.get('type') or 0) form.fields['subtype'].queryset = ExpenseType.objects.filter( father_expense_type=type_id) if (form.is_valid()): expense = form.save(commit=False) expense.user = UserUtil.get_current_user() expense.year = expense.date_expense.year expense.month = expense.date_expense.month expense.save() return HttpResponseRedirect("{}?month={}&year={}".format( reverse("search_expenses"), expense.month, expense.year)) return render(request, "expenses/form.html", {"form": form})
def _handler(self, expense_key, post=False): user = users.get_current_user() if user: instance = Transaction.get(expense_key) if instance.user != user: self.redirect(users.create_login_url(self.request.uri)) if post: form = ExpenseForm(user, instance=instance, data=self.request.POST) if form.is_valid(): form.save() self.redirect("/despesas/") form = ExpenseForm(user, instance=instance) path = os.path.join(os.path.dirname(__file__), 'templates/expense.html') self.response.out.write(template.render(path, { 'form': form, 'user': user, 'logout_url': users.create_logout_url("/") })) else: self.redirect(users.create_login_url(self.request.uri))
def addAnExpense(request): from tuition.settings import SITE_SUPPORT_EMAIL from forms import ExpenseForm from tuition.utils.manager import AppManager form = ExpenseForm( initial={'dateOfExpense': datetime.date.today().strftime('%d/%m/%Y')}) template_values = { 'form': form, 'loggedInEmployee': AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email()) } return render_to_response('newExpense.html', template_values, context_instance=RequestContext(request))
def viewUserExpenses(request, userKey=None): from tuition.settings import SITE_SUPPORT_EMAIL from tuition.utils.manager import AppManager from models import Expenses from forms import ExpenseForm, ExpenseYearFilter from tuition.utils.appConstants import MONTH_NUM_FULL_NAME_DICT from tuition.utils.utils import ExportHandle, ExportClassHandle loggedInEmployee = AppManager.getUserByEmail( AppManager.getCurrentLoggedInUser().email()) form = ExpenseForm( initial={'dateOfExpense': datetime.date.today().strftime('%d/%m/%Y')}) template_values = { 'loggedInEmployee': loggedInEmployee, 'yearFilterForm': ExpenseYearFilter(), 'monthNameDict': MONTH_NUM_FULL_NAME_DICT, 'exportHandle': ExportHandle.asDict(), 'classHandle': ExportClassHandle.asDict(), 'form': form } return render_to_response('viewExpenses.html', template_values, context_instance=RequestContext(request))
def edit(request, id): user = UserUtil.get_current_user() obj = Expense.objects.get(pk=id, user=user) form = ExpenseForm(request.POST or None, instance=obj) type_id = obj.type.pk if (request.POST): type_id = int(request.POST.get('type') or 0) form.fields['subtype'].queryset = ExpenseType.objects.filter( father_expense_type=type_id) if form.is_valid(): expense = form.save(commit=False) expense.year = expense.date_expense.year expense.month = expense.date_expense.month form.save() return HttpResponseRedirect("{}?month={}&year={}".format( reverse("search_expenses"), expense.month, expense.year)) return render(request, "expenses/form.html", {"form": form})
def get_form(self, form_class): return ExpenseForm(self.request.user.account.organisation, **self.get_form_kwargs())