From 34c14cc516c81c32996b172105b24473ba6ead81 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Wed, 23 Apr 2025 16:06:57 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(mail)=20include=20expiration=20inform?= =?UTF-8?q?ation=20in=20recording=20notification=20emails?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add validity duration (number of days valid) to email notifications for recordings. Informs users about their recording's lifespan, providing important context about content availability. --- .../core/recording/event/notification.py | 1 + .../locale/en_US/LC_MESSAGES/django.mo | Bin 7779 -> 7887 bytes .../locale/en_US/LC_MESSAGES/django.po | 13 ++++++++++--- .../locale/fr_FR/LC_MESSAGES/django.mo | Bin 8645 -> 8756 bytes .../locale/fr_FR/LC_MESSAGES/django.po | 10 ++++++++-- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 8069 -> 8173 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 14 ++++++++++---- src/mail/mjml/screen_recording.mjml | 5 +++++ 8 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/backend/core/recording/event/notification.py b/src/backend/core/recording/event/notification.py index ca6ff480..b441a543 100644 --- a/src/backend/core/recording/event/notification.py +++ b/src/backend/core/recording/event/notification.py @@ -63,6 +63,7 @@ class NotificationService: "logo_img": settings.EMAIL_LOGO_IMG, "domain": settings.EMAIL_DOMAIN, "room_name": recording.room.name, + "recording_expiration_days": settings.RECORDING_EXPIRATION_DAYS, "link": f"{settings.SCREEN_RECORDING_BASE_URL}/{recording.id}", } diff --git a/src/backend/locale/en_US/LC_MESSAGES/django.mo b/src/backend/locale/en_US/LC_MESSAGES/django.mo index a5616f48bb0b9559388dfff0c7b62eefc3c4adbd..0ffb4cca63b1e213d7b993a6bd84c60fcb3c242f 100644 GIT binary patch delta 2144 zcmb8vU2M&F9LMqRtg5JTdS<%n_#ZtTJ?)_$R$325>tUFo9=j<^9qmaPj=FGK7k^J# zHX>{uqC`9_L2qcQi@2~R;-W6tVu=vKG8ZDdm@Kl8Sa^T_=TF@FrQg1O=l?(F_xt_7 z-|sn(ru;V5eUP1Y$QZRm9+CN>nTs!b^N;bok68>~U>MhAm_>0H#<3H*WqEzg(lLw! zun0@B3>{41F#HjVupQaLwfjsWT=)yM(13nsH8>cPn81Pf1heo3YNL$)W~*=@>V6zq z!kY0@+=)8KDc=joN9_uZ!5&Q4qdsR+%!OC@F&1Zp=S3e)X?k%_jd!^$jj4)wgiS2WEFL#_Ok? zDvZlNN@Zp%#(CX_N_}u}>R>~WtlJ1w*O#D!^{B4@9`!(HQTzOX5xna%(L!lFhEkS^ zNvub*Y=5Fk^AweVSE#N}Cy%nzS0#_22oPM`h?Xs_CC$ zmcIWvLsPXKiK@{u)DvyTiFg#p;VrDf-uz7J{yfyib*NPSgf-ZW%2Y19sq4e2Of{fB zw+&T-Rt)OWz7HkQU5Gb$t|7vJx!BIjB@`LUnx$YQ5vAu0MzB z`d|F(mr+| zDWOqDs4qSv=3AZFG$!ikS%lK9RI8pV34LWWRDacS8Sw?7p<1sZREjr4*;J}&0k3KG z6%8B+r3YPAei5NU>HD;l2ooC132N=pW?HK=dX10L&*F-HrH(Ldv z4%HY-@Z;r;g49>ej9)eH=V%Td=m_pDT-p$GnqqYuo7TlQ)H_?^jg3w$nTR*VocIQ( YVAQ&An>QD3cHm+n<7WT&dV8ebYrj^+`2YX_ delta 2066 zcmYk+O>7la6u|MLv1%Fk>Pn zrW+S%qNoHC2{95if?#A}NZ9B?G%SqKbkiV`@DV=}ObQAA|IA2w(=)$2_r2b^_uMn@ zOvg}rGFYg3FKE3)JyA6(BEgH*TxfsZ9$-GzKL5}bzv=se$IlUqGS=S~JLV-;49%T`!}48;U=!g};Ujp%|}aSATOsn~-) zs2?ksAW4X`=th3WGG4@qIGahwnCdn<4s@amSdXTt2PfbboQ-|?_=jl54x$hI6r1rF zw&4)A;B;2`0Itp5jb`W|-jCm5Lc|c4x%fAhu*h=V(JEYo+t3L=#!mbx|GbXXHFMvL zP1uVb;Q*ScbGQtzpqX00E}eHJdIVc1lK)9`USc3UBXj`+_#ht7zjz*<@G{#~iM(fOapMtm8a=Y2F&2NF6~`!JH#=x19V$sY7U zd(mp&hkpJqnu#j%=~>pI3u(%2LwDYV^RR->^Co&k1IQF{0?k13BOOUe3q2qAA;fKCllhy4TTaKY}fI9_GWa#?bwMQpq~$-559_~auz?Ao3MiJ>~pl*zds;j9qtGyPTa6Ve??P#@k=i{rUF*OW4ew#W}8+zjM}I$-%gmY^E;6Q0 diff --git a/src/backend/locale/en_US/LC_MESSAGES/django.po b/src/backend/locale/en_US/LC_MESSAGES/django.po index 60018dd5..90dd5ed0 100644 --- a/src/backend/locale/en_US/LC_MESSAGES/django.po +++ b/src/backend/locale/en_US/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-04-23 13:47+0000\n" +"POT-Creation-Date: 2025-04-23 14:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -317,7 +317,7 @@ msgstr "Invalid authorization header." msgid "Invalid token" msgstr "Invalid token" -#: core/recording/event/notification.py:74 +#: core/recording/event/notification.py:94 msgid "Your recording is ready" msgstr "Your recording is ready" @@ -391,9 +391,16 @@ msgstr "Your recording is ready!" msgid "" " Your recording of \"%(room_name)s\" on %(recording_date)s at " "%(recording_time)s is now ready to download. " -msgstr " Your recording of \"%(room_name)s\" on %(recording_date)s at " +msgstr "" +" Your recording of \"%(room_name)s\" on %(recording_date)s at " "%(recording_time)s is now ready to download. " +#: core/templates/mail/html/screen_recording.html:195 +#: core/templates/mail/text/screen_recording.txt:8 +#, python-format +msgid " The recording will expire in %(days)s days. " +msgstr " The recording will expire in %(days)s days. " + #: core/templates/mail/html/screen_recording.html:201 #: core/templates/mail/text/screen_recording.txt:10 msgid "To keep this recording permanently:" diff --git a/src/backend/locale/fr_FR/LC_MESSAGES/django.mo b/src/backend/locale/fr_FR/LC_MESSAGES/django.mo index ef644a5dd667161011485e9992f433a9dfdb75ef..3d409b14fed52ef91d7e86ffb98f7f9c8aa40cad 100644 GIT binary patch delta 2181 zcmYk-Z)}Zc7{~F8R{v0{T^a4V^H_Cl^*H{HZY{0Wrp1i4rOcejJmCnZb51usw&gU- zMl9Jz4vQ=k>k{n6BsE*`Vp$3Hs>2H+sfg@FBV{a-4KFOdzjGdc?zsB7&-3@Xulv3q zXB&Q*AHSBLzSn3$;sv50%`A>N8T_GTWtq8{jT5mQC*vLr;c3i7f3}%!nTaE@8fRe> zI@pCTVmDS|FAmeIZqb>^bNWEwruH?55bv}kX!ggXY zCQykS_52-qg!SPRyn-1TYE}-}b08PTVhyHaGm@dTA=la()B`tqcA{Rm9hKNFd>#+r zI6RJe;RS5Qexz77g@-8NDy&wi8|mcXXQ&5$AN^#d z^II^0U!WgPqNZ{HHL!V%vH=&ND)n_9_1BGuIiSVUi_hU7sFC!e5*Wa#n4h1zt^xJH zg*X&jP*b-8D=>^I^*($FyHU?OgUo`RN7lJr&8Pl4ah(Gy^-WZ%|G|~KZ z@eVtIKX!b7pP>Fwnx_$?~rTxF(JMcFu z!?dE*Dj$WK3Lh%dQq+xpoQ3tM#A2wq{v4I?S6GeTVI5w<*Ks^ww`mx}8MqrOwExf2 zsp7yL)Z!~=OU%U@oQWS{DfZxMyo`F_3_fRXU<|ceda)L7Qg| zu{wt@W1LQqjz-#roU`qyQXN7)s0Ukd5H->|CRihHLaqK*q5zJY#&E@YBLW^@Lp*debJlocIKUfO( z_OmDGrxQ(@f6bM$)b?m5)B=P?;t*<@p2tlU(t@oah7ziflI9y@ZNwr%tujS&|EudK zv_sf1Hiwu^=>5r0q&}x*#A2eBP*pUyDx*rL`CUn9@2hD6Y1=L*77}Xj5UU7w?vtiz zO(R%Z$q$ouL>}>^CFW#g#@TwdjL_t232U;o;?%TaSa8Yzvh=&2U_~dl3iFuU654la zTCI=Un{>2VgM=1G9idgLrVoG?g4)Ze!KS`0T9%E8e=~Pgv}|yli2Gi9WL+q{-q{-3 zw8?Qh-w#DxClq!{%h#=qMJu8X9P7%uKVsVAGB+G?*N37V5qGm2?(i;-tmTq$^yv*7 V+dqgz1CBX~i@q_(zAUI3`3P#t&|v@o delta 2076 zcmYk+ZA_L`7{Kuh;R)i!1OJ#Su^9Wo*L7N+QPaRb(hG;dS^IR^UI_iDlPE zWN{F0!Clyb`_QS6VY9b7NymwP!4dooU%&c$!h8=c1;_-p!kZ&?ICiH&$O z4x@?eNqq(RY8=32_zpVHH`wY@r|Hx%a1D#Fx;&p@9WoSIbi&ru9`uIm(8RXjLVO$- z;W&E3!?+bEk)p&O=z^|bFP1WCrKMg=#|gJPfKQ-_Jdc)Y9Oq$zci_Qv{4`p*DfEV4 zV;g>lJy<|??YIJO$7fUDMk_UiNh6(~=q_-63VGH)5D|#Bca6dZX8C-*x($71{ zu8r$W*oqVARvtwcR>-PWV+C5NA#~ocO6u=k>|4PJF30cD?`5j;6PDu~ zu4~Y(tHmX_94++-HsCIFzSoed$06i=$GhqH2UXPHQh&mLrT!Ef3nEUThww+Tx)p~P zkR&%j>BjLUq=%?faDO#x%7jJ$hnCb^weL& zS}f(C<4x!d+R+~lU?V<^u6P1D4)H$j#N%kY< zaWvD<&>MY@op=sStn|kG9@n6W)uWHoQtZbuyca*jJ8=d(uz|OmXJi|8U0BYuu^0#NQG5!W@Jn2arM%93N``P1CU_4{;d6Ky-Ro!SsSb`KLotn6oIw{_ z$whraXCWO+)rC$pfWtU}p5|$E<>zq@UO9{ zIGJ95jER|^qEmn#7$?|D*!qbF?9f&c_Y+R&KDzf-V|Lq_UT}0`X!Zy6HxTQH9>OZS z6\n" @@ -325,7 +325,7 @@ msgstr "En-tête d'autorisation invalide." msgid "Invalid token" msgstr "Jeton invalide" -#: core/recording/event/notification.py:74 +#: core/recording/event/notification.py:94 msgid "Your recording is ready" msgstr "Votre enregistrement est prêt" @@ -403,6 +403,12 @@ msgstr "" " Votre enregistrement de \"%(room_name)s\" du %(recording_date)s à " "%(recording_time)s est maintenant prêt à être téléchargé. " +#: core/templates/mail/html/screen_recording.html:195 +#: core/templates/mail/text/screen_recording.txt:8 +#, python-format +msgid " The recording will expire in %(days)s days. " +msgstr " L'enregistrement expirera dans %(days)s jours. " + #: core/templates/mail/html/screen_recording.html:201 #: core/templates/mail/text/screen_recording.txt:10 msgid "To keep this recording permanently:" diff --git a/src/backend/locale/nl_NL/LC_MESSAGES/django.mo b/src/backend/locale/nl_NL/LC_MESSAGES/django.mo index 96a87835d1d8736e1cdcc325eba0618781b19175..d564b2afca6073796599843662e855a136d65b73 100644 GIT binary patch delta 2166 zcmYk+eN0t#9LMo*rf>;G1;hsu4+RQb5H$l0?Mk8vh?(NE;hdc5WpFQDT0*s5HnmOL z(n&J^aq1tg=H?$oj@edOI^EiY{%K>=Ikn9-A2w&1)AHf{Ip?(a?SAj;cOHMg^ZowL z*%P@NNnXtydB|v6h?j}%7tNA5I)y)4C}ieh8Wvz2%kT?~;?J0hrDVFsq9`vXnF4Qx+C9q&SJVS8~Z z_Mj&6b>NT4E$kAO;}E9kQA4AdJv+u?4lclvxEh(Etw+waCe#gE0y|Lyeu|pd0i1|O zaT4~U2K*IQ<7FgSR?bZ{;dxl4R4=159(SW|*c)sgLrvrx)I|Dm9Da{QI1ucAh|1g( z)PSRy%}gAJZ(s!H;72$EPX+#lNu}xuomVlJY0rt87Kc4*S!Y|pO#d8+3@FMC-E~6%J6K7#&rhndI z)D7!!1U8~dw+@RjhD!Bedo|nEE+fgbRinwM3^ZaBZo-53 z9g<~hAYbx5)CAkG4LguI+I7?#_zN}Qzo=49A-#017`2G2u@W0l8A$G-qZ;l-9>xYx z6ZsvL!ds{t|B1TMKS(((YqEb{0qVwKM4u4}=1OrSFS1M2*9I7jdQARX0w z#1#L69Mk}LsEL#Z`zw$IZf{~3m!neH864jgY=4GYE4|17b}`s~jQRkDbNvrl9p>r% zj|V$GN2Rh4m7)u%fu5okQ3;<%WvT(I@F32|0o0R+$h!v4M_s=PTW}w0O*}wl;u&h3 zdS;WQ_rHmbo-~213+qBX>3%H7BN)L;sFIAC=GQg{wfYN@Wnx9BiA7MU{us4byHS}s ziOTG0RP8TdQUm=$M>8Bkop=LT{9c_Zu#r%!Cf@OSlmS-|S~Dw&0^)6AcxwtasIaXX zet^CvSgZPL#(E`62z@5i^bwg&IE30fAMc;Jc^{DlsHay6^iJ!^))Pvxno6gp(y8f# zqy?!(ypT|dG`{!x715nREGHs_UY(_c%A(Aa5gQ2ASM4=IYhf)>N2qNgHWDhue@(Bd zQq2TL{{Ii^wHZr+h*SMqd`Sxjx>1 z1OJU7MLyTd60UbxN(Q;B;0NBL~}H@-Psv!ZFStv z_GrR&qA{nisCjEwM{$P(echoy(x=zBPP{#~was-tbQ7)dc>4!VoZj#=x4W^v=Is3R E=eBaiZU6uP delta 2072 zcmYk-ZD>|y7{Kvs>eJSqncH;EmzHyyt8Grxrn#B3S!!)&&X;uNBt=aj66!C1xf}liD2+=@|NGz=OK`A1NlVkbV0T#Czh4PM33_&3hO?6ncq z*oHUYR;DN z2l8m@lgO>{63)VdXgg=H!Kt33GM)?n;3%vpNk%vcxfIoCgAJ+8Xot(ufpuafK8O>r z2ko#ASK}chDe)^hp+B(&i)pmXR4=7sgX_J3ThM_#hNh|qOEHHx;okK62{d!3&<;;y zBYuv}SitD!;6kj$M^X=v^|%O~(Jq{iPoWK-#5?hF`uki) z*T{JXHsBs~DUYBN8_BGe;Ak{ctI&3LmXUwgqL&L}@i}xRhtL5W!P$5oy)RRqG+2To zI3JHL-9)?@XQQd^!W!I)w)ZTO^>`WC-*Gs-{(3q2H`Q-*!Bii^%7TdZ@FC96GAc8& zU|h26cc2ZPLkIK~I>SL+jF-^VHdaKK*$!;N-RN^~qDylWeg2mm6<@t8*oU1=hpfg> z>Tl@4GUV-H%pzlp9(3(rKs$T|UBY9?Uwp*D&HDw;$02m)Rpi~Jn~IDza@(mml09hZ zdeMfTN1lm&$TG%T=zZ^_4G$oH@fnAS_!Iiv2u|9u7|rZD^!|-F2X~-LeGs`n7yVT1 z;9azX)5#C)XZ)QxuZD!O?-MpHF}Em+6raRF{eXZ{-6@d@<#pK%w~upaJ-7tu@{K$mO~o%vOC zqQ#7^!uP+7iZiXnS=fZFxD8#BH_)~1M|b@P=&t_|9oR)Q)nlh5Z@~mKGi_*QSDpNwf^Y^a33vBWVtCnqQjKRd1}`!Dx7r_}%e diff --git a/src/backend/locale/nl_NL/LC_MESSAGES/django.po b/src/backend/locale/nl_NL/LC_MESSAGES/django.po index 1b3954b5..cbad93b6 100644 --- a/src/backend/locale/nl_NL/LC_MESSAGES/django.po +++ b/src/backend/locale/nl_NL/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-04-23 13:47+0000\n" +"POT-Creation-Date: 2025-04-23 14:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -317,7 +317,7 @@ msgstr "Ongeldige autorisatie-header." msgid "Invalid token" msgstr "Ongeldig token" -#: core/recording/event/notification.py:74 +#: core/recording/event/notification.py:94 msgid "Your recording is ready" msgstr "Je opname is klaar" @@ -392,8 +392,14 @@ msgid "" " Your recording of \"%(room_name)s\" on %(recording_date)s at " "%(recording_time)s is now ready to download. " msgstr "" -" Je opname van \"%(room_name)s\" op %(recording_date)s om " -"%(recording_time)s is nu klaar om te downloaden. " +" Je opname van \"%(room_name)s\" op %(recording_date)s om %(recording_time)s " +"is nu klaar om te downloaden. " + +#: core/templates/mail/html/screen_recording.html:195 +#: core/templates/mail/text/screen_recording.txt:8 +#, python-format +msgid " The recording will expire in %(days)s days. " +msgstr " De opname verloopt over %(days)s dagen. " #: core/templates/mail/html/screen_recording.html:201 #: core/templates/mail/text/screen_recording.txt:10 diff --git a/src/mail/mjml/screen_recording.mjml b/src/mail/mjml/screen_recording.mjml index d7cc4d55..4ad54416 100644 --- a/src/mail/mjml/screen_recording.mjml +++ b/src/mail/mjml/screen_recording.mjml @@ -23,6 +23,11 @@ {% blocktrans %} Your recording of "{{room_name}}" on {{recording_date}} at {{recording_time}} is now ready to download. {% endblocktrans %} + {% if recording_expiration_days %} + {% blocktrans with days=recording_expiration_days %} + The recording will expire in {{days}} days. + {% endblocktrans %} + {% endif %}

{% trans "To keep this recording permanently:" %}