diff --git a/opentech/apply/activity/messaging.py b/opentech/apply/activity/messaging.py index e5e77f64e3d6c13ee7c1914795be104c0685b29d..2401c66e20cdc05a06ba2e5ee7ad4360bab35ee1 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 0000000000000000000000000000000000000000..097c6f648a2cff56873bd0488fa8213e55019ad4 --- /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 f99b2608911b4375365e7ccf12628cc5133ae058..c007308a20780b6335827fb159f4152977d3a629 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 b745bcf22b36f412ac4f05d4c464382685c8c8d9..2c634ca5a76a26bcf64740d5212db8a3b5c1e7ee 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 0000000000000000000000000000000000000000..aac53450a72bf1b5fa2638956be647197dafbbf8 --- /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 0000000000000000000000000000000000000000..c80e90cc8b249eaef73521194c488687fa60557c --- /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 71bcd9abd08346e88a7168220a028c3d5408827d..f11f7ecc09a5008f4fba8e037a421ea026cdb833 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 5308232895c4f24bda6f10eabaac58b7397fe2e3..fb94816ca8918c7bb348a835517c9afc9a200c9b 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