summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
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
commitbdf52a0d1792340fab01fbcc4f6926bfb1914168 (patch)
tree44bf18fffe30797db49889ed80f04835e9ab997b /ishtar_common
parenta5de883a9dd2e4aa8219e8973c935daf689f54e0 (diff)
downloadIshtar-bdf52a0d1792340fab01fbcc4f6926bfb1914168.tar.bz2
Ishtar-bdf52a0d1792340fab01fbcc4f6926bfb1914168.zip
Fix document edit
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/forms_common.py2
-rw-r--r--ishtar_common/tests.py16
-rw-r--r--ishtar_common/views.py2
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'):