[yocto] [layerindex-web][patch v3 1/1] Send email notification on publication
Paul Eggleton
paul.eggleton at linux.intel.com
Mon Oct 30 15:10:01 PDT 2017
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 at 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
More information about the yocto
mailing list