diff options
Diffstat (limited to 'ishtar_common/views.py')
| -rw-r--r-- | ishtar_common/views.py | 77 | 
1 files changed, 75 insertions, 2 deletions
| diff --git a/ishtar_common/views.py b/ishtar_common/views.py index d55181067..5f3e80c77 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -47,8 +47,8 @@ from django.shortcuts import render_to_response, redirect  from django.template import RequestContext, loader  from django.utils.decorators import method_decorator  from django.utils.translation import ugettext, ugettext_lazy as _ -from django.views.generic import ListView, UpdateView -from django.views.generic.edit import CreateView, DeleteView +from django.views.generic import ListView, UpdateView, TemplateView +from django.views.generic.edit import CreateView, DeleteView, FormView  from xhtml2odt import xhtml2odt @@ -1359,6 +1359,16 @@ class AdminLoginRequiredMixin(LoginRequiredMixin):              request, *args, **kwargs) +class DisplayItemView(IshtarMixin, LoginRequiredMixin, TemplateView): +    template_name = 'ishtar/display_item.html' + +    def get_context_data(self, *args, **kwargs): +        data = super(DisplayItemView, self).get_context_data(*args, **kwargs) +        data['pk'] = unicode(kwargs.get('pk')) + '/' +        data['item_url'] = 'show-' + kwargs.get('item_type') +        return data + +  class GlobalVarEdit(IshtarMixin, AdminLoginRequiredMixin, ModelFormSetView):      template_name = 'ishtar/formset.html'      model = models.GlobalVar @@ -1472,6 +1482,69 @@ class PersonEdit(LoginRequiredMixin, UpdateView):          return reverse('person_edit', args=[self.object.pk]) +class ManualMergeMixin(object): +    def form_valid(self, form): +        self.items = form.get_items() +        return super(ManualMergeMixin, self).form_valid(form) + +    def get_success_url(self): +        return reverse( +            self.redir_url, +            args=[u"_".join([str(item.pk) for item in self.items])]) + + +class PersonManualMerge(ManualMergeMixin, IshtarMixin, LoginRequiredMixin, +                        FormView): +    form_class = forms.PersonMergeFormSelection +    template_name = 'ishtar/form.html' +    page_name = _(u"Merge persons") +    current_url = 'person-manual-merge' +    redir_url = 'person_manual_merge_items' + + +class ManualMergeItemsMixin(object): +    def get_form_kwargs(self): +        kwargs = super(ManualMergeItemsMixin, self).get_form_kwargs() +        kwargs['items'] = self.kwargs['pks'].split('_') +        return kwargs + +    def form_valid(self, form): +        self.item = form.merge() +        return super(ManualMergeItemsMixin, self).form_valid(form) + +    def get_success_url(self): +        return reverse('display-item', args=[self.item_type, self.item.pk]) + + +class PersonManualMergeItems( +        ManualMergeItemsMixin, IshtarMixin, +        LoginRequiredMixin, FormView): +    form_class = forms.PersonMergeIntoForm +    template_name = 'ishtar/form.html' +    page_name = _(u"Select the main person") +    current_url = 'person-manual-merge-items' +    item_type = 'person' + + +class OrgaManualMerge(ManualMergeMixin, IshtarMixin, LoginRequiredMixin, +                      FormView): +    form_class = forms.OrgaMergeFormSelection +    template_name = 'ishtar/form.html' +    page_name = _(u"Merge organization") +    current_url = 'orga-manual-merge' +    redir_url = 'orga_manual_merge_items' + + +class OrgaManualMergeItems( +        ManualMergeItemsMixin, IshtarMixin, +        LoginRequiredMixin, FormView): +    form_class = forms.OrgaMergeIntoForm +    template_name = 'ishtar/form.html' +    page_name = _(u"Select the main organization") +    current_url = 'orga-manual-merge-items' +    item_type = 'organization' + +  class OrganizationCreate(LoginRequiredMixin, CreateView):      model = models.Organization      form_class = forms.BaseOrganizationForm | 
