Ejemplo n.º 1
0
Archivo: views.py Proyecto: AmiZya/kala
class PeopleView(LoginRequiredMixin, TemplateView):
    template_name = 'accounts.html'

    def get_context_data(self, **kwargs):
        if self.request.user.is_admin:
            return {
                'companies': self.companies,
                'company_form': self.company_form,
                'person_form': self.person_form,
                'undelete_form': self.undelete_form,
            }
        return {
            'companies': self.companies
        }

    @method_decorator(login_required)
    def dispatch(self, request, *args, **kwargs):
        self.user = get_user(request)
        if self.user.is_admin:
            self.companies = Company.objects.active()
            self.company_form = CreateCompanyForm(request.POST if 'create_company' in request.POST else None)
            self.person_form = CreatePersonForm(request.POST if 'create_person' in request.POST else None)
            self.undelete_form = DeletedCompanyForm(request.POST if 'undelete' in request.POST else None)
        else:
            self.companies = Company.objects.active().filter(
                pk__in=Project.clients.through.objects.filter(person__pk=self.user.pk).values(
                    'project__company__pk'))
            self.companies = self.companies | Company.objects.active().filter(pk=self.user.company.pk)
        return super(PeopleView, self).dispatch(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        if not self.user.is_admin:
            messages.error(request, 'You do not have permission to create data')
            return redirect(reverse('accounts'))

        if 'create_company' in request.POST and self.company_form.is_valid():
            company = self.company_form.save()
            messages.success(request, 'The company has been created')
            return redirect(reverse('company', args=[company.pk]))

        if 'create_person' in request.POST and self.person_form.is_valid():
            self.person_form.save()
            messages.success(request, 'The person has been created')
            return redirect(reverse('accounts'))

        if 'undelete' in request.POST and self.undelete_form.is_valid():
            company = self.undelete_form.save()
            messages.success(request, 'The company %s has been un-deleted' % company.name)
            return redirect(reverse('accounts'))
        return self.render_to_response(self.get_context_data())
Ejemplo n.º 2
0
Archivo: views.py Proyecto: AmiZya/kala
 def dispatch(self, request, *args, **kwargs):
     self.user = get_user(request)
     if self.user.is_admin:
         self.companies = Company.objects.active()
         self.company_form = CreateCompanyForm(request.POST if 'create_company' in request.POST else None)
         self.person_form = CreatePersonForm(request.POST if 'create_person' in request.POST else None)
         self.undelete_form = DeletedCompanyForm(request.POST if 'undelete' in request.POST else None)
     else:
         self.companies = Company.objects.active().filter(
             pk__in=Project.clients.through.objects.filter(person__pk=self.user.pk).values(
                 'project__company__pk'))
         self.companies = self.companies | Company.objects.active().filter(pk=self.user.company.pk)
     return super(PeopleView, self).dispatch(request, *args, **kwargs)