diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-04-30 15:51:01 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-04-30 15:51:01 +0200 |
commit | be00329296724f2a3992a9e6dfc13a7e9cef28f7 (patch) | |
tree | f61334286014a52808389c83f6e65b6cbaea16ca | |
parent | 5f77a4ab463e711121484a17bb5de522400b2dc9 (diff) | |
download | Ishtar-be00329296724f2a3992a9e6dfc13a7e9cef28f7.tar.bz2 Ishtar-be00329296724f2a3992a9e6dfc13a7e9cef28f7.zip |
Better management of many to many
-rw-r--r-- | archaeological_finds/tests.py | 9 | ||||
-rw-r--r-- | ishtar_common/data_importer.py | 2 | ||||
-rw-r--r-- | ishtar_common/wizards.py | 4 |
3 files changed, 11 insertions, 4 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 1268b4f03..432945ecb 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -52,8 +52,11 @@ class FindInit(ContextRecordInit): self.base_finds = [] default = {'label': "Base find"} - if not data_base.get('history_modifier'): - data_base['history_modifier'] = self.get_default_user() + if not data_base.get('history_modifier') or not data_base[ + 'history_modifier'].pk: + user = self.get_default_user() + user.save() + data_base['history_modifier'] = user if force or not data_base.get('context_record'): data_base['context_record'] = self.get_default_context_record( force=force) @@ -146,6 +149,8 @@ class AFindWizardCreationTest(WizardTest, FindInit, TestCase): self.basefind_number + 1) self.assertEqual(models.Find.objects.count(), self.find_number + 1) + find = models.Find.objects.order_by("-pk")[0] + self.assertEqual(find.datings.count(), 1) class ATreatmentWizardCreationTest(WizardTest, FindInit, TestCase): diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 65cd83c12..1fe4ef45c 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -811,7 +811,7 @@ class Importer(object): self.output = output if not self.history_modifier: if self.import_instance: - self.history_modifier = self.import_instance.user + self.history_modifier = self.import_instance.user.user_ptr else: # import made by the CLI: get the first admin self.history_modifier = User.objects.filter( diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index e8052c768..cb5e5ca10 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -742,7 +742,9 @@ class Wizard(NamedUrlWizardView): value.save() # force post_save # check that an item is not add multiple times (forged forms) if value not in related_model.all() and\ - hasattr(related_model, 'add'): + hasattr(related_model, 'add') and \ + not isinstance(value, related_model.through): + # many to many and the value have been already managed related_model.add(value) # necessary to manage interaction between models like # material_index management for baseitems |