Browse Source

Necessary corrections have been made for correct operation with the sharix-open-user-model

TonyKurts 10 months ago
parent
commit
479b49c4b8

+ 4 - 2
models/client.py

@@ -1,13 +1,15 @@
 from django.db import models
-from SharixAdmin.models import SharixUser
+from django.contrib.auth import get_user_model
+
 from tickets.models import Ticket
 
+
 class Client(models.Model):
     """
     Client - это таблица с клиентами. Клиент/пользователь/аккаунт 
     в системе, который по логике получает услугу.
     """
-    user = models.ForeignKey(SharixUser, on_delete=models.DO_NOTHING, help_text="пользователь, которому соответствует роль клиента")
+    user = models.ForeignKey(get_user_model(), on_delete=models.DO_NOTHING, help_text="пользователь, которому соответствует роль клиента")
     requirements = models.CharField(max_length=150, help_text="требования для того, чтобы можно было получать услуги как клиент")
     status = models.CharField(max_length=150, help_text="активность на основе системы заявок")
     ticket_status = models.ForeignKey(Ticket, on_delete=models.DO_NOTHING, help_text="id последнего актуального тикета, касающийся статуса. Если он меняет статус на закрытый - вызывается проверка, которая смотрит, нет ли другого открытого по пользователю.")

+ 4 - 2
models/company.py

@@ -1,10 +1,12 @@
 from django.db import models
+from django.contrib.auth import get_user_model
+
 from tickets.models import Ticket
-from SharixAdmin.models import SharixUser
+
 
 class Company(models.Model):
     legal_name = models.CharField(max_length=150, help_text="настоящее имя юридического лица")
-    repr_id = models.ForeignKey(SharixUser, on_delete=models.DO_NOTHING, help_text="уникальный идентификатор представителя компании. Это обязательно пользователь-провайдер определенного типа. То есть нельзя назначить ответственного, который не может быть ответственным.")
+    repr_id = models.ForeignKey(get_user_model(), on_delete=models.DO_NOTHING, help_text="уникальный идентификатор представителя компании. Это обязательно пользователь-провайдер определенного типа. То есть нельзя назначить ответственного, который не может быть ответственным.")
     inn = models.CharField(max_length=10, unique=True, help_text="ИНН компании")
     kpp = models.CharField(max_length=9,  help_text="КПП компании")
     ogrn = models.CharField(max_length=13, help_text="ОГРН компании")

+ 4 - 3
models/documents.py

@@ -1,5 +1,6 @@
 from django.db import models
-from SharixAdmin.models import SharixUser
+from django.contrib.auth import get_user_model
+
 from metaservicesynced.models.company import Company
 from tickets.models import Ticket
 
@@ -21,11 +22,11 @@ class Documents(models.Model):
     ticket_status = models.ForeignKey(Ticket, on_delete=models.DO_NOTHING, help_text="id последнего актуального тикета, касающийся статуса. Если он меняет статус на закрытый - вызывается проверка, которая смотрит, нет ли другого открытого по пользователю.")
     datalink = models.TextField(blank=True, help_text="адрес фактического размещения на физическом носителе, если информация настолько велика, что не может храниться внутри БД.")
     doc_type = models.CharField(max_length=150, help_text="тип документа (паспорт/паспорт 1 страница и т д) в соответствии с классификатором типов документов (см описание в Requirements)")
-    user_id = models.ForeignKey(SharixUser, related_name="user_id_doc", on_delete=models.DO_NOTHING, help_text="уникальный идентификатор пользователя (конкретного клиентского аккаунта) являющегося владельцем данного документа")
+    user_id = models.ForeignKey(get_user_model(), related_name="user_id_doc", on_delete=models.DO_NOTHING, help_text="уникальный идентификатор пользователя (конкретного клиентского аккаунта) являющегося владельцем данного документа")
     company_id = models.ForeignKey(Company, on_delete=models.DO_NOTHING, null=True, help_text="идентификатор компании, к которой относится документ, если таковая есть (может не быть)")
     is_global = models.BooleanField(default=False, help_text="доступны ли документы для хранения в глобальном сервисе/нужна синхронизация")
     is_visible = models.BooleanField(default=False, help_text="доступна ли информация о наличии документов для планирования в цепочке с другими услугами в глобальном сервисе")
-    checked_by = models.ForeignKey(SharixUser, related_name="checked_by_doc", on_delete=models.DO_NOTHING, null=True, help_text="userid проверившего")
+    checked_by = models.ForeignKey(get_user_model(), related_name="checked_by_doc", on_delete=models.DO_NOTHING, null=True, help_text="userid проверившего")
 
 
     class Meta:

+ 4 - 4
models/orders.py

@@ -1,23 +1,23 @@
 from django.db import models
-from SharixAdmin.models import SharixUser
+from django.contrib.auth import get_user_model
+
 from metaservicesynced.models.client import Client
 from metaservicesynced.models.provider import Provider
 from metaservicesynced.models.service import Service
 from metaservicesynced.models.servicetype import ServiceType
 from tickets.models import Ticket
 
+
 class Orders(models.Model):
     """
     Orders - таблица с заказами
     """
-
-
     service = models.ForeignKey(Service, null=True, on_delete=models.DO_NOTHING, help_text="спецификатор услуги провайдера, нужен для установления цены (id_service - уникальный идентификатор шаблона услуги, необходим для установления цены и исполнителей.")
     service_type = models.ForeignKey(ServiceType, null=True, on_delete=models.DO_NOTHING, help_text="тип заказа по классификатору услу")
     state = models.CharField(max_length=150, help_text="текущий статус заказа из возможных на платформе")
     id_metaservice = models.BigIntegerField(null=True, help_text="уникальный идентификатор мета-сервиса, необходимый для синхронизации данных. Если при синхронизации возникает конфликт (несовместимость) с другим сервисом, предлагается или форсировать изменения везде (если возможно), либо is_global выставляется как false.")
     provider = models.ForeignKey(Provider, null=True, on_delete=models.DO_NOTHING, help_text="уникальный идентификатор поставщика услуги/аккаунта, который оказывает услугу. Если несколько провайдеров собираются мета-сервисом в цепочку, где на уровне связи с клиентом нельзя установить одно ответственное лицо, то указывается вспомогательный мета-провайдер сервиса, и это означает, что мета-сервис несет ответственность перед пользователем за сборку услуги воедино.") 
-    receiver = models.ForeignKey(SharixUser, null=True, related_name="user_id", on_delete=models.DO_NOTHING, help_text="пользователь/аккаунт, который принимает оказываемые услуги")
+    receiver = models.ForeignKey(get_user_model(), null=True, related_name="user_id", on_delete=models.DO_NOTHING, help_text="пользователь/аккаунт, который принимает оказываемые услуги")
     client_id = models.ForeignKey(Client, null=True, on_delete=models.DO_NOTHING, help_text="клиент/аккаунт, который оплачивает все оказанные услуги") 
     time_created = models.DateTimeField(auto_now_add=True, help_text="время создания заказа")
     time_placed = models.DateTimeField(help_text="время размещения заказа")

+ 3 - 3
models/permissions.py

@@ -1,5 +1,5 @@
 from django.db import models
-from SharixAdmin.models import SharixUser
+from django.contrib.auth import get_user_model
 from tickets.models import Ticket
 
 class Permissions(models.Model):
@@ -12,8 +12,8 @@ class Permissions(models.Model):
     check_date = models.DateTimeField(null=True, help_text="timestamp проверки")
     id_permissions = models.BigIntegerField(help_text="уникальный идентификатор определяющий наличие разрешения из множества в словаре - выданных пользователю/клиенту/аккаунту")
     check_level = models.CharField(max_length=10, help_text="(check-level из классификатора платформы) - информация об уровне проверки. Проверка может быть проведена как платформой, так и мета-сервисом, так и партнером мета-сервиса, а может быть и никем (просто загружен). Указывается, так как достоверность проверки разная. Экзамен, проверенный только на низком уровне, не принимается во внимание как имеющийся до прохождения более высокоуровневой проверки.")
-    checked_by = models.ForeignKey(SharixUser, related_name="checked_by_perm", on_delete=models.DO_NOTHING, null=True, help_text="userid проверившего")
-    user_id = models.ForeignKey(SharixUser, related_name="user_id_perm", on_delete=models.DO_NOTHING, null=True, help_text="уникальный идентификатор пользователя/клиента/аккаунта, которым была пройдена проверка и получено разрешение")
+    checked_by = models.ForeignKey(get_user_model(), related_name="checked_by_perm", on_delete=models.DO_NOTHING, null=True, help_text="userid проверившего")
+    user_id = models.ForeignKey(get_user_model(), related_name="user_id_perm", on_delete=models.DO_NOTHING, null=True, help_text="уникальный идентификатор пользователя/клиента/аккаунта, которым была пройдена проверка и получено разрешение")
     status = models.CharField(max_length=150, help_text="статус обработки заявки в системе заявок")
     ticket_status = models.ForeignKey(Ticket, on_delete=models.DO_NOTHING, null=True, help_text="id заявки, по которой происходит проверка статуса relationship. State меняется только в результате изменений в заявке.")
     id_metaservice = models.BigIntegerField(help_text=" уникальный идентификатор мета-сервиса, необходимый для синхронизации данных.")

+ 4 - 2
models/provider.py

@@ -1,8 +1,10 @@
 from django.db import models
-from SharixAdmin.models import SharixUser
+from django.contrib.auth import get_user_model
+
 from metaservicesynced.models.company import Company
 from tickets.models import Ticket
 
+
 class Provider(models.Model):
     """
     Provider – единица описания поставщика услуг/ответственного лица за определенный ресурс (например, машину). 
@@ -12,7 +14,7 @@ class Provider(models.Model):
 
     type = models.CharField(max_length=150, help_text="тип поставщика (партнер/ответственное лицо/поставщик услуг). Смысл такой - провайдер это статус пользователя, который, в зависимости от применения, может нести разный смысл и подразумевает под собой какой-то тип действия. Обычные исполнители - это провайдеры услуг (код 3). Ответственные за какое-то имущество, которые сдают его в аренду - это тоже провайдеры (код 2). Ответственные за набор услуг перед метасервисом (фактически - назначенные админы) - это провайдеры-партнеры (код 1)")
     company_id = models.ForeignKey(Company, on_delete=models.DO_NOTHING, null=True, help_text="уникальный идентификатор компании, от лица которой выступает провайдер. Смысл такой - ответственны могут быть только одушевленные лица, компании - не одушевленные. Все услуги предоставляются через компании-партнеры, самозанятые или ИП являются единицами таких компаний.")
-    user_id = models.ForeignKey(SharixUser, on_delete=models.DO_NOTHING, null=True, help_text="уникальный идентификатор конкретного пользователя системы (meta-user), который будет оказывать услугу. Один пользователь может быть провайдером нескольких услуг. Статус провайдера означает, что с данным пользователем может быть установлена связь, как с исполнителем.")
+    user_id = models.ForeignKey(get_user_model(), on_delete=models.DO_NOTHING, null=True, help_text="уникальный идентификатор конкретного пользователя системы (meta-user), который будет оказывать услугу. Один пользователь может быть провайдером нескольких услуг. Статус провайдера означает, что с данным пользователем может быть установлена связь, как с исполнителем.")
     id_metaservice = models.BigIntegerField(null=True, help_text="уникальный идентификатор мета-сервиса, необходимый для синхронизации данных. Один и тот же провайдер может быть для нескольких мета-сервисов, соответственно если происходят изменения в одном, то либо форсируется изменение во всех (если возможно), либо снимается is_global. Соответственно при изменении is_global в true должно происходить согласование с остальными копиями в других сервисах. Нужен в том числе для того, чтобы выяснять, в каких еще сервисах есть этот провайдер.")
     requirements = models.CharField(max_length=300, help_text="требования для того, чтобы можно было предоставлять услуги любые в этом метасервисе в целом (самые строгие)")
     status = models.CharField(max_length=150, help_text="статус пользователя в системе относительно прохождения проверок (activity_status) (может быть active только в том случае, если ticket, влияющий на статус - закрыт.")

+ 5 - 3
models/relationship.py

@@ -1,15 +1,17 @@
 from django.db import models
-from SharixAdmin.models import SharixUser
+from django.contrib.auth import get_user_model
+
 from tickets.models import Ticket
 
+
 class Relationship(models.Model):
     """
     Relationship - описание связей 
     (желательных - как имеющиеся договорные отношения, 
     и нежелательных - как пожелание любой из сторон)
     """
-    user_id_who = models.ForeignKey(SharixUser, related_name="user_id_who", on_delete=models.DO_NOTHING, help_text="уникальный идентификатор инициатора договорных отношений")
-    user_id_whom = models.ForeignKey(SharixUser,  related_name="user_id_whom", on_delete=models.DO_NOTHING, help_text=" уникальный идентификатор того с кем связываются")
+    user_id_who = models.ForeignKey(get_user_model(), related_name="user_id_who", on_delete=models.DO_NOTHING, help_text="уникальный идентификатор инициатора договорных отношений")
+    user_id_whom = models.ForeignKey(get_user_model(),  related_name="user_id_whom", on_delete=models.DO_NOTHING, help_text=" уникальный идентификатор того с кем связываются")
     neg_type = models.IntegerField(help_text="тип договорных отношений по его уникальному идентификатору")
     id_metaservice = models.BigIntegerField(null=True, help_text="уникальный идентификатор мета-сервиса, необходимый для синхронизации данных. Один и тот же провайдер может быть для нескольких мета-сервисов, соответственно если происходят изменения в одном, то либо форсируется изменение во всех (если возможно), либо снимается is_global. Соответственно при изменении is_global в true должно происходить согласование с остальными копиями в других сервисах. Нужен в том числе для того, чтобы выяснять, в каких еще сервисах есть этот провайдер.")
     requirements = models.CharField(max_length=150, help_text="код необходимого (самый строгий) для того, чтобы ресурс мог стать активным. Оно вставляется автоматом, в соответствии с профилем метасервиса. Далее, если кому-то из партнеров или пользователей надо строже - применяется более строгий вариант на данную связь.")

+ 4 - 2
models/resource.py

@@ -1,14 +1,16 @@
 from django.db import models
-from SharixAdmin.models import SharixUser
+from django.contrib.auth import get_user_model
+
 from tickets.models import Ticket
 
+
 class Resource(models.Model):
     """
     Resource/Список ресурсов – автомобили/дома/объекты сервиса
     """
 
     type_id = models.CharField(max_length=10, help_text="определение типа ресурса по его уникальному идентификатору в соответствии с классификатором")
-    user_id = models.ForeignKey(SharixUser, on_delete=models.DO_NOTHING, help_text="уникальный идентификатор ответственного (за состояние, доступность и так далее - то есть для договора) пользователя - идентификатор провайдера, по которому восстанавливается конкретный пользовательский аккаунт")
+    user_id = models.ForeignKey(get_user_model(), on_delete=models.DO_NOTHING, help_text="уникальный идентификатор ответственного (за состояние, доступность и так далее - то есть для договора) пользователя - идентификатор провайдера, по которому восстанавливается конкретный пользовательский аккаунт")
     requirements = models.CharField(max_length=150, help_text="код необходимого (самый строгий) для того, чтобы ресурс мог стать активным")
     status = models.CharField(max_length=150, help_text="статус ресурса в системе относительно прохождения проверок (activity_status) (может быть active только в том случае, если ticket, влияющий на статус - закрыт.")
     ticket_status = models.ForeignKey(Ticket, on_delete=models.DO_NOTHING, help_text="id последнего актуального тикета, касающийся статуса. Если он меняет статус на закрытый - вызывается проверка, которая смотрит, нет ли другого открытого по пользователю.")

+ 2 - 0
models/service.py

@@ -1,9 +1,11 @@
 from django.db import models
+
 from metaservicesynced.models.provider import Provider
 from metaservicesynced.models.servicetype import ServiceType
 from tickets.models import Ticket
 from metaservicesynced.models.resource import Resource
 
+
 class Service(models.Model):
     """
     service - спецификация услуги каждого конкретного поставщика 

+ 2 - 0
models/servicetype.py

@@ -1,6 +1,8 @@
 from django.db import models
+
 from tickets.models import Ticket
 
+
 class ServiceType(models.Model):
     """
     Перечень типов услуг