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,
)