When publishing a layer, send an email notification to all of that layer's maintainers.
Fixes [YOCTO #11208] Signed-off-by: Amanda Brindle <[email protected]> --- layerindex/views.py | 22 +++++++++++++++++++++- templates/layerindex/publishemail.txt | 7 +++++++ templates/layerindex/publishemailsubject.txt | 1 + 3 files changed, 29 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..35949dd 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,26 @@ 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 + from_email = settings.SUBMIT_EMAIL_FROM + plaintext = get_template('layerindex/publishemail.txt') + subjecttext = get_template('layerindex/publishemailsubject.txt') + e = Context({ + 'layer_name': layeritem.name, + 'site_name': request.META['HTTP_HOST'], + }) + subject = subjecttext.render(e).rstrip() + layeritem = get_object_or_404(LayerItem, name=name) + layerbranch = get_object_or_404(LayerBranch, layer=layeritem) + maintainers = get_list_or_404(LayerMaintainer, layerbranch=layerbranch) + layer_url = request.build_absolute_uri(reverse('layer_item', args=(layerbranch.branch, layeritem.name))) + for m in maintainers: + d = Context({ + 'maintainer_name': m.name, + 'layer_name': layeritem.name, + 'layer_url': layer_url, + }) + text_content = plaintext.render(d) + tasks.send_email.apply_async((subject, text_content, from_email, [m.email])) 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..2500bff --- /dev/null +++ b/templates/layerindex/publishemail.txt @@ -0,0 +1,7 @@ +Hi {{ maintainer_name }}, + +You are listed as a maintainer for the new layer, {{ layer_name }}. This layer has been published. You can view it at the following URL: + + {{ layer_url }} + +Thanks! diff --git a/templates/layerindex/publishemailsubject.txt b/templates/layerindex/publishemailsubject.txt new file mode 100644 index 0000000..a46eaf2 --- /dev/null +++ b/templates/layerindex/publishemailsubject.txt @@ -0,0 +1 @@ +{{layer_name }} was published to {{site_name}} -- 2.7.4 -- _______________________________________________ yocto mailing list [email protected] https://lists.yoctoproject.org/listinfo/yocto
