make it easier to change order of sidebar items w/ the AdminExtension
diff --git a/Allura/allura/ext/admin/admin_main.py b/Allura/allura/ext/admin/admin_main.py
index 6e8232f..d250a70 100644
--- a/Allura/allura/ext/admin/admin_main.py
+++ b/Allura/allura/ext/admin/admin_main.py
@@ -172,7 +172,7 @@
for ep_name in sorted(g.entry_points['admin'].keys()):
admin_extension = g.entry_points['admin'][ep_name]
- admin_extension().update_project_sidebar_menu(links)
+ links = (admin_extension().update_project_sidebar_menu(links) or links)
return links
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index d881632..3bb389d 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -33,6 +33,7 @@
from hashlib import sha256
from base64 import b64encode
from datetime import datetime, timedelta
+import typing
import calendar
import six
@@ -60,6 +61,9 @@
from allura.tasks import activity_tasks
from allura.tasks.index_tasks import solr_del_project_artifacts
+if typing.TYPE_CHECKING:
+ from allura.app import SitemapEntry
+
log = logging.getLogger(__name__)
@@ -1800,7 +1804,7 @@
project_admin_controllers = {}
- def update_project_sidebar_menu(self, sidebar_links):
+ def update_project_sidebar_menu(self, sidebar_links: list['SitemapEntry']) -> list['SitemapEntry']:
"""
Implement this function to modify the project sidebar.
Check `c.project` if you want to limit when this displays
@@ -1811,7 +1815,7 @@
:rtype: ``None``
"""
- pass
+ return sidebar_links
class SiteAdminExtension:
diff --git a/ForgeImporters/forgeimporters/base.py b/ForgeImporters/forgeimporters/base.py
index bd07200..e66cce2 100644
--- a/ForgeImporters/forgeimporters/base.py
+++ b/ForgeImporters/forgeimporters/base.py
@@ -611,6 +611,7 @@
base_url = c.project.url() + 'admin/ext/'
link = SitemapEntry('Import', base_url + 'import/')
sidebar_links.append(link)
+ return sidebar_links
def bytesio_parser(page):