Added cron to send email and fixing settings error
This commit is contained in:
		
					parent
					
						
							
								72a21af789
							
						
					
				
			
			
				commit
				
					
						6d029fdeb5
					
				
			
		
					 15 changed files with 42 additions and 25 deletions
				
			
		|  | @ -55,6 +55,7 @@ INSTALLED_APPS = ( | |||
|     'easy_thumbnails', | ||||
|     'utils', | ||||
|     'stored_messages', | ||||
|     'mailer', | ||||
|     'mptt', | ||||
|     'parler', | ||||
|     'taggit', | ||||
|  |  | |||
|  | @ -8,6 +8,8 @@ ADMINS = ( | |||
| ) | ||||
| #    ('Sanghee Kim', 'sanghee.kim@ungleich.ch'), | ||||
| 
 | ||||
| EMAIL_BACKEND = "mailer.backend.DbBackend" | ||||
| 
 | ||||
| #MANAGERS = ADMINS | ||||
| 
 | ||||
| REGISTRATION_MESSAGE['message'] = REGISTRATION_MESSAGE['message'].format(host='digitalglarus.ungleich.ch',slug='{slug}') | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ urlpatterns += i18n_patterns('', | |||
|                              url(r'^digitalglarus/login/', include(membership_urls)), | ||||
|                              url(r'^digitalglarus/', include('digitalglarus.urls', | ||||
|                                                              namespace="digitalglarus")), | ||||
|                              url(r'^blog/', include('ungleich.urls', namespace='ungleich')), | ||||
|                              # url(r'^blog/', include('ungleich.urls', namespace='ungleich')), | ||||
|                              url(r'^ungleich_page/', | ||||
|                                  include('ungleich_page.urls', namespace='ungleich_page'), | ||||
|                                  name='ungleich_page'), | ||||
|  |  | |||
							
								
								
									
										3
									
								
								email_cron
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								email_cron
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| * * * * * (cd /home/app/app/; /usr/bin/python3 manage.py send_mail) | ||||
| 0,20,40 * * * * (cd /home/app/app/; /usr/bin/python3 manage.py retry_deferred) | ||||
| 0 0 * * * (cd /home/app/app/; /usr/bin/python3 manage.py purge_mail_log 7) | ||||
|  | @ -32,10 +32,11 @@ class HostingOrderAdmin(admin.ModelAdmin): | |||
| 
 | ||||
|             context = { | ||||
|                 'order': obj, | ||||
|                 'vm': obj.vm_plan | ||||
|                 'vm': obj.vm_plan, | ||||
|                 'base_url': "{0}://{1}".format(request.scheme, request.get_host()) | ||||
|             } | ||||
|             email_data = { | ||||
|                 'subject': 'New VM request', | ||||
|                 'subject': 'Your VM plan has been charged', | ||||
|                 'to': obj.customer.user.email, | ||||
|                 'context': context, | ||||
|                 'template_name': 'vm_charged', | ||||
|  | @ -75,7 +76,8 @@ class VirtualMachinePlanAdmin(admin.ModelAdmin): | |||
|         email = self.email(obj) | ||||
|         if 'status' in form.changed_data: | ||||
|             context = { | ||||
|                 'vm': obj | ||||
|                 'vm': obj, | ||||
|                 'base_url': "{0}://{1}".format(request.scheme, request.get_host()) | ||||
|             } | ||||
|             email_data = { | ||||
|                 'subject': 'Your VM has been activated', | ||||
|  |  | |||
|  | @ -114,7 +114,7 @@ | |||
|                   <w:anchorlock/> | ||||
|                   <center style="color:#ffffff;font-family:Helvetica, Arial, sans-serif;font-size:14px;font-weight:regular;">My Account</center> | ||||
|                 </v:roundrect> | ||||
|               <![endif]--><a href="{% url 'hosting:orders' order.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">View Invoice</a> | ||||
|               <![endif]--><a href="{{ base_url }}{% url 'hosting:orders' order.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">View Invoice</a> | ||||
| </div> | ||||
|             </td> | ||||
|           </tr> | ||||
|  |  | |||
|  | @ -101,7 +101,7 @@ | |||
| <td class="free-text" style="border-collapse: collapse; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; color: #777777; text-align: center; line-height: 21px; width: 100% !important; padding: 10px 60px 0px;" align="center"> | ||||
|              Your virtual machine {{vm.name}} subscription has been charged,  | ||||
|              <br/> | ||||
|              We are going to contact you as soon your virtual machine has been activated. | ||||
|              we are going to contact you as soon your virtual machine has been activated. | ||||
|              <br/>  | ||||
|              You can view your invoice clicking on the button below.  | ||||
|             </td> | ||||
|  | @ -114,7 +114,7 @@ | |||
|                   <w:anchorlock/> | ||||
|                   <center style="color:#ffffff;font-family:Helvetica, Arial, sans-serif;font-size:14px;font-weight:regular;">My Account</center> | ||||
|                 </v:roundrect> | ||||
|               <![endif]--><a href="{% url 'hosting:orders' order.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">View Invoice</a> | ||||
|               <![endif]--><a href="{{ base_url }}{% url 'hosting:orders' order.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">View Invoice</a> | ||||
| </div> | ||||
|             </td> | ||||
|           </tr> | ||||
|  |  | |||
|  | @ -110,7 +110,7 @@ | |||
|                   <w:anchorlock/> | ||||
|                   <center style="color:#ffffff;font-family:Helvetica, Arial, sans-serif;font-size:14px;font-weight:regular;">My Account</center> | ||||
|                 </v:roundrect> | ||||
|               <![endif]--><a href="{% url 'hosting:orders' order.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">View Invoice</a> | ||||
|               <![endif]--><a href="{{ base_url }}{% url 'hosting:orders' order.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">View Invoice</a> | ||||
| </div> | ||||
|             </td> | ||||
|           </tr> | ||||
|  |  | |||
|  | @ -110,7 +110,7 @@ | |||
|                   <w:anchorlock/> | ||||
|                   <center style="color:#ffffff;font-family:Helvetica, Arial, sans-serif;font-size:14px;font-weight:regular;">My Account</center> | ||||
|                 </v:roundrect> | ||||
|               <![endif]--><a href="{% url 'hosting:orders' order.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">View Invoice</a> | ||||
|               <![endif]--><a href="{{ base_url }}{% url 'hosting:orders' order.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">View Invoice</a> | ||||
| </div> | ||||
|             </td> | ||||
|           </tr> | ||||
|  |  | |||
|  | @ -111,7 +111,7 @@ | |||
|                   <w:anchorlock/> | ||||
|                   <center style="color:#ffffff;font-family:Helvetica, Arial, sans-serif;font-size:14px;font-weight:regular;">My Account</center> | ||||
|                 </v:roundrect> | ||||
|               <![endif]--><a href="{{request.HOS}}{% url 'hosting:virtual_machines' vm.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">VM Dashboard</a> | ||||
|               <![endif]--><a href="{{base_url}}{% url 'hosting:virtual_machines' vm.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">VM Dashboard</a> | ||||
| </div> | ||||
|             </td> | ||||
|           </tr> | ||||
|  |  | |||
|  | @ -111,7 +111,7 @@ | |||
|                   <w:anchorlock/> | ||||
|                   <center style="color:#ffffff;font-family:Helvetica, Arial, sans-serif;font-size:14px;font-weight:regular;">My Account</center> | ||||
|                 </v:roundrect> | ||||
|               <![endif]--><a href="{{request.HOS}}{% url 'hosting:virtual_machines' vm.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">VM Dashboard</a> | ||||
|               <![endif]--><a href="{{base_url}}{% url 'hosting:virtual_machines' vm.id %}" style="border-radius: 5px; color: #ffffff; display: inline-block; font-family: 'Oxygen', 'Helvetica Neue', 'Arial', 'sans-serif' !important; font-size: 14px; font-weight: regular; line-height: 45px; text-align: center; text-decoration: none !important; width: 155px; -webkit-text-size-adjust: none; mso-hide: all; background: #ff6f6f;">VM Dashboard</a> | ||||
| </div> | ||||
|             </td> | ||||
|           </tr> | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ from model_mommy import mommy | |||
| from membership.models import CustomUser, StripeCustomer | ||||
| from .models import VirtualMachineType, HostingOrder, VirtualMachinePlan | ||||
| from .views import DjangoHostingView, RailsHostingView, NodeJSHostingView, LoginView, SignupView, \ | ||||
|     PaymentVMView, OrdersHostingDetailView, OrdersHostingListView, VirtualMachineDetailView, \ | ||||
|     PaymentVMView, OrdersHostingDetailView, OrdersHostingListView, VirtualMachineView, \ | ||||
|     VirtualMachinesPlanListView | ||||
| from utils.tests import BaseTestCase | ||||
| 
 | ||||
|  | @ -172,16 +172,16 @@ class PaymentVMViewTest(BaseTestCase): | |||
|                          settings.STRIPE_API_PUBLIC_KEY) | ||||
| 
 | ||||
| 
 | ||||
| class VirtualMachineDetailViewTest(BaseTestCase): | ||||
| class VirtualMachineViewTest(BaseTestCase): | ||||
| 
 | ||||
|     def setUp(self): | ||||
|         super(VirtualMachineDetailViewTest, self).setUp() | ||||
|         super(VirtualMachineViewTest, self).setUp() | ||||
| 
 | ||||
|         self.stripe_customer = mommy.make(StripeCustomer, user=self.customer) | ||||
|         self.vm = mommy.make(VirtualMachinePlan) | ||||
|         self.order = mommy.make(HostingOrder, customer=self.stripe_customer, vm_plan=self.vm) | ||||
|         self.url = reverse('hosting:virtual_machines', kwargs={'pk': self.vm.id}) | ||||
|         self.view = VirtualMachineDetailView() | ||||
|         self.view = VirtualMachineView() | ||||
|         self.expected_template = 'hosting/virtual_machine_detail.html' | ||||
| 
 | ||||
|     def url_resolve_to_view_correctly(self): | ||||
|  |  | |||
|  | @ -285,13 +285,26 @@ class PaymentVMView(LoginRequiredMixin, FormView): | |||
| 
 | ||||
|             # Send notification to ungleich as soon as VM has been booked | ||||
|             # TODO send email using celery | ||||
| 
 | ||||
|             from django.core.mail import send_mail | ||||
| 
 | ||||
|             send_mail( | ||||
|                 'Subject here', | ||||
|                 'Here is the message.', | ||||
|                 'levinoelvm@gmail.com', | ||||
|                 ['levinoelvm@gmail.com'], | ||||
|                 fail_silently=False, | ||||
|             ) | ||||
| 
 | ||||
|             context = { | ||||
|                 'vm': plan, | ||||
|                 'order': order | ||||
|                 'order': order, | ||||
|                 'base_url': "{0}://{1}".format(request.scheme, request.get_host()) | ||||
| 
 | ||||
|             } | ||||
|             email_data = { | ||||
|                 'subject': 'New VM request', | ||||
|                 'to': 'info@ungleich.ch', | ||||
|                 'to': request.user.email, | ||||
|                 'context': context, | ||||
|                 'template_name': 'new_booked_vm', | ||||
|                 'template_path': 'emails/' | ||||
|  | @ -299,11 +312,6 @@ class PaymentVMView(LoginRequiredMixin, FormView): | |||
|             email = BaseEmail(**email_data) | ||||
|             email.send() | ||||
| 
 | ||||
|             # request.session.update({ | ||||
|             #     'charge': charge, | ||||
|             #     'order': order.id, | ||||
|             #     'billing_address': billing_address.id | ||||
|             # }) | ||||
|             return HttpResponseRedirect(reverse('hosting:orders', kwargs={'pk': order.id})) | ||||
|         else: | ||||
|             return self.form_invalid(form) | ||||
|  | @ -368,7 +376,8 @@ class VirtualMachineView(LoginRequiredMixin, UpdateView): | |||
|         vm.cancel_plan() | ||||
| 
 | ||||
|         context = { | ||||
|             'vm': vm | ||||
|             'vm': vm, | ||||
|             'base_url': "{0}://{1}".format(self.request.scheme, self.request.get_host()) | ||||
|         } | ||||
|         email_data = { | ||||
|             'subject': 'Virtual machine plan canceled', | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| {% load cms_tags menu_tags sekizai_tags staticfiles bootstrap3 %} | ||||
| {% load  i18n cms_tags menu_tags sekizai_tags staticfiles bootstrap3 %} | ||||
| <!doctype html> | ||||
| <html> | ||||
|   <head> | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ class BaseEmail(object): | |||
| 
 | ||||
|         self.email = EmailMultiAlternatives(self.subject, text_content) | ||||
|         self.email.attach_alternative(html_content, "text/html") | ||||
|         self.email.to = ['info@digitalglarus.ch'] | ||||
|         self.email.to = ['levinoelvm@gmail.com'] | ||||
| 
 | ||||
|     def send(self): | ||||
|         self.email.send() | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue