fix(source-cards): scope counters to OPK organizations
This commit is contained in:
@@ -39,6 +39,7 @@ def _save_source_record(
|
||||
organization_name: str = "",
|
||||
title: str = "",
|
||||
payload: dict | None = None,
|
||||
opk_registry_membership: bool = True,
|
||||
) -> None:
|
||||
payload = dict(payload or {})
|
||||
if inn:
|
||||
@@ -46,6 +47,7 @@ def _save_source_record(
|
||||
create_directory_organization(
|
||||
name=organization_name or title or external_id,
|
||||
inn=inn,
|
||||
opk_registry_membership=opk_registry_membership,
|
||||
)
|
||||
else:
|
||||
rn_key = organization_name or title or external_id
|
||||
@@ -53,7 +55,10 @@ def _save_source_record(
|
||||
payload.setdefault("rn", rn)
|
||||
get_or_create_directory_organization(
|
||||
rn=rn,
|
||||
defaults={"name": organization_name or title or external_id},
|
||||
defaults={
|
||||
"name": organization_name or title or external_id,
|
||||
"opk_registry_membership": opk_registry_membership,
|
||||
},
|
||||
)
|
||||
OrganizationSourceIngestionService.save_records(
|
||||
source=source,
|
||||
@@ -441,6 +446,33 @@ class SourceCardServiceDatabaseTest(TestCase):
|
||||
def setUp(self):
|
||||
SourceCardService.clear_cache()
|
||||
|
||||
def test_source_card_counters_include_only_opk_organizations(self):
|
||||
_save_source_record(
|
||||
source=ParserLoadLog.Source.PROCUREMENTS_44FZ,
|
||||
external_id="opk-notice",
|
||||
inn="7701234567",
|
||||
organization_name="Организация ОПК",
|
||||
title="Закупка организации ОПК",
|
||||
)
|
||||
_save_source_record(
|
||||
source=ParserLoadLog.Source.PROCUREMENTS_44FZ,
|
||||
external_id="non-opk-notice",
|
||||
inn="7701234568",
|
||||
organization_name="Организация вне ОПК",
|
||||
title="Закупка организации вне ОПК",
|
||||
opk_registry_membership=False,
|
||||
)
|
||||
|
||||
card = SourceCardService.get_card("public-procurements")
|
||||
|
||||
source_item = next(
|
||||
item for item in card["source_items"] if item["code"] == "procurements_44fz"
|
||||
)
|
||||
self.assertEqual(source_item["records_count"], 1)
|
||||
self.assertEqual(source_item["organizations_count"], 1)
|
||||
self.assertEqual(card["records_count"], 1)
|
||||
self.assertEqual(card["organizations_count"], 1)
|
||||
|
||||
def test_enqueue_vacancy_refresh_reuses_fresh_active_job(self):
|
||||
existing = BackgroundJob.objects.create(
|
||||
task_id="active-vacancies",
|
||||
|
||||
@@ -53,6 +53,7 @@ def _save_source_record(
|
||||
name=organization_name or title or external_id,
|
||||
inn=inn,
|
||||
ogrn=ogrn,
|
||||
opk_registry_membership=True,
|
||||
)
|
||||
else:
|
||||
rn_key = organization_name or title or external_id
|
||||
@@ -60,7 +61,10 @@ def _save_source_record(
|
||||
payload["rn"] = rn
|
||||
get_or_create_directory_organization(
|
||||
rn=rn,
|
||||
defaults={"name": organization_name or title or external_id},
|
||||
defaults={
|
||||
"name": organization_name or title or external_id,
|
||||
"opk_registry_membership": True,
|
||||
},
|
||||
)
|
||||
OrganizationSourceIngestionService.save_records(
|
||||
source=source,
|
||||
|
||||
Reference in New Issue
Block a user