Skip to content

Commit 3c33386

Browse files
committed
Modified: using yaml as default email templates (#284)
1 parent fb875ba commit 3c33386

File tree

4 files changed

+64
-97
lines changed

4 files changed

+64
-97
lines changed

libreforms_fastapi/app/__init__.py

+18
Original file line numberDiff line numberDiff line change
@@ -686,6 +686,7 @@ def write_api_call_to_transaction_log(
686686
if send_mail_on_failure:
687687
subject, content = render_email_message_from_jinja(
688688
'transaction_log_error',
689+
config.EMAIL_CONFIG_PATH,
689690
config=config,
690691
user=user,
691692
current_time=current_time,
@@ -735,6 +736,7 @@ async def check_key_rotation(
735736

736737
subject, content = render_email_message_from_jinja(
737738
'api_key_rotation',
739+
config.EMAIL_CONFIG_PATH,
738740
config=config,
739741
user=user,
740742
)
@@ -856,6 +858,7 @@ async def api_form_create(
856858
if config.SMTP_ENABLED:
857859
subject, content = render_email_message_from_jinja(
858860
'form_created',
861+
config.EMAIL_CONFIG_PATH,
859862
config=config,
860863
form_name=form_name,
861864
document_id=document_id
@@ -1411,6 +1414,7 @@ async def api_form_update(
14111414
if config.SMTP_ENABLED:
14121415
subject, content = render_email_message_from_jinja(
14131416
'form_updated',
1417+
config.EMAIL_CONFIG_PATH,
14141418
config=config,
14151419
form_name=form_name,
14161420
document_id=document_id
@@ -1521,6 +1525,7 @@ async def api_form_delete(
15211525

15221526
subject, content = render_email_message_from_jinja(
15231527
'form_deleted',
1528+
config.EMAIL_CONFIG_PATH,
15241529
config=config,
15251530
form_name=form_name,
15261531
document_id=document_id
@@ -1629,6 +1634,7 @@ async def api_form_restore(
16291634

16301635
subject, content = render_email_message_from_jinja(
16311636
'form_restored',
1637+
config.EMAIL_CONFIG_PATH,
16321638
config=config,
16331639
form_name=form_name,
16341640
document_id=document_id
@@ -1887,6 +1893,7 @@ async def api_form_sign(
18871893

18881894
subject, content = render_email_message_from_jinja(
18891895
'form_signed',
1896+
config.EMAIL_CONFIG_PATH,
18901897
config=config,
18911898
form_name=form_name,
18921899
document_id=document_id
@@ -1994,6 +2001,7 @@ async def api_form_sign(
19942001

19952002
subject, content = render_email_message_from_jinja(
19962003
'form_unsigned',
2004+
config.EMAIL_CONFIG_PATH,
19972005
config=config,
19982006
form_name=form_name,
19992007
document_id=document_id
@@ -2257,6 +2265,7 @@ async def api_auth_create(
22572265

22582266
subject, content = render_email_message_from_jinja(
22592267
'suspicious_activity',
2268+
config.EMAIL_CONFIG_PATH,
22602269
config=config,
22612270
)
22622271
# print(subject, content)
@@ -2317,6 +2326,7 @@ async def api_auth_create(
23172326

23182327
subject, content = render_email_message_from_jinja(
23192328
'user_registered_verification',
2329+
config.EMAIL_CONFIG_PATH,
23202330
config=config,
23212331
username=new_username,
23222332
key=_key,
@@ -2326,6 +2336,7 @@ async def api_auth_create(
23262336

23272337
subject, content = render_email_message_from_jinja(
23282338
'user_registered',
2339+
config.EMAIL_CONFIG_PATH,
23292340
config=config,
23302341
username=new_username,
23312342
)
@@ -2472,6 +2483,7 @@ async def api_auth_change_password(
24722483

24732484
subject, content = render_email_message_from_jinja(
24742485
'user_password_changed',
2486+
config.EMAIL_CONFIG_PATH,
24752487
config=config,
24762488
username=user,
24772489
)
@@ -2661,6 +2673,7 @@ async def api_auth_forgot_password(
26612673

26622674
subject, content = render_email_message_from_jinja(
26632675
'password_reset_instructions',
2676+
config.EMAIL_CONFIG_PATH,
26642677
config=config,
26652678
otp=otp,
26662679
user=user
@@ -2811,6 +2824,7 @@ async def api_auth_forgot_password_confirm(
28112824

28122825
subject, content = render_email_message_from_jinja(
28132826
'password_reset_complete',
2827+
config.EMAIL_CONFIG_PATH,
28142828
config=config,
28152829
user=user
28162830
)
@@ -3091,6 +3105,7 @@ async def api_auth_help(
30913105

30923106
subject, content = render_email_message_from_jinja(
30933107
'help_request',
3108+
config.EMAIL_CONFIG_PATH,
30943109
user=user,
30953110
config=config,
30963111
time=time_str,
@@ -3273,6 +3288,7 @@ async def api_admin_create_user(
32733288

32743289
subject, content = render_email_message_from_jinja(
32753290
'user_registered_admin',
3291+
config.EMAIL_CONFIG_PATH,
32763292
config=config,
32773293
username=new_username,
32783294
)
@@ -3673,6 +3689,7 @@ async def api_form_delete(
36733689

36743690
subject, content = render_email_message_from_jinja(
36753691
'form_deleted',
3692+
config.EMAIL_CONFIG_PATH,
36763693
config=config,
36773694
form_name=form_name,
36783695
document_id=document_id
@@ -3767,6 +3784,7 @@ async def api_form_restore(
37673784

37683785
subject, content = render_email_message_from_jinja(
37693786
'form_restored',
3787+
config.EMAIL_CONFIG_PATH,
37703788
config=config,
37713789
form_name=form_name,
37723790
document_id=document_id

libreforms_fastapi/utils/config.py

+6
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,12 @@ def validate_timezone(cls, v):
155155
# https://github.com/signebedi/libreforms-fastapi/issues/37.
156156
FORM_CONFIG_PATH:str = os.getenv('FORM_CONFIG_PATH', os.path.join(os.path.join(os.getcwd(), "instance", f"{env}_form_config.yml")))
157157

158+
159+
# Here we specify a path to our JSON EMAIL config representation, see
160+
# https://github.com/signebedi/libreforms-fastapi/issues/284.
161+
EMAIL_CONFIG_PATH:str = os.getenv('EMAIL_CONFIG_PATH', os.path.join(os.path.join(os.getcwd(), "instance", f"{env}_email_config.yml")))
162+
163+
158164
# Here we allow admins to decide whether to enable site documentation
159165
DOCS_ENABLED:bool = os.getenv('DOCS_ENABLED', 'False') == 'True'
160166
DOCS_PATH:str = os.getenv('DOCS_PATH', os.path.join(os.path.join(os.getcwd(), "instance", f"{env}_docs.md")))

0 commit comments

Comments
 (0)