Added views for invoices

Added class-based views for all operations
Added corresponding urls
Updated transaction page to use new views
This commit is contained in:
Edgar P. Burkhart 2022-12-28 11:52:24 +01:00
parent d8c95fac25
commit 033698b38a
Signed by: edpibu
GPG key ID: 9833D3C5A25BD227
9 changed files with 168 additions and 51 deletions

View file

@ -66,6 +66,13 @@ class Transaction(models.Model):
def get_absolute_url(self):
return reverse("transaction", kwargs={"pk": self.pk})
def get_delete_url(self):
return reverse("del_transaction", kwargs={"pk": self.pk})
@property
def adding(self):
return self._state.adding
@property
def invoices(self):
return Invoice.objects.filter(transaction=self)
@ -112,15 +119,33 @@ class Invoice(models.Model):
verbose_name=_("File"),
max_length=128,
)
transaction = models.ForeignKey(Transaction, on_delete=models.CASCADE)
transaction = models.ForeignKey(
Transaction, on_delete=models.CASCADE, editable=False
)
def __str__(self):
return f"{self.name}: {self.transaction}"
if hasattr(self, "transaction"):
return f"{self.name} {self.transaction.name}"
return self.name
def delete(self, *args, **kwargs):
self.file.delete()
super().delete(*args, **kwargs)
def get_absolute_url(self):
return reverse(
"invoice", kwargs={"transaction_pk": self.transaction.pk, "pk": self.pk}
)
def get_delete_url(self):
return reverse(
"del_invoice", kwargs={"transaction_pk": self.transaction.pk, "pk": self.pk}
)
@property
def adding(self):
return self._state.adding
class Meta:
verbose_name = _("Invoice")
verbose_name_plural = _("Invoices")
@ -132,7 +157,7 @@ class InvoiceForm(ModelForm):
class Meta:
model = Invoice
fields = ["name", "file"]
fields = "__all__"
def snapshot_path(instance, filename):