Based on a feature request & patch from Wolfram Sang
<wsa@the-dreams.de>.
Notifications may span multiple projects, so include a summary in the
subject line, and detail in the header.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
for (recipient, notifications) in groups:
notifications = list(notifications)
for (recipient, notifications) in groups:
notifications = list(notifications)
+ projects = set([ n.patch.project.linkname for n in notifications ])
def delete_notifications():
PatchChangeNotification.objects.filter(
def delete_notifications():
PatchChangeNotification.objects.filter(
'site': Site.objects.get_current(),
'person': recipient,
'notifications': notifications,
'site': Site.objects.get_current(),
'person': recipient,
'notifications': notifications,
subject = render_to_string(
'patchwork/patch-change-notification-subject.text',
context).strip()
subject = render_to_string(
'patchwork/patch-change-notification-subject.text',
context).strip()
-Patch update notification: {{notifications|length}} patch{{notifications|length|pluralize:"es"}} updated
+[{{ projects|join:"," }}] Patch notification: {{notifications|length}} patch{{notifications|length|pluralize:"es"}} updated
The following patch{{notifications|length|pluralize:"es"}} (submitted by you) {{notifications|length|pluralize:"has,have"}} been updated in patchwork:
{% for notification in notifications %}
The following patch{{notifications|length|pluralize:"es"}} (submitted by you) {{notifications|length|pluralize:"has,have"}} been updated in patchwork:
{% for notification in notifications %}
- * {{notification.patch.name|safe}}
+ * {{notification.patch.project.linkname}}: {{notification.patch.name|safe}}
- http://{{site.domain}}{{notification.patch.get_absolute_url}}
- http://{{site.domain}}{{notification.patch.get_absolute_url}}
+ - for: {{notification.patch.project.name}}
was: {{notification.orig_state}}
now: {{notification.patch.state}}
{% endfor %}
was: {{notification.orig_state}}
now: {{notification.patch.state}}
{% endfor %}