diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-03-08 19:25:46 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-06-17 13:21:27 +0200 |
commit | bdf52a0d1792340fab01fbcc4f6926bfb1914168 (patch) | |
tree | 44bf18fffe30797db49889ed80f04835e9ab997b /ishtar_common | |
parent | a5de883a9dd2e4aa8219e8973c935daf689f54e0 (diff) | |
download | Ishtar-bdf52a0d1792340fab01fbcc4f6926bfb1914168.tar.bz2 Ishtar-bdf52a0d1792340fab01fbcc4f6926bfb1914168.zip |
Fix document edit
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/forms_common.py | 2 | ||||
-rw-r--r-- | ishtar_common/tests.py | 16 | ||||
-rw-r--r-- | ishtar_common/views.py | 2 |
3 files changed, 18 insertions, 2 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 0f8b4d416..b2f7c01ee 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -1227,6 +1227,8 @@ class DocumentForm(forms.ModelForm, CustomForm, ManageOldType): u"to one item")) def save(self, commit=True): + if not self.cleaned_data.get('authors', None): + self.cleaned_data['authors'] = [] item = super(DocumentForm, self).save(commit=commit) for related_key in models.Document.RELATED_MODELS: related = getattr(item, related_key) diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 7443c271e..f6cd3eff4 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -361,7 +361,7 @@ class WizardTest(object): @classmethod def wizard_post(cls, client, url, current_step, form_data=None, - follow=True): + follow=True, extra_data=None): if not url: url = reverse(cls.url_name) data = { @@ -380,6 +380,8 @@ class WizardTest(object): else: for k in form_data: data['{}-{}'.format(current_step, k)] = form_data[k] + if extra_data: + data.update(extra_data) try: response = client.post(url, data, follow=follow) @@ -400,10 +402,22 @@ class WizardTest(object): test_form_data.inits(self) form_data = test_form_data.form_datas ignored = test_form_data.ignored + previous_step, back_tested = None, False for idx, step in enumerate(self.steps): current_step, current_form = step if current_step in ignored: continue + if not previous_step: + previous_step = idx + elif not back_tested: + # test going back on a form + response = self.wizard_post( + self.client, url, current_step, None, + extra_data={"form_previous_step": previous_step} + ) + self.assertEqual(response.status_code, 200) + back_tested = True + next_form_is_checked = len(self.steps) > idx + 1 and \ self.steps[idx + 1][0] not in ignored data = [] diff --git a/ishtar_common/views.py b/ishtar_common/views.py index e18d63101..a3bc0c034 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -1778,7 +1778,7 @@ class DocumentEditView(DocumentFormMixin, UpdateView): except (AssertionError, models.Document.DoesNotExist): raise Http404() initial = {} - for k in self.form_class.base_fields.keys() + \ + for k in list(self.form_class.base_fields.keys()) + \ models.Document.RELATED_MODELS: value = getattr(document, k) if hasattr(value, 'all'): |