From 50f344ce7294b7ed7ceac0a72da2356a7ed89559 Mon Sep 17 00:00:00 2001 From: Marcin Lulek Date: Thu, 7 Jul 2016 14:15:03 +0200 Subject: [PATCH] templateContext: allow for flexible way to communicate additional info for client code from controllers --- rhodecode/controllers/pullrequests.py | 3 +++ rhodecode/lib/base.py | 6 ++++++ rhodecode/lib/helpers.py | 1 + rhodecode/templates/base/root.html | 3 ++- 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/rhodecode/controllers/pullrequests.py b/rhodecode/controllers/pullrequests.py index 5a5bbe2a..c2213fbe 100644 --- a/rhodecode/controllers/pullrequests.py +++ b/rhodecode/controllers/pullrequests.py @@ -640,6 +640,9 @@ class PullrequestsController(BaseRepoController): pull_request_id = safe_int(pull_request_id) c.pull_request = PullRequest.get_or_404(pull_request_id) + if hasattr(c, 'pylons_dispatch_info'): + c.pylons_dispatch_info['extra']['pull_request'] = pull_request_id + # pull_requests repo_name we opened it against # ie. target_repo must match if repo_name != c.pull_request.target_repo.repo_name: diff --git a/rhodecode/lib/base.py b/rhodecode/lib/base.py index b4986bf7..d292c84a 100644 --- a/rhodecode/lib/base.py +++ b/rhodecode/lib/base.py @@ -425,6 +425,12 @@ class BaseController(WSGIController): _route_name = '.'.join([environ['pylons.routes_dict']['controller'], environ['pylons.routes_dict']['action']]) + c.pylons_dispatch_info = { + 'controller': environ['pylons.routes_dict']['controller'], + 'action': environ['pylons.routes_dict']['action'], + 'extra': {'plugins': {}} + } + self.rc_config = SettingsModel().get_all_settings(cache=True) self.ip_addr = get_ip_addr(environ) diff --git a/rhodecode/lib/helpers.py b/rhodecode/lib/helpers.py index 8a868ab3..547fadd3 100644 --- a/rhodecode/lib/helpers.py +++ b/rhodecode/lib/helpers.py @@ -69,6 +69,7 @@ from webhelpers2.number import format_byte_size from rhodecode.lib.annotate import annotate_highlight from rhodecode.lib.action_parser import action_parser +from rhodecode.lib.ext_json import json from rhodecode.lib.utils import repo_name_slug, get_custom_lexer from rhodecode.lib.utils2 import str2bool, safe_unicode, safe_str, \ get_commit_safe, datetime_to_time, time_to_datetime, time_to_utcdatetime, \ diff --git a/rhodecode/templates/base/root.html b/rhodecode/templates/base/root.html index c80c164f..99c6e568 100644 --- a/rhodecode/templates/base/root.html +++ b/rhodecode/templates/base/root.html @@ -45,7 +45,8 @@ timeago: { refresh_time: ${120 * 1000}, cutoff_limit: ${1000*60*60*24*7} - } + }, + dispatch_info: ${h.json.dumps(getattr(c, 'pylons_dispatch_info', {}))|n} }