Skip to content

Commit 0bc3fbe

Browse files
authored
Merge pull request #47 from qgis/send_email_progress
Send email to the organisation owners when changing pending status
2 parents fb7727e + ca8ab1b commit 0bc3fbe

File tree

3 files changed

+53
-2
lines changed

3 files changed

+53
-2
lines changed

django_project/certification/api_views/update_status.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
from ..models.certifying_organisation import CertifyingOrganisation
66
from ..models.status import Status
77
from ..views import (
8-
send_rejection_email, send_approved_email,
8+
send_rejection_email,
9+
send_approved_email,
10+
send_pending_email,
911
CertifyingOrganisationUserTestMixin
1012
)
1113

@@ -76,6 +78,13 @@ def post(self, request, slug):
7678
self.request.user.username
7779
)
7880

81+
if status_id and status_name and status_name.lower() == "pending":
82+
send_pending_email(
83+
certifyingorganisation,
84+
change_reason,
85+
site
86+
)
87+
7988
certifyingorganisation._change_reason = (
8089
change_reason
8190
)

django_project/certification/tests/api_views/test_update_status.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@ def test_update_status_access(self):
106106
)
107107
response = self.client.post(self.api_url, data)
108108
self.assertTrue(response.status_code, 200)
109+
self.assertIn(
110+
'Your organisation application status has been updated.',
111+
mail.outbox[0].subject)
109112

110113
@override_settings(VALID_DOMAIN=['testserver', ])
111114
def test_update_status_no_login(self):

django_project/certification/views/certifying_organisation.py

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1117,7 +1117,7 @@ def send_approved_email(
11171117
'project_slug': certifying_organisation.project.slug,
11181118
}
11191119
send_mail(
1120-
u'Projecta - Your organisation is approved',
1120+
u'QGIS Certification - Your organisation is approved',
11211121
u'Dear {owner_firstname} {owner_lastname},\n\n'
11221122
u'Congratulations!\n'
11231123
u'Your certifying organisation has been approved. The '
@@ -1138,6 +1138,45 @@ def send_approved_email(
11381138
)
11391139

11401140

1141+
def send_pending_email(
1142+
certifying_organisation: CertifyingOrganisation,
1143+
change_reason: str,
1144+
site: request
1145+
):
1146+
for organisation_owner in \
1147+
certifying_organisation.organisation_owners.all():
1148+
data = {
1149+
'owner_firstname': organisation_owner.first_name,
1150+
'owner_lastname': organisation_owner.last_name,
1151+
'change_reason': change_reason,
1152+
'organisation_name': certifying_organisation.name,
1153+
'project_name': certifying_organisation.project.name,
1154+
'project_owner_firstname':
1155+
certifying_organisation.project.owner.first_name,
1156+
'project_owner_lastname':
1157+
certifying_organisation.project.owner.last_name,
1158+
'site': site,
1159+
'project_slug': certifying_organisation.project.slug,
1160+
'details_url': 'https://' + site + reverse(
1161+
'certifyingorganisation-detail',
1162+
kwargs={'slug': certifying_organisation.slug}
1163+
)
1164+
}
1165+
send_mail(
1166+
u'QGIS Certification - Your organisation application status has been updated.',
1167+
u'Dear {owner_firstname} {owner_lastname},\n\n'
1168+
u'{change_reason}\n'
1169+
u'For further information please visit: '
1170+
u'{details_url}\n\n'
1171+
u'Sincerely,\n'
1172+
u'{project_owner_firstname} {project_owner_lastname}'.format(
1173+
**data),
1174+
certifying_organisation.project.owner.email,
1175+
[organisation_owner.email],
1176+
fail_silently=True,
1177+
)
1178+
1179+
11411180
class ApproveCertifyingOrganisationView(
11421181
CertifyingOrganisationMixin,
11431182
RedirectView):

0 commit comments

Comments
 (0)