mirror of
https://github.com/suitenumerique/meet.git
synced 2026-07-27 04:09:26 +00:00
wip email user
This commit is contained in:
@@ -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("")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user