This is an automated email from the ASF dual-hosted git repository. brondsem pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/allura.git
commit cc183b6c9f8708ce98e67ec967267860fcb28ded Author: Dillon Walls <[email protected]> AuthorDate: Thu Mar 11 18:14:19 2021 -0500 added new app.sitemap_xml() that is used when generating sitemap.xml --- Allura/allura/app.py | 9 +++++++++ Allura/allura/model/project.py | 12 ++++++++++-- Allura/allura/scripts/create_sitemap_files.py | 2 +- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Allura/allura/app.py b/Allura/allura/app.py index fb59e52..fdd1fca 100644 --- a/Allura/allura/app.py +++ b/Allura/allura/app.py @@ -595,6 +595,15 @@ class Application(object): sitemap_without_children.append(sm_copy) return sitemap_without_children + def sitemap_xml(self): + """Return a list of :class:`SitemapEntries <allura.app.SitemapEntry>` + to add to the sitemap.xml for this Application. + + Default implementation returns the contents of :attr:`main_menu` + :return: + """ + return self.main_menu() + def sidebar_menu(self): """Return a list of :class:`SitemapEntries <allura.app.SitemapEntry>` to render in the left sidebar for this Application. diff --git a/Allura/allura/model/project.py b/Allura/allura/model/project.py index 5819a8f..1ce3e9d 100644 --- a/Allura/allura/model/project.py +++ b/Allura/allura/model/project.py @@ -524,7 +524,7 @@ class Project(SearchIndexable, MappedClass, ActivityNode, ActivityObject): return result def sitemap(self, excluded_tools=None, included_tools=None, - tools_only=False, per_tool_limit=SITEMAP_PER_TOOL_LIMIT): + tools_only=False, per_tool_limit=SITEMAP_PER_TOOL_LIMIT, xml=False): """ Return the project sitemap. @@ -542,6 +542,10 @@ class Project(SearchIndexable, MappedClass, ActivityNode, ActivityObject): Max number of entries included in the sitemap for a single tool type. Use `None` to include all. + :param bool xml: + If True, return sitemap entries for use in the sitemap.xml + instead of site navigation. + """ from allura.app import SitemapEntry entries = [] @@ -596,7 +600,11 @@ class Project(SearchIndexable, MappedClass, ActivityNode, ActivityObject): else: app = App(self, ac) if app.is_visible_to(c.user): - for sm in app.main_menu(): + if xml: + sms = app.sitemap_xml() + else: + sms = app.main_menu() + for sm in sms: entry = sm.bind_app(app) entry.tool_name = ac.tool_name entry.ui_icon = 'tool-%s' % entry.tool_name.lower() diff --git a/Allura/allura/scripts/create_sitemap_files.py b/Allura/allura/scripts/create_sitemap_files.py index 1eaeb07..d99914d 100644 --- a/Allura/allura/scripts/create_sitemap_files.py +++ b/Allura/allura/scripts/create_sitemap_files.py @@ -116,7 +116,7 @@ class CreateSitemapFiles(ScriptTask): for p in chunk: c.project = p try: - for s in p.sitemap(excluded_tools=options.exclude_tools): + for s in p.sitemap(excluded_tools=options.exclude_tools, xml=True): url = config['base_url'] + s.url if s.url[0] == '/' else s.url locs.append({'url': url, 'date': p.last_updated.strftime("%Y-%m-%d")})
