From f3c018823125b888908a7d0a3bbad3f25e089e68 Mon Sep 17 00:00:00 2001 From: Fredrik Jonsson <frjo@xdeb.org> Date: Thu, 9 May 2019 15:02:41 +0200 Subject: [PATCH] When new partners are added to a submission, notify the applicant and the added partners. --- opentech/apply/activity/messaging.py | 19 +++++++++++++++++++ .../migrations/0023_notify_partners.py | 18 ++++++++++++++++++ opentech/apply/activity/options.py | 1 + .../templates/messages/email/base.html | 5 +---- .../email/partners_update_applicant.html | 9 +++++++++ .../email/partners_update_partner.html | 9 +++++++++ .../applicationsubmission_admin_detail.html | 2 +- opentech/apply/funds/views.py | 10 ++++++++++ 8 files changed, 68 insertions(+), 5 deletions(-) create mode 100644 opentech/apply/activity/migrations/0023_notify_partners.py create mode 100644 opentech/apply/activity/templates/messages/email/partners_update_applicant.html create mode 100644 opentech/apply/activity/templates/messages/email/partners_update_partner.html diff --git a/opentech/apply/activity/messaging.py b/opentech/apply/activity/messaging.py index e5e77f64e..2401c66e2 100644 --- a/opentech/apply/activity/messaging.py +++ b/opentech/apply/activity/messaging.py @@ -556,6 +556,8 @@ class EmailAdapter(AdapterBase): MESSAGES.INVITED_TO_PROPOSAL: 'messages/email/invited_to_proposal.html', MESSAGES.BATCH_READY_FOR_REVIEW: 'messages/email/batch_ready_to_review.html', MESSAGES.READY_FOR_REVIEW: 'messages/email/ready_to_review.html', + MESSAGES.PARTNERS_UPDATED: 'partners_updated_applicant', + MESSAGES.PARTNERS_UPDATED_PARTNER: 'partners_updated_partner', } def get_subject(self, message_type, submission): @@ -607,6 +609,11 @@ class EmailAdapter(AdapterBase): # Only notify the applicant if the new phase can be seen within the workflow if not submission.phase.permissions.can_view(submission.user): return [] + + if message_type == MESSAGES.PARTNERS_UPDATED_PARTNER: + partners = kwargs['added'] + return [partner.email for partner in partners] + return [submission.user.email] def batch_recipients(self, message_type, submissions, **kwargs): @@ -633,6 +640,18 @@ class EmailAdapter(AdapterBase): if submission.phase.permissions.can_review(reviewer) and not reviewer.is_apply_staff ] + def partners_updated_applicant(self, added, removed, **kwargs): + if added: + return self.render_message( + 'messages/email/partners_update_applicant.html', + added=added, + **kwargs + ) + + def partners_updated_partner(self, added, removed, **kwargs): + for partner in added: + return self.render_message('messages/email/partners_update_partner.html', **kwargs) + def render_message(self, template, **kwargs): return render_to_string(template, kwargs) diff --git a/opentech/apply/activity/migrations/0023_notify_partners.py b/opentech/apply/activity/migrations/0023_notify_partners.py new file mode 100644 index 000000000..097c6f648 --- /dev/null +++ b/opentech/apply/activity/migrations/0023_notify_partners.py @@ -0,0 +1,18 @@ +# Generated by Django 2.0.13 on 2019-05-09 13:06 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('activity', '0022_add_versioning_to_comments'), + ] + + operations = [ + migrations.AlterField( + model_name='event', + name='type', + field=models.CharField(choices=[('UPDATE_LEAD', 'Update Lead'), ('EDIT', 'Edit'), ('APPLICANT_EDIT', 'Applicant Edit'), ('NEW_SUBMISSION', 'New Submission'), ('SCREENING', 'Screening'), ('TRANSITION', 'Transition'), ('BATCH_TRANSITION', 'Batch Transition'), ('DETERMINATION_OUTCOME', 'Determination Outcome'), ('BATCH_DETERMINATION_OUTCOME', 'Batch Determination Outcome'), ('INVITED_TO_PROPOSAL', 'Invited To Proposal'), ('REVIEWERS_UPDATED', 'Reviewers Updated'), ('BATCH_REVIEWERS_UPDATED', 'Batch Reviewers Updated'), ('PARTNERS_UPDATED', 'Partners Updated'), ('PARTNERS_UPDATED_PARTNER', 'Partners Updated Partner'), ('READY_FOR_REVIEW', 'Ready For Review'), ('BATCH_READY_FOR_REVIEW', 'Batch Ready For Review'), ('NEW_REVIEW', 'New Review'), ('COMMENT', 'Comment'), ('PROPOSAL_SUBMITTED', 'Proposal Submitted'), ('OPENED_SEALED', 'Opened Sealed Submission'), ('REVIEW_OPINION', 'Review Opinion'), ('DELETE_SUBMISSION', 'Delete Submission'), ('DELETE_REVIEW', 'Delete Review')], max_length=50), + ), + ] diff --git a/opentech/apply/activity/options.py b/opentech/apply/activity/options.py index f99b26089..c007308a2 100644 --- a/opentech/apply/activity/options.py +++ b/opentech/apply/activity/options.py @@ -15,6 +15,7 @@ class MESSAGES(Enum): REVIEWERS_UPDATED = 'Reviewers Updated' BATCH_REVIEWERS_UPDATED = 'Batch Reviewers Updated' PARTNERS_UPDATED = 'Partners Updated' + PARTNERS_UPDATED_PARTNER = 'Partners Updated Partner' READY_FOR_REVIEW = 'Ready For Review' BATCH_READY_FOR_REVIEW = 'Batch Ready For Review' NEW_REVIEW = 'New Review' diff --git a/opentech/apply/activity/templates/messages/email/base.html b/opentech/apply/activity/templates/messages/email/base.html index b745bcf22..2c634ca5a 100644 --- a/opentech/apply/activity/templates/messages/email/base.html +++ b/opentech/apply/activity/templates/messages/email/base.html @@ -1,13 +1,10 @@ {% block salutation %}Dear {{ user }},{% endblock %} - {% block content %}{% endblock %} - {% block more_info %}{% endblock %} - Kind Regards, The OTF Team --- +-- Open Technology Fund https://www.opentech.fund/ {% block post_signature_content %}{% endblock %} diff --git a/opentech/apply/activity/templates/messages/email/partners_update_applicant.html b/opentech/apply/activity/templates/messages/email/partners_update_applicant.html new file mode 100644 index 000000000..aac53450a --- /dev/null +++ b/opentech/apply/activity/templates/messages/email/partners_update_applicant.html @@ -0,0 +1,9 @@ +{% extends "messages/email/base.html" %} +{% block content %} +New partner(s) has been added to your submission. +{% for partner in added %} +* {{ partner }} +{% endfor %} +Title: {{ submission.title }} +Link: {{ request.scheme }}://{{ request.get_host }}{{ submission.get_absolute_url }} +{% endblock %} diff --git a/opentech/apply/activity/templates/messages/email/partners_update_partner.html b/opentech/apply/activity/templates/messages/email/partners_update_partner.html new file mode 100644 index 000000000..c80e90cc8 --- /dev/null +++ b/opentech/apply/activity/templates/messages/email/partners_update_partner.html @@ -0,0 +1,9 @@ +{% extends "messages/email/base.html" %} +{% block salutation %}Dear Partner,{% endblock %} + +{% block content %} +You have been added as a partner the following submission. + +Title: {{ submission.title }} +Link: {{ request.scheme }}://{{ request.get_host }}{{ submission.get_absolute_url }} +{% endblock %} diff --git a/opentech/apply/funds/templates/funds/applicationsubmission_admin_detail.html b/opentech/apply/funds/templates/funds/applicationsubmission_admin_detail.html index 71bcd9abd..f11f7ecc0 100644 --- a/opentech/apply/funds/templates/funds/applicationsubmission_admin_detail.html +++ b/opentech/apply/funds/templates/funds/applicationsubmission_admin_detail.html @@ -54,6 +54,6 @@ <script src="{% static 'js/apply/toggle-reviewers.js' %}"></script> <script src="{% static 'js/apply/toggle-sidebar.js' %}"></script> <script src="{% static 'js/apply/submission-text-cleanup.js' %}"></script> - <script src="{% static 'js/apply/edit-comment.js' %}"></script> <script src="{% static 'js/apply/toggle-related.js' %}"></script> + <script src="{% static 'js/apply/edit-comment.js' %}"></script> {% endblock %} diff --git a/opentech/apply/funds/views.py b/opentech/apply/funds/views.py index 530823289..fb94816ca 100644 --- a/opentech/apply/funds/views.py +++ b/opentech/apply/funds/views.py @@ -427,6 +427,16 @@ class UpdatePartnersView(DelegatedViewMixin, UpdateView): added=added, removed=removed, ) + + messenger( + MESSAGES.PARTNERS_UPDATED_PARTNER, + request=self.request, + user=self.request.user, + submission=self.kwargs['submission'], + added=added, + removed=removed, + ) + return response -- GitLab