Skip to content

Commit 5154b5f

Browse files
author
David Vogt
authored
Merge pull request adfinis#841 from open-dynaMIX/mail_on_closure
feat(caluma): send email on rejection
2 parents 47c4cd4 + ac83c42 commit 5154b5f

File tree

8 files changed

+209
-36
lines changed

8 files changed

+209
-36
lines changed

caluma/extensions/conftest.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -187,4 +187,4 @@ def case_access_event_mock(
187187

188188
@pytest.fixture
189189
def send_mail_mock(mocker):
190-
return mocker.patch("caluma.extensions.events.work_item._send_new_work_item_mail")
190+
return mocker.patch("caluma.extensions.events.work_item._send_work_item_mail")

caluma/extensions/email_texts/email_cost_approval.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
6060
Avec nos meilleures salutations,
6161
62-
Votre équipe de l'ASSH
62+
Votre équipe de lASSH
6363
6464
******
6565

caluma/extensions/email_texts/email_general.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
5454
Avec nos meilleures salutations,
5555
56-
Votre équipe de l'ASSH
56+
Votre équipe de lASSH
5757
5858
******
5959

caluma/extensions/email_texts/email_payout_amount.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
6060
Avec nos meilleures salutations,
6161
62-
Votre équipe de l'ASSH
62+
Votre équipe de lASSH
6363
6464
******
6565
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
SUBJECT_EN = "New information concerning {dossier_nr}"
2+
BODY_EN = """Dear {first_name} {last_name}
3+
4+
The Swiss Academy of Humanities and Social Sciences (SAGW/SAHS) has reviewed your request. Unfortunately, we have to inform you that your request cannot be granted since neither the formal nor the material criteria are being fulfilled.
5+
6+
Reference: {dossier_nr}
7+
You can access your document via the following link:
8+
{link}
9+
10+
If you have any questions, please contact us via e-mail (sagw@sagw.ch), phone (+41 31 306 92 50) or online (www.sagw.ch/kontakt-mysagw). Please bear in mind to state the reference number of your application.
11+
12+
Yours sincerely
13+
14+
Your SAGW team
15+
16+
******
17+
18+
This is an automatically generated message. Please do not reply. The contact details of SASH can be found on the following website:
19+
www.sagw.ch/kontakt-mysagw
20+
"""
21+
22+
SUBJECT_DE = "Neue Informationen zu {dossier_nr}"
23+
BODY_DE = """Guten Tag {first_name} {last_name}
24+
25+
Die Schweizerische Akademie der Geistes- und Sozialwissenschaften (SAGW) hat Ihr unten genanntes Gesuch geprüft. Leider müssen wir Ihnen mitteilen, dass wir Ihrem Antrag nicht entsprechen können, da weder die formellen noch die materiellen Voraussetzungen für eine Unterstützung erfüllt sind.
26+
27+
Referenz: {dossier_nr}
28+
Über den nachfolgenden Link können Sie direkt auf Ihr Dokument zugreifen, wo Sie die Angaben zu den noch benötigten Informationen finden:
29+
{link}
30+
31+
Sollten Sie Fragen haben, können Sie uns gerne über sagw@sagw.ch, die Telefonnummer +41 31 306 92 50 oder unter www.sagw.ch/kontakt-mysagw kontaktieren. Gerne bitten wir Sie, bei einer Frage immer die Referenznummer anzugeben.
32+
33+
Freundliche Grüsse
34+
35+
Ihr SAGW-Team
36+
37+
******
38+
39+
Dies ist eine automatisch generierte Email, bitte antworten Sie nicht auf diese Nachricht. Die Kontaktangaben der SAGW können Sie der nachfolgenden Seite entnehmen:
40+
www.sagw.ch/kontakt-mysagw
41+
"""
42+
43+
SUBJECT_FR = "Nouvelles informations concernant {dossier_nr}"
44+
BODY_FR = """Bonjour {first_name} {last_name}
45+
46+
L’Académie suisse des sciences humaines et sociales (ASSH) a examiné votre requête susmentionnée. Malheureusement, nous devons vous informer que nous ne pouvons pas donner suite à votre demande, car ni les conditions formelles ni les conditions matérielles pour un soutien ne sont remplies.
47+
48+
Référence : {dossier_nr}
49+
Cliquez sur le lien ci-dessous pour ouvrir votre document:
50+
{link}
51+
52+
Si vous avez des questions, n’hésitez pas à nous contacter à l’adresse sagw@sagw.ch, au numéro de téléphone +41 31 306 92 50 ou via www.sagw.ch/kontakt-mysagw. Nous vous prions de toujours indiquer le numéro de référence lorsque vous posez une question.
53+
54+
Avec nos meilleures salutations,
55+
56+
Votre équipe de l’ASSH
57+
58+
******
59+
60+
Ceci est un message électronique généré automatiquement, merci de ne pas y répondre. Vous trouverez les coordonnées de l'ASSH sur la page suivante :
61+
www.sagw.ch/kontakt-mysagw
62+
"""
63+
64+
65+
EMAIL_SUBJECTS = {"de": SUBJECT_DE, "fr": SUBJECT_FR, "en": SUBJECT_EN}
66+
EMAIL_BODIES = {"de": BODY_DE, "fr": BODY_FR, "en": BODY_EN}

caluma/extensions/events/work_item.py

+22-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@
1616
)
1717

1818
from ..common import format_currency, get_users_for_case
19-
from ..email_texts import email_cost_approval, email_general, email_payout_amount
19+
from ..email_texts import (
20+
email_cost_approval,
21+
email_general,
22+
email_payout_amount,
23+
email_rejection,
24+
)
2025
from ..settings import settings
2126

2227

@@ -38,7 +43,7 @@ def set_assigned_user(sender, work_item, user, **kwargs):
3843
work_item.save()
3944

4045

41-
def _send_new_work_item_mail(work_item):
46+
def _send_work_item_mail(work_item):
4247
"""
4348
Send the work_item emails.
4449
@@ -93,6 +98,8 @@ def _send_new_work_item_mail(work_item):
9398
payout_amount_answer.value if payout_amount_answer else 0, "CHF"
9499
)
95100
selected_email_texts = email_payout_amount
101+
elif work_item.task.slug == "decision-and-credit":
102+
selected_email_texts = email_rejection
96103

97104
users = get_users_for_case(work_item.case)
98105

@@ -132,7 +139,19 @@ def _send_new_work_item_mail(work_item):
132139
]
133140
)
134141
def send_new_work_item_mail(sender, work_item, user, **kwargs):
135-
_send_new_work_item_mail(work_item)
142+
_send_work_item_mail(work_item)
143+
144+
145+
@on(post_complete_work_item, raise_exception=True)
146+
@filter_events(
147+
lambda sender, work_item: work_item.task_id == "decision-and-credit"
148+
and work_item.document.answers.filter(
149+
question_id="decision-and-credit-decision",
150+
value="decision-and-credit-decision-close",
151+
).exists()
152+
)
153+
def send_rejection_mail(sender, work_item, user, **kwargs):
154+
_send_work_item_mail(work_item)
136155

137156

138157
@on(post_create_work_item, raise_exception=True)

0 commit comments

Comments
 (0)