Created send_plain_email_task celery task and calling it on contact send
This commit is contained in:
parent
d69dbcb720
commit
1da04a05d1
2 changed files with 30 additions and 0 deletions
|
@ -21,6 +21,7 @@ from opennebula_api.models import OpenNebulaManager
|
||||||
from opennebula_api.serializers import VirtualMachineTemplateSerializer, \
|
from opennebula_api.serializers import VirtualMachineTemplateSerializer, \
|
||||||
VMTemplateSerializer
|
VMTemplateSerializer
|
||||||
from datacenterlight.tasks import create_vm_task
|
from datacenterlight.tasks import create_vm_task
|
||||||
|
from utils.tasks import send_plain_email_task
|
||||||
|
|
||||||
|
|
||||||
class ContactUsView(FormView):
|
class ContactUsView(FormView):
|
||||||
|
@ -41,6 +42,15 @@ class ContactUsView(FormView):
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
form.save()
|
form.save()
|
||||||
|
email_data = {
|
||||||
|
'subject': 'Request received on Data Center Light',
|
||||||
|
'from_email': settings.DCL_SUPPORT_FROM_ADDRESS,
|
||||||
|
'to': ['info@ungleich.ch'],
|
||||||
|
'body': "\n".join(
|
||||||
|
["%s=%s" % (k, v) for (k, v) in form.cleaned_data.items()]),
|
||||||
|
'reply_to': [form.cleaned_data.get('email')],
|
||||||
|
}
|
||||||
|
send_plain_email_task.delay(email_data)
|
||||||
if self.request.is_ajax():
|
if self.request.is_ajax():
|
||||||
return self.render_to_response(
|
return self.render_to_response(
|
||||||
self.get_context_data(success=True, contact_form=form))
|
self.get_context_data(success=True, contact_form=form))
|
||||||
|
|
20
utils/tasks.py
Normal file
20
utils/tasks.py
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
from celery.utils.log import get_task_logger
|
||||||
|
from django.conf import settings
|
||||||
|
from dynamicweb.celery import app
|
||||||
|
from django.core.mail import EmailMessage
|
||||||
|
|
||||||
|
logger = get_task_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
@app.task(bind=True, max_retries=settings.CELERY_MAX_RETRIES)
|
||||||
|
def send_plain_email_task(self, email_data):
|
||||||
|
"""
|
||||||
|
This is a generic celery task to be used for sending emails.
|
||||||
|
A celery wrapper task for EmailMessage
|
||||||
|
|
||||||
|
:param self:
|
||||||
|
:param email_data: A dict of all needed email headers
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
email = EmailMessage(**email_data)
|
||||||
|
email.send()
|
Loading…
Reference in a new issue