changeset 2866:736678a8c881 beta

#518 multiple issues patterns - added logging - some code cleanup - added example of wiki pattern to .ini file - updated contributors and changelog
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 23 Sep 2012 17:33:53 +0200
parents 6d9b3ade3051
children 92d3afab8a2d
files CONTRIBUTORS development.ini docs/changelog.rst production.ini rhodecode/config/deployment.ini_tmpl rhodecode/lib/helpers.py
diffstat 6 files changed, 46 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/CONTRIBUTORS	Thu Sep 20 20:30:55 2012 -0400
+++ b/CONTRIBUTORS	Sun Sep 23 17:33:53 2012 +0200
@@ -26,3 +26,4 @@
     Dominik Ruf <dominikruf@gmail.com>
     xpol <xpolife@gmail.com>
     Vincent Caron <vcaron@bearstech.com>
+    Zachary Auclair <zach101@gmail.com>
\ No newline at end of file
--- a/development.ini	Thu Sep 20 20:30:55 2012 -0400
+++ b/development.ini	Sun Sep 23 17:33:53 2012 +0200
@@ -108,6 +108,16 @@
 
 issue_prefix = #
 
+## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
+## multiple patterns, to other issues server, wiki or others
+## below an example how to create a wiki pattern 
+#  #wiki-some-id -> https://mywiki.com/some-id
+
+#issue_pat_wiki = (?:wiki-)(.+)
+#issue_server_link_wiki = https://mywiki.com/{id}
+#issue_prefix_wiki = WIKI-
+
+
 ## instance-id prefix
 ## a prefix key for this instance used for cache invalidation when running 
 ## multiple instances of rhodecode, make sure it's globally unique for 
--- a/docs/changelog.rst	Thu Sep 20 20:30:55 2012 -0400
+++ b/docs/changelog.rst	Sun Sep 23 17:33:53 2012 +0200
@@ -16,6 +16,7 @@
 
 - #558 Added config file to hooks extra data
 - bumbped mercurial version to 2.3.1
+- #518 added possibility of specifing multiple patterns for issues
 
 fixes
 +++++
--- a/production.ini	Thu Sep 20 20:30:55 2012 -0400
+++ b/production.ini	Sun Sep 23 17:33:53 2012 +0200
@@ -108,6 +108,16 @@
 
 issue_prefix = #
 
+## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
+## multiple patterns, to other issues server, wiki or others
+## below an example how to create a wiki pattern 
+#  #wiki-some-id -> https://mywiki.com/some-id
+
+#issue_pat_wiki = (?:wiki-)(.+)
+#issue_server_link_wiki = https://mywiki.com/{id}
+#issue_prefix_wiki = WIKI-
+
+
 ## instance-id prefix
 ## a prefix key for this instance used for cache invalidation when running 
 ## multiple instances of rhodecode, make sure it's globally unique for 
--- a/rhodecode/config/deployment.ini_tmpl	Thu Sep 20 20:30:55 2012 -0400
+++ b/rhodecode/config/deployment.ini_tmpl	Sun Sep 23 17:33:53 2012 +0200
@@ -108,6 +108,16 @@
 
 issue_prefix = #
 
+## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
+## multiple patterns, to other issues server, wiki or others
+## below an example how to create a wiki pattern 
+#  #wiki-some-id -> https://mywiki.com/some-id
+
+#issue_pat_wiki = (?:wiki-)(.+)
+#issue_server_link_wiki = https://mywiki.com/{id}
+#issue_prefix_wiki = WIKI-
+
+
 ## instance-id prefix
 ## a prefix key for this instance used for cache invalidation when running 
 ## multiple instances of rhodecode, make sure it's globally unique for 
--- a/rhodecode/lib/helpers.py	Thu Sep 20 20:30:55 2012 -0400
+++ b/rhodecode/lib/helpers.py	Sun Sep 23 17:33:53 2012 +0200
@@ -1007,19 +1007,23 @@
 
         # allow multiple issue servers to be used
         valid_indices = [
-            x.group(1) 
-            for x in map(lambda x: re.match(r'issue_pat(.*)', x), conf.keys()) 
-            if x and conf.has_key('issue_server_link'+x.group(1)) and conf.has_key('issue_prefix'+x.group(1))
-            ]
+            x.group(1)
+            for x in map(lambda x: re.match(r'issue_pat(.*)', x), conf.keys())
+            if x and 'issue_server_link%s' % x.group(1) in conf
+            and 'issue_prefix%s' % x.group(1) in conf
+        ]
 
-        #log.debug('found issue server suffixes ' + ','.join(valid_indices) + ' during valuation of: \n' + newtext)
+        log.debug('found issue server suffixes `%s` during valuation of: %s'
+                  % (','.join(valid_indices), newtext))
 
         for pattern_index in valid_indices:
-            ISSUE_PATTERN = conf.get('issue_pat'+pattern_index)
-            ISSUE_SERVER_LNK = conf.get('issue_server_link'+pattern_index)
-            ISSUE_PREFIX = conf.get('issue_prefix'+pattern_index)
+            ISSUE_PATTERN = conf.get('issue_pat%s' % pattern_index)
+            ISSUE_SERVER_LNK = conf.get('issue_server_link%s' % pattern_index)
+            ISSUE_PREFIX = conf.get('issue_prefix%s' % pattern_index)
 
-            #log.debug(ISSUE_PATTERN + ' ' + ISSUE_SERVER_LNK + ' ' + ISSUE_PREFIX)
+            log.debug('pattern suffix `%s` PAT:%s SERVER_LINK:%s PREFIX:%s'
+                      % (pattern_index, ISSUE_PATTERN, ISSUE_SERVER_LNK,
+                         ISSUE_PREFIX))
 
             URL_PAT = re.compile(r'%s' % ISSUE_PATTERN)
 
@@ -1048,9 +1052,8 @@
                      'issue-prefix': ISSUE_PREFIX,
                      'serv': ISSUE_SERVER_LNK,
                 }
-
             newtext = URL_PAT.sub(url_func, newtext)
-            #log.debug('after '+pattern_index+':\n'+newtext)
+            log.debug('processed prefix:`%s` => %s' % (pattern_index, newtext))
 
         # if we actually did something above
         if valid_indices: