Refactor registers to flat membership model and move apps to root
Some checks failed
CI/CD Pipeline / Code Quality Checks (push) Failing after 2m12s
CI/CD Pipeline / Run Tests (push) Failing after 2m14s
CI/CD Pipeline / Run API Inventory E2E Tests (push) Has been skipped
CI/CD Pipeline / Telegram Notify Success (push) Has been skipped

This commit is contained in:
2026-04-22 13:33:33 +02:00
parent c26df87d80
commit 1249071a33
49 changed files with 221 additions and 391 deletions

View File

@@ -28,7 +28,7 @@ from apps.parsers.models import (
ManufacturerRecord,
ProcurementRecord,
)
from apps.registers.models import (
from registers.models import (
Organization,
Register,
RegisterUpload,
@@ -37,7 +37,7 @@ from apps.registers.models import (
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
from django.conf import settings
from django.db import IntegrityError, transaction
from django.db.models import Model, Q
from django.db.models import Model
from django.utils import timezone
@@ -127,8 +127,7 @@ class BackupExportService:
@classmethod
def _get_active_organization_ids(cls, actual_date: date) -> list[int]:
return list(
RegistryMembershipPeriod.objects.filter(started_at__lte=actual_date)
.filter(Q(ended_at__isnull=True) | Q(ended_at__gt=actual_date))
RegistryMembershipPeriod.objects.all()
.values_list("organization_id", flat=True)
.distinct()
)
@@ -140,16 +139,17 @@ class BackupExportService:
actual_date: date,
active_org_ids: list[int],
) -> dict:
active_periods = RegistryMembershipPeriod.objects.filter(
active_memberships = RegistryMembershipPeriod.objects.filter(
organization_id__in=active_org_ids,
started_at__lte=actual_date,
).filter(Q(ended_at__isnull=True) | Q(ended_at__gt=actual_date))
)
register_ids = list(
active_periods.values_list("registry_id", flat=True).distinct()
active_memberships.values_list("registry_id", flat=True).distinct()
)
upload_ids = list(
active_periods.values_list("started_by_upload_id", flat=True).distinct()
RegisterUpload.objects.filter(registry_id__in=register_ids)
.values_list("id", flat=True)
.distinct()
)
reports_qs = FinancialReport.objects.filter(
@@ -165,10 +165,9 @@ class BackupExportService:
RegisterUpload: RegisterUpload.objects.filter(id__in=upload_ids).order_by(
"id"
),
RegistryMembershipPeriod: active_periods.order_by(
RegistryMembershipPeriod: active_memberships.order_by(
"registry_id",
"organization_id",
"started_at",
),
IndustrialCertificateRecord: IndustrialCertificateRecord.objects.filter(
registry_organization_id__in=active_org_ids