diff --git a/src/backend/core/api/demo.py b/src/backend/core/api/demo.py index 27b9e0b2..f9a1cfa9 100644 --- a/src/backend/core/api/demo.py +++ b/src/backend/core/api/demo.py @@ -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("") diff --git a/src/backend/core/models.py b/src/backend/core/models.py index f2d4e77b..7b39f40a 100644 --- a/src/backend/core/models.py +++ b/src/backend/core/models.py @@ -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, + ) diff --git a/src/helm/env.d/staging/values.meet.yaml.gotmpl b/src/helm/env.d/staging/values.meet.yaml.gotmpl index 23432335..e5449204 100644 --- a/src/helm/env.d/staging/values.meet.yaml.gotmpl +++ b/src/helm/env.d/staging/values.meet.yaml.gotmpl @@ -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 diff --git a/src/mail/mjml/summary.mjml b/src/mail/mjml/summary.mjml new file mode 100644 index 00000000..2e9d38a7 --- /dev/null +++ b/src/mail/mjml/summary.mjml @@ -0,0 +1,19 @@ + + + + + + + +

Cher utilisateur,

+

La réunion {{room}} a été transcrite et résumée avec succès.

+
+ + Obtenez votre résumé + +
+
+
+
+ +