cooperate.py 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. from datetime import datetime, timedelta
  2. from django.views.generic.edit import FormView
  3. from django.urls import reverse_lazy
  4. from SharixAdmin.forms import CompanyCreateForm
  5. from tickets.models import Ticket, TicketList
  6. class CooperateView(FormView):
  7. form_class = CompanyCreateForm
  8. template_name = "SharixAdmin/cooperate.html"
  9. success_url = reverse_lazy("cooperate")
  10. def form_valid(self, form):
  11. # Сохраняем форму, чтобы получить объект компании
  12. instance = form.save(commit=False)
  13. # Присваиваем полю repr_id идентификатор текущего пользователя
  14. instance.repr_id = self.request.user
  15. # Создаем новую запись в БД, чтобы иметь доступ к ID
  16. instance.save()
  17. # Создание тикета на активацию партнера
  18. # Создаем объект тикета и присваиваем его полю ticket_status
  19. instance.ticket_status = Ticket.objects.create(
  20. title=f"Создание нового Партнера '{instance.legal_name}'",
  21. ticket_list=TicketList.objects.get(pk=2102),# METASERVICE-ADMIN: Права в сервисе (ACCESS_REQUEST)
  22. ticket_type=3, # ACCESS_REQUEST
  23. due_date=datetime.now().date() + timedelta(days=30),
  24. created_by=self.request.user,
  25. # FIXME: Возможно необходима автоматическая генерация содержимого в определенном формате
  26. note=f"""
  27. Пользователь {self.request.user} #{self.request.user.pk} отправил заявку на становление партнером сервиса:\n
  28. - Имя: {instance.legal_name}\n
  29. - ИНН: {instance.inn}\n
  30. - Юридический адрес: {instance.address}\n
  31. <a href="{instance.get_admin_url()}">Полная информация</a>\n
  32. \n
  33. Проверьте всю информацию и для активации партнера измените статус заявки на ACCEPTED.
  34. Это будет означать, что договорные отношения между сервисом и партнером, вступают в силу.
  35. """
  36. )
  37. # Сохраняем новые изменения
  38. instance.save()
  39. # Создание тикета на утверждение прав пользователя
  40. Ticket.objects.create(
  41. title=f"Запрос прав на становление Партнером '{instance.legal_name}'",
  42. ticket_list=TicketList.objects.get(pk=2101),# METASERVICE-ADMIN: Активация партнеров (NEG_REQUEST)
  43. ticket_type=4, # NEG_REQUEST
  44. due_date=datetime.now().date() + timedelta(days=30),
  45. created_by=self.request.user,
  46. # FIXME: Возможно необходима автоматическая генерация содержимого в определенном формате
  47. note=f"""
  48. Пользователь {self.request.user} #{self.request.user.pk} отправил заявку на права партнера сервиса.\n
  49. \n
  50. <a href="{instance.get_admin_url()}">Полная информация о компании партнера</a>\n
  51. \n
  52. После принятия изменений указанное лицо будет партнером сервиса при совершении юридически значимых действий.
  53. """
  54. )
  55. return super().form_valid(form) # Возвращаем успешный ответ
  56. def get_context_data(self, **kwargs):
  57. context = super().get_context_data(**kwargs)
  58. context.update({
  59. "title": "Сотрудничество",
  60. "current_page": "cooperate"
  61. })
  62. return context