From 2616f835a3767fb4bc82d588ad4358c2913eb132 Mon Sep 17 00:00:00 2001 From: MJ Akbari Date: Fri, 20 Sep 2024 20:45:53 +0330 Subject: [PATCH] debug 2 --- GD/settings/base.py | 1 - core/admin.py | 41 ++++++++++++++++++++++++----------- tasks/emails.py | 4 ++-- templates/event_reminder.html | 4 +--- 4 files changed, 31 insertions(+), 19 deletions(-) diff --git a/GD/settings/base.py b/GD/settings/base.py index 9f76c9b..052664d 100644 --- a/GD/settings/base.py +++ b/GD/settings/base.py @@ -253,4 +253,3 @@ def show_toolbar(request): ALT_EMAIL_HOST_PASSWORD = config("ALT_EMAIL_HOST_PASSWORD") ALT_EMAIL_PORT = int(config("ALT_EMAIL_PORT")) ALT_EMAIL_BACKEND = config("ALT_EMAIL_BACKEND") - diff --git a/core/admin.py b/core/admin.py index a91dc88..429ece2 100644 --- a/core/admin.py +++ b/core/admin.py @@ -1,3 +1,5 @@ +from datetime import timezone + import jdatetime from dill import objects from django.contrib import admin @@ -67,29 +69,38 @@ def main_presenter(obj): return "no presenters" -def send_reminder(service): - presentation = service.talk or service.workshop - user = service.user +def send_reminder(services): + if not services: + return + + sample = services[0] + presentation = sample.talk or sample.workshop date = presentation.start + j_date = (jdatetime.datetime.utcfromtimestamp(date.timestamp()) + .aslocale(jdatetime.FA_LOCALE). + strftime('%a, %d %b %Y (%H:%M)')) + emails = [service.user.email for service in services] + context = { - 'name': user.first_name, - 'email': user.email, + 'emails': emails, 'title': presentation.title, 'is_online': bool(presentation.is_online), 'link': presentation.presentation_link, - 'date': jdatetime.datetime. - fromgregorian(year=date.year, month=date.month, day=date.day, hour=date.hour, minute=date.minute, - locale=jdatetime.FA_LOCALE).strftime('%a, %d %b %Y %H:%M') + 'date': j_date } - reminder_email_task.delay(context) + reminder_email_task(context) @admin.register(Talk) class TalkAdmin(admin.ModelAdmin): def send_reminder_emails(self, request, queryset): for event in queryset.all(): - for service in EventService.objects.filter(talk=event): - send_reminder(service) + services = [] + for service in EventService.objects.filter(talk_id=event.id): + if service.payment_state == "CM": + services.append(service) + + send_reminder(services) return JsonResponse({"message": "Emails sent."}) @@ -126,8 +137,12 @@ def send_reminder_emails(self, request, queryset): class WorkshopAdmin(admin.ModelAdmin): def send_reminder_emails(self, request, queryset): for event in queryset.all(): - for service in EventService.objects.filter(workshop=event): - send_reminder(service) + services = [] + for service in EventService.objects.filter(workshop_id=event.id): + if service.payment_state == "CM": + services.append(service) + + send_reminder(services) return JsonResponse({"message": "Emails sent."}) diff --git a/tasks/emails.py b/tasks/emails.py index 6409a75..58f6780 100644 --- a/tasks/emails.py +++ b/tasks/emails.py @@ -78,13 +78,13 @@ def send_reminder_email(service_data): subject=email_subject, body=html_message, from_email=settings.DEFAULT_FROM_EMAIL, - to=[service_data["email"], ], + to=service_data["emails"], connection=connection, ) msg.attach_alternative(html_message, 'text/html') msg.send() - return {'success': True, 'email': service_data['email']} + return {'success': True} def send_team_request(team_data): diff --git a/templates/event_reminder.html b/templates/event_reminder.html index 580457c..fc2e079 100644 --- a/templates/event_reminder.html +++ b/templates/event_reminder.html @@ -21,10 +21,8 @@
-

{{ name|safe }} - عزیز سلام!

- از اینکه همراه ما هستی، بسیار خرسندیم. + دوست عزیز سلام! از اینکه همراه ما هستی بسیار خرسندیم.