diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-09-07 15:56:02 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-10-24 12:06:08 +0200 |
commit | 81727df04417b7c33ed4dfcf9603ad758502a9c0 (patch) | |
tree | 72c90422770578aaf28eb32a28aada4b110bda13 | |
parent | 23fb7114d46ffae071891fb0bbdd6521dd4d5265 (diff) | |
download | Ishtar-81727df04417b7c33ed4dfcf9603ad758502a9c0.tar.bz2 Ishtar-81727df04417b7c33ed4dfcf9603ad758502a9c0.zip |
QA action: management of confirm page
-rw-r--r-- | archaeological_finds/urls.py | 4 | ||||
-rw-r--r-- | ishtar_common/forms.py | 19 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/qa_form.html | 27 | ||||
-rw-r--r-- | ishtar_common/views.py | 13 |
4 files changed, 55 insertions, 8 deletions
diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index 39da45532..3cbc99f17 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -75,6 +75,10 @@ urlpatterns = [ check_rights(['change_find', 'change_own_find'])( views.QAFindForm.as_view()), name='find-qa-bulk-update'), + url(r'^find-qa-bulk-update/(?P<pks>[0-9-]+)?/confirm/$', + check_rights(['change_find', 'change_own_find'])( + views.QAFindForm.as_view()), + name='find-qa-bulk-update-confirm', kwargs={"confirm": True}), url(r'^find-qa-packaging/(?P<pks>[0-9-]+)?/$', check_rights(['change_warehouse'])( diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index 2e249e472..c36c9b07d 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -655,7 +655,18 @@ class QAForm(CustomForm, ManageOldType): self.fields.pop(k) continue if self.confirm: - self.fields[k].widget = forms.HiddenInput() + if 'data' not in kwargs or not kwargs['data'].get(k, None): + self.fields.pop(k) + continue + if getattr(self.fields[k].widget, 'allow_multiple_selected', + None): + self.fields[k].widget = forms.MultipleHiddenInput() + else: + self.fields[k].widget = forms.HiddenInput() + if hasattr(self.fields[k], "choices") \ + and k in kwargs['data'] and kwargs['data'][k]: + self.fields[k].rendered_value = dict( + self.fields[k].choices)[int(kwargs['data'][k])] if self.MULTI and k not in self.REPLACE_FIELDS: self.fields[k].label = unicode(self.fields[k].label) + \ unicode(u" - append to existing") @@ -663,6 +674,12 @@ class QAForm(CustomForm, ManageOldType): self.fields[k].label = unicode(self.fields[k].label) + \ unicode(u" - replace") + def save(self, items): + for item in items: + for key in self.cleaned_data: + pass + #setattr(item, key, self.cleaned_data[key]) + class DocumentGenerationForm(forms.Form): """ diff --git a/ishtar_common/templates/ishtar/qa_form.html b/ishtar_common/templates/ishtar/qa_form.html index f3a4cf559..fe373ed57 100644 --- a/ishtar_common/templates/ishtar/qa_form.html +++ b/ishtar_common/templates/ishtar/qa_form.html @@ -16,11 +16,30 @@ <p>{{ error }}</p> {% endfor %} {% bs_form form %} - {% if confirm %}{% for field in form %} - {% if field.value %} - <label>{{field.label}}</label> {{ field.value }} + + {% if confirm %} + <input type="hidden" name="confirm" value="1"/> + <h4>{% trans "Modified items" %}</h4> + <ul>{% for item in items %} + <li>{{item}}</li>{% endfor %} + </ul> + <h4>{% trans "Modification" %}</h4> + <table> + {% for field in form %} + {% if field.value %} + <tr> + <th>{{field.label}}{% trans ":" %} </th> + <td>{% if field.field.rendered_value %} + {{ field.field.rendered_value }} + {% else %} + {{ field.value }} + {% endif %} + </td> + </tr> + {% endif %} + {% endfor %} + </table> {% endif %} - {% endfor %}{% endif %} </div> </div> <div class="modal-footer"> diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 3704106d2..bd4b70d18 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -1837,7 +1837,11 @@ class QAItemEditForm(IshtarMixin, LoginRequiredMixin, FormView): data['page_name'] = u"{} – {}".format( self.model._meta.verbose_name, self.model.QA_EDIT.text) data['url'] = self.url - data['confirm'] = self.confirm + if self.confirm: + if 'confirm' not in self.url: + data['url'] = self.url.split('?')[0] + "confirm/" + data['confirm'] = True + data['items'] = self.items return data def form_valid(self, form): @@ -1845,5 +1849,8 @@ class QAItemEditForm(IshtarMixin, LoginRequiredMixin, FormView): self.confirm = True return self.render_to_response( self.get_context_data(form=self.get_form())) - return HttpResponseRedirect(self.get_success_url( - form.cleaned_data['basket'])) + return self.form_save(form) + + def form_save(self, form): + form.save(self.items) + return HttpResponseRedirect(reverse("success")) |