143 lines
5.6 KiB
Python
143 lines
5.6 KiB
Python
# Generated by Django 5.2.4 on 2026-02-27 21:30
|
||
|
||
import django.db.models.deletion
|
||
import filer.fields.file
|
||
from django.conf import settings
|
||
from django.db import migrations, models
|
||
|
||
|
||
class Migration(migrations.Migration):
|
||
dependencies = [
|
||
("documents", "0003_change_sent_to_all_default"),
|
||
("employees", "0041_alter_departmentpermission_code"),
|
||
("filer", "0018_alter_file_options"),
|
||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||
]
|
||
|
||
operations = [
|
||
migrations.CreateModel(
|
||
name="DocumentV2",
|
||
fields=[
|
||
(
|
||
"id",
|
||
models.BigAutoField(
|
||
auto_created=True,
|
||
primary_key=True,
|
||
serialize=False,
|
||
verbose_name="ID",
|
||
),
|
||
),
|
||
("title", models.CharField(max_length=255, verbose_name="Название")),
|
||
("description", models.TextField(blank=True, verbose_name="Описание")),
|
||
(
|
||
"uploaded_at",
|
||
models.DateTimeField(
|
||
auto_now_add=True, verbose_name="Дата загрузки"
|
||
),
|
||
),
|
||
(
|
||
"sent_to_all",
|
||
models.BooleanField(
|
||
default=True,
|
||
help_text="Если включено — уведомление получат все активные сотрудники",
|
||
verbose_name="Разослать всем",
|
||
),
|
||
),
|
||
(
|
||
"departments",
|
||
models.ManyToManyField(
|
||
blank=True,
|
||
help_text="Документ будет доступен всем сотрудникам выбранных отделов (включая будущих)",
|
||
related_name="documents_v2",
|
||
to="employees.department",
|
||
verbose_name="Отделы-получатели",
|
||
),
|
||
),
|
||
(
|
||
"file",
|
||
filer.fields.file.FilerFileField(
|
||
blank=True,
|
||
help_text="Файл, загруженный через django-filer",
|
||
null=True,
|
||
on_delete=django.db.models.deletion.SET_NULL,
|
||
related_name="documents",
|
||
to="filer.file",
|
||
verbose_name="Файл",
|
||
),
|
||
),
|
||
(
|
||
"recipients",
|
||
models.ManyToManyField(
|
||
blank=True,
|
||
help_text="Если `Разослать всем` отключено, документ пойдет только этим",
|
||
related_name="document_recipients_v2",
|
||
to=settings.AUTH_USER_MODEL,
|
||
verbose_name="Получатели",
|
||
),
|
||
),
|
||
(
|
||
"uploaded_by",
|
||
models.ForeignKey(
|
||
blank=True,
|
||
null=True,
|
||
on_delete=django.db.models.deletion.SET_NULL,
|
||
related_name="uploaded_documents_v2",
|
||
to=settings.AUTH_USER_MODEL,
|
||
verbose_name="Загрузил",
|
||
),
|
||
),
|
||
],
|
||
options={
|
||
"verbose_name": "Документ v2",
|
||
"verbose_name_plural": "Документы v2",
|
||
"db_table": "documents_documentv2",
|
||
"ordering": ["-uploaded_at"],
|
||
},
|
||
),
|
||
migrations.CreateModel(
|
||
name="DocumentAcknowledgementV2",
|
||
fields=[
|
||
(
|
||
"id",
|
||
models.BigAutoField(
|
||
auto_created=True,
|
||
primary_key=True,
|
||
serialize=False,
|
||
verbose_name="ID",
|
||
),
|
||
),
|
||
(
|
||
"acknowledged_at",
|
||
models.DateTimeField(
|
||
auto_now_add=True, verbose_name="Время ознакомления"
|
||
),
|
||
),
|
||
(
|
||
"user",
|
||
models.ForeignKey(
|
||
on_delete=django.db.models.deletion.CASCADE,
|
||
related_name="document_acknowledgements_v2",
|
||
to=settings.AUTH_USER_MODEL,
|
||
verbose_name="Сотрудник",
|
||
),
|
||
),
|
||
(
|
||
"document",
|
||
models.ForeignKey(
|
||
on_delete=django.db.models.deletion.CASCADE,
|
||
related_name="acknowledgements",
|
||
to="documents.documentv2",
|
||
verbose_name="Документ",
|
||
),
|
||
),
|
||
],
|
||
options={
|
||
"verbose_name": "Ознакомление с документом v2",
|
||
"verbose_name_plural": "Ознакомления с документами v2",
|
||
"db_table": "documents_documentacknowledgementv2",
|
||
"ordering": ["-acknowledged_at"],
|
||
"unique_together": {("document", "user")},
|
||
},
|
||
),
|
||
]
|