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 = IncomeForm(user, instance=instance, data=self.request.POST) if form.is_valid(): transaction = form.save(commit=False) transaction.account = transaction.customer.account transaction.put() self.redirect("/receitas/") form = IncomeForm(user, instance=instance) path = os.path.join(os.path.dirname(__file__), 'templates/income.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 player(request, player_id): player_id = int(player_id) p = Player.objects.get(id=player_id) if request.method == 'POST' and request.POST['form_name'] == 'transfer': tf = TransferForm(request.POST) tf.fields['to'].choices = get_transfer_choices(player_id) if tf.is_valid(): to_name = do_transfer(player_id, tf.cleaned_data['to'], Decimal(tf.cleaned_data['amount'])) messages.success(request, "${} transferred to {}.".format(tf.cleaned_data['amount'], to_name)) return redirect('bank.views.player', player_id) iform = IncomeForm() elif request.method == 'POST' and request.POST['form_name'] == 'income': iform = IncomeForm(request.POST) if iform.is_valid(): p.balance += Decimal(iform.cleaned_data['amount']) p.save() messages.success(request, "Added ${} income..".format(iform.cleaned_data['amount'])) return redirect('bank.views.player', player_id) tf = TransferForm() else: tf = TransferForm() iform = IncomeForm() tf.fields['to'].choices = get_transfer_choices(player_id) return render(request, "player.html", {'player': p, 'transfer_form': tf, 'players': Player.objects.all(), 'income_form': iform})
def _handler(self, post=False): user = users.get_current_user() if user: if post: form = IncomeForm(user, data=self.request.POST) if form.is_valid(): transaction = form.save(commit=False) transaction.account = transaction.customer.account transaction.user = user transaction.income = True transaction.put() self.redirect(self.request.uri) else: form = IncomeForm(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 incomes = Transaction.all()\ .filter('user ='******'income =', True)\ .filter('date >=', start)\ .filter('date <=', end) if account_key: incomes = incomes.filter('account =', Account.get(account_key)) incomes = incomes.order('-date').fetch(1000) prefetch_refprops(incomes, Transaction.account, Transaction.customer) path = os.path.join(os.path.dirname(__file__), 'templates/incomes.html') self.response.out.write(template.render(path, { 'start': start, 'end': end, 'filter_form': filter_form, 'incomes': incomes, 'form': form, 'user': user, 'js_data': calc_expenses_js_data(incomes), 'total': sum([income.value for income in incomes]), 'logout_url': users.create_logout_url("/") })) else: self.redirect(users.create_login_url(self.request.uri))
def add_income(): form = IncomeForm() users = User.query.filter_by(bmID=current_user.bmID) form.owner.choices = [(user.id, user.firstname) for user in users] banks = Bank.query.filter_by(bmID=current_user.bmID, accounttype="Current") form.paidinto.choices = [(bank.bankID, bank.bankname + " - " + bank.accounttype) for bank in banks] if form.validate_on_submit(): new_income = Income(bmID=current_user.bmID, owner=form.owner.data, amount=form.amount.data, frequency=form.frequency.data, paidinto=form.paidinto.data, nextduedate=form.nextduedate.data) db.session.add(new_income) db.session.commit() return redirect(url_for("view_incomes")) return render_template("add-income.html", form=form)
def edit_income(income_id): income = Income.query.get(income_id) edit_form = IncomeForm(owner=get_member_name(income.owner), amount=income.amount, frequency=income.frequency, paidinto=get_bank_name(income.paidinto), nextduedate=income.nextduedate) users = User.query.filter_by(bmID=current_user.bmID) edit_form.owner.choices = [(user.id, user.firstname) for user in users] banks = Bank.query.filter_by(bmID=current_user.bmID, accounttype="Current") edit_form.paidinto.choices = [(bank.bankID, bank.bankname + " - " + bank.accounttype) for bank in banks] if edit_form.validate_on_submit(): income.owner = edit_form.owner.data, income.amount = edit_form.amount.data, income.frequency = edit_form.frequency.data, income.paidinto = edit_form.paidinto.data, income.nextduedate = edit_form.nextduedate.data db.session.commit() return redirect(url_for("view_income")) return render_template("add-income.html", form=edit_form)
def player(request, player_id): player_id = int(player_id) p = Player.objects.get(id=player_id) if request.method == 'POST' and request.POST['form_name'] == 'transfer': tf = TransferForm(request.POST) tf.fields['to'].choices = get_transfer_choices(player_id) if tf.is_valid(): to_name = do_transfer(player_id, tf.cleaned_data['to'], Decimal(tf.cleaned_data['amount'])) messages.success( request, "${} transferred to {}.".format(tf.cleaned_data['amount'], to_name)) return redirect('bank.views.player', player_id) iform = IncomeForm() elif request.method == 'POST' and request.POST['form_name'] == 'income': iform = IncomeForm(request.POST) if iform.is_valid(): p.balance += Decimal(iform.cleaned_data['amount']) p.save() messages.success( request, "Added ${} income..".format(iform.cleaned_data['amount'])) return redirect('bank.views.player', player_id) tf = TransferForm() else: tf = TransferForm() iform = IncomeForm() tf.fields['to'].choices = get_transfer_choices(player_id) return render( request, "player.html", { 'player': p, 'transfer_form': tf, 'players': Player.objects.all(), 'income_form': iform })