Add support for sorting the results of a menu alphabetically.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -150,7 +150,7 @@ class Menu(object):
|
|||||||
)
|
)
|
||||||
return resolved_navigation_object_list
|
return resolved_navigation_object_list
|
||||||
|
|
||||||
def resolve(self, context, source=None):
|
def resolve(self, context, source=None, sort_results=False):
|
||||||
if not self.check_condition(context=context):
|
if not self.check_condition(context=context):
|
||||||
return []
|
return []
|
||||||
|
|
||||||
@@ -250,6 +250,13 @@ class Menu(object):
|
|||||||
result.append(resolved_links)
|
result.append(resolved_links)
|
||||||
|
|
||||||
if result:
|
if result:
|
||||||
|
if sort_results:
|
||||||
|
result[0] = sorted(
|
||||||
|
result[0], key=lambda item: (
|
||||||
|
item.link.text if isinstance(item, ResolvedLink) else item.label
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else:
|
||||||
# Sort links by position value passed during bind
|
# Sort links by position value passed during bind
|
||||||
result[0] = sorted(
|
result[0] = sorted(
|
||||||
result[0], key=lambda item: (self.link_positions.get(item.link) or 0) if isinstance(item, ResolvedLink) else (self.link_positions.get(item) or 0)
|
result[0], key=lambda item: (self.link_positions.get(item.link) or 0) if isinstance(item, ResolvedLink) else (self.link_positions.get(item) or 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user