This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch db/8500
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 12ec02933d404f15305003573c422b697f316e12
Author: Dave Brondsema <[email protected]>
AuthorDate: Fri Feb 17 17:56:24 2023 -0500

    [#8500] turbogears upgrade adjustment & warnings; only ForgeBlog's 
test_related_artifacts surfaced this issue :(
---
 Allura/allura/config/app_cfg.py | 29 +++++++++++++++++++++++++----
 Allura/allura/model/index.py    | 15 ++++++++++++++-
 Allura/allura/model/session.py  |  2 +-
 3 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/Allura/allura/config/app_cfg.py b/Allura/allura/config/app_cfg.py
index c00f5ab81..89d3c1a88 100644
--- a/Allura/allura/config/app_cfg.py
+++ b/Allura/allura/config/app_cfg.py
@@ -32,12 +32,17 @@ import logging
 import sys
 
 import tg
+from tg.configuration import config
+from tg.configurator.application import ApplicationConfigurator
+from tg.configurator.components.mimetypes import 
MimeTypesConfigurationComponent
+from tg.configurator.components.paths import PathsConfigurationComponent
+from tg.configurator.components.app_globals import 
AppGlobalsConfigurationComponent
+from tg.configurator.components.helpers import HelpersConfigurationComponent
+from tg.configurator.components.dispatch import DispatchConfigurationComponent
+from tg.configurator.components.rendering import 
TemplateRenderingConfigurationComponent
 from tg.renderers.jinja import JinjaRenderer
 from tg.renderers.mako import MakoRenderer
 from tg.renderers.json import JSONRenderer
-from tg import MinimalApplicationConfigurator
-from tg.configurator.components.rendering import 
TemplateRenderingConfigurationComponent
-from tg.configuration import config
 
 import jinja2
 from markupsafe import Markup
@@ -52,7 +57,23 @@ from allura.lib.package_path_loader import PackagePathLoader
 log = logging.getLogger(__name__)
 
 
-class ForgeConfig(MinimalApplicationConfigurator):
+class MinimalApplicationConfiguratorNoRegistry(ApplicationConfigurator):
+    """
+    Copied from tg.MinimalApplicationConfigurator but without the registry
+    since we use RegistryManager in a specific part of our middleware already
+    """
+    def __init__(self):
+        super().__init__()
+        self.register(MimeTypesConfigurationComponent, after=False)
+        self.register(PathsConfigurationComponent, after=False)
+        self.register(DispatchConfigurationComponent, after=False)
+        self.register(AppGlobalsConfigurationComponent)
+        self.register(HelpersConfigurationComponent)
+        self.register(TemplateRenderingConfigurationComponent)
+        # self.register(RegistryConfigurationComponent, after=True)
+
+
+class ForgeConfig(MinimalApplicationConfiguratorNoRegistry):
 
     def __init__(self, root_controller=None):
         super().__init__()
diff --git a/Allura/allura/model/index.py b/Allura/allura/model/index.py
index f3b1852e5..028e00c0c 100644
--- a/Allura/allura/model/index.py
+++ b/Allura/allura/model/index.py
@@ -27,7 +27,8 @@ from six.moves.urllib.parse import unquote
 
 import bson
 import pymongo
-from tg import tmpl_context as c
+from tg import tmpl_context as c, config
+from tg.support.converters import asbool
 
 from ming import schema as S
 from ming.utils import LazyProperty
@@ -179,6 +180,12 @@ class Shortlink(MappedClass):
                     links_by_artifact[unquote(d['artifact'])].append(d)
                 else:
                     result[link] = parsed_links.pop(link)
+            if not project_ids:
+                msg = f"No project_id found in parsed_links, maybe c.project 
etc aren't set? {links}"
+                if asbool(config['debug']):
+                    raise ValueError(msg)
+                else:
+                    log.warning(msg)
             q = cls.query.find(
                 dict(
                     link={'$in': list(links_by_artifact.keys())},
@@ -248,6 +255,12 @@ class Shortlink(MappedClass):
             p_shortname = getattr(c.project, 'shortname', None)
             p_id = getattr(c.project, '_id', None)
             p_nbhd = c.project.neighborhood_id
+        if p_id is None:
+            msg = "c.project is not set"
+            if asbool(config['debug']):
+                raise ValueError(msg)
+            else:
+                log.warning(msg)
         if len(parts) == 3:
             p = Project.query.get(shortname=parts[0], neighborhood_id=p_nbhd)
             if p:
diff --git a/Allura/allura/model/session.py b/Allura/allura/model/session.py
index 738f4c805..15558dabe 100644
--- a/Allura/allura/model/session.py
+++ b/Allura/allura/model/session.py
@@ -24,10 +24,10 @@ from ming.odm.base import ObjectState
 from ming.odm.base import state
 from ming.odm.odmsession import ThreadLocalODMSession, SessionExtension
 from contextlib import contextmanager
+from tg import tmpl_context as c
 
 from allura.lib.utils import chunked_list
 from allura.tasks import index_tasks
-import six
 
 log = logging.getLogger(__name__)
 

Reply via email to