diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-07-18 11:20:39 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:23:17 +0100 |
commit | 1d325c4b42b47cc21705473dbf099c87ee20119a (patch) | |
tree | e670d785fa12943e1b857fb700308638d08c9b7d /ishtar_common/wizards.py | |
parent | 88126820a6ea96d5ad1ad3eb09a1edff2b26b701 (diff) | |
download | Ishtar-1d325c4b42b47cc21705473dbf099c87ee20119a.tar.bz2 Ishtar-1d325c4b42b47cc21705473dbf099c87ee20119a.zip |
Operation wizard refactoring
Diffstat (limited to 'ishtar_common/wizards.py')
-rw-r--r-- | ishtar_common/wizards.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index ba3eb4556..6e4e8544f 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -837,6 +837,7 @@ class Wizard(IshtarWizard): else: for r in related_model.all(): r.delete() + need_update = False for key, value in m2m: related_model = getattr(obj, key + "s") related_data = {} # used for intermediary models @@ -871,6 +872,7 @@ class Wizard(IshtarWizard): else: m2m_items[key] = related_model.all() if value not in m2m_items[key]: + need_update = True if type(value) == dict: model = related_model.model if ( @@ -1016,9 +1018,10 @@ class Wizard(IshtarWizard): related_model.add(value) # necessary to manage interaction between models like # material_index management for baseitems - obj._cached_label_checked = False - obj._post_saved_geo = False - obj.save() + if need_update: + obj = self.model.objects.get(pk=obj.pk) + obj.skip_history_when_saving = True + obj.save() # force post_save for old related m2ms (which can have been detached # from the current object) |