mirror of https://gitlab.crans.org/bde/nk20
Use pre_delete signal insted of Model.delete() to prevent note balance issues when deleting a transaction (don't do it) in Django Admin
This commit is contained in:
parent
cc5996121b
commit
1023c6c502
|
@ -3,7 +3,7 @@
|
|||
|
||||
from django.apps import AppConfig
|
||||
from django.conf import settings
|
||||
from django.db.models.signals import post_save
|
||||
from django.db.models.signals import post_save, pre_delete
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from . import signals
|
||||
|
@ -25,3 +25,8 @@ class NoteConfig(AppConfig):
|
|||
signals.save_club_note,
|
||||
sender='member.Club',
|
||||
)
|
||||
|
||||
pre_delete.connect(
|
||||
signals.delete_transaction,
|
||||
sender='note.transaction',
|
||||
)
|
||||
|
|
|
@ -242,14 +242,6 @@ class Transaction(PolymorphicModel):
|
|||
self.destination._force_save = True
|
||||
self.destination.save()
|
||||
|
||||
def delete(self, **kwargs):
|
||||
"""
|
||||
Whenever we want to delete a transaction (caution with this), we ensure the transaction is invalid first.
|
||||
"""
|
||||
self.valid = False
|
||||
self.save(**kwargs)
|
||||
super().delete(**kwargs)
|
||||
|
||||
@property
|
||||
def total(self):
|
||||
return self.amount * self.quantity
|
||||
|
|
|
@ -24,3 +24,11 @@ def save_club_note(instance, raw, **_kwargs):
|
|||
from .models import NoteClub
|
||||
NoteClub.objects.get_or_create(club=instance)
|
||||
instance.note.save()
|
||||
|
||||
|
||||
def delete_transaction(instance, **_kwargs):
|
||||
"""
|
||||
Whenever we want to delete a transaction (caution with this), we ensure the transaction is invalid first.
|
||||
"""
|
||||
instance.valid = False
|
||||
instance.save()
|
||||
|
|
Loading…
Reference in New Issue