Skip to content

Fix Hierarchy calculation and comparison#3021

Draft
Jongmassey wants to merge 3 commits intomainfrom
Jongmassey/new-style-hierarchy-comparison
Draft

Fix Hierarchy calculation and comparison#3021
Jongmassey wants to merge 3 commits intomainfrom
Jongmassey/new-style-hierarchy-comparison

Conversation

@Jongmassey
Copy link
Copy Markdown
Contributor

WIP

Use same hierarchy calculation methods for cached hierarchy
and that calculated during compatibility checks
CodelistVersion._calculate_new_style_hierarchy() creates a hierarchy from a codelistversion's code_objs.
_create_version_with_codes() followed the logic of CodelistVersion._calculate_old_style_hierarchy() which creates a hierarchy from a codelistversion's codes.

The latter includes only included codes, the former includes excluded codes that are hierarchically related to the included.
Where the latter and the former are not equal then this can produce different hierarchies.

By no longer passing the old-style-calculated hierarchy (which is the only style of hierarchy we can calculate before we've got code_objs, and we need it to create the code_objs) to cache_hierarchy we force it to calculate a new-style one for us before caching it.

This ensures that the cached hierarchy is calculated in a manner consistent with the model's calculate_hierarchy()
Deleting a search can remove unresolved codes from a CodelistVersion's code_objs
These code_objs are used to calculate the CodelistVersion's Hierarchy
Therefore, if we change the code_objs, we should recalculate the cached hierarchy
@Jongmassey Jongmassey marked this pull request as draft April 9, 2026 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant