123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- from django.contrib.auth.models import Group
- 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 *
- from dbsynce.lib.ticket_gen import *
- from core.settings_vars import METASERVICE_ID
- def create_metaservice_default_data():
- create_metaservice_initial_groups()
- create_metaservice_ticket_lists()
- create_metaservice_test_users()
- create_metaservice_init_data()
- def create_metaservice_init_data():
- if not ServiceCategory.objects.filter(codename="test").exists():
- service_category=ServiceCategory(METASERVICE_ID, "test", "DSMPUB", "0", "Test", "Test service category", "https://wiki.sharix-app.org/doku.php/open/doc/usage", "3", 0.2, "0", "0", 1)
- metaserivce_admin = get_user_model().objects.get(phone_number=2101)
- create_service_category(service_category, metaserivce_admin)
- print(f"Service category test created.")
- else:
- print(f"Service category test already exists.")
- def create_metaservice_initial_groups():
- groups = [
- ('METASERVICE-ADMIN', 21),
- ('METASERVICE-SUPERVISOR', 22),
- ('METASERVICE-SUPPORT', 23),
- ('METASERVICE-TECHSUPPORT', 24),
- ('PARTNER-ADMIN', 31),
- ('PARTNER-SUPERVISOR', 32),
- ('PARTNER-SUPPORT', 33),
- ('PARTNER-TECHSUPPORT', 34),
- ('PROVIDER', 41),
- ('CLIENT', 51),
- ('GUEST', 61),
- ('TEST', 99)
- ]
- for name, pk in groups:
- group, created = Group.objects.get_or_create(name=name, defaults={'pk': pk})
- if not created:
- print(f"Group {name} already exists.")
- else:
- print(f"Group {name} created.")
- def create_metaservice_ticket_lists():
- ticket_data = [
- # TECH-LOGS
- (1001, 'Технические логи Администратора Метасервиса', 'METASERVICE-ADMIN'),
- # METASERVICE
- (2101, 'Установление договорных взаимоотношений (NEG_REQUEST)', 'METASERVICE-ADMIN'),
- (2102, 'Права в админ.панели Сервиса (ACCESS_REQUEST)', 'METASERVICE-ADMIN'),
- (21031, 'Активация Типов услуг (ST_REQUEST)', 'METASERVICE-ADMIN'),
- (21032, 'Активация Услуг (согласование тарифов) (ST_REQUEST)', 'METASERVICE-ADMIN'),
- (21033, 'Активация Партнеров (ST_REQUEST)', 'METASERVICE-ADMIN'),
- (2201, 'Модерация пользователей (ST_REQUEST)', 'METASERVICE-SUPERVISOR'),
- (2200, 'Оперативный доступ (ST_REQUEST)', 'METASERVICE-SUPERVISOR'),
- (2202, 'Права в админ.панели Сервиса (ACCESS_REQUEST)', 'METASERVICE-SUPERVISOR'),
- (22034, 'Активация Исполнителей в Сервисе (ST_REQUEST)', 'METASERVICE-SUPERVISOR'),
- (22035, 'Активация Ресурсов в Сервисе (ST_REQUEST)', 'METASERVICE-SUPERVISOR'),
- (2205, 'Проверка документов (ST_REQUEST)', 'METASERVICE-SUPERVISOR'),
- (2206, 'Проверки для допусков (ST_REQUEST)', 'METASERVICE-SUPERVISOR'),
-
- (2301, 'Входящие заявки пользователей (ST_REQUEST)', 'METASERVICE-SUPPORT'),
- (2302, 'Заявки на услуги Сервиса (SERVICE_REQUEST)', 'METASERVICE-SUPPORT'),
- (2401, 'Входящие технические заявки (ST_REQUEST)', 'METASERVICE-TECHSUPPORT'),
- # PARTNER
- (3101, 'Установление договорных взаимоотношений (NEG_REQUEST)', 'PARTNER-ADMIN'),
- (3102, 'Права в админ.панели Партнера (ST_REQUEST)', 'PARTNER-ADMIN'),
- (31034, 'Активация Исполнителей (ST_REQUEST)', 'PARTNER-ADMIN'),
- (31035, 'Активация Ресурсов (ST_REQUEST)', 'PARTNER-ADMIN'),
-
- (3200, 'Оперативный доступ (ST_REQUEST)', 'PARTNER-SUPERVISOR'),
- (3202, 'Права в админ.панели Партнера (ACCESS_REQUEST)', 'PARTNER-SUPERVISOR'),
- (3205, 'Проверка документов (ST_REQUEST)', 'PARTNER-SUPERVISOR'),
- (3206, 'Проверки для допусков (ST_REQUEST)', 'PARTNER-SUPERVISOR'),
- (3301, 'Входящие заявки пользователей (ST_REQUEST)', 'METASERVICE-SUPPORT'),
- (3401, 'Входящие технические заявки (ST_REQUEST)', 'PARTNER-TECHSUPPORT'),
- ]
- for pk, name, group_name in ticket_data:
- group = Group.objects.get(name=group_name)
- # Проверяем существование тикета с таким же name и group
- ticket_exists = TicketList.objects.filter(group=group, name=name).exists()
- if not ticket_exists:
- TicketList.objects.create(pk=pk, name=name, group=group)
- print(f"TicketList {name} created.")
- else:
- print(f"TicketList {name} already exists.")
- def create_metaservice_test_users():
- """
- Создает тестовых пользователей
- """
- User = get_user_model()
- # Создание админа
- if not get_user_model().objects.filter(phone_number="11111111111").exists():
- admin = get_user_model().objects.create_superuser(
- 'admin',
- 'admin@admin.com',
- 'Sharix!',
- phone_number="11111111111"
- )
- print("Django admin created.")
- else:
- print("Django admin already exists.")
- password = make_password("sharix-open-test")
- test_group = Group.objects.get(pk=99)
- # Группа, в которой надо создать пользователя и их количество
- test_users = [
- ('METASERVICE-ADMIN', 1),
- ('METASERVICE-SUPERVISOR', 3),
- ('METASERVICE-SUPPORT', 3),
- ('METASERVICE-TECHSUPPORT', 3),
- ('PARTNER-ADMIN', 1),
- ('PARTNER-SUPERVISOR', 3),
- ('PARTNER-SUPPORT', 3),
- ('PARTNER-TECHSUPPORT', 3),
- ('PROVIDER', 3),
- ('CLIENT', 3),
- ('GUEST', 3)
- ]
- for test_user in test_users:
- group_name = test_user[0]
- group = Group.objects.get(name=group_name)
- for i in range(1, test_user[1] + 1):
- user, created = User.objects.get_or_create(
- phone_number=f"{group.pk}0{i}",
- defaults={
- 'last_name': i,
- 'first_name': group_name,
- 'email': f"test-{group_name.lower()}-{i}@domain.org",
- 'username': f"test-{group_name.lower()}-{i}",
- 'middle_name': "Test",
- 'password': password
- }
- )
- if created:
- user.groups.add(
- test_group,
- group
- )
- print(f"User {user.username} created.")
- else:
- print(f"User {user.username} already exists.")
- # Создание тикета о создании пользователей
- if not Ticket.objects.all().exists():
- # test-metaservice-admin-1
- user = get_user_model().objects.filter(phone_number=2101).get()
- ticket_list = TicketList.objects.get(pk=1001)
- ticket, created = Ticket.objects.get_or_create(
- title=f"Создание тестовых пользователей",
- ticket_list=ticket_list,
- ticket_type=1, # ST_REQUEST
- due_date=datetime.now().date(),
- created_by=user,
- note=f"""
- Успешное создание тестовых пользователей
- """
- )
- if created:
- print("Main Ticket created.")
- else:
- print("Main Ticket already exists.")
|