# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
import os
-from notifier.models import Notification, Emailed
+from notifier.models import Notification, Emailed, Email
-from django.core.mail import send_mail
from django.template.loader import render_to_string
from django.utils import timezone
# render email template
message = render_to_string(template_name, context)
- # finally, send the email
- send_mail(
- "Your Booking is Ready",
- message,
- os.environ.get("DEFAULT_FROM_EMAIL", "opnfv@laas-dashboard"),
- [user.userprofile.email_addr],
- fail_silently=False
- )
+ # finally, queue email for sending
+ Email.objects.create(title="Your Booking is Ready", message=message, recipient=user.userprofile.email_addr)
@classmethod
def email_booking_over(cls, booking):
message = render_to_string(template_name, context)
- send_mail(
- "Your Booking has Expired",
- message,
- os.environ.get("DEFAULT_FROM_EMAIL", "opnfv@laas-dashboard"),
- [user.userprofile.email_addr],
- fail_silently=False
- )
+ Email.objects.create(title="Your Booking has Expired", message=message, recipient=user.userprofile.email_addr)
@classmethod
def email_booking_expiring(cls, booking):
message = render_to_string(template_name, context)
- send_mail(
- "Your Booking is Expiring",
- message,
- os.environ.get("DEFAULT_FROM_EMAIL", "opnfv@laas-dashboard"),
- [user.userprofile.email_addr],
- fail_silently=False
- )
+ Email.objects.create(title="Your Booking is Expiring", message=message, recipient=user.userprofile.email_addr)
@classmethod
def task_updated(cls, task):
from django.utils import timezone
from django.conf import settings
from booking.models import Booking
-from notifier.models import Emailed
+from notifier.models import Emailed, Email
from notifier.manager import NotificationHandler
+from django.core.mail import send_mail
+
+import os
@shared_task
continue
NotificationHandler.notify_booking_expiring(booking)
Emailed.objects.create(almost_end_booking=booking)
+
+
+@shared_task
+def dispatch_emails():
+ for email in Email.objects.filter(sent=False):
+ email.sent = True
+ email.save()
+ send_mail(
+ email.title,
+ email.message,
+ os.environ.get("DEFAULT_FROM_EMAIL", "opnfv@laas-dashboard"),
+ email.recipient,
+ fail_silently=False)