wip email user

This commit is contained in:
lebaudantoine
2024-10-16 17:47:32 +02:00
parent 2a56cda55c
commit a4820ae867
4 changed files with 63 additions and 4 deletions
+19 -3
View File
@@ -9,6 +9,7 @@ from ..models import Room, RoleChoices
import tempfile
import os
import smtplib
logger = logging.getLogger(__name__)
@@ -106,7 +107,7 @@ def minio_webhook(request):
except Exception as e:
logger.error("An error occurred while accessing the object: %s", str(e))
return Response("Error accessing file", status=500)
return Response("")
if settings.OPENAI_ENABLE and temp_file_path:
@@ -151,13 +152,28 @@ def minio_webhook(request):
logger.info("Temporary file %s has been deleted.", temp_file_path)
try:
room = Room.objects.get(slug=room_slug)
room = Room.objects.get(slug="fqj-hvzr-ieh")
owner_accesses = room.accesses.filter(role=RoleChoices.OWNER)
owners = [access.user for access in owner_accesses]
logger.info("Room %s has owners: %s", room_slug, owners)
except Room.DoesNotExist:
logger.error("Room with slug %s does not exist", room_slug)
owners = []
owners = None
room = None
if not owners or not room:
logger.error("No owners")
return Response("")
# todo - get link
try:
logger.info("Emailing owners: %s", owners)
room.email_summary(owners=owners, link="wip")
except smtplib.SMTPException:
logger.error("Error while emailing owners")
return Response("")
return Response("")
+23
View File
@@ -15,6 +15,8 @@ from django.utils.functional import lazy
from django.utils.text import capfirst, slugify
from django.utils.translation import gettext_lazy as _
from django.template.loader import render_to_string
from timezone_field import TimeZoneField
logger = getLogger(__name__)
@@ -325,3 +327,24 @@ class Room(Resource):
else:
raise ValidationError({"name": f'Room name "{self.name:s}" is reserved.'})
super().clean_fields(exclude=exclude)
def email_summary(self, owners, link):
"""Wip"""
template_vars = {
"title": "Votre résumé est prêt",
"link": link,
"room": self.slug,
}
msg_html = render_to_string("mail/html/summary.html", template_vars)
msg_plain = render_to_string("mail/text/invitation.txt", template_vars)
for owner in owners:
owner.email_user(
subject="Votre résumé est prêt",
from_email=settings.EMAIL_FROM,
message=msg_plain,
html_message=msg_html,
fail_silently=False,
)
@@ -27,6 +27,7 @@ backend:
DJANGO_EMAIL_HOST: "snap-mail.numerique.gouv.fr"
DJANGO_EMAIL_PORT: 465
DJANGO_EMAIL_USE_SSL: True
DJANGO_EMAIL_USE_TLS: True
OIDC_OP_JWKS_ENDPOINT: https://fca.integ01.dev-agentconnect.fr/api/v2/jwks
OIDC_OP_AUTHORIZATION_ENDPOINT: https://fca.integ01.dev-agentconnect.fr/api/v2/authorize
OIDC_OP_TOKEN_ENDPOINT: https://fca.integ01.dev-agentconnect.fr/api/v2/token
@@ -118,7 +119,7 @@ backend:
secretKeyRef:
name: backend
key: OPENAI_API_KEY
OPENAI_ENABLE: True
OPENAI_ENABLE: False
MINIO_ACCESS_KEY:
secretKeyRef:
name: backend
+19
View File
@@ -0,0 +1,19 @@
<mjml>
<mj-include path="./partial/header.mjml" />
<mj-body mj-class="bg--blue-100">
<mj-wrapper css-class="wrapper" padding="0 40px 40px 40px">
<mj-section mj-class="bg--white-100" padding="30px 20px 60px 20px">
<mj-column>
<mj-text font-size="14px">
<p>Cher utilisateur,</p>
<p>La réunion <strong>{{room}}</strong> a été transcrite et résumée avec succès.</p>
</mj-text>
<mj-button href="{{link}}" font-size="14px" background-color="#346DB7" color="white">
Obtenez votre résumé
</mj-button>
</mj-column>
</mj-section>
</mj-wrapper>
</mj-body>
<mj-include path="./partial/footer.mjml" />
</mjml>