diff --git a/layerindex/views.py b/layerindex/views.py index 03886b1..1cd7eea 100644 --- a/layerindex/views.py +++ b/layerindex/views.py @@ -114,6 +114,7 @@ def edit_layer_view(request, template_name, branch='master', slug=None): if not (request.user.is_authenticated() and (request.user.has_perm('layerindex.publish_layer') or layeritem.user_can_edit(request.user))): raise PermissionDenied layerbranch = get_object_or_404(LayerBranch, layer=layeritem, branch=branchobj) + old_maintainers = list(layerbranch.layermaintainer_set.values_list('email', flat=True)) deplistlayers = LayerItem.objects.filter(comparison=False).exclude(id=layeritem.id).order_by('name') returnto = request.GET.get('returnto', 'layer_item') if returnto: @@ -196,6 +197,33 @@ def edit_layer_view(request, template_name, branch='master', slug=None): text_content = plaintext.render(d) tasks.send_email.apply_async((subject, text_content, from_email, [to_email])) return HttpResponseRedirect(reverse('submit_layer_thanks')) + + # Email any new maintainers (that aren't us) + new_maintainers = layerbranch.layermaintainer_set.exclude(email__in=old_maintainers + [request.user.email]) + if new_maintainers: + for maintainer in new_maintainers: + layer_url = request.build_absolute_uri(reverse('layer_item', args=(layerbranch.branch.name, layeritem.name,))) + subjecttext = get_template('layerindex/maintemailsubject.txt') + bodytext = get_template('layerindex/maintemail.txt') + from_email = settings.SUBMIT_EMAIL_FROM + # 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 = { + 'maintainer_name': maintainer.name, + 'layer_name': layeritem.name, + 'layer_url': layer_url, + 'help_contact': _get_help_contact(), + } + body = bodytext.render(d) + + tasks.send_email.apply_async((subject, body, from_email, [maintainer.email])) + messages.success(request, 'Layer %s saved successfully.' % layeritem.name) if return_url: if returnto == 'layer_review': diff --git a/templates/layerindex/maintemail.txt b/templates/layerindex/maintemail.txt new file mode 100644 index 0000000..1fd41cd --- /dev/null +++ b/templates/layerindex/maintemail.txt @@ -0,0 +1,9 @@ +Hi {{ maintainer_name }}, + +This is an automated notification to let you know that you have been added as a maintainer of the layer {{ layer_name }}. You can view the layer here: + + {{ layer_url }} + +If you think this change is in error or otherwise 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/maintemailsubject.txt b/templates/layerindex/maintemailsubject.txt new file mode 100644 index 0000000..d3d60a6 --- /dev/null +++ b/templates/layerindex/maintemailsubject.txt @@ -0,0 +1 @@ +{{ site_name }}: You have been added as maintainer of {{ layer_name }}