|
@@ -71,7 +71,8 @@ class PaymentInline(admin.StackedInline):
|
|
|
|
|
|
|
|
|
class InvoiceAdmin(admin.ModelAdmin):
|
|
|
- list_display = ('number', 'date', 'status', 'amount', 'member', 'validated')
|
|
|
+ list_display = ('number', 'date', 'status', 'amount', 'member',
|
|
|
+ 'validated')
|
|
|
list_display_links = ('number', 'date')
|
|
|
fields = (('number', 'date', 'status'),
|
|
|
('date_due'),
|
|
@@ -144,11 +145,16 @@ class InvoiceAdmin(admin.ModelAdmin):
|
|
|
Vue appelée lorsque l'admin souhaite valider une facture et
|
|
|
générer son pdf
|
|
|
"""
|
|
|
+
|
|
|
# TODO : Add better perm here
|
|
|
if request.user.is_superuser:
|
|
|
invoice = get_invoice_from_id_or_number(id)
|
|
|
- invoice.validate()
|
|
|
- messages.success(request, 'La facture a été validée.')
|
|
|
+ if invoice.amount() == 0:
|
|
|
+ messages.error(request, 'Une facture validée ne peut pas avoir'
|
|
|
+ ' un total de 0€.')
|
|
|
+ else:
|
|
|
+ invoice.validate()
|
|
|
+ messages.success(request, 'La facture a été validée.')
|
|
|
else:
|
|
|
messages.error(
|
|
|
request, 'Vous n\'avez pas l\'autorisation de valider '
|
|
@@ -158,6 +164,29 @@ class InvoiceAdmin(admin.ModelAdmin):
|
|
|
args=(id,)))
|
|
|
|
|
|
|
|
|
-admin.site.register(Invoice, InvoiceAdmin)
|
|
|
+class PaymentAdmin(admin.ModelAdmin):
|
|
|
+
|
|
|
+ list_display = ('name', 'member', 'payment_mean', 'amount', 'date',
|
|
|
+ 'invoice', 'amount_already_allocated', 'label')
|
|
|
+ list_display_links = ()
|
|
|
+ fields = (('member'),
|
|
|
+ ('amount', 'payment_mean', 'date', 'label'),
|
|
|
+ ('invoice'),
|
|
|
+ ('amount_already_allocated'))
|
|
|
+ readonly_fields = ('amount_already_allocated', 'label')
|
|
|
+ form = autocomplete_light.modelform_factory(Payment, fields='__all__')
|
|
|
+
|
|
|
+ def get_readonly_fields(self, request, obj=None):
|
|
|
+ if obj:
|
|
|
+ if self.declared_fieldsets:
|
|
|
+ return flatten_fieldsets(self.declared_fieldsets)
|
|
|
+ else:
|
|
|
+ return list(set(
|
|
|
+ [field.name for field in self.opts.local_fields] +
|
|
|
+ [field.name for field in self.opts.local_many_to_many]
|
|
|
+ ))
|
|
|
+ return self.readonly_fields
|
|
|
|
|
|
-admin.site.register(Payment)
|
|
|
+
|
|
|
+admin.site.register(Invoice, InvoiceAdmin)
|
|
|
+admin.site.register(Payment, PaymentAdmin)
|