Evgeny Polivanov 1 year ago
parent
commit
a868f682b9
2 changed files with 81 additions and 10 deletions
  1. 78 7
      migrations/0001_initial.py
  2. 3 3
      models.py

+ 78 - 7
migrations/0001_initial.py

@@ -1,5 +1,6 @@
-# Generated by Django 4.1.3 on 2023-03-28 09:31
+# Generated by Django 4.1.3 on 2023-03-28 16:32
 
+from django.conf import settings
 from django.db import migrations, models
 import django.db.models.deletion
 
@@ -9,7 +10,8 @@ class Migration(migrations.Migration):
     initial = True
 
     dependencies = [
-        ("tickets", "0001_initial"),
+        ("tickets", "0002_alter_comment_options_alter_attachment_added_by_and_more"),
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
     ]
 
     operations = [
@@ -25,19 +27,88 @@ class Migration(migrations.Migration):
                         verbose_name="ID",
                     ),
                 ),
-                ("check_date", models.DateTimeField()),
-                ("check_level", models.IntegerField()),
-                ("expire_date", models.DateTimeField()),
-                ("id_metaservice", models.BigIntegerField()),
+                ("check_date", models.DateTimeField(help_text="timestamp проверки")),
+                (
+                    "check_level",
+                    models.IntegerField(
+                        help_text="информация об уровне проверки. Документ может быть проверен как платформой, так и мета-сервисом, так и партнером мета-сервиса, а может быть и никем (просто загружен). Указывается, так как достоверность проверки разная. Документ, проверенный только на низком уровне, не принимается во внимание как имеющийся до прохождения более высокоуровневой проверки. Информацию об уровнях проверки можно посмотреть по словарю Requirements. В данной таблице хранится информация о наиболее высоком уровне проверки."
+                    ),
+                ),
+                (
+                    "expire_date",
+                    models.DateTimeField(
+                        help_text="срок окончания действия документа.", null=True
+                    ),
+                ),
+                (
+                    "id_metaservice",
+                    models.BigIntegerField(
+                        help_text="уникальный идентификатор мета-сервиса, необходимый для синхронизации данных. Если при синхронизации возникает конфликт (несовместимость) с другим сервисом, предлагается или форсировать изменения везде (если возможно), либо is_global выставляется как false.",
+                        null=True,
+                    ),
+                ),
                 ("requirements", models.CharField(max_length=150)),
-                ("status", models.CharField(max_length=150)),
+                (
+                    "status",
+                    models.CharField(
+                        help_text="активность на основе системы заявок", max_length=150
+                    ),
+                ),
+                (
+                    "datalink",
+                    models.TextField(
+                        blank=True,
+                        help_text="адрес фактического размещения на физическом носителе, если информация настолько велика, что не может храниться внутри БД.",
+                    ),
+                ),
+                (
+                    "doc_type",
+                    models.CharField(
+                        help_text="тип документа (паспорт/паспорт 1 страница и т д) в соответствии с классификатором типов документов (см описание в Requirements)",
+                        max_length=150,
+                    ),
+                ),
+                (
+                    "is_global",
+                    models.CharField(
+                        help_text="доступны ли документы для хранения в глобальном сервисе/нужна синхронизация",
+                        max_length=1,
+                    ),
+                ),
+                (
+                    "is_visible",
+                    models.CharField(
+                        help_text="доступна ли информация о наличии документов для планирования в цепочке с другими услугами в глобальном сервисе",
+                        max_length=1,
+                    ),
+                ),
+                (
+                    "checked_by",
+                    models.ForeignKey(
+                        help_text="userid проверившего",
+                        null=True,
+                        on_delete=django.db.models.deletion.DO_NOTHING,
+                        related_name="checked_by",
+                        to=settings.AUTH_USER_MODEL,
+                    ),
+                ),
                 (
                     "ticket_status",
                     models.ForeignKey(
+                        help_text="id последнего актуального тикета, касающийся статуса. Если он меняет статус на закрытый - вызывается проверка, которая смотрит, нет ли другого открытого по пользователю.",
                         on_delete=django.db.models.deletion.DO_NOTHING,
                         to="tickets.task",
                     ),
                 ),
+                (
+                    "user_id",
+                    models.ForeignKey(
+                        help_text="уникальный идентификатор пользователя (конкретного клиентского аккаунта) являющегося владельцем данного документа",
+                        on_delete=django.db.models.deletion.DO_NOTHING,
+                        related_name="user_id",
+                        to=settings.AUTH_USER_MODEL,
+                    ),
+                ),
             ],
             options={
                 "db_table": "documents",

+ 3 - 3
models.py

@@ -21,12 +21,12 @@ class Documents(models.Model):
     status = models.CharField(max_length=150, help_text="активность на основе системы заявок")
     ticket_status = models.ForeignKey(Task, on_delete=models.DO_NOTHING, help_text="id последнего актуального тикета, касающийся статуса. Если он меняет статус на закрытый - вызывается проверка, которая смотрит, нет ли другого открытого по пользователю.")
     datalink = models.TextField(blank=True, help_text="адрес фактического размещения на физическом носителе, если информация настолько велика, что не может храниться внутри БД.")
-    doc_type = models.CharField(help_text="тип документа (паспорт/паспорт 1 страница и т д) в соответствии с классификатором типов документов (см описание в Requirements)")
-    user_id = models.ForeignKey(SharixUser, on_delete=models.DO_NOTHING, help_text="уникальный идентификатор пользователя (конкретного клиентского аккаунта) являющегося владельцем данного документа")
+    doc_type = models.CharField(max_length=150, help_text="тип документа (паспорт/паспорт 1 страница и т д) в соответствии с классификатором типов документов (см описание в Requirements)")
+    user_id = models.ForeignKey(SharixUser, related_name="user_id", on_delete=models.DO_NOTHING, help_text="уникальный идентификатор пользователя (конкретного клиентского аккаунта) являющегося владельцем данного документа")
     company_id = models.ForeignKey("Company", on_delete=models.DO_NOTHING, null=True, help_text="идентификатор компании, к которой относится документ, если таковая есть (может не быть)")
     is_global = models.CharField(max_length=1, help_text="доступны ли документы для хранения в глобальном сервисе/нужна синхронизация")
     is_visible = models.CharField(max_length=1, help_text="доступна ли информация о наличии документов для планирования в цепочке с другими услугами в глобальном сервисе")
-    checked_by = models.ForeignKey(SharixUser, on_delete=models.DO_NOTHING, null=True, help_text="userid проверившего")
+    checked_by = models.ForeignKey(SharixUser, related_name="checked_by", on_delete=models.DO_NOTHING, null=True, help_text="userid проверившего")
 
     class Meta:
         db_table = "documents"