From d5a9bf175f609cd7e42c7d85c8f483eb424bc36e Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Mon, 22 Feb 2021 11:54:23 +0100 Subject: [PATCH] Add script to force delete a user, in case of duplicates Signed-off-by: Yohann D'ANELLO --- apps/note/models/transactions.py | 5 +++-- apps/note/signals.py | 1 + apps/scripts | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) 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