Add initial implementations for forms and organization apps with serializers, factories, and admin configurations
Some checks failed
CI/CD Pipeline / Run Tests (push) Failing after 45s
CI/CD Pipeline / Code Quality Checks (push) Failing after 48s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
CI/CD Pipeline / Deploy to Server (push) Has been skipped

This commit is contained in:
2026-03-28 18:23:06 +01:00
parent 8ed3e1175c
commit 345b1d0cc8
201 changed files with 15097 additions and 6691 deletions

View File

@@ -1,39 +1,157 @@
"""Админка формы Ф-6."""
from apps.core.admin_mixins import HiddenFromAdminIndexMixin
from apps.core.admin_paper_forms import PaperFormPreviewAdminMixin
from apps.form_6.models import FormF6Record
from django.contrib import admin
@admin.register(FormF6Record)
class FormF6RecordAdmin(admin.ModelAdmin):
class FormF6RecordAdmin(
HiddenFromAdminIndexMixin,
PaperFormPreviewAdminMixin,
admin.ModelAdmin,
):
"""Админка записей формы Ф-6."""
paper_form_title = "Форма Ф-6. Возрастная структура оборудования"
paper_form_sections = (
("Категоризация", ("row_code", "category")),
(
"Общие данные",
(
"total_equipment",
"domestic_equipment",
"imported_equipment",
),
),
(
"Возрастная структура",
(
"age_under_5",
"age_5_10",
"age_10_15",
"age_15_20",
"age_over_20",
),
),
(
"С ЧПУ по возрасту",
(
"cnc_total",
"cnc_under_5",
"cnc_5_10",
"cnc_10_15",
"cnc_15_20",
"cnc_over_20",
),
),
(
"Показатели использования",
(
"avg_shift_work",
"utilization_rate",
"physical_wear_percent",
),
),
("Потребности", ("workplaces_without_equipment", "equipment_to_replace")),
)
list_display = [
"organization", "load_batch", "row_code", "category",
"total_equipment", "physical_wear_percent", "created_at",
"organization",
"report_period_admin",
"version_status_admin",
"load_batch",
"row_code",
"category",
"total_equipment",
"physical_wear_percent",
"created_at",
]
list_filter = ["load_batch", "created_at"]
list_filter = ["report_year", "report_quarter", "is_active_version", "load_batch", "created_at"]
search_fields = ["organization__name", "organization__inn", "row_code", "category"]
readonly_fields = ["id", "created_at", "updated_at"]
readonly_fields = [
"id",
"created_at",
"updated_at",
"paper_form_preview",
"report_period_admin",
"version_status_admin",
"superseded_at",
"superseded_by_batch",
]
raw_id_fields = ["organization"]
ordering = ["-created_at"]
ordering = ["-is_active_version", "-report_year", "-report_quarter", "-created_at"]
fieldsets = [
("Основная информация", {"fields": ["id", "organization", "load_batch"]}),
(
"Основная информация",
{"fields": ["id", "organization", "load_batch", "report_year", "report_quarter"]},
),
(
"Версия записи",
{
"fields": [
"report_period_admin",
"version_status_admin",
"superseded_at",
"superseded_by_batch",
],
},
),
("Категоризация", {"fields": ["row_code", "category"]}),
("Общие данные", {
"fields": ["total_equipment", "domestic_equipment", "imported_equipment"],
}),
("Возрастная структура", {
"fields": ["age_under_5", "age_5_10", "age_10_15", "age_15_20", "age_over_20"],
}),
("С ЧПУ по возрасту", {
"fields": ["cnc_total", "cnc_under_5", "cnc_5_10", "cnc_10_15", "cnc_15_20", "cnc_over_20"],
"classes": ["collapse"],
}),
("Показатели использования", {
"fields": ["avg_shift_work", "utilization_rate", "physical_wear_percent"],
}),
("Потребности", {"fields": ["workplaces_without_equipment", "equipment_to_replace"]}),
("Системные поля", {"fields": ["created_at", "updated_at"], "classes": ["collapse"]}),
(
"Общие данные",
{
"fields": [
"total_equipment",
"domestic_equipment",
"imported_equipment",
],
},
),
(
"Возрастная структура",
{
"fields": [
"age_under_5",
"age_5_10",
"age_10_15",
"age_15_20",
"age_over_20",
],
},
),
(
"С ЧПУ по возрасту",
{
"fields": [
"cnc_total",
"cnc_under_5",
"cnc_5_10",
"cnc_10_15",
"cnc_15_20",
"cnc_over_20",
],
"classes": ["collapse"],
},
),
(
"Показатели использования",
{
"fields": [
"avg_shift_work",
"utilization_rate",
"physical_wear_percent",
],
},
),
(
"Потребности",
{"fields": ["workplaces_without_equipment", "equipment_to_replace"]},
),
(
"Системные поля",
{"fields": ["created_at", "updated_at"], "classes": ["collapse"]},
),
]