diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/forms.py | 6 | ||||
| -rw-r--r-- | ishtar_common/forms_common.py | 21 | ||||
| -rw-r--r-- | ishtar_common/views.py | 11 | 
3 files changed, 35 insertions, 3 deletions
| diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index a69c65f0e..8acd5ffcc 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -698,7 +698,7 @@ def get_form_selection(          class_name, label, key, model, base_form, get_url,          not_selected_error=_(u"You should select an item."), new=False,          new_message=_(u"Add a new item"), get_full_url=None, -        gallery=False, map=False): +        gallery=False, map=False, base_form_select=None):      """      Generate a class selection form          class_name -- name of the class @@ -746,7 +746,9 @@ def get_form_selection(          return cleaned_data      attrs['clean'] = clean      attrs['SEARCH_AND_SELECT'] = True -    return type(class_name, (forms.Form,), attrs) +    if not base_form_select: +        base_form_select = forms.Form +    return type(class_name, (base_form_select,), attrs)  def get_data_from_formset(data): diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 93e1839f0..dd55f95b4 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -1378,6 +1378,27 @@ class QADocumentFormMulti(QAForm):      ] +class QALockForm(forms.Form): +    action = forms.ChoiceField( +        label=_("Action"), choices=(('lock', _("Lock")), +                                    ('unlock', _("Unlock")))) + +    def __init__(self, *args, **kwargs): +        self.items = kwargs.pop('items') +        super(QALockForm, self).__init__(*args, **kwargs) + +    def save(self, items, user): +        locked = self.cleaned_data["action"] == "lock" +        for item in items: +            item.locked = locked +            if locked: +                item.lock_user = user +            else: +                item.lock_user = None +            item.skip_history_when_saving = True +            item.save() + +  class SourceDeletionForm(FinalForm):      confirm_msg = " "      confirm_end_msg = _(u"Would you like to delete this documentation?") diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 4ab94aae9..c663eccbc 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -2126,7 +2126,7 @@ class QAItemForm(IshtarMixin, LoginRequiredMixin, FormView):      model = None      base_url = None      form_class = None -    page_name = u"" +    page_name = ""      success_url = "/success/"      modal_size = None  # large, small or None (medium) @@ -2218,6 +2218,15 @@ class QAItemEditForm(QAItemForm):          return HttpResponseRedirect(reverse("success")) +class QABaseLockView(QAItemForm): +    form_class = forms.QALockForm +    page_name = _("lock/unlock") + +    def form_valid(self, form): +        form.save(self.items, self.request.user) +        return HttpResponseRedirect(reverse("success")) + +  class QAPersonForm(QAItemEditForm):      model = models.Person      form_class = forms.QAPersonFormMulti | 
