def debtView(request, *args): if request.method == 'POST': form = DebtForm(request.POST) if form.is_valid(): if args: update_old_debt(form, pk=args[0]) else: save_new_debt(form) return HttpResponseRedirect('/debt/') else: user = request.user if args: initial_form_values = initial_from_debt_object(args[0]) else: initial_form_values = generate_initial(user) form = DebtForm(initial=initial_form_values) l = Debt.objects.order_by('-modified') l = l[::-1] account_list = list(Account.objects.all())\ + list(DebtAccount.objects.all()) context = { 'account_list': account_list, 'debt_list': l, 'form': form, 'username': user } return render( request, 'debt/index.html', context )
def debtView(request, *args): if request.method == 'POST': form = DebtForm(request.POST) if form.is_valid(): if args: update_old_debt(form, pk=args[0]) else: save_new_debt(form) return HttpResponseRedirect('/debt/') else: user = request.user if args: initial_form_values = initial_from_debt_object(args[0]) else: initial_form_values = generate_initial(user) form = DebtForm(initial=initial_form_values) l = Debt.objects.order_by('-modified') l = l[::-1] account_list = list(Account.objects.all())\ + list(DebtAccount.objects.all()) context = { 'account_list': account_list, 'debt_list': l, 'form': form, 'username': user } return render(request, 'debt/index.html', context)
def index(request): users = User.objects.all() numUsers = users.count() matrix = [[{"amount":0,"payee":i.first_name,"payer":j.first_name} for i in users] for j in users] debtForm = DebtForm(initial={"payee":request.user}) debtMulti = DebtMulti(initial={"payee":request.user,"payers":[request.user.id]}) if request.POST: if 'multi' in request.POST: debtMulti = DebtMulti(request.POST) if debtMulti.is_valid(): amount = debtMulti.cleaned_data['amount'] users = debtMulti.cleaned_data['payers'] amountEach = float(amount)/users.count() for user in users: debt = Debt.objects.create(payee=debtMulti.cleaned_data['payee'], payer=user, amount=amountEach, memo=debtMulti.cleaned_data['memo']) debtMulti = DebtMulti(initial={"payee":request.user,"payers":[request.user.id]}) else: debtForm = DebtForm(request.POST) if debtForm.is_valid(): debtForm.save() debtForm = DebtForm(initial={"payee":request.user}) debts = Debt.objects.all() for debt in debts: forward = matrix[debt.payer.id-1][debt.payee.id-1] backward = matrix[debt.payee.id-1][debt.payer.id-1] if backward["amount"] > 0: backward["amount"] -= debt.amount if backward["amount"] < 0: forward["amount"] -= backward["amount"] backward["amount"] = 0 else: forward["amount"] += debt.amount return render_to_response('debt/index.html',context_instance=RequestContext(request,{'matrix':matrix, 'users':users, 'form':debtForm, 'multiform':debtMulti}))