mirror of
https://github.com/lemeow125/Borrowing-TrackerBackend.git
synced 2025-04-27 10:11:24 +08:00
Improved transaction and breakage report serializers when handling breakages
This commit is contained in:
parent
d0ca68149a
commit
0b1c065a80
4 changed files with 47 additions and 40 deletions
|
@ -14,33 +14,3 @@ class BreakageReport(models.Model):
|
|||
|
||||
def __str__(self):
|
||||
return f"Breakage report for transaction #{self.transaction.id} by {self.transaction.borrower} under {self.transaction.teacher}"
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
# Check if the instance is being updated
|
||||
if not self._state.adding:
|
||||
# Check if all associated equipment instances have status "Working"
|
||||
all_working = all(
|
||||
eq.status == 'Working' for eq in self.equipments.all())
|
||||
|
||||
# If all equipment instances are working
|
||||
if all_working:
|
||||
# set resolved field to True
|
||||
self.resolved = True
|
||||
# set the status of the associated transaction to "Finalized"
|
||||
self.transaction.status = 'Finalized'
|
||||
self.transaction.save()
|
||||
|
||||
# Then save the instance again to reflect the changes
|
||||
super().save(*args, **kwargs)
|
||||
# If not, set the resolved field to False
|
||||
else:
|
||||
if (self.resolved != False or self.transaction.status != 'With Breakages: Pending Resolution'):
|
||||
# set resolved field to False
|
||||
self.resolved = False
|
||||
# set the status of the associated transaction to still be pending
|
||||
self.transaction.status = 'With Breakages: Pending Resolution'
|
||||
self.transaction.save()
|
||||
# Then save the instance again to reflect the changes
|
||||
super().save(*args, **kwargs)
|
||||
else:
|
||||
super().save(*args, **kwargs)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue