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"))  | 
