diff rhodecode/lib/helpers.py @ 660:df61378032f3 beta

#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 05 Nov 2010 22:36:51 +0100
parents 4a3291628f09
children 373ee7031003
line wrap: on
line diff
--- a/rhodecode/lib/helpers.py	Fri Nov 05 21:55:30 2010 +0100
+++ b/rhodecode/lib/helpers.py	Fri Nov 05 22:36:51 2010 +0100
@@ -328,7 +328,7 @@
 
 def _age(curdate):
     """turns a datetime into an age string."""
-    
+
     if not curdate:
         return ''
 
@@ -357,6 +357,50 @@
 person = lambda x: _person(x)
 short_id = lambda x: x[:12]
 
+
+def action_parser(user_log):
+    """
+    This helper will map the specified string action into translated
+    fancy names with icons and links
+    
+    @param action:
+    """
+    action = user_log.action
+    action_params = None
+    cs_links = ''
+
+    x = action.split(':')
+
+    if len(x) > 1:
+        action, action_params = x
+
+    if action == 'push':
+        revs_limit = 5
+        revs = action_params.split(',')
+        cs_links = " " + ', '.join ([link(rev,
+                url('changeset_home',
+                repo_name=user_log.repository.repo_name,
+                revision=rev)) for rev in revs[:revs_limit] ])
+        if len(revs) > revs_limit:
+            html_tmpl = '<span title="%s"> %s </span>'
+            cs_links += html_tmpl % (', '.join(r for r in revs[revs_limit:]),
+                                     _('and %s more revisions') % (len(revs) - revs_limit))
+
+    map = {'user_deleted_repo':_('User deleted repository'),
+           'user_created_repo':_('User created repository'),
+           'user_forked_repo':_('User forked repository'),
+           'user_updated_repo':_('User updated repository'),
+           'admin_deleted_repo':_('Admin delete repository'),
+           'admin_created_repo':_('Admin created repository'),
+           'admin_forked_repo':_('Admin forked repository'),
+           'admin_updated_repo':_('Admin updated repository'),
+           'push':_('Pushed') + literal(cs_links),
+           'pull':_('Pulled'), }
+
+    print action, action_params
+    return map.get(action, action)
+
+
 #==============================================================================
 # PERMS
 #==============================================================================