changeset 7601:c0b8d016cc3e

summary: fix odd code for allowing URI clone template to either be specified with {repo} or _{repoid} (Issue #336) Clarify that if the configured URI uses {repo}, then clone_uri_by_id must replace that with _{repoid}. Also, if the URI uses _{repoid}, it is _def_clone_uri that must be computed by replacing it with {node}.
author Mads Kiilerich <mads@kiilerich.com>
date Fri, 22 Mar 2019 02:21:57 +0100
parents e795ad3c7d51
children c7d9141b2576
files kallithea/controllers/summary.py
diffstat 1 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/controllers/summary.py	Sun Mar 24 03:40:34 2019 +0100
+++ b/kallithea/controllers/summary.py	Fri Mar 22 02:21:57 2019 +0100
@@ -119,10 +119,12 @@
             username = safe_str(request.authuser.username)
 
         _def_clone_uri = _def_clone_uri_by_id = c.clone_uri_tmpl
-        if '{repo}' in _def_clone_uri:
-            _def_clone_uri_by_id = _def_clone_uri.replace('{repo}', '_{repoid}')
-        elif '{repoid}' in _def_clone_uri:
-            _def_clone_uri_by_id = _def_clone_uri.replace('_{repoid}', '{repo}')
+        if '{repo}' in _def_clone_uri_by_id:
+            _def_clone_uri_by_id = _def_clone_uri_by_id.replace('{repo}', '_{repoid}')
+        elif '_{repoid}' in _def_clone_uri:
+            _def_clone_uri = _def_clone_uri.replace('_{repoid}', '{repo}')
+        else:
+            log.error("Configured clone_uri_tmpl %r has no '{repo}' or '_{repoid}' and cannot toggle to use repo id URLs", c.clone_uri_tmpl)
 
         c.clone_repo_url = c.db_repo.clone_url(user=username,
                                                 uri_tmpl=_def_clone_uri)