summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_finds/urls.py4
-rw-r--r--ishtar_common/forms.py19
-rw-r--r--ishtar_common/templates/ishtar/qa_form.html27
-rw-r--r--ishtar_common/views.py13
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 ":" %}&nbsp;</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"{} &ndash; {}".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"))