diff --git a/otterwiki/preferences.py b/otterwiki/preferences.py index dff7e94..139b183 100644 --- a/otterwiki/preferences.py +++ b/otterwiki/preferences.py @@ -134,6 +134,10 @@ def handle_sidebar_preferences(form): _update_preference( "SIDEBAR_MENUTREE_MODE", form.get("sidebar_menutree_mode", "") ) + for checkbox in [ + "sidebar_menutree_ignore_case", + ]: + _update_preference(checkbox.upper(), form.get(checkbox, "False")) # commit changes to the database db.session.commit() update_app_config() diff --git a/otterwiki/server.py b/otterwiki/server.py index 5eafcd5..aa2e7b1 100644 --- a/otterwiki/server.py +++ b/otterwiki/server.py @@ -47,6 +47,7 @@ SQLALCHEMY_TRACK_MODIFICATIONS=False, MINIFY_HTML=True, SIDEBAR_MENUTREE_MODE="SORTED", + SIDEBAR_MENUTREE_IGNORE_CASE=False, SIDEBAR_MENUTREE_MAXDEPTH="", SIDEBAR_CUSTOM_MENU="", COMMIT_MESSAGE="REQUIRED", # OPTIONAL DIISABLED @@ -135,6 +136,7 @@ def update_app_config(): "NOTIFY_ADMINS_ON_REGISTER", "NOTIFY_USER_ON_APPROVAL", "RETAIN_PAGE_NAME_CASE", + "SIDEBAR_MENUTREE_IGNORE_CASE", "GIT_WEB_SERVER", "HIDE_LOGO", ] or item.name.upper().startswith("SIDEBAR_SHORTCUT_"): diff --git a/otterwiki/sidebar.py b/otterwiki/sidebar.py index c96e43c..55e007f 100644 --- a/otterwiki/sidebar.py +++ b/otterwiki/sidebar.py @@ -107,9 +107,18 @@ def order_tree( # convert OrderedDict into list entries = list(tree.items()) # decide sort_key lambda on mode - sort_key = lambda k: (True, str.lower(k[0])) + if app.config["SIDEBAR_MENUTREE_IGNORE_CASE"]: + sort_key = lambda k: (True, str.lower(k[0])) + else: + sort_key = lambda k: (True, k[0]) if self.mode in ["DIRECTORIES_GROUPED"]: - sort_key = lambda k: (len(k[1]["children"]) == 0, str.lower(k[0])) + if app.config["SIDEBAR_MENUTREE_IGNORE_CASE"]: + sort_key = lambda k: ( + len(k[1]["children"]) == 0, + str.lower(k[0]), + ) + else: + sort_key = lambda k: (len(k[1]["children"]) == 0, k[0]) # sort entries filtered_list = sorted(entries, key=sort_key) # filter entries diff --git a/otterwiki/templates/admin/sidebar_preferences.html b/otterwiki/templates/admin/sidebar_preferences.html index a43b4bd..eef2c5c 100644 --- a/otterwiki/templates/admin/sidebar_preferences.html +++ b/otterwiki/templates/admin/sidebar_preferences.html @@ -67,13 +67,23 @@

Custom Menu

{##}

Page Index

- +
+{##} +{%if config.RETAIN_PAGE_NAME_CASE %} +
+
+ + +
+
+{% endif %} +{##}