Implement exchange imports and frontend reporting APIs
Some checks failed
CI/CD Pipeline / Code Quality Checks (push) Failing after 3m50s
CI/CD Pipeline / Run Tests (push) Successful in 3m57s
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-04-07 16:31:04 +02:00
parent 76a86d0b20
commit 697ecb7d1c
155 changed files with 5604 additions and 346 deletions

View File

@@ -1,9 +1,10 @@
"""Админка формы Ф-6."""
from django.contrib import admin
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)
@@ -68,7 +69,13 @@ class FormF6RecordAdmin(
"physical_wear_percent",
"created_at",
]
list_filter = ["report_year", "report_quarter", "is_active_version", "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",
@@ -86,7 +93,15 @@ class FormF6RecordAdmin(
fieldsets = [
(
"Основная информация",
{"fields": ["id", "organization", "load_batch", "report_year", "report_quarter"]},
{
"fields": [
"id",
"organization",
"load_batch",
"report_year",
"report_quarter",
]
},
),
(
"Версия записи",

View File

@@ -2,6 +2,12 @@
import logging
from rest_framework import status
from rest_framework.parsers import MultiPartParser
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
from apps.core.viewsets import ReadOnlyViewSet
from apps.form_6.models import FormF6Record
from apps.form_6.serializers import (
@@ -12,11 +18,6 @@ from apps.form_6.serializers import (
)
from apps.form_6.services import parse_form_f6_file
from apps.form_6.tasks import process_form_f6_file
from rest_framework import status
from rest_framework.parsers import MultiPartParser
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
logger = logging.getLogger(__name__)
BACKGROUND_THRESHOLD = 1024 * 1024

View File

@@ -7,11 +7,12 @@
import uuid
from apps.core.mixins import ReportingPeriodMixin, TimestampMixin
from apps.organization.models import Organization
from django.db import models
from django.utils.translation import gettext_lazy as _
from apps.core.mixins import ReportingPeriodMixin, TimestampMixin
from apps.organization.models import Organization
class FormF6Record(ReportingPeriodMixin, TimestampMixin, models.Model):
"""

View File

@@ -1,8 +1,9 @@
"""Сериализаторы формы Ф-6."""
from rest_framework import serializers
from apps.form_6.models import FormF6Record
from apps.organization.serializers import OrganizationSerializer
from rest_framework import serializers
class FormF6RecordSerializer(serializers.ModelSerializer):

View File

@@ -9,6 +9,9 @@
import logging
from typing import Any
from django.db import transaction
from django.db.models import Count, Max
from apps.core.excel import (
BaseExcelParser,
ColumnMapping,
@@ -19,8 +22,6 @@ from apps.core.reporting import ReportingPeriodParserMixin, VersionedReportServi
from apps.core.services import BaseService, BulkOperationsMixin
from apps.form_6.models import FormF6Record
from apps.organization.services import OrganizationService
from django.db import transaction
from django.db.models import Count, Max
logger = logging.getLogger(__name__)

View File

@@ -3,9 +3,10 @@
import logging
from io import BytesIO
from celery import shared_task
from apps.core.tasks import TrackedTask
from apps.form_6.services import FormF6Parser
from celery import shared_task
logger = logging.getLogger(__name__)

View File

@@ -1,9 +1,10 @@
"""URL маршруты формы Ф-6."""
from apps.form_6.api import FormF6RecordViewSet, FormF6UploadView
from django.urls import include, path
from rest_framework.routers import DefaultRouter
from apps.form_6.api import FormF6RecordViewSet, FormF6UploadView
router = DefaultRouter()
router.register("records", FormF6RecordViewSet, basename="form-f6-records")