Skip to content

Commit 3da17fc

Browse files
authored
Merge pull request #20928 from mvdbeek/fix_sort_order_extended_metadata
[25.0] Fix collection element sorting in extended_metadata
2 parents c254d6c + e76e2f6 commit 3da17fc

File tree

5 files changed

+32
-13
lines changed

5 files changed

+32
-13
lines changed

client/src/api/schema/schema.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10656,6 +10656,11 @@ export interface components {
1065610656
* @enum {string}
1065710657
*/
1065810658
sort_key: "filename" | "name" | "designation" | "dbkey";
10659+
/**
10660+
* Sort Reverse
10661+
* @default false
10662+
*/
10663+
sort_reverse: boolean;
1065910664
/** Visible */
1066010665
visible: boolean;
1066110666
};

lib/galaxy/tool_util/parser/output_collection_def.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ class FilePatternDatasetCollectionDescription(DatasetCollectionDescription):
159159
discover_via = "pattern"
160160
sort_key: SortKeyT
161161
sort_comp: SortCompT
162+
sort_reverse: bool
162163
pattern: str
163164

164165
def __init__(self, **kwargs):
@@ -169,20 +170,25 @@ def __init__(self, **kwargs):
169170
if pattern in NAMED_PATTERNS:
170171
pattern = NAMED_PATTERNS[pattern]
171172
self.pattern = pattern
172-
self.sort_by = sort_by = kwargs.get("sort_by", DEFAULT_SORT_BY)
173-
if sort_by.startswith("reverse_"):
174-
self.sort_reverse = True
175-
sort_by = sort_by[len("reverse_") :]
173+
if "sort_by" not in kwargs and "sort_key" in kwargs and "sort_comp" in kwargs and "sort_reverse" in kwargs:
174+
self.sort_reverse = kwargs["sort_reverse"]
175+
self.sort_comp = kwargs["sort_comp"]
176+
self.sort_key = kwargs["sort_key"]
176177
else:
177-
self.sort_reverse = False
178-
if "_" in sort_by:
179-
sort_comp, sort_by = sort_by.split("_", 1)
180-
assert sort_comp in ["lexical", "numeric"]
181-
else:
182-
sort_comp = DEFAULT_SORT_COMP
183-
assert sort_by in ["filename", "name", "designation", "dbkey"]
184-
self.sort_key = sort_by
185-
self.sort_comp = sort_comp
178+
self.sort_by = sort_by = kwargs.get("sort_by", DEFAULT_SORT_BY)
179+
if sort_by.startswith("reverse_"):
180+
self.sort_reverse = True
181+
sort_by = sort_by[len("reverse_") :]
182+
else:
183+
self.sort_reverse = False
184+
if "_" in sort_by:
185+
sort_comp, sort_by = sort_by.split("_", 1)
186+
assert sort_comp in ["lexical", "numeric"]
187+
else:
188+
sort_comp = DEFAULT_SORT_COMP
189+
assert sort_by in ["filename", "name", "designation", "dbkey"]
190+
self.sort_key = sort_by
191+
self.sort_comp = sort_comp
186192

187193
def to_model(self) -> FilePatternDatasetCollectionDescriptionModel:
188194
return FilePatternDatasetCollectionDescriptionModel(
@@ -198,6 +204,7 @@ def to_model(self) -> FilePatternDatasetCollectionDescriptionModel:
198204
sort_comp=self.sort_comp,
199205
pattern=self.pattern,
200206
sort_by=self.sort_by,
207+
sort_reverse=self.sort_reverse,
201208
)
202209

203210
@property

lib/galaxy/tool_util_models/tool_outputs.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class FilePatternDatasetCollectionDescription(DatasetCollectionDescription):
6363
discover_via: Literal["pattern"]
6464
sort_key: SortKeyT
6565
sort_comp: SortCompT
66+
sort_reverse: bool = False
6667
pattern: str
6768

6869

lib/tool_shed/webapp/frontend/src/schema/schema.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1649,6 +1649,11 @@ export interface components {
16491649
* @enum {string}
16501650
*/
16511651
sort_key: "filename" | "name" | "designation" | "dbkey"
1652+
/**
1653+
* Sort Reverse
1654+
* @default false
1655+
*/
1656+
sort_reverse: boolean
16521657
/** Visible */
16531658
visible: boolean
16541659
}

test/integration/test_extended_metadata.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"implicit_conversion",
4545
"environment_variables",
4646
"all_output_types",
47+
"discover_sort_by",
4748
]
4849

4950

0 commit comments

Comments
 (0)