Пример #1
0
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
        )
Пример #2
0
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)
Пример #3
0
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}))