feat(admin): expand exchange admin and unify admin UX
Some checks failed
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 2m39s
CI/CD Pipeline / Run Tests (pull_request) Successful in 3m0s
CI/CD Pipeline / Run API Inventory E2E Tests (pull_request) Successful in 35s
CI/CD Pipeline / Telegram Notify Success (pull_request) Has been skipped
Some checks failed
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 2m39s
CI/CD Pipeline / Run Tests (pull_request) Successful in 3m0s
CI/CD Pipeline / Run API Inventory E2E Tests (pull_request) Successful in 35s
CI/CD Pipeline / Telegram Notify Success (pull_request) Has been skipped
This commit is contained in:
@@ -4,6 +4,7 @@ from datetime import date, timedelta
|
||||
from unittest.mock import patch
|
||||
|
||||
from apps.core.admin import BackgroundJobAdmin
|
||||
from apps.core.admin_dashboard import build_admin_dashboard
|
||||
from apps.core.models import BackgroundJob
|
||||
from apps.parsers.models import FinancialReport, FinancialReportLine, ParserLoadLog
|
||||
from django.contrib.admin.sites import AdminSite
|
||||
@@ -165,13 +166,26 @@ class AdminDashboardTest(TestCase):
|
||||
IndustrialCertificateRecordFactory(inn="7700000001")
|
||||
ManufacturerRecordFactory(inn="7700000002")
|
||||
InspectionRecordFactory(inn="7800000001")
|
||||
ProcurementRecordFactory(region_code="77", customer_inn="7700000001")
|
||||
ProcurementRecordFactory(region_code="77", customer_inn="7700000002")
|
||||
ProcurementRecordFactory(region_code="78", customer_inn="7800000001")
|
||||
ProcurementRecordFactory(
|
||||
load_batch=303,
|
||||
region_code="77",
|
||||
customer_inn="7700000001",
|
||||
)
|
||||
ProcurementRecordFactory(
|
||||
load_batch=303,
|
||||
region_code="77",
|
||||
customer_inn="7700000002",
|
||||
)
|
||||
ProcurementRecordFactory(
|
||||
load_batch=303,
|
||||
region_code="78",
|
||||
customer_inn="7800000001",
|
||||
)
|
||||
ProxyFactory(is_active=True)
|
||||
|
||||
ParserLoadLogFactory(
|
||||
source=ParserLoadLog.Source.PROCUREMENTS,
|
||||
batch_id=303,
|
||||
status="success",
|
||||
records_count=3,
|
||||
)
|
||||
@@ -185,6 +199,7 @@ class AdminDashboardTest(TestCase):
|
||||
response = self.client.get(reverse("admin:index"))
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertNotContains(response, "Mostovik")
|
||||
self.assertContains(response, "Панель данных и загрузок")
|
||||
self.assertContains(response, "Обзор")
|
||||
self.assertContains(response, "Аналитика")
|
||||
@@ -204,3 +219,65 @@ class AdminDashboardTest(TestCase):
|
||||
response,
|
||||
reverse("admin:parsers_financialreport_upload_excel"),
|
||||
)
|
||||
|
||||
def test_dashboard_source_cards_use_latest_successful_source_slice(self):
|
||||
InspectionRecordFactory(load_batch=101, registration_number="old-1")
|
||||
InspectionRecordFactory(load_batch=101, registration_number="old-2")
|
||||
InspectionRecordFactory(load_batch=202, registration_number="new-1")
|
||||
ParserLoadLogFactory(
|
||||
source=ParserLoadLog.Source.INSPECTIONS,
|
||||
batch_id=101,
|
||||
status=ParserLoadLog.Status.SUCCESS,
|
||||
records_count=2,
|
||||
)
|
||||
ParserLoadLogFactory(
|
||||
source=ParserLoadLog.Source.INSPECTIONS,
|
||||
batch_id=202,
|
||||
status=ParserLoadLog.Status.SUCCESS,
|
||||
records_count=1,
|
||||
)
|
||||
|
||||
dashboard = build_admin_dashboard()
|
||||
cards = {item["slug"]: item for item in dashboard["source_cards"]}
|
||||
|
||||
self.assertEqual(cards["planned-inspections"]["records_count"], 1)
|
||||
self.assertEqual(cards["planned-inspections"]["organizations_count"], 1)
|
||||
self.assertEqual(
|
||||
cards["planned-inspections"]["metrics_scope_label"],
|
||||
"Последний успешный срез",
|
||||
)
|
||||
|
||||
def test_dashboard_regions_use_latest_successful_procurements_batch(self):
|
||||
ProcurementRecordFactory(
|
||||
load_batch=11,
|
||||
purchase_number="1111111111111111111",
|
||||
region_code="77",
|
||||
customer_inn="7700000001",
|
||||
)
|
||||
ProcurementRecordFactory(
|
||||
load_batch=22,
|
||||
purchase_number="2222222222222222222",
|
||||
region_code="78",
|
||||
customer_inn="7800000001",
|
||||
)
|
||||
ParserLoadLogFactory(
|
||||
source=ParserLoadLog.Source.PROCUREMENTS,
|
||||
batch_id=11,
|
||||
status=ParserLoadLog.Status.SUCCESS,
|
||||
records_count=1,
|
||||
)
|
||||
ParserLoadLogFactory(
|
||||
source=ParserLoadLog.Source.PROCUREMENTS,
|
||||
batch_id=22,
|
||||
status=ParserLoadLog.Status.SUCCESS,
|
||||
records_count=1,
|
||||
)
|
||||
|
||||
dashboard = build_admin_dashboard()
|
||||
|
||||
self.assertEqual(len(dashboard["region_rows"]), 1)
|
||||
self.assertEqual(dashboard["region_rows"][0]["code"], "78")
|
||||
self.assertEqual(
|
||||
dashboard["region_rows_note"],
|
||||
"Показываем только последний успешный срез ЕИС закупок.",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user