1
0

service_type.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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 django.utils.translation import gettext as _
  9. class ServiceTypeCreate(UserPassesTestMixin, CreateView):
  10. model = ServiceType
  11. form_class = ServiceTypeCreateForm
  12. template_name = "SharixAdmin/service_type_form.html"
  13. def get_context_data(self, **kwargs):
  14. context = super().get_context_data(**kwargs)
  15. context.update({
  16. 'title': _('Услуги сервиса'),
  17. 'object': self.object,
  18. "current_page": "service_type"
  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({
  35. 'title': 'Услуги сервиса',
  36. 'object_list': context['object_list'],
  37. "current_page": "service_type"
  38. })
  39. return context
  40. def testing(self, queryset, is_descending):
  41. queryset = queryset.annotate.order_by("-" if is_descending else "")
  42. return (queryset, True)
  43. def test_func(self) -> bool or None:
  44. group_names = ('METASERVICE-ADMIN')
  45. if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
  46. return True
  47. return False
  48. class ServiceTypeUpdateView(UserPassesTestMixin, UpdateView):
  49. model = ServiceType
  50. form_class = ServiceTypeCreateForm
  51. template_name = "SharixAdmin/service_type_form.html"
  52. def get_context_data(self, **kwargs):
  53. context = super().get_context_data(**kwargs)
  54. context.update({
  55. 'title': _('Услуги сервиса'),
  56. 'object': self.object,
  57. "current_page": "service_type"
  58. })
  59. return context
  60. def test_func(self) -> bool or None:
  61. group_names = ('METASERVICE-ADMIN')
  62. if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
  63. return True
  64. return False
  65. def get_success_url(self):
  66. return reverse('service_type')
  67. class ServiceTypeDelete(UserPassesTestMixin, DeleteView):
  68. model = ServiceType
  69. template_name = "SharixAdmin/service_type_delete.html"
  70. def get_context_data(self, **kwargs):
  71. context = super().get_context_data(**kwargs)
  72. context.update({
  73. 'title': 'Услуги сервиса',
  74. 'object': self.object,
  75. "current_page": "service_type"
  76. })
  77. return context
  78. def get_success_url(self):
  79. return reverse('service_type')
  80. def test_func(self) -> bool or None:
  81. group_names = ('METASERVICE-ADMIN')
  82. if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
  83. return True
  84. return False