diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-09-10 11:12:18 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-10-24 12:06:08 +0200 | 
| commit | 55ffbaff487c89c19dbb6d0884e89165f076930a (patch) | |
| tree | dad889c528816815475cda838ab745630be11bea /ishtar_common | |
| parent | 81727df04417b7c33ed4dfcf9603ad758502a9c0 (diff) | |
| download | Ishtar-55ffbaff487c89c19dbb6d0884e89165f076930a.tar.bz2 Ishtar-55ffbaff487c89c19dbb6d0884e89165f076930a.zip  | |
Bulk update: save
Diffstat (limited to 'ishtar_common')
| -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 | 
3 files changed, 29 insertions, 8 deletions
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"))  | 
