From 2c7995a79e9ed5faea4628bd7fb9d139e517f4f2 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Sun, 21 Jun 2020 22:47:05 +0200 Subject: [PATCH] A transaction can only be created between active notes --- apps/note/models/transactions.py | 8 +++++++- apps/permission/fixtures/initial.json | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/note/models/transactions.py b/apps/note/models/transactions.py index 68249b81..a8fb3c22 100644 --- a/apps/note/models/transactions.py +++ b/apps/note/models/transactions.py @@ -163,6 +163,12 @@ class Transaction(PolymorphicModel): When saving, also transfer money between two notes """ + if not self.source.is_active or not self.destination.is_active: + if 'force_insert' not in kwargs or not kwargs['force_insert']: + if 'force_update' not in kwargs or not kwargs['force_update']: + raise ValidationError(_("The transaction can't be saved since the source note " + "or the destination note is not active.")) + # If the aliases are not entered, we assume that the used alias is the name of the note if not self.source_alias: self.source_alias = str(self.source) @@ -171,7 +177,7 @@ class Transaction(PolymorphicModel): self.destination_alias = str(self.destination) if self.source.pk == self.destination.pk: - # When source == destination, no money is transfered + # When source == destination, no money is transferred super().save(*args, **kwargs) return diff --git a/apps/permission/fixtures/initial.json b/apps/permission/fixtures/initial.json index 095bcfc1..ba061c8b 100644 --- a/apps/permission/fixtures/initial.json +++ b/apps/permission/fixtures/initial.json @@ -272,7 +272,7 @@ "note", "alias" ], - "query": "[\"OR\", {\"note__in\": [\"NoteUser\", \"objects\", [\"filter\", {\"user__memberships__club__name\": \"Kfet\"}], [\"all\"]]}, {\"note__in\": [\"NoteClub\", \"objects\", [\"all\"]]}]", + "query": "[\"AND\", [\"OR\", {\"note__in\": [\"NoteUser\", \"objects\", [\"filter\", {\"user__memberships__club__name\": \"Kfet\"}], [\"all\"]]}, {\"note__in\": [\"NoteClub\", \"objects\", [\"all\"]]}], {\"note__is_active\": true}]", "type": "view", "mask": 1, "field": "",