From 5c7fe716adf71623fb5e43914ac618234761063f Mon Sep 17 00:00:00 2001
From: Yohann D'ANELLO <yohann.danello@gmail.com>
Date: Fri, 4 Sep 2020 16:43:57 +0200
Subject: [PATCH] Fix JSON

---
 apps/logs/signals.py                          |  5 +--
 apps/permission/fixtures/initial.json         |  2 +-
 .../tests/test_permission_queries.py          | 35 ++++++++++---------
 3 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/apps/logs/signals.py b/apps/logs/signals.py
index 2d443d13..89e7d05d 100644
--- a/apps/logs/signals.py
+++ b/apps/logs/signals.py
@@ -50,10 +50,7 @@ def save_object(sender, instance, **kwargs):
     in order to store each modification made
     """
     # noinspection PyProtectedMember
-    if instance._meta.label_lower in EXCLUDED:
-        return
-
-    if hasattr(instance, "_no_log"):
+    if instance._meta.label_lower in EXCLUDED or hasattr(instance, "_no_log"):
         return
 
     # noinspection PyProtectedMember
diff --git a/apps/permission/fixtures/initial.json b/apps/permission/fixtures/initial.json
index cb9b8d04..5f266788 100644
--- a/apps/permission/fixtures/initial.json
+++ b/apps/permission/fixtures/initial.json
@@ -2607,7 +2607,7 @@
 				"note",
 				"transaction"
 			],
-			"query": "[\"OR\", {\"source\": [\"club\", \"note\"]}, {\"destination\": [\"club\", \"note\"]}], [\"OR\", {\"source__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": true}, {\"destination__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": false}]",
+			"query": "[\"OR\", {\"source__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": true}, {\"destination__balance__gte\": {\"F\": [\"SUB\", [\"MUL\", [\"F\", \"amount\"], [\"F\", \"quantity\"]], 5000]}, \"valid\": false}]",
 			"type": "change",
 			"mask": 2,
 			"field": "valid",
diff --git a/apps/permission/tests/test_permission_queries.py b/apps/permission/tests/test_permission_queries.py
index e0af9cf0..4d73ae11 100644
--- a/apps/permission/tests/test_permission_queries.py
+++ b/apps/permission/tests/test_permission_queries.py
@@ -2,6 +2,7 @@
 # SPDX-License-Identifier: GPL-3.0-or-later
 
 from datetime import date
+from json.decoder import JSONDecodeError
 
 from django.contrib.auth.models import User
 from django.core.exceptions import FieldError
@@ -56,29 +57,29 @@ class PermissionQueryTestCase(TestCase):
         We use a random user with a random WEIClub (to use permissions for the WEI) in a random team in a random bus.
         """
         for perm in Permission.objects.all():
-            instanced = perm.about(
-                user=User.objects.get(),
-                club=WEIClub.objects.get(),
-                membership=Membership.objects.get(),
-                User=User,
-                Club=Club,
-                Membership=Membership,
-                Note=Note,
-                NoteUser=NoteUser,
-                NoteClub=NoteClub,
-                NoteSpecial=NoteSpecial,
-                F=F,
-                Q=Q,
-                now=timezone.now(),
-                today=date.today(),
-            )
             try:
+                instanced = perm.about(
+                    user=User.objects.get(),
+                    club=WEIClub.objects.get(),
+                    membership=Membership.objects.get(),
+                    User=User,
+                    Club=Club,
+                    Membership=Membership,
+                    Note=Note,
+                    NoteUser=NoteUser,
+                    NoteClub=NoteClub,
+                    NoteSpecial=NoteSpecial,
+                    F=F,
+                    Q=Q,
+                    now=timezone.now(),
+                    today=date.today(),
+                )
                 instanced.update_query()
                 query = instanced.query
                 model = perm.model.model_class()
                 model.objects.filter(query).all()
                 # print("Good query for permission", perm)
-            except (FieldError, AttributeError, ValueError, TypeError):
+            except (FieldError, AttributeError, ValueError, TypeError, JSONDecodeError):
                 print("Query error for permission", perm)
                 print("Query:", perm.query)
                 if instanced.query:
-- 
GitLab