From 253507523078ce06c2a0a35a96b51f0d8122508c Mon Sep 17 00:00:00 2001 From: Sny Date: Wed, 24 Nov 2021 09:31:00 +0530 Subject: [PATCH] OpenConceptLab/ocl_issues#1122 | concept cascade | refactoring and cleaning up --- core/bundles/models.py | 2 +- core/concepts/models.py | 14 ++++++++------ core/concepts/views.py | 2 +- core/integration_tests/tests_concepts.py | 6 ++++-- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/core/bundles/models.py b/core/bundles/models.py index 032297ab0..4158fa21a 100644 --- a/core/bundles/models.py +++ b/core/bundles/models.py @@ -110,7 +110,7 @@ def set_total(self): def cascade(self): self.set_cascade_parameters() - result = self.root.get_cascaded_resources( + result = self.root.cascade( source_mappings=self.cascade_method == SOURCE_MAPPINGS, source_to_concepts=self.cascade_method == SOURCE_TO_CONCEPTS, mappings_criteria=self.mappings_criteria, diff --git a/core/concepts/models.py b/core/concepts/models.py index 9859971a6..7bc609f21 100644 --- a/core/concepts/models.py +++ b/core/concepts/models.py @@ -884,13 +884,14 @@ def delete(self, using=None, keep_parents=False): LocalizedText.objects.filter(description_locales=self).delete() return super().delete(using=using, keep_parents=keep_parents) - def get_cascaded_resources( # pylint: disable=too-many-arguments + def cascade( # pylint: disable=too-many-arguments self, source_mappings=True, source_to_concepts=True, mappings_criteria=None, cascade_mappings=True, cascade_hierarchy=True, cascade_levels='*', include_mappings=True, max_results=1000 ): - result = self.__get_cascaded_resources( - source_mappings, source_to_concepts, mappings_criteria, cascade_mappings, cascade_hierarchy, include_mappings + result = self.get_cascaded_resources( + source_mappings, source_to_concepts, mappings_criteria, + cascade_mappings, cascade_hierarchy, include_mappings ) cascaded = [] @@ -901,8 +902,9 @@ def iterate(level): if cascaded: not_cascaded = not_cascaded.exclude(id__in=cascaded) for concept in not_cascaded: - res = concept.__get_cascaded_resources( - source_mappings, source_to_concepts, mappings_criteria, cascade_mappings, cascade_hierarchy, include_mappings + res = concept.get_cascaded_resources( + source_mappings, source_to_concepts, mappings_criteria, + cascade_mappings, cascade_hierarchy, include_mappings ) cascaded.append(concept.id) result['concepts'] |= res['concepts'] @@ -913,7 +915,7 @@ def iterate(level): return result - def __get_cascaded_resources( + def get_cascaded_resources( # pylint: disable=too-many-arguments self, source_mappings=True, source_to_concepts=True, mappings_criteria=None, cascade_mappings=True, cascade_hierarchy=True, include_mappings=True ): diff --git a/core/concepts/views.py b/core/concepts/views.py index f7079aa76..bf650b29f 100644 --- a/core/concepts/views.py +++ b/core/concepts/views.py @@ -15,7 +15,7 @@ from core.bundles.serializers import BundleSerializer from core.common.constants import ( HEAD, INCLUDE_INVERSE_MAPPINGS_PARAM, INCLUDE_RETIRED_PARAM, ACCESS_TYPE_NONE) -from core.common.exceptions import Http409, Http400, Http405 +from core.common.exceptions import Http409, Http405 from core.common.mixins import ListWithHeadersMixin, ConceptDictionaryMixin from core.common.swagger_parameters import ( q_param, limit_param, sort_desc_param, page_param, exact_match_param, sort_asc_param, verbose_param, diff --git a/core/integration_tests/tests_concepts.py b/core/integration_tests/tests_concepts.py index c0cbfa3b6..2593946b1 100644 --- a/core/integration_tests/tests_concepts.py +++ b/core/integration_tests/tests_concepts.py @@ -972,7 +972,8 @@ def test_get_200(self): # pylint: disable=too-many-statements ]) ) - response = self.client.get(concept1.uri + '$cascade/?method=sourceToConcepts&mapTypes=map_type1&cascadeLevels=0') + response = self.client.get( + concept1.uri + '$cascade/?method=sourceToConcepts&mapTypes=map_type1&cascadeLevels=0') self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data['entry']), 3) @@ -985,7 +986,8 @@ def test_get_200(self): # pylint: disable=too-many-statements ]) ) - response = self.client.get(concept1.uri + '$cascade/?method=sourceToConcepts&excludeMapTypes=map_type1&cascadeLevels=0') + response = self.client.get( + concept1.uri + '$cascade/?method=sourceToConcepts&excludeMapTypes=map_type1&cascadeLevels=0') self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data['entry']), 2)