service_type.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. from django_tables2 import SingleTableView
  2. from django.views.generic.edit import UpdateView, CreateView, DeleteView
  3. from SharixAdmin.tables import ServiceTypeTable
  4. from django.contrib.auth.mixins import UserPassesTestMixin
  5. from SharixAdmin.forms import ServiceTypeCreateForm, ServiceTypeUpdateForm
  6. from dbsynce.models import ServiceType
  7. from django.urls import reverse
  8. from SharixAdmin.views.context import get_context
  9. from django.utils.translation import gettext as _
  10. class ServiceTypeCreate(UserPassesTestMixin, CreateView):
  11. model = ServiceType
  12. form_class = ServiceTypeCreateForm
  13. template_name = "SharixAdmin/service_type_form.html"
  14. def get_context_data(self, **kwargs):
  15. context = super().get_context_data(**kwargs)
  16. context.update(get_context(self.request, {
  17. 'title': _('Услуги сервиса'),
  18. 'object': self.object,
  19. }))
  20. return context
  21. def get_success_url(self):
  22. return reverse('service_type')
  23. def test_func(self) -> bool or None:
  24. group_names = ('METASERVICE-ADMIN')
  25. if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
  26. return True
  27. return False
  28. class ServiceTypeListView(UserPassesTestMixin, SingleTableView):
  29. table_class = ServiceTypeTable
  30. queryset = ServiceType.objects.all()
  31. template_name = 'SharixAdmin/service_type.html'
  32. def get_context_data(self, **kwargs):
  33. context = super().get_context_data(**kwargs)
  34. context.update(get_context(self.request, {
  35. 'title': 'Услуги сервиса',
  36. 'object_list': context['object_list'],
  37. }))
  38. return context
  39. def testing(self, queryset, is_descending):
  40. queryset = queryset.annotate.order_by("-" if is_descending else "")
  41. return (queryset, True)
  42. def test_func(self) -> bool or None:
  43. group_names = ('METASERVICE-ADMIN')
  44. if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
  45. return True
  46. return False
  47. class ServiceTypeUpdateView(UserPassesTestMixin, UpdateView):
  48. model = ServiceType
  49. form_class = ServiceTypeCreateForm
  50. template_name = "SharixAdmin/service_type_form.html"
  51. def get_context_data(self, **kwargs):
  52. context = super().get_context_data(**kwargs)
  53. context.update(get_context(self.request, {
  54. 'title': _('Услуги сервиса'),
  55. 'object': self.object,
  56. }))
  57. return context
  58. def test_func(self) -> bool or None:
  59. group_names = ('METASERVICE-ADMIN')
  60. if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
  61. return True
  62. return False
  63. def get_success_url(self):
  64. return reverse('service_type')
  65. class ServiceTypeDelete(UserPassesTestMixin, DeleteView):
  66. model = ServiceType
  67. template_name = "SharixAdmin/service_type_delete.html"
  68. def get_context_data(self, **kwargs):
  69. context = super().get_context_data(**kwargs)
  70. context.update(get_context(self.request, {
  71. 'title': 'Услуги сервиса',
  72. 'object': self.object,
  73. }))
  74. return context
  75. def get_success_url(self):
  76. return reverse('service_type')
  77. def test_func(self) -> bool or None:
  78. group_names = ('METASERVICE-ADMIN')
  79. if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
  80. return True
  81. return False