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…
	
	Add table
		Add a link
		
	
		Reference in a new issue