changeset 2663:cc8d7d450d15 beta

No more raw html inside users controller. We use cool mako Template features
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 26 Jul 2012 22:01:41 +0200
parents 91c442a489bb
children c525d7e641a6
files rhodecode/controllers/admin/users.py rhodecode/templates/admin/users/users.html rhodecode/templates/data_table/_dt_elements.html
diffstat 3 files changed, 41 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/admin/users.py	Thu Jul 26 15:36:44 2012 +0200
+++ b/rhodecode/controllers/admin/users.py	Thu Jul 26 22:01:41 2012 +0200
@@ -40,6 +40,7 @@
     AuthUser
 from rhodecode.lib.base import BaseController, render
 
+import rhodecode
 from rhodecode.model.db import User, Permission, UserEmailMap
 from rhodecode.model.forms import UserForm
 from rhodecode.model.user import UserModel
@@ -72,34 +73,33 @@
 
         users_data = []
         total_records = len(c.users_list)
-        grav_tmpl = """<div class="gravatar"><img alt="gravatar" src="%s"/> </div>"""
-        usr_tmpl = """<a href="%s">%s</a>""" % (h.url('edit_user', id='__ID__'), '%s')
-        usr_tmpl = usr_tmpl.replace('__ID__', '%s')
-        edit_tmpl = '''
-            <form action="/_admin/users/%s" method="post">
-            <div style="display:none">
-            <input name="_method" type="hidden" value="%s">
-            </div>
-            <input class="delete_icon action_button" id="remove_user_%s" 
-            name="remove_" onclick="return confirm('%s');" 
-            type="submit" value="delete">
-            </form>
-        '''
+        _tmpl_lookup = rhodecode.CONFIG['pylons.app_globals'].mako_lookup
+        template = _tmpl_lookup.get_template('data_table/_dt_elements.html')
+
+        grav_tmpl = lambda user_email, size: (
+                template.get_def("user_gravatar")
+                .render(user_email, size, _=_, h=h))
+
+        user_lnk = lambda user_id, username: (
+                template.get_def("user_name")
+                .render(user_id, username, _=_, h=h))
+
+        user_actions = lambda user_id, username: (
+                template.get_def("user_actions")
+                .render(user_id, username, _=_, h=h))
+
         for user in c.users_list:
             users_data.append({
-                "gravatar": grav_tmpl % h.gravatar_url(user.email, 24),
+                "gravatar": grav_tmpl(user. email, 24),
                 "raw_username": user.username,
-                "username": usr_tmpl % (user.user_id, user.username),
+                "username": user_lnk(user.user_id, user.username),
                 "firstname": user.name,
                 "lastname": user.lastname,
                 "last_login": h.fmt_date(user.last_login),
                 "active": h.bool2icon(user.active),
                 "admin": h.bool2icon(user.admin),
                 "ldap": h.bool2icon(bool(user.ldap_dn)),
-                "action": edit_tmpl % (user.user_id, _('delete'),
-                    user.user_id,
-                    _('Confirm to delete this user: %s') % user.username
-                ),
+                "action": user_actions(user.user_id, user.username),
             })
 
         c.data = json.dumps({
--- a/rhodecode/templates/admin/users/users.html	Thu Jul 26 15:36:44 2012 +0200
+++ b/rhodecode/templates/admin/users/users.html	Thu Jul 26 22:01:41 2012 +0200
@@ -140,9 +140,6 @@
       clearTimeout(filterTimeout);
       filterTimeout = setTimeout(updateFilter,600);
   });  
-  
-  
-  
 </script>
 
 </%def>
--- a/rhodecode/templates/data_table/_dt_elements.html	Thu Jul 26 15:36:44 2012 +0200
+++ b/rhodecode/templates/data_table/_dt_elements.html	Thu Jul 26 22:01:41 2012 +0200
@@ -2,6 +2,12 @@
 ## usage:
 ## <%namespace name="dt" file="/data_table/_dt_elements.html"/>
 
+<%def name="repo_actions(repo_name)">
+  ${h.form(h.url('repo', repo_name=repo_name),method='delete')}
+    ${h.submit('remove_%s' % repo_name,_('delete'),class_="delete_icon action_button",onclick="return confirm('"+_('Confirm to delete this repository: %s') % repo_name+"');")}
+  ${h.end_form()}
+</%def>
+
 <%def name="quick_menu(repo_name)">
   <ul class="menu_items hidden">
     <li style="border-top:1px solid #003367;margin-left:18px;padding-left:-99px"></li>
@@ -87,3 +93,19 @@
   %endif
   </div>
 </%def>
+
+<%def name="user_gravatar(email, size=24)">
+    <div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(email, size)}"/> </div>
+</%def>
+
+<%def name="user_actions(user_id, username)">
+  ${h.form(h.url('delete_user', id=user_id),method='delete')}
+      ${h.submit('remove_',_('delete'),id="remove_user_%s" % user_id,
+      class_="delete_icon action_button",onclick="return confirm('"+_('Confirm to delete this user: %s') % username+"');")}
+  ${h.end_form()}
+</%def>
+
+<%def name="user_name(user_id, username)">
+    ${h.link_to(username,h.url('edit_user', id=user_id))}
+</%def>
+