From ff2baab268fddc31b113cedb43668442267bd8ae Mon Sep 17 00:00:00 2001 From: Gabriel Augendre Date: Sat, 4 Jun 2016 04:37:56 +0200 Subject: [PATCH] Add ability to add payment --- refunding/forms.py | 13 ++++++++++ refunding/templates/refunding/payments.html | 11 +++++++- ...refund.html => refund_payment_detail.html} | 0 refunding/urls.py | 1 + refunding/views.py | 26 ++++++++++++++++--- 5 files changed, 47 insertions(+), 4 deletions(-) rename refunding/templates/refunding/{edit_new_refund.html => refund_payment_detail.html} (100%) diff --git a/refunding/forms.py b/refunding/forms.py index d46f732..9c1df8d 100644 --- a/refunding/forms.py +++ b/refunding/forms.py @@ -45,3 +45,16 @@ class RefundFormPublic(RefundForm): } ) ) + + +class PaymentForm(forms.ModelForm): + class Meta: + model = Payment + fields = ('title', 'value', 'date') + widgets = { + 'date': DateTimePicker( + options={ + "format": "YYYY-MM-DD" + } + ), + } diff --git a/refunding/templates/refunding/payments.html b/refunding/templates/refunding/payments.html index 1725d42..fd9b786 100644 --- a/refunding/templates/refunding/payments.html +++ b/refunding/templates/refunding/payments.html @@ -2,6 +2,15 @@ {% load l10n %} {% block content %} -

{% block title %}Payments to refund{% endblock %}

+

+ {% block title %}Payments to refund{% endblock %} + {% if user.is_authenticated %} +
+ + + +
+ {% endif %} +

{% include 'refunding/elements_list.html' with elements=payments %} {% endblock %} \ No newline at end of file diff --git a/refunding/templates/refunding/edit_new_refund.html b/refunding/templates/refunding/refund_payment_detail.html similarity index 100% rename from refunding/templates/refunding/edit_new_refund.html rename to refunding/templates/refunding/refund_payment_detail.html diff --git a/refunding/urls.py b/refunding/urls.py index c3e66dc..31cd50d 100644 --- a/refunding/urls.py +++ b/refunding/urls.py @@ -5,5 +5,6 @@ urlpatterns = [ url(r'^payments/$', views.not_refunded_payments, name='not_refunded_payments'), url(r'^refunds/$', views.latest_refunds, name='latest_refunds'), url(r'^refunds/new/$', views.new_refund, name='new_refund'), + url(r'^payments/new/$', views.new_payment, name='new_payment'), url(r'^refunds/(?P[0-9]+)/edit/$', views.refund_edit, name='refund_edit'), ] diff --git a/refunding/views.py b/refunding/views.py index 190b9e7..69580e8 100644 --- a/refunding/views.py +++ b/refunding/views.py @@ -1,7 +1,7 @@ from django.contrib.auth.decorators import login_required from django.db.models import Sum from django.shortcuts import render, redirect, get_object_or_404 -from refunding.forms import RefundFormPublic +from refunding.forms import RefundFormPublic, PaymentForm from refunding.models import Payment, Refund @@ -48,7 +48,27 @@ def new_refund(request): 'form': form, 'title': 'New refund' } - return render(request, "refunding/edit_new_refund.html", context) + return render(request, "refunding/refund_payment_detail.html", context) + + + +@login_required +def new_payment(request): + if request.method == 'POST': + form = PaymentForm(request.POST) + if form.is_valid(): + payment = form.save(commit=False) + payment.user = request.user + payment.save() + return redirect('not_refunded_payments') + else: + form = PaymentForm() + + context = { + 'form': form, + 'title': 'New payment' + } + return render(request, "refunding/refund_payment_detail.html", context) @login_required @@ -67,4 +87,4 @@ def refund_edit(request, pk): 'form': form, 'title': 'Edit refund' } - return render(request, 'refunding/edit_new_refund.html', context) + return render(request, 'refunding/refund_payment_detail.html', context)