Skip to content

Commit 882ae30

Browse files
committed
Fix listing score set in experiment if these score sets' superseding score sets are unpublished yet. Haven't fixed the search score set codes.
1 parent 131e3b1 commit 882ae30

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

src/mavedb/routers/experiments.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,34 @@ def get_experiment_score_sets(
169169
.filter(~ScoreSet.superseding_score_set.has())
170170
.all()
171171
)
172+
superseding_score_sets = (
173+
db.query(ScoreSet)
174+
.filter(ScoreSet.experiment_id == experiment.id)
175+
.filter(ScoreSet.superseding_score_set.has())
176+
.all()
177+
)
178+
179+
updated_score_set_result = []
180+
for s in score_set_result:
181+
current_version = s
182+
while current_version:
183+
if current_version.superseded_score_set:
184+
if not has_permission(user_data, current_version, Action.READ).permitted:
185+
current_version = next(
186+
(sup for sup in superseding_score_sets if sup.urn == current_version.superseded_score_set.urn),
187+
None
188+
)
189+
else:
190+
break
191+
else:
192+
break
193+
if current_version:
194+
updated_score_set_result.append(current_version)
195+
else:
196+
updated_score_set_result.append(s)
197+
172198
score_set_result[:] = [
173-
score_set for score_set in score_set_result if has_permission(user_data, score_set, Action.READ).permitted
199+
score_set for score_set in updated_score_set_result if has_permission(user_data, score_set, Action.READ).permitted
174200
]
175201

176202
if not score_set_result:

0 commit comments

Comments
 (0)