changeset 8813:a36a8804e7be

lib: use webutils for special mako templates - helpers is only for controller web templates
author Mads Kiilerich <mads@kiilerich.com>
date Fri, 18 Dec 2020 22:24:48 +0100
parents 3cef2caf44f3
children 4a18e6bf6b87
files kallithea/controllers/admin/repo_groups.py kallithea/controllers/admin/user_groups.py kallithea/controllers/admin/users.py kallithea/model/notification.py kallithea/model/repo.py kallithea/templates/data_table/_dt_elements.html kallithea/templates/email/changeset_comment.html kallithea/templates/email/changeset_comment.txt kallithea/templates/email/pull_request.html kallithea/templates/email/pull_request.txt kallithea/tests/models/test_notifications.py scripts/deps.py
diffstat 12 files changed, 48 insertions(+), 49 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/controllers/admin/repo_groups.py	Fri Nov 13 17:11:20 2020 +0100
+++ b/kallithea/controllers/admin/repo_groups.py	Fri Dec 18 22:24:48 2020 +0100
@@ -36,7 +36,6 @@
 from tg.i18n import ungettext
 from webob.exc import HTTPForbidden, HTTPFound, HTTPInternalServerError, HTTPNotFound
 
-import kallithea.lib.helpers as h
 from kallithea.controllers import base
 from kallithea.lib import webutils
 from kallithea.lib.auth import HasPermissionAny, HasRepoGroupPermissionLevel, HasRepoGroupPermissionLevelDecorator, LoginRequired
@@ -106,11 +105,11 @@
 
         def repo_group_name(repo_group_name, children_groups):
             return template.get_def("repo_group_name") \
-                .render_unicode(repo_group_name, children_groups, _=_, h=h, c=c)
+                .render_unicode(repo_group_name, children_groups, _=_, webutils=webutils, c=c)
 
         def repo_group_actions(repo_group_id, repo_group_name, gr_count):
             return template.get_def("repo_group_actions") \
-                .render_unicode(repo_group_id, repo_group_name, gr_count, _=_, h=h, c=c,
+                .render_unicode(repo_group_id, repo_group_name, gr_count, _=_, webutils=webutils, c=c,
                         ungettext=ungettext)
 
         for repo_gr in group_iter:
--- a/kallithea/controllers/admin/user_groups.py	Fri Nov 13 17:11:20 2020 +0100
+++ b/kallithea/controllers/admin/user_groups.py	Fri Dec 18 22:24:48 2020 +0100
@@ -89,11 +89,11 @@
 
         def user_group_name(user_group_id, user_group_name):
             return template.get_def("user_group_name") \
-                .render_unicode(user_group_id, user_group_name, _=_, h=h, c=c)
+                .render_unicode(user_group_id, user_group_name, _=_, webutils=webutils, c=c)
 
         def user_group_actions(user_group_id, user_group_name):
             return template.get_def("user_group_actions") \
-                .render_unicode(user_group_id, user_group_name, _=_, h=h, c=c)
+                .render_unicode(user_group_id, user_group_name, _=_, webutils=webutils, c=c)
 
         for user_gr in group_iter:
             user_groups_data.append({
--- a/kallithea/controllers/admin/users.py	Fri Nov 13 17:11:20 2020 +0100
+++ b/kallithea/controllers/admin/users.py	Fri Dec 18 22:24:48 2020 +0100
@@ -75,11 +75,11 @@
 
         def username(user_id, username):
             return template.get_def("user_name") \
-                .render_unicode(user_id, username, _=_, h=h, c=c)
+                .render_unicode(user_id, username, _=_, webutils=webutils, c=c)
 
         def user_actions(user_id, username):
             return template.get_def("user_actions") \
-                .render_unicode(user_id, username, _=_, h=h, c=c)
+                .render_unicode(user_id, username, _=_, webutils=webutils, c=c)
 
         for user in c.users_list:
             users_data.append({
--- a/kallithea/model/notification.py	Fri Nov 13 17:11:20 2020 +0100
+++ b/kallithea/model/notification.py	Fri Dec 18 22:24:48 2020 +0100
@@ -199,13 +199,11 @@
         """
         return generated template for email based on given type
         """
-        import kallithea.lib.helpers as h
-
         base = 'email/' + self.email_types.get(type_, self.email_types[self.TYPE_DEFAULT]) + '.' + content_type
         email_template = self._tmpl_lookup.get_template(base)
         # translator and helpers inject
         _kwargs = {'_': _,
-                   'h': h,
+                   'webutils': webutils,
                    'c': c}
         _kwargs.update(kwargs)
         if content_type == 'html':
--- a/kallithea/model/repo.py	Fri Nov 13 17:11:20 2020 +0100
+++ b/kallithea/model/repo.py	Fri Dec 18 22:24:48 2020 +0100
@@ -95,14 +95,17 @@
         from tg import tmpl_context as c
         from tg.i18n import ugettext as _
 
-        import kallithea.lib.helpers as h
-
         _tmpl_lookup = app_globals.mako_lookup
         template = _tmpl_lookup.get_template('data_table/_dt_elements.html')
 
         tmpl = template.get_def(tmpl)
-        kwargs.update(dict(_=_, h=h, c=c, request=request))
-        return tmpl.render_unicode(*args, **kwargs)
+        return tmpl.render_unicode(
+            *args,
+            _=_,
+            webutils=webutils,
+            c=c,
+            request=request,
+            **kwargs)
 
     def get_repos_as_dict(self, repos_list, repo_groups_list=None,
                           admin=False,
--- a/kallithea/templates/data_table/_dt_elements.html	Fri Nov 13 17:11:20 2020 +0100
+++ b/kallithea/templates/data_table/_dt_elements.html	Fri Dec 18 22:24:48 2020 +0100
@@ -14,7 +14,7 @@
     %>
   <div class="dt_repo ${'dt_repo_pending' if rstate == 'repo_state_pending' else ''}">
     ${base.repolabel(rtype)}
-    <a href="${h.url('summary_home', repo_name=name)}">
+    <a href="${webutils.url('summary_home', repo_name=name)}">
         ${get_name(name)}
     </a>
     %if private and c.visual.show_private_icon:
@@ -23,7 +23,7 @@
       <i class="icon-globe" title="${_('Public repository')}"></i>
     %endif
     %if fork_of:
-      <a href="${h.url('summary_home',repo_name=fork_of.repo_name)}"><i class="icon-fork"></i></a>
+      <a href="${webutils.url('summary_home',repo_name=fork_of.repo_name)}"><i class="icon-fork"></i></a>
     %endif
     %if rstate == 'repo_state_pending':
       <i class="icon-wrench" title="${_('Repository creation in progress...')}"></i>
@@ -38,12 +38,12 @@
 </%def>
 
 <%def name="last_change(last_change)">
-  <span data-toggle="tooltip" title="${h.fmt_date(last_change)}" date="${last_change}">${h.age(last_change)}</span>
+  <span data-toggle="tooltip" title="${webutils.fmt_date(last_change)}" date="${last_change}">${webutils.age(last_change)}</span>
 </%def>
 
 <%def name="revision(name,rev,tip,author,last_msg)">
   %if rev >= 0:
-      <a data-toggle="popover" title="${author | entity}" data-content="${last_msg | entity}" class="changeset_hash" href="${h.url('changeset_home',repo_name=name,revision=tip)}">${'r%s:%s' % (rev,h.short_id(tip))}</a>
+      <a data-toggle="popover" title="${author | entity}" data-content="${last_msg | entity}" class="changeset_hash" href="${webutils.url('changeset_home',repo_name=name,revision=tip)}">${'r%s:%s' % (rev,webutils.short_id(tip))}</a>
   %else:
       ${_('No changesets yet')}
   %endif
@@ -51,30 +51,30 @@
 
 <%def name="rss(name)">
   %if request.authuser.username != 'default':
-    <a title="${_('Subscribe to %s rss feed')% name}" href="${h.url('rss_feed_home',repo_name=name,api_key=request.authuser.api_key)}"><i class="icon-rss-squared"></i></a>
+    <a title="${_('Subscribe to %s rss feed')% name}" href="${webutils.url('rss_feed_home',repo_name=name,api_key=request.authuser.api_key)}"><i class="icon-rss-squared"></i></a>
   %else:
-    <a title="${_('Subscribe to %s rss feed')% name}" href="${h.url('rss_feed_home',repo_name=name)}"><i class="icon-rss-squared"></i></a>
+    <a title="${_('Subscribe to %s rss feed')% name}" href="${webutils.url('rss_feed_home',repo_name=name)}"><i class="icon-rss-squared"></i></a>
   %endif
 </%def>
 
 <%def name="atom(name)">
   %if request.authuser.username != 'default':
-    <a title="${_('Subscribe to %s atom feed')% name}" href="${h.url('atom_feed_home',repo_name=name,api_key=request.authuser.api_key)}"><i class="icon-rss-squared"></i></a>
+    <a title="${_('Subscribe to %s atom feed')% name}" href="${webutils.url('atom_feed_home',repo_name=name,api_key=request.authuser.api_key)}"><i class="icon-rss-squared"></i></a>
   %else:
-    <a title="${_('Subscribe to %s atom feed')% name}" href="${h.url('atom_feed_home',repo_name=name)}"><i class="icon-rss-squared"></i></a>
+    <a title="${_('Subscribe to %s atom feed')% name}" href="${webutils.url('atom_feed_home',repo_name=name)}"><i class="icon-rss-squared"></i></a>
   %endif
 </%def>
 
 <%def name="repo_actions(repo_name)">
-      <a href="${h.url('edit_repo',repo_name=repo_name)}" title="${_('Edit')}" class="btn btn-default btn-xs">
+      <a href="${webutils.url('edit_repo',repo_name=repo_name)}" title="${_('Edit')}" class="btn btn-default btn-xs">
         <i class="icon-pencil"></i>${_('Edit')}
       </a>
-      ${h.form(h.url('delete_repo', repo_name=repo_name))}
+      ${webutils.form(webutils.url('delete_repo', repo_name=repo_name))}
         <button name="${'remove_%s' % repo_name}" class="btn btn-default btn-xs"
             onclick="return confirm('${_('Confirm to delete this repository: %s') % repo_name}');">
           <i class="icon-trashcan"></i>${_('Delete')}
         </button>
-      ${h.end_form()}
+      ${webutils.end_form()}
 </%def>
 
 <%def name="repo_state(repo_state)">
@@ -88,62 +88,62 @@
 </%def>
 
 <%def name="user_actions(user_id, username)">
-   <a href="${h.url('edit_user',id=user_id)}" title="${_('Edit')}" class="btn btn-default btn-xs">
+   <a href="${webutils.url('edit_user',id=user_id)}" title="${_('Edit')}" class="btn btn-default btn-xs">
      <i class="icon-pencil"></i>${_('Edit')}
    </a>
-  ${h.form(h.url('delete_user', id=user_id))}
+  ${webutils.form(webutils.url('delete_user', id=user_id))}
     <button id="${'remove_user_%s' % user_id}" name="${'remove_user_%s' % repo_name}" class="btn btn-default btn-xs" title="${_('Delete')}"
         onclick="return confirm('${_('Confirm to delete this user: %s') % username}');">
       <i class="icon-trashcan"></i>${_('Delete')}
     </button>
-  ${h.end_form()}
+  ${webutils.end_form()}
 </%def>
 
 <%def name="user_group_actions(user_group_id, user_group_name)">
-    <a href="${h.url('edit_users_group', id=user_group_id)}" title="${_('Edit')}" class="btn btn-default btn-xs">
+    <a href="${webutils.url('edit_users_group', id=user_group_id)}" title="${_('Edit')}" class="btn btn-default btn-xs">
       <i class="icon-pencil"></i>${_('Edit')}
     </a>
-    ${h.form(h.url('delete_users_group', id=user_group_id))}
+    ${webutils.form(webutils.url('delete_users_group', id=user_group_id))}
       <button id="${'remove_group_%s' % user_group_id}" name="${'remove_user_%s' % repo_name}" class="btn btn-default btn-xs" title="${_('Delete')}"
           onclick="return confirm('${_('Confirm to delete this user group: %s') % user_group_name}');">
         <i class="icon-trashcan"></i>${_('Delete')}
       </button>
-    ${h.end_form()}
+    ${webutils.end_form()}
 </%def>
 
 <%def name="group_name_html(group_name,name)">
   <div class="dt_repo">
     <i class="icon-folder"></i>
-    <a href="${h.url('repos_group_home',group_name=group_name)}">${name}</a>
+    <a href="${webutils.url('repos_group_home',group_name=group_name)}">${name}</a>
   </div>
 </%def>
 
 <%def name="repo_group_actions(repo_group_id, repo_group_name, gr_count)">
-    <a href="${h.url('edit_repo_group',group_name=repo_group_name)}" title="${_('Edit')}" class="btn btn-default btn-xs">
+    <a href="${webutils.url('edit_repo_group',group_name=repo_group_name)}" title="${_('Edit')}" class="btn btn-default btn-xs">
       <i class="icon-pencil"></i>${_('Edit')}
     </a>
-    ${h.form(h.url('delete_repo_group', group_name=repo_group_name))}
+    ${webutils.form(webutils.url('delete_repo_group', group_name=repo_group_name))}
       <button id="${'remove_%s' % repo_group_name}" name="${'remove_%s' % repo_group_name}" class="btn btn-default btn-xs" title="${_('Delete')}"
           onclick="return confirm('${ungettext('Confirm to delete this group: %s with %s repository','Confirm to delete this group: %s with %s repositories',gr_count) % (repo_group_name, gr_count)}')">
         <i class="icon-trashcan"></i>${_('Delete')}
       </button>
-    ${h.end_form()}
+    ${webutils.end_form()}
 </%def>
 
 <%def name="user_name(user_id, username)">
-    ${h.link_to(username,h.url('edit_user', id=user_id))}
+    ${webutils.link_to(username,webutils.url('edit_user', id=user_id))}
 </%def>
 
 <%def name="repo_group_name(repo_group_name, children_groups)">
   <div class="text-nowrap">
-  <a href="${h.url('repos_group_home',group_name=repo_group_name)}">
-    <i class="icon-folder" title="${_('Repository group')}"></i>${h.literal(' &raquo; ').join(children_groups)}</a>
+  <a href="${webutils.url('repos_group_home',group_name=repo_group_name)}">
+    <i class="icon-folder" title="${_('Repository group')}"></i>${webutils.literal(' &raquo; ').join(children_groups)}</a>
   </div>
 </%def>
 
 <%def name="user_group_name(user_group_id, user_group_name)">
   <div class="text-nowrap">
-  <a href="${h.url('edit_users_group', id=user_group_id)}">
+  <a href="${webutils.url('edit_users_group', id=user_group_id)}">
     <i class="icon-users" title="${_('User group')}"></i>${user_group_name}</a>
   </div>
 </%def>
--- a/kallithea/templates/email/changeset_comment.html	Fri Nov 13 17:11:20 2020 +0100
+++ b/kallithea/templates/email/changeset_comment.html	Fri Dec 18 22:24:48 2020 +0100
@@ -1,7 +1,7 @@
 <%inherit file="main.html"/>\
 \
 <%block name="header">\
-<% title = _('Mention in Comment on Changeset "%s"') % h.shorter(message, 200, firstline=True) if is_mention else _('Comment on Changeset "%s"') % h.shorter(message, 200, firstline=True) %>\
+<% title = _('Mention in Comment on Changeset "%s"') % webutils.shorter(message, 200, firstline=True) if is_mention else _('Comment on Changeset "%s"') % webutils.shorter(message, 200, firstline=True) %>\
 <%include file="header.html" args="title=title,link=cs_comment_url"/>\
 </%block>\
 \
@@ -25,7 +25,7 @@
             </div>
             <div>
                 "<a style="${link_style}"
-                   href="${cs_url}">${h.shorter(message, 60, firstline=True)}</a>"
+                   href="${cs_url}">${webutils.shorter(message, 60, firstline=True)}</a>"
                 ${_('by')}
                 <span style="${data_style}">${cs_author.full_name_and_username}</span>.
             </div>
--- a/kallithea/templates/email/changeset_comment.txt	Fri Nov 13 17:11:20 2020 +0100
+++ b/kallithea/templates/email/changeset_comment.txt	Fri Dec 18 22:24:48 2020 +0100
@@ -1,5 +1,5 @@
 <%block name="header">\
-<% title = _('Mention in Comment on Changeset "%s"') % h.shorter(message, 200, firstline=True) if is_mention else _('Comment on Changeset "%s"') % h.shorter(message, 200, firstline=True) %>\
+<% title = _('Mention in Comment on Changeset "%s"') % webutils.shorter(message, 200, firstline=True) if is_mention else _('Comment on Changeset "%s"') % webutils.shorter(message, 200, firstline=True) %>\
 <%include file="header.txt" args="title=title,link=cs_comment_url"/>\
 </%block>\
 
@@ -9,7 +9,7 @@
 ${cs_target_repo|n,unicode} \
 ${_('branch')|n,unicode} \
 ${branch|n,unicode}:
-"${h.shorter(message, 60, firstline=True)|n,unicode}" \
+"${webutils.shorter(message, 60, firstline=True)|n,unicode}" \
 ${_('by')|n,unicode} \
 ${cs_author.full_name_and_username|n,unicode}.
 
--- a/kallithea/templates/email/pull_request.html	Fri Nov 13 17:11:20 2020 +0100
+++ b/kallithea/templates/email/pull_request.html	Fri Dec 18 22:24:48 2020 +0100
@@ -72,8 +72,8 @@
                 %for revision, desc in pr_revisions:
                     <li style="mso-special-format:bullet">
                         <a style="${link_style}"
-                           href="${h.canonical_url('changeset_home', repo_name=org_repo_name, revision=revision)}">
-                            ${h.shorter(desc, 80, firstline=True)}
+                           href="${webutils.canonical_url('changeset_home', repo_name=org_repo_name, revision=revision)}">
+                            ${webutils.shorter(desc, 80, firstline=True)}
                         </a>
                     </li>
                 %endfor
--- a/kallithea/templates/email/pull_request.txt	Fri Nov 13 17:11:20 2020 +0100
+++ b/kallithea/templates/email/pull_request.txt	Fri Dec 18 22:24:48 2020 +0100
@@ -26,7 +26,7 @@
 ${_('Changesets')|n,unicode}:
 
 %for revision, desc in pr_revisions:
-${h.shorter(desc, 80, firstline=True)|n,unicode}
+${webutils.shorter(desc, 80, firstline=True)|n,unicode}
 %endfor
 
 <% title = _('View Pull Request') %>\
--- a/kallithea/tests/models/test_notifications.py	Fri Nov 13 17:11:20 2020 +0100
+++ b/kallithea/tests/models/test_notifications.py	Fri Dec 18 22:24:48 2020 +0100
@@ -5,8 +5,8 @@
 from tg.util.webtest import test_context
 
 import kallithea.lib.celerylib
-import kallithea.lib.helpers as h
 import kallithea.model.async_tasks
+from kallithea.lib import webutils
 from kallithea.model import db, meta
 from kallithea.model.notification import EmailNotificationModel, NotificationModel
 from kallithea.model.user import UserModel
@@ -53,7 +53,7 @@
                                                    body='hi there',
                                                    recipients=usrs)
 
-    @mock.patch.object(h, 'canonical_url', (lambda arg, **kwargs: 'http://%s/?%s' % (arg, '&'.join('%s=%s' % (k, v) for (k, v) in sorted(kwargs.items())))))
+    @mock.patch.object(webutils, 'canonical_url', (lambda arg, **kwargs: 'http://%s/?%s' % (arg, '&'.join('%s=%s' % (k, v) for (k, v) in sorted(kwargs.items())))))
     def test_dump_html_mails(self):
         # Exercise all notification types and dump them to one big html file
         l = []
--- a/scripts/deps.py	Fri Nov 13 17:11:20 2020 +0100
+++ b/scripts/deps.py	Fri Dec 18 22:24:48 2020 +0100
@@ -164,7 +164,6 @@
 ('kallithea.model.async_tasks', 'kallithea.model'),
 ('kallithea.model', 'kallithea.lib.auth'),  # auth.HasXXX
 ('kallithea.model', 'kallithea.lib.auth_modules'),  # validators
-('kallithea.model', 'kallithea.lib.helpers'),
 ('kallithea.model', 'kallithea.lib.hooks'),  # clean up hooks
 ('kallithea.model', 'kallithea.model.scm'),
 ('kallithea.model.scm', 'kallithea.lib.hooks'),