Browse Source

Change is_validated by is_pdf_exists.
Do not propose to validate a facture even if it's already validated and pdf do not exists. This is not a sufficent reason.

Fabs 10 years ago
parent
commit
8985c1bc65

+ 3 - 3
coin/billing/admin.py

@@ -42,15 +42,15 @@ class PaymentInline(admin.StackedInline):
 
 
 
 
 class InvoiceAdmin(admin.ModelAdmin):
 class InvoiceAdmin(admin.ModelAdmin):
-    list_display = ('number', 'date', 'status', 'amount', 'member', 'is_validated')
+    list_display = ('number', 'date', 'status', 'amount', 'member', 'validated')
     list_display_links = ('number', 'date')
     list_display_links = ('number', 'date')
     inlines = [InvoiceDetailInline, PaymentInline]
     inlines = [InvoiceDetailInline, PaymentInline]
     fields = (('number', 'date', 'status'),
     fields = (('number', 'date', 'status'),
        ('date_due'),
        ('date_due'),
        ('member'),
        ('member'),
        ('amount','amount_paid'),
        ('amount','amount_paid'),
-       ('is_validated', 'pdf'))
-    readonly_fields = ('amount','amount_paid','is_validated','pdf')
+       ('validated', 'pdf'))
+    readonly_fields = ('amount','amount_paid','validated','pdf')
     form = autocomplete_light.modelform_factory(Invoice)
     form = autocomplete_light.modelform_factory(Invoice)
 
 
     def get_formsets(self, request, obj=None):
     def get_formsets(self, request, obj=None):

+ 3 - 3
coin/billing/models.py

@@ -24,7 +24,7 @@ def next_invoice_number():
 
 
 def invoice_pdf_filename(instance, filename):
 def invoice_pdf_filename(instance, filename):
     "Nom du fichier pdf à stocker pour les factures"
     "Nom du fichier pdf à stocker pour les factures"
-    return u'invoices/%d_%s_%s.pdf' % (instance.member.id, instance.number, uuid.uuid4())
+    return u'invoices/%d_%s_%s.pdf' % (getattr(instance,'member.id',0), instance.number, uuid.uuid4())
 
 
 class Invoice(models.Model):
 class Invoice(models.Model):
 
 
@@ -97,12 +97,12 @@ class Invoice(models.Model):
         Switch invoice to validate mode. This set to False the draft field
         Switch invoice to validate mode. This set to False the draft field
         and generate the pdf
         and generate the pdf
         """
         """
-        if not self.is_validated():
+        if not self.is_pdf_exists():
             self.validated = True
             self.validated = True
             self.save()
             self.save()
             self.generate_pdf()
             self.generate_pdf()
 
 
-    def is_validated(self):
+    def is_pdf_exists(self):
         return self.validated and bool(self.pdf) and private_files_storage.exists(self.pdf.name)
         return self.validated and bool(self.pdf) and private_files_storage.exists(self.pdf.name)
 
 
     def __unicode__(self):
     def __unicode__(self):

+ 2 - 2
coin/templates/admin/billing/invoice/change_form.html

@@ -3,9 +3,9 @@
 {% block object-tools %}
 {% block object-tools %}
 {% if change %}{% if not is_popup %}
 {% if change %}{% if not is_popup %}
 <ul class="object-tools">
 <ul class="object-tools">
-    {% if not original.is_validated %}
+    {% if not original.validated %}
         <li><a href="{% url 'admin:invoice_validate' id=object_id %}">Valider la facture</a></li>
         <li><a href="{% url 'admin:invoice_validate' id=object_id %}">Valider la facture</a></li>
-    {% else %}
+    {% elif original.is_pdf_exists %}
         <li><a href="{% url 'billing:invoice_pdf' id=object_id %}">Télécharger le PDF</a></li>
         <li><a href="{% url 'billing:invoice_pdf' id=object_id %}">Télécharger le PDF</a></li>
     {% endif %}
     {% endif %}
 </ul>
 </ul>