On 04/14/2015 06:03 PM, Jan Heylen wrote:
# HG changeset patch
# User Jan Heylen <[email protected]>
# Date 1427469226 -3600
#      Fri Mar 27 16:13:46 2015 +0100
# Node ID 55ba8e68269da8fb0c33c65711a57b4fd9e1b675
# Parent  cb41b8211291b55bcd7c77919f714791927b8045
notification: allow multiple body parts in templates

diff -r cb41b8211291 -r 55ba8e68269d kallithea/model/notification.py
--- a/kallithea/model/notification.py   Fri Mar 27 13:58:04 2015 +0100
+++ b/kallithea/model/notification.py   Fri Mar 27 16:13:46 2015 +0100
@@ -59,7 +59,7 @@
def create(self, created_by, subject, body, recipients=None,
                 type_=Notification.TYPE_MESSAGE, with_email=True,
-               email_kwargs={}):
+               email_kwargs={}, bodies=None):

I think it would be less ugly to allow body to be either a single instance or a list, perhaps depending on the type, perhaps with the single instance as a list with one element.

          """
Creates notification of given type
@@ -103,10 +103,16 @@
          #else: silently skip notification mails?
# TODO: inform user who are notified
-        notif = Notification.create(
-            created_by=created_by_obj, subject=subject,
-            body=body, recipients=recipients_objs, type_=type_
-        )
+        if not bodies:
+            bodies = [body]
+
+        bodies_html = []
+        for body in bodies:
+            notif = Notification.create(
+                created_by=created_by_obj, subject=subject,
+                body=body, recipients=recipients_objs, type_=type_
+            )
+            bodies_html.append(h.rst_w_mentions(body))
if not with_email:
              return notif
@@ -123,14 +129,14 @@
              ## this is passed into template
              html_kwargs = {
                        'subject': subject,
-                      'body': h.rst_w_mentions(body),
+                      'bodies': bodies_html,
                        'when': h.fmt_date(notif.created_on),
                        'user': notif.created_by_user.username,
                        }
txt_kwargs = {
                        'subject': subject,
-                      'body': body,
+                      'bodies': bodies,
                        'when': h.fmt_date(notif.created_on),
                        'user': notif.created_by_user.username,
                        }
diff -r cb41b8211291 -r 55ba8e68269d 
kallithea/templates/email_templates/changeset_comment.html
--- a/kallithea/templates/email_templates/changeset_comment.html        Fri Mar 
27 13:58:04 2015 +0100
+++ b/kallithea/templates/email_templates/changeset_comment.html        Fri Mar 
27 16:13:46 2015 +0100
@@ -6,8 +6,9 @@
  %else:
  <p>${_('Comment from %s on %s changeset %s') % (cs_comment_user, cs_target_repo, 
h.short_id(raw_id))}:</p>
  %endif
+%for body in bodies:
  <p>${body}</p>
-
+%endfor

I would like to let the mails include filename and linenumber (and ultimately also some lines of context). It seems like this change will make it harder to add that. Could it be done first?

And more important: There should be a cs_comment_url link for each comment.

  %if status_change:
      <p>${_('The changeset status was changed to')}: 
<b>${status_change}</b></p>
  %endif
diff -r cb41b8211291 -r 55ba8e68269d 
kallithea/templates/email_templates/changeset_comment.txt
--- a/kallithea/templates/email_templates/changeset_comment.txt Fri Mar 27 
13:58:04 2015 +0100
+++ b/kallithea/templates/email_templates/changeset_comment.txt Fri Mar 27 
16:13:46 2015 +0100
@@ -6,7 +6,9 @@
  %else:
  ${_('Comment from %s on %s changeset %s') % (cs_comment_user, cs_target_repo, 
h.short_id(raw_id))|n,unicode}:
  %endif
+%for body in bodies:
  ${body|n,unicode}
+%endfor
%if status_change:
  ${_('The changeset status was changed to')|n,unicode}: 
${status_change|n,unicode}
diff -r cb41b8211291 -r 55ba8e68269d 
kallithea/templates/email_templates/default.html
--- a/kallithea/templates/email_templates/default.html  Fri Mar 27 13:58:04 
2015 +0100
+++ b/kallithea/templates/email_templates/default.html  Fri Mar 27 16:13:46 
2015 +0100
@@ -1,4 +1,6 @@
  ## -*- coding: utf-8 -*-
  <%inherit file="main.html"/>
+%for body in bodies:
  ${body}
+%endfor

It doesn't make much sense to have multiple bodies if we only concatenate them. But ok, if it is simpler this way.

But I guess this really depends on how to solve the problem mentioned above: We do not just have a list of bodies; we have a list of entries that each have a file and line and url and body.

/Mads
_______________________________________________
kallithea-general mailing list
[email protected]
http://lists.sfconservancy.org/mailman/listinfo/kallithea-general

Reply via email to