diff --git a/apps/note/models/transactions.py b/apps/note/models/transactions.py index b204e623..ac236ffe 100644 --- a/apps/note/models/transactions.py +++ b/apps/note/models/transactions.py @@ -223,7 +223,8 @@ class Transaction(PolymorphicModel): # Check that the amounts stay between big integer bounds diff_source, diff_dest = self.validate() - if not self.source.is_active or not self.destination.is_active: + if not (hasattr(self, '_force_save') and self._force_save) \ + and (not self.source.is_active or not self.destination.is_active): raise ValidationError(_("The transaction can't be saved since the source note " "or the destination note is not active.")) @@ -271,7 +272,7 @@ class RecurrentTransaction(Transaction): ) def clean(self): - if self.template.destination != self.destination: + if self.template.destination != self.destination and not (hasattr(self, '_force_save') and self._force_save): raise ValidationError( _("The destination of this transaction must equal to the destination of the template.")) return super().clean() diff --git a/apps/note/signals.py b/apps/note/signals.py index 8c02b3a5..a04df634 100644 --- a/apps/note/signals.py +++ b/apps/note/signals.py @@ -43,4 +43,5 @@ def delete_transaction(instance, **_kwargs): """ if not hasattr(instance, "_no_signal"): instance.valid = False + instance._force_save = True instance.save() diff --git a/apps/scripts b/apps/scripts index dbe7bf65..8ec7d68a 160000 --- a/apps/scripts +++ b/apps/scripts @@ -1 +1 @@ -Subproject commit dbe7bf65917df40b0ce476f357d04726e20b406f +Subproject commit 8ec7d68a169c1072aec427925f3bf2fd54eab5a3