partner.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from django.views.generic import DetailView
  2. from django.views.generic.edit import FormView
  3. from django.urls import reverse_lazy
  4. from django.shortcuts import get_object_or_404
  5. from django.utils.translation import gettext as _
  6. from django.contrib.auth.mixins import UserPassesTestMixin
  7. from dbsynce.models import Company
  8. from SharixAdmin.forms import CompanyForm
  9. from .base import BaseView
  10. class PartnerDetailView(UserPassesTestMixin, BaseView, DetailView):
  11. model = Company
  12. template_name = 'SharixAdmin/partner.html'
  13. context_object_name = 'company'
  14. page_title = _('О партнере')
  15. page_name = 'partner'
  16. # Проверяем состояит ли текущий пользователь в группе PARTNER-ADMIN
  17. def test_func(self):
  18. return self.request.user.groups.filter(name='PARTNER-ADMIN').exists()
  19. def get_object(self, queryset=None):
  20. return get_object_or_404(Company, repr_id=self.request.user)
  21. class PartnerEditView(UserPassesTestMixin, BaseView, FormView):
  22. template_name = 'SharixAdmin/partner_edit.html'
  23. form_class = CompanyForm
  24. success_url = reverse_lazy('partner_detail')
  25. page_title = _('Изменение данных партнера')
  26. page_name = 'partner'
  27. # Проверяем состояит ли текущий пользователь в группе PARTNER-ADMIN
  28. def test_func(self):
  29. return self.request.user.groups.filter(name='PARTNER-ADMIN').exists()
  30. def get_form_kwargs(self):
  31. kwargs = super().get_form_kwargs()
  32. kwargs['instance'] = get_object_or_404(Company, repr_id=self.request.user)
  33. return kwargs
  34. def form_valid(self, form):
  35. form.save() # Сохраняем изменения
  36. return super().form_valid(form)