Skip to content

Commit 45bd49d

Browse files
committed
Disable editing any rank tree relationships
1 parent 97c66dd commit 45bd49d

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

specifyweb/stored_queries/batch_edit.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717
Union,
1818
Literal,
1919
)
20+
2021
from specifyweb.permissions.permissions import has_target_permission
2122
from specifyweb.specify.filter_by_col import CONCRETE_HIERARCHY
2223
from specifyweb.specify.models import datamodel
2324
from specifyweb.specify.load_datamodel import Field, Relationship, Table
2425
from specifyweb.specify.datamodel import is_tree_table
2526
from specifyweb.specify.tree_views import get_all_tree_information, TREE_INFORMATION
27+
from specifyweb.specify.tree_utils import SPECIFY_TREES
2628
from specifyweb.stored_queries.execution import execute
2729
from specifyweb.stored_queries.queryfield import QueryField, fields_from_json
2830
from specifyweb.stored_queries.queryfieldspec import (
@@ -954,10 +956,14 @@ def _to_upload_plan(rel_name: str, _self: "RowPlanCanonical"):
954956
]
955957
all_headers = [*raw_headers, *to_one_headers, *to_many_headers]
956958

959+
def _is_anyrank_tree_relationship(name, value):
960+
return name.lower() in SPECIFY_TREES and not isinstance(value, TreeRecord)
961+
957962
def _relationship_is_editable(name, value):
958963
return (
959964
Func.is_not_empty(name, value)
960965
and name not in readonly_rels
966+
and not _is_anyrank_tree_relationship(name, value)
961967
and not omit_relationships
962968
)
963969

0 commit comments

Comments
 (0)