Browse Source

test generation of test data for service category added

mex3 1 month ago
parent
commit
c5eccb62f8
2 changed files with 71 additions and 0 deletions
  1. 59 0
      lib/data.py
  2. 12 0
      lib/seed.py

+ 59 - 0
lib/data.py

@@ -0,0 +1,59 @@
+from datetime import datetime, timedelta
+from dbsynce.lib.core import get_admin_url
+from dbsynce.models import ServiceCategory
+from tickets.models import Ticket, TicketList
+
+def create_ticket_service_category_activation(user, metaservice):
+    """
+    Создание тикета на активацию Категории Сервиса.
+    
+    Список: 2101, METASERVICE-SUPERVISOR: Активация категорий сервисов (ST_REQUEST)
+    Тип: 1, ST_REQUEST
+    """
+    # FIXME: Возможно нужно автоматически создавать содержимое поля json
+    
+    #TODO вместе с созданием тикета должно отправляться уведомление в группу, но может быть это будет на уровне обработчиков
+    
+    return Ticket.objects.create(
+        title=f"Создание новой категории сервиса '{metaservice.legal_name}' - '{service_category.caption}'",
+        ticket_list=TicketList.objects.get(pk=2102),
+        ticket_type=1,
+        due_date=datetime.now().date() + timedelta(days=30),
+        created_by=user,
+
+        note=f"""
+            Пользователь {user} #{user.pk} отправил заявку на добавление и активацию категории сервиса:\n
+            - Название: {service_category.caption}\n
+            - Договор: {service_category.link_agreement}\n
+            - Комиссия Сервиса: {service_category.metaservice_comission}\n
+            - Тарификация: {service_category.price_type}\n
+            - Описание: {service_category.description}\n
+            <a href="{get_admin_url(metaservice)}">Полная информация</a>\n
+            \n
+            Проверьте всю информацию и для активации категории сервиса измените статус заявки на ACCEPTED.
+            Это будет означать, что Сервис сможет обрабатывать заказы данной категории.
+        """
+    )
+
+def create_service_category(service_category, metaservice):
+    """
+    Создание записи категории Сервиса.
+    Создается запись в БД, Тикет на проверку и уведомление в джаббер
+    
+    """
+    return ServiceCategory.objects.create(
+        id_metaservice=service_category.metaservice,
+        codename=service_category.codename,
+        #TODO заменить дефолт после появления соответствующего функционала
+        requirements="DSMPUB",
+        status="0",
+        caption=service_category.caption,
+        description=service_category.description,
+        link_agreement=service_category.link_agreement,
+        price_type=service_category.price_type,
+        metaservice_comission=service_category.metaservice_comission,
+        #TODO заменить дефолт после появления соответствующего функционала
+        is_global="0",
+        is_visible="0",
+        ticket_status=create_ticket_service_category_activation(self.request.user, instance)
+    )

+ 12 - 0
lib/seed.py

@@ -3,10 +3,22 @@ from django.contrib.auth import get_user_model
 from django.contrib.auth.hashers import make_password
 from tickets.models import Ticket, TicketList
 from datetime import datetime
+from dbsynce.lib.data import *
 
 def create_metaservice_default_data():
     create_metaservice_initial_groups()
     create_metaservice_ticket_lists()
+    create_metaservice_init_data()
+
+def create_metaservice_init_data():
+    if not ServiceCategory.objects.filter(codename="test").exists():
+        #TODO maybe import from config?
+        metaservice=1
+        service_category=ServiceCategory(metaservice, "test", "DSMPUB", "0", "Test", "Test service category", "https://wiki.sharix-app.org/doku.php/open/doc/usage", "3", 0.2, "0", "0", 1)
+        create_service_category(service_category, metaservice)
+        print(f"Service category test created.")
+    else:
+        print(f"Service category test already exists.")
 
 
 def create_metaservice_initial_groups():