service_type.py 3.6 KB

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