All of lore.kernel.org
 help / color / mirror / Atom feed
* [layerindex-web][patch v3 0/1] Send email notification on publication
@ 2017-10-24 21:49 Amanda Brindle
  2017-10-24 21:49 ` [layerindex-web][patch v3 1/1] " Amanda Brindle
  0 siblings, 1 reply; 4+ messages in thread
From: Amanda Brindle @ 2017-10-24 21:49 UTC (permalink / raw)
  To: yocto; +Cc: paul.eggleton, Amanda Brindle

Changed the publishemail template to use django conditional statements in creating the list of maintainer 
names, as well as checking whether there is more than one maintainer.

The following changes since commit ad1aac4ea5d4f2b327f7bd9611aed13f7c31ff7e:

  Show note if layer branch hasn't been indexed (2017-10-04 13:49:00 +1300)

are available in the git repository at:

  git://git.yoctoproject.org/layerindex-web abrindle/email_notification_publication
  http://git.yoctoproject.org/cgit.cgi/layerindex-web/log/?h=abrindle/email_notification_publication

Amanda Brindle (1):
  Send email notification on publication

 layerindex/views.py                          | 34 +++++++++++++++++++++++++++-
 templates/layerindex/publishemail.txt        |  9 ++++++++
 templates/layerindex/publishemailsubject.txt |  1 +
 3 files changed, 43 insertions(+), 1 deletion(-)
 create mode 100644 templates/layerindex/publishemail.txt
 create mode 100644 templates/layerindex/publishemailsubject.txt

-- 
2.7.4



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [layerindex-web][patch v3 1/1] Send email notification on publication
  2017-10-24 21:49 [layerindex-web][patch v3 0/1] Send email notification on publication Amanda Brindle
@ 2017-10-24 21:49 ` Amanda Brindle
  2017-10-24 22:10   ` Paul Eggleton
  2017-10-30 22:10   ` Paul Eggleton
  0 siblings, 2 replies; 4+ messages in thread
From: Amanda Brindle @ 2017-10-24 21:49 UTC (permalink / raw)
  To: yocto; +Cc: paul.eggleton, Amanda Brindle

When publishing a layer, send an email notification to all of that
layer's maintainers.

Fixes [YOCTO #11208]

Signed-off-by: Amanda Brindle <amanda.r.brindle@intel.com>
---
 layerindex/views.py                          | 34 +++++++++++++++++++++++++++-
 templates/layerindex/publishemail.txt        |  9 ++++++++
 templates/layerindex/publishemailsubject.txt |  1 +
 3 files changed, 43 insertions(+), 1 deletion(-)
 create mode 100644 templates/layerindex/publishemail.txt
 create mode 100644 templates/layerindex/publishemailsubject.txt

diff --git a/layerindex/views.py b/layerindex/views.py
index bcf6671..095f428 100644
--- a/layerindex/views.py
+++ b/layerindex/views.py
@@ -5,7 +5,7 @@
 # Licensed under the MIT license, see COPYING.MIT for details
 
 import sys
-from django.shortcuts import get_object_or_404, render
+from django.shortcuts import get_object_or_404, get_list_or_404, render
 from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404
 from django.core.urlresolvers import reverse, reverse_lazy, resolve
 from django.core.exceptions import PermissionDenied
@@ -261,6 +261,38 @@ def _check_url_branch(kwargs):
 def publish(request, name):
     if not (request.user.is_authenticated() and request.user.has_perm('layerindex.publish_layer')):
         raise PermissionDenied
+    layeritem = get_object_or_404(LayerItem, name=name)
+    layerbranch = get_object_or_404(LayerBranch, layer=layeritem)
+    layer_url = request.build_absolute_uri(reverse('layer_item', args=(layerbranch.branch, layeritem.name)))
+    maintainers = get_list_or_404(LayerMaintainer, layerbranch=layerbranch)
+    from_email = settings.SUBMIT_EMAIL_FROM
+    subjecttext = get_template('layerindex/publishemailsubject.txt')
+    bodytext = get_template('layerindex/publishemail.txt')
+    maintainer_names = [m.name for m in maintainers]
+    # find appropriate help contact
+    for user in User.objects.all():
+        if user.username != 'root' and user.is_active:
+            help_contact = user
+            break
+
+    # create subject from subject template
+    d = Context({
+        'layer_name': layeritem.name,
+        'site_name': request.META['HTTP_HOST'],
+    })
+    subject = subjecttext.render(d).rstrip()
+
+    #create body from body template
+    d = Context({
+        'maintainers': maintainer_names,
+        'layer_name': layeritem.name,
+        'layer_url': layer_url,
+        'help_contact': help_contact,
+    })
+    body = bodytext.render(d)
+
+    tasks.send_email.apply_async((subject, body, from_email, [m.email for m in maintainers]))
+
     return _statuschange(request, name, 'P')
 
 def _statuschange(request, name, newstatus):
diff --git a/templates/layerindex/publishemail.txt b/templates/layerindex/publishemail.txt
new file mode 100644
index 0000000..5d703d8
--- /dev/null
+++ b/templates/layerindex/publishemail.txt
@@ -0,0 +1,9 @@
+Hi {{ maintainers|slice:":-1"|join:", "}}{% if maintainers|length > 2 %},{% endif %}{% if maintainers|length > 1 %} and {% endif %}{{ maintainers|last }},
+
+You are listed as the {% if maintainers|length > 1 %}maintainers{% else %}maintainer{% endif %} for the new layer, {{ layer_name }}. This layer has now been published. You can view it at the following URL:
+
+ {{ layer_url }}
+
+If you need to make changes to this layer's entry in the index in the future, create an account (using this email address) if you haven't already, and you should then be able to click on "Edit layer" on the layer's detail page and make the desired changes. If you need any assistance please contact {% if help_contact.first_name and help_contact.last_name %}{{ help_contact.first_name }} {{ help_contact.last_name}}{% else %}{{ help_contact.username }}{% endif %} <{{ help_contact.email }}>.
+
+Thanks!
diff --git a/templates/layerindex/publishemailsubject.txt b/templates/layerindex/publishemailsubject.txt
new file mode 100644
index 0000000..1d49ea7
--- /dev/null
+++ b/templates/layerindex/publishemailsubject.txt
@@ -0,0 +1 @@
+{{site_name}}: {{layer_name }} published
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [layerindex-web][patch v3 1/1] Send email notification on publication
  2017-10-24 21:49 ` [layerindex-web][patch v3 1/1] " Amanda Brindle
@ 2017-10-24 22:10   ` Paul Eggleton
  2017-10-30 22:10   ` Paul Eggleton
  1 sibling, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2017-10-24 22:10 UTC (permalink / raw)
  To: Amanda Brindle; +Cc: yocto

Hi Amanda,

On Wednesday, 25 October 2017 10:49:42 AM NZDT Amanda Brindle wrote:
> When publishing a layer, send an email notification to all of that
> layer's maintainers.
> 
> Fixes [YOCTO #11208]

This change looks good to me - I'll wait a day or so for other reviews and 
merge after that.

Thanks,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [layerindex-web][patch v3 1/1] Send email notification on publication
  2017-10-24 21:49 ` [layerindex-web][patch v3 1/1] " Amanda Brindle
  2017-10-24 22:10   ` Paul Eggleton
@ 2017-10-30 22:10   ` Paul Eggleton
  1 sibling, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2017-10-30 22:10 UTC (permalink / raw)
  To: yocto; +Cc: Amanda Brindle

On Wednesday, 25 October 2017 10:49:42 AM NZDT Amanda Brindle wrote:
> When publishing a layer, send an email notification to all of that
> layer's maintainers.
> 
> Fixes [YOCTO #11208]
> 
> Signed-off-by: Amanda Brindle <amanda.r.brindle@intel.com>
> ---
>  layerindex/views.py                          | 34 +++++++++++++++++++++++++
++-
>  templates/layerindex/publishemail.txt        |  9 ++++++++
>  templates/layerindex/publishemailsubject.txt |  1 +
>  3 files changed, 43 insertions(+), 1 deletion(-)
>  create mode 100644 templates/layerindex/publishemail.txt
>  create mode 100644 templates/layerindex/publishemailsubject.txt
> 
> diff --git a/layerindex/views.py b/layerindex/views.py
> index bcf6671..095f428 100644
> --- a/layerindex/views.py
> +++ b/layerindex/views.py
> @@ -5,7 +5,7 @@
>  # Licensed under the MIT license, see COPYING.MIT for details
>  
>  import sys
> -from django.shortcuts import get_object_or_404, render
> +from django.shortcuts import get_object_or_404, get_list_or_404, render
>  from django.http import HttpResponse, HttpResponseRedirect, 
HttpResponseForbidden, Http404
>  from django.core.urlresolvers import reverse, reverse_lazy, resolve
>  from django.core.exceptions import PermissionDenied
> @@ -261,6 +261,38 @@ def _check_url_branch(kwargs):
>  def publish(request, name):
>      if not (request.user.is_authenticated() and 
request.user.has_perm('layerindex.publish_layer')):
>          raise PermissionDenied
> +    layeritem = get_object_or_404(LayerItem, name=name)
> +    layerbranch = get_object_or_404(LayerBranch, layer=layeritem)
> +    layer_url = request.build_absolute_uri(reverse('layer_item', 
args=(layerbranch.branch, layeritem.name)))
> +    maintainers = get_list_or_404(LayerMaintainer, layerbranch=layerbranch)
> +    from_email = settings.SUBMIT_EMAIL_FROM
> +    subjecttext = get_template('layerindex/publishemailsubject.txt')
> +    bodytext = get_template('layerindex/publishemail.txt')
> +    maintainer_names = [m.name for m in maintainers]
> +    # find appropriate help contact
> +    for user in User.objects.all():
> +        if user.username != 'root' and user.is_active:
> +            help_contact = user
> +            break

Just to follow up here, I've merged this with a change to the above lines to 
only include staff/superusers.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-10-30 22:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-24 21:49 [layerindex-web][patch v3 0/1] Send email notification on publication Amanda Brindle
2017-10-24 21:49 ` [layerindex-web][patch v3 1/1] " Amanda Brindle
2017-10-24 22:10   ` Paul Eggleton
2017-10-30 22:10   ` Paul Eggleton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.