Can now edit payment

This commit is contained in:
Gabriel Augendre 2016-06-04 12:13:53 +02:00
parent d2c6f573f9
commit f559c20b65
No known key found for this signature in database
GPG key ID: D2B6A5B41FC438B1
3 changed files with 62 additions and 26 deletions

View file

@ -8,11 +8,13 @@
{% for e in elements %} {% for e in elements %}
{% if refunds %} {% if refunds %}
<a class="list-group-item" href="{% url 'refund_edit' pk=e.pk %}"> <a class="list-group-item" href="{% url 'refund_edit' pk=e.pk %}">
{% elif payments %}
<a class="list-group-item" href="{% url 'payment_edit' pk=e.pk %}">
{% else %} {% else %}
<div class="list-group-item"> <div class="list-group-item">
{% endif %} {% endif %}
{{ e.title }} le {{ e.date|date:"SHORT_DATE_FORMAT" }} : {{ e.eur_value }}€ {{ e.title }} le {{ e.date|date:"SHORT_DATE_FORMAT" }} : {{ e.eur_value }}€
{% if refunds %} {% if refunds or payments %}
</a> </a>
{% else %} {% else %}
</div> </div>

View file

@ -7,4 +7,5 @@ urlpatterns = [
url(r'^refunds/new/$', views.new_refund, name='new_refund'), url(r'^refunds/new/$', views.new_refund, name='new_refund'),
url(r'^payments/new/$', views.new_payment, name='new_payment'), url(r'^payments/new/$', views.new_payment, name='new_payment'),
url(r'^refunds/(?P<pk>[0-9]+)/edit/$', views.refund_edit, name='refund_edit'), url(r'^refunds/(?P<pk>[0-9]+)/edit/$', views.refund_edit, name='refund_edit'),
url(r'^payments/(?P<pk>[0-9]+)/edit/$', views.payment_edit, name='payment_edit'),
] ]

View file

@ -5,21 +5,9 @@ from refunding.forms import RefundFormPublic, PaymentForm
from refunding.models import Payment, Refund from refunding.models import Payment, Refund
@login_required #############################
def not_refunded_payments(request): # -------- Refunds -------- #
payments = Payment.objects.filter(refund=None) #############################
value_sum = payments.aggregate(Sum('value')).get('value__sum')
if value_sum:
value_sum /= 100
else:
value_sum = 0
context = {
'payments': payments,
'sum': value_sum,
'default_nothing': 'No payment to be refunded.'
}
return render(request, "refunding/payments.html", context)
@login_required @login_required
@ -53,6 +41,51 @@ def new_refund(request):
return render(request, "refunding/refund_payment_detail.html", context) return render(request, "refunding/refund_payment_detail.html", context)
@login_required
@permission_required('refunding.change_refund')
def refund_edit(request, pk):
refund = get_object_or_404(Refund, pk=pk)
if request.method == 'POST':
form = RefundFormPublic(request.POST, instance=refund)
if form.is_valid():
refund = form.save()
refund.user = request.user
refund.save()
return redirect('latest_refunds')
else:
form = RefundFormPublic(instance=refund)
context = {
'form': form,
'title': 'Edit refund'
}
return render(request, 'refunding/refund_payment_detail.html', context)
##############################
# -------- Payments -------- #
##############################
@login_required
def not_refunded_payments(request):
payments = Payment.objects.filter(refund=None)
value_sum = payments.aggregate(Sum('value')).get('value__sum')
if value_sum:
value_sum /= 100
else:
value_sum = 0
context = {
'payments': payments,
'sum': value_sum,
'default_nothing': 'No payment to be refunded.'
}
return render(request, "refunding/payments.html", context)
@login_required @login_required
@permission_required('refunding.add_payment') @permission_required('refunding.add_payment')
def new_payment(request): def new_payment(request):
@ -75,23 +108,23 @@ def new_payment(request):
@login_required @login_required
@permission_required('refunding.change_refund') @permission_required('refunding.change_payment')
def refund_edit(request, pk): def payment_edit(request, pk):
refund = get_object_or_404(Refund, pk=pk) payment = get_object_or_404(Payment, pk=pk)
if request.method == 'POST': if request.method == 'POST':
form = RefundFormPublic(request.POST, instance=refund) form = PaymentForm(request.POST, instance=payment)
if form.is_valid(): if form.is_valid():
refund = form.save() payment = form.save(commit=False)
refund.user = request.user payment.user = request.user
refund.save() payment.save()
return redirect('latest_refunds') return redirect('not_refunded_payments')
else: else:
form = RefundFormPublic(instance=refund) form = PaymentForm(instance=payment)
context = { context = {
'form': form, 'form': form,
'title': 'Edit refund' 'title': 'Edit payment'
} }
return render(request, 'refunding/refund_payment_detail.html', context) return render(request, 'refunding/refund_payment_detail.html', context)