[yocto] [layerindex-web][PATCH 1/7] settings: allow disabling layer publishing emails
Paul Eggleton
paul.eggleton at linux.intel.com
Mon Jul 2 15:58:45 PDT 2018
If you're running a testing / internal instance then you really don't
want to be emailing maintainers on publish, so provide a setting you can
use to disable that.
Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
---
layerindex/views.py | 66 +++++++++++++++++++++++----------------------
settings.py | 3 +++
2 files changed, 37 insertions(+), 32 deletions(-)
diff --git a/layerindex/views.py b/layerindex/views.py
index a905c347..d02e4f91 100644
--- a/layerindex/views.py
+++ b/layerindex/views.py
@@ -259,38 +259,40 @@ def _check_url_branch(kwargs):
def publish_view(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
- help_contact = None
- for user in User.objects.all():
- if user.username != 'root' and (user.is_staff or user.is_superuser) and user.is_active:
- help_contact = user
- break
-
- # create subject from subject template
- d = {
- 'layer_name': layeritem.name,
- 'site_name': request.META['HTTP_HOST'],
- }
- subject = subjecttext.render(d).rstrip()
-
- #create body from body template
- d = {
- '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]))
+
+ if getattr(settings, 'SEND_PUBLISH_EMAIL', True):
+ 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
+ help_contact = None
+ for user in User.objects.all():
+ if user.username != 'root' and (user.is_staff or user.is_superuser) and user.is_active:
+ help_contact = user
+ break
+
+ # create subject from subject template
+ d = {
+ 'layer_name': layeritem.name,
+ 'site_name': request.META['HTTP_HOST'],
+ }
+ subject = subjecttext.render(d).rstrip()
+
+ #create body from body template
+ d = {
+ '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')
diff --git a/settings.py b/settings.py
index c3075a5e..3d70aaa5 100644
--- a/settings.py
+++ b/settings.py
@@ -227,6 +227,9 @@ FORCE_REVIEW_HTTPS = False
SUBMIT_EMAIL_FROM = 'noreply at example.com'
SUBMIT_EMAIL_SUBJECT = 'OE Layerindex layer submission'
+# Send email to maintainer(s) when their layer is published
+SEND_PUBLISH_EMAIL = True
+
# RabbitMQ settings
RABBIT_BROKER = 'amqp://'
RABBIT_BACKEND = 'rpc://'
--
2.17.1
More information about the yocto
mailing list