From 7f8004d0664baf6ccc6589b6f0f091ca93f7b25a Mon Sep 17 00:00:00 2001 From: gzbender Date: Tue, 2 Oct 2018 21:48:05 +0500 Subject: [PATCH] LIL-503 --- .../management/commands/send_certificates.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/notification/management/commands/send_certificates.py b/apps/notification/management/commands/send_certificates.py index ee1e4b3b..4c59dcb6 100644 --- a/apps/notification/management/commands/send_certificates.py +++ b/apps/notification/management/commands/send_certificates.py @@ -1,3 +1,5 @@ +from datetime import datetime + from django.core.management.base import BaseCommand from email.mime.image import MIMEImage from django.contrib.staticfiles.storage import staticfiles_storage @@ -22,6 +24,11 @@ class Command(BaseCommand): dest='email', help='Test email', ) + parser.add_argument( + '--date', + dest='date', + help='Date in format 22-03-2018', + ) parser.add_argument( '--dry-run', action='store_true', @@ -44,11 +51,13 @@ class Command(BaseCommand): file.close() return + date = datetime.strptime(options['date'], '%d-%m-%Y') if options.get('date') else now().date() today = now().date() - users = SchoolPayment.objects.filter(date_end=today, add_days=False).values_list('user_id', flat=True) + users = set(list(SchoolPayment.objects.filter(date_end=date, add_days=False).values_list('user_id', flat=True))) user_notifications_qs = UserNotification.objects.filter(user_id__in=users) - user_notifications = {un.user.id: un for un in user_notifications_qs} - notified_users = user_notifications_qs.filter(certificate_last_email__date=today).values_list('user_id', flat=True) + user_notifications = {un.user_id: un for un in user_notifications_qs} + notified_users = user_notifications_qs.filter(certificate_last_email__date=today).values_list( + 'user_id', flat=True).distinct() for user_id in users: if user_id in notified_users: continue