From 69034e86e31f17a800dcc78a56d85cd8830e93a1 Mon Sep 17 00:00:00 2001 From: Caroline D <108160931+CarolineDenis@users.noreply.github.com> Date: Wed, 23 Oct 2024 08:03:31 -0700 Subject: [PATCH] Hide tectonic tree for non paleo or geo disciplines Fixes #5334 --- specifyweb/specify/model_extras.py | 7 +++++++ specifyweb/specify/tree_views.py | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/specifyweb/specify/model_extras.py b/specifyweb/specify/model_extras.py index 17e02b5219..afbc92e2a0 100644 --- a/specifyweb/specify/model_extras.py +++ b/specifyweb/specify/model_extras.py @@ -145,11 +145,18 @@ class Meta: abstract = True PALEO_DISCIPLINES = {'paleobotany', 'invertpaleo', 'vertpaleo'} +GEOLOGY_DISCIPLINES = {'geology'} class Discipline(models.Model): def is_paleo(self): return self.type.lower() in PALEO_DISCIPLINES + def is_geo(self): + return self.type.lower() in GEOLOGY_DISCIPLINES + + def is_paleo_geo(self): + return self.is_paleo() or self.is_geo() + class Meta: abstract = True diff --git a/specifyweb/specify/tree_views.py b/specifyweb/specify/tree_views.py index 36c780aae2..5dda3f2153 100644 --- a/specifyweb/specify/tree_views.py +++ b/specifyweb/specify/tree_views.py @@ -31,10 +31,10 @@ GEO_TREES: Tuple[TREE_TABLE, ...] = ['Tectonicunit'] COMMON_TREES: Tuple[TREE_TABLE, ...] = ['Taxon', 'Storage', - 'Geography', *GEO_TREES] + 'Geography'] ALL_TRESS: Tuple[TREE_TABLE, ...] = [ - *COMMON_TREES, 'Geologictimeperiod', 'Lithostrat'] + *COMMON_TREES, 'Geologictimeperiod', 'Lithostrat', *GEO_TREES] def tree_mutation(mutation): @@ -456,10 +456,10 @@ def has_tree_read_permission(tree: TREE_TABLE) -> bool: return has_table_permission( request.specify_collection.id, request.specify_user.id, tree, 'read') - is_paleo_discipline = request.specify_collection.discipline.is_paleo() + is_paleo_or_geo_discipline = request.specify_collection.discipline.is_paleo_geo() accessible_trees = tuple(filter( - has_tree_read_permission, ALL_TRESS if is_paleo_discipline else COMMON_TREES)) + has_tree_read_permission, ALL_TRESS if is_paleo_or_geo_discipline else COMMON_TREES)) result = {}