From a1726a33058b3abb3e0663cf5613a16df897c727 Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Mon, 1 Mar 2021 22:10:02 +0100
Subject: [PATCH] Only check dirty state for existing instances

Closes #392
---
 aleksis/core/models.py | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/aleksis/core/models.py b/aleksis/core/models.py
index 93ad1ff09..b6e95bc37 100644
--- a/aleksis/core/models.py
+++ b/aleksis/core/models.py
@@ -266,7 +266,7 @@ class Person(ExtensibleModel):
 
     def save(self, *args, **kwargs):
         # Determine all fields that were changed since last load
-        dirty = bool(self.user_info_tracker.changed())
+        dirty = self.pk is None or bool(self.user_info_tracker.changed())
 
         super().save(*args, **kwargs)
 
@@ -440,12 +440,11 @@ class Group(SchoolTermRelatedExtensibleModel):
 
     def save(self, force: bool = False, *args, **kwargs):
         # Determine state of object in relation to database
-        created = self.pk is None
-        dirty = bool(self.group_info_tracker.changed())
+        dirty = self.pk is None or bool(self.group_info_tracker.changed())
 
         super().save(*args, **kwargs)
 
-        if force or created or dirty:
+        if force or dirty:
             # Synchronise group to Django group with same name
             dj_group, _ = DjangoGroup.objects.get_or_create(name=self.name)
             dj_group.user_set.set(
-- 
GitLab