On 04/24/2015 11:47 PM, Jan Heylen wrote:
On Fri, Apr 24, 2015 at 7:20 PM, Mads Kiilerich <[email protected]> wrote:
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/     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.
I didn't think about that, I'll have a look how that would work in the code

Hmm. This notification creation API is not optimal. I think the body parameter should be completely replaced by 'kwargs' that could be used both for emails and notifications - perhaps passed as **kwargs. For a "multi comment commit", this parameter could have a 'comments' list of dicts (or tuples) with comment text and url and filename and line. For some types, one of the kwargs might still be a 'body'.

The content of the notifications is currently not as useful as the emails. The body stored in the notification should perhaps just be the essential html used for an email ... but we would probably still want one notification for each comment, even if we send mails with multiple comments. It could perhaps also be some serialization of the parameters so notifications can be shown nicely.

--- 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?
Yes, I thought about that too, but I wanted to do the multiple
comments in one email part first, and afterwards we could look into
the 'make the email more attractive'. Bodies, or body as a list,
should be an object with those attributes in that case? Or we add a
new thing "comment" with those attributes, so we can still use "body"
in the other templates?

And more important: There should be a cs_comment_url link for each comment.
Same comment, I thouthg about that too, but didn't want to focus on
the email look&feel with this patch series.

But I will point out that before, each email contains a link to see each comment in the right context. AFAICS, the emails with multiple comments no longer contains links to see each comment in the right content. For large PRs, it is essential to have links to each comment. It is essential to preserve that when changing things here.

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

Reply via email to