service.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from dbsynce.models import Service, ServiceType
  2. from django.contrib.auth.decorators import login_required
  3. from django.contrib.auth.mixins import UserPassesTestMixin
  4. from django.utils.translation import gettext as _
  5. from django_tables2 import SingleTableView
  6. from django.contrib import messages
  7. from django.db import transaction
  8. from sharix_admin.tables import ServiceTable
  9. from sharix_admin.utils import group_required
  10. from django.http import HttpResponse
  11. from django.shortcuts import render
  12. from .base import BaseView
  13. from django.views.generic.edit import FormView
  14. from sharix_admin.forms import *
  15. from django.urls import reverse_lazy
  16. from django.shortcuts import get_object_or_404, redirect
  17. from django.views.generic import DetailView
  18. class ServiceBaseView(BaseView):
  19. page_name = 'service'
  20. class ServiceDetailView(ServiceBaseView, DetailView):
  21. model = Service
  22. template_name = 'sharix_admin/service_about.html'
  23. context_object_name = 'service'
  24. page_title = 'Об услуге'
  25. def get_object(self, queryset=None):
  26. return get_object_or_404(Service, id=Service.id)
  27. def get_context_data(self, **kwargs):
  28. context = super().get_context_data(**kwargs)
  29. return context
  30. class ServiceEditView(ServiceBaseView, FormView):
  31. template_name = 'sharix_admin/service_edit.html'
  32. form_class = ServiceInformationUpdateForm
  33. success_url = reverse_lazy('partner_detail')
  34. page_title = 'Изменение данных услуги'
  35. def get_form_kwargs(self):
  36. kwargs = super().get_form_kwargs()
  37. kwargs['instance'] = get_object_or_404(Service, repr=self.request.user)
  38. return kwargs
  39. def form_valid(self, form):
  40. with transaction.atomic():
  41. form.save()
  42. messages.success(self.request, 'Данные успешно изменены и теперь проходят проверку!')
  43. return super().form_valid(form)