|
@@ -34,7 +34,7 @@ def bill_pdf_filename(instance, filename):
|
|
|
"""Nom et chemin du fichier pdf à stocker"""
|
|
|
member_id = instance.member.id if instance.member else 0
|
|
|
number = instance.number if hasattr(instance, "number") else instance.pk
|
|
|
- bill_type = self.__class__.__name__.lower()
|
|
|
+ bill_type = instance.type.lower()
|
|
|
return '%ss/%d_%s_%s.pdf' % (bill_type, member_id, number, uuid.uuid4())
|
|
|
|
|
|
class Bill(models.Model):
|
|
@@ -463,11 +463,17 @@ class Donation(Bill):
|
|
|
|
|
|
def save(self, *args, **kwargs):
|
|
|
|
|
|
+ super(Donation, self).save(*args, **kwargs)
|
|
|
+
|
|
|
+ if not self.pdf_exists():
|
|
|
+ self.generate_pdf()
|
|
|
+
|
|
|
+ def clean(self):
|
|
|
+
|
|
|
# Only if no amount already allocated...
|
|
|
if self.pk is None and (not self.member or self.member.balance < self.amount):
|
|
|
raise ValidationError("Le solde n'est pas suffisant pour payer ce don. \
|
|
|
Merci de commencer par enregistrer un paiement pour ce membre.")
|
|
|
- super(Donation, self).save(*args, **kwargs)
|
|
|
|
|
|
class Meta:
|
|
|
verbose_name = 'don'
|
|
@@ -495,15 +501,19 @@ class MembershipFee(Bill):
|
|
|
return True
|
|
|
|
|
|
def save(self, *args, **kwargs):
|
|
|
- # Only if no amount already allocated...
|
|
|
- if self.pk is None and (not self.member or self.member.balance < self.amount):
|
|
|
- raise ValidationError("Le solde n'est pas suffisant pour payer cette cotisation. \
|
|
|
- Merci de commencer par enregistrer un paiement pour ce membre.")
|
|
|
|
|
|
super(MembershipFee, self).save(*args, **kwargs)
|
|
|
|
|
|
+ if not self.pdf_exists():
|
|
|
+ self.generate_pdf()
|
|
|
|
|
|
def clean(self):
|
|
|
+
|
|
|
+ # Only if no amount already allocated...
|
|
|
+ if self.pk is None and (not self.member or self.member.balance < self.amount):
|
|
|
+ raise ValidationError("Le solde n'est pas suffisant pour payer cette cotisation. \
|
|
|
+ Merci de commencer par enregistrer un paiement pour ce membre.")
|
|
|
+
|
|
|
if self.start_date is not None and self.end_date is None:
|
|
|
self.end_date = self.start_date + datetime.timedelta(364)
|
|
|
|