diff options
-rw-r--r-- | archaeological_finds/forms.py | 4 | ||||
-rw-r--r-- | archaeological_finds/templates/ishtar/sheet_find.html | 7 | ||||
-rw-r--r-- | ishtar_common/forms.py | 30 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/forms/success.html | 4 | ||||
-rw-r--r-- | ishtar_common/views.py | 3 |
5 files changed, 32 insertions, 16 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 1605c4d6a..fff378ff0 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -356,8 +356,8 @@ class QAFindFormMulti(QAForm): qa_seal_number = forms.CharField(label=_(u"Seal number"), required=False) qa_mark = forms.CharField(label=_(u"Mark"), required=False) - qa_description = forms.CharField(label=_(u"Description"), - widget=forms.Textarea, required=False) + qa_description = forms.CharField( + label=_(u"Description"), widget=forms.Textarea, required=False) qa_material_types = widgets.Select2MultipleField( label=_(u"Material types"), required=False ) diff --git a/archaeological_finds/templates/ishtar/sheet_find.html b/archaeological_finds/templates/ishtar/sheet_find.html index 43136e357..021ea5652 100644 --- a/archaeological_finds/templates/ishtar/sheet_find.html +++ b/archaeological_finds/templates/ishtar/sheet_find.html @@ -93,12 +93,7 @@ <h3>{% trans "Sheet" %}</h3> <div class='row'> {% trans "Checked" as checked_label %} - {% if item.CHECK_DICT %} - {% field_flex checked_label item.checked|from_dict:item.CHECK_DICT %} - {% endif%} - {% if item.history_object and item.history_object.CHECK_DICT %} - {% field_flex checked_label item.checked|from_dict:item.history_object.CHECK_DICT %} - {% endif%} + {% field_flex checked_label item.checked_type %} {% field_flex "Check date" item.check_date %} {% include "ishtar/blocks/sheet_creation_section.html" %} </div> diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index c36c9b07d..13586e203 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -645,6 +645,7 @@ class ManageOldType(IshtarForm): class QAForm(CustomForm, ManageOldType): MULTI = False SINGLE_FIELDS = [] + REPLACE_FIELDS = [] def __init__(self, *args, **kwargs): self.items = kwargs.pop('items') @@ -667,18 +668,37 @@ class QAForm(CustomForm, ManageOldType): 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: + if k not in self.REPLACE_FIELDS: self.fields[k].label = unicode(self.fields[k].label) + \ unicode(u" - append to existing") else: self.fields[k].label = unicode(self.fields[k].label) + \ unicode(u" - replace") - def save(self, items): + def save(self, items, user): for item in items: - for key in self.cleaned_data: - pass - #setattr(item, key, self.cleaned_data[key]) + for base_key in self.cleaned_data: + value = self.cleaned_data[base_key] + if not value: + continue + key = base_key[len("qa_"):] + field = item._meta.get_field(key) + if getattr(field, 'related_model', None): + if type(value) == list: + value = [field.related_model.objects.get(pk=v) + for v in value] + else: + value = field.related_model.objects.get(pk=value) + if getattr(field, 'many_to_many', None): + for v in value: + getattr(item, key).add(v) + else: + if base_key not in self.REPLACE_FIELDS: + if getattr(item, key): + value = getattr(item, key) + u"\n" + value + setattr(item, key, value) + item.history_modifier = user + item.save() class DocumentGenerationForm(forms.Form): diff --git a/ishtar_common/templates/ishtar/forms/success.html b/ishtar_common/templates/ishtar/forms/success.html index 77fa260d1..3b28ac1d8 100644 --- a/ishtar_common/templates/ishtar/forms/success.html +++ b/ishtar_common/templates/ishtar/forms/success.html @@ -9,7 +9,7 @@ $(document).ready(function(){ }); </script> -<div class="modal-dialog modal-sm" id="form-result-div"> +<div class="modal-dialog modal-sm modal-dialog-centered" id="form-result-div"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> @@ -17,7 +17,7 @@ $(document).ready(function(){ </button> </div> <div class="modal-body form-row"> - {% trans "Form successfully submited" %} + {% trans "Changes made successfully." %} </div> </div> </div> diff --git a/ishtar_common/views.py b/ishtar_common/views.py index bd4b70d18..aed24093f 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -1817,6 +1817,7 @@ class QAItemEditForm(IshtarMixin, LoginRequiredMixin, FormView): if not self.model.QA_EDIT.is_available( user=request.user, session=request.session, obj=item): raise Http404() + self.confirm = kwargs.get('confirm', False) and True self.url = request.get_full_path() return super(QAItemEditForm, self).dispatch(request, *args, **kwargs) @@ -1852,5 +1853,5 @@ class QAItemEditForm(IshtarMixin, LoginRequiredMixin, FormView): return self.form_save(form) def form_save(self, form): - form.save(self.items) + form.save(self.items, self.request.user) return HttpResponseRedirect(reverse("success")) |