Skip to content

Commit

Permalink
OpenConceptLab/ocl_issues#1664 | mapping/concept create to verify par…
Browse files Browse the repository at this point in the history
…ent autoid seq next valiud id
  • Loading branch information
snyaggarwal committed Sep 29, 2023
1 parent b72d955 commit f25cc2e
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 8 deletions.
23 changes: 16 additions & 7 deletions core/concepts/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -697,13 +697,22 @@ def persist_new(cls, data, user=None, create_initial_version=True, create_parent
concept.set_locales(names, ConceptName)
concept.set_locales(descriptions, ConceptDescription)

parent_resource = concept.parent
parent = concept.parent
if startswith_temp_version(concept.mnemonic):
concept.name = concept.mnemonic = parent_resource.concept_mnemonic_next or str(concept.id)
next_valid_seq = parent.concept_mnemonic_next # returns str of int or None
if parent.is_sequential_concepts_mnemonic:
try:
available_next = int(parent.get_max_concept_mnemonic())
if available_next and available_next >= int(next_valid_seq):
PostgresQL.update_seq(parent.concepts_mnemonic_seq_name, available_next)
next_valid_seq = parent.concept_mnemonic_next
except: # pylint: disable=bare-except
pass
concept.name = concept.mnemonic = next_valid_seq or str(concept.id)
if not concept.external_id:
concept.external_id = parent_resource.concept_external_id_next
concept.external_id = parent.concept_external_id_next
concept.is_latest_version = not create_initial_version
concept.public_access = parent_resource.public_access
concept.public_access = parent.public_access
concept.save()
concept.full_clean()

Expand All @@ -713,9 +722,9 @@ def persist_new(cls, data, user=None, create_initial_version=True, create_parent
if initial_version.id:
initial_version.set_locales(names, ConceptName)
initial_version.set_locales(descriptions, ConceptDescription)
initial_version.sources.set([parent_resource])
initial_version.sources.set([parent])

concept.sources.set([parent_resource])
concept.sources.set([parent])
if get(settings, 'TEST_MODE', False):
update_mappings_concept(concept.id)
else:
Expand All @@ -731,7 +740,7 @@ def persist_new(cls, data, user=None, create_initial_version=True, create_parent
queue='concurrent'
)
if create_initial_version and concept._counted is True:
parent_resource.update_concepts_count()
parent.update_concepts_count()
concept.set_checksums()
except ValidationError as ex:
if concept.id:
Expand Down
11 changes: 10 additions & 1 deletion core/mappings/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,16 @@ def persist_new(cls, data, user):
mapping.is_latest_version = False
parent = mapping.parent
if mapping.mnemonic == temp_version:
mapping.mnemonic = parent.mapping_mnemonic_next or str(mapping.id)
next_valid_seq = parent.mapping_mnemonic_next # returns str of int or None
if parent.is_sequential_mappings_mnemonic:
try:
available_next = int(parent.get_max_mapping_mnemonic())
if available_next and available_next >= int(next_valid_seq):
PostgresQL.update_seq(parent.mappings_mnemonic_seq_name, available_next)
next_valid_seq = parent.mapping_mnemonic_next
except: # pylint: disable=bare-except
pass
mapping.mnemonic = next_valid_seq or str(mapping.id)
if not mapping.external_id:
mapping.external_id = parent.mapping_external_id_next
mapping.public_access = parent.public_access
Expand Down

0 comments on commit f25cc2e

Please sign in to comment.