diff options
Diffstat (limited to 'ishtar_common')
| -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 | 
3 files changed, 51 insertions, 8 deletions
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"))  | 
