diff --git a/dynamicweb/settings/base.py b/dynamicweb/settings/base.py
index ab2d6763..e31cbef3 100644
--- a/dynamicweb/settings/base.py
+++ b/dynamicweb/settings/base.py
@@ -55,6 +55,7 @@ INSTALLED_APPS = (
'easy_thumbnails',
'utils',
'stored_messages',
+ 'mailer',
'mptt',
'parler',
'taggit',
diff --git a/dynamicweb/settings/prod.py b/dynamicweb/settings/prod.py
index 1588b5c3..36d625c6 100644
--- a/dynamicweb/settings/prod.py
+++ b/dynamicweb/settings/prod.py
@@ -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}')
diff --git a/dynamicweb/urls.py b/dynamicweb/urls.py
index 0e2e2196..a732934e 100644
--- a/dynamicweb/urls.py
+++ b/dynamicweb/urls.py
@@ -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'),
diff --git a/email_cron b/email_cron
new file mode 100644
index 00000000..559fd565
--- /dev/null
+++ b/email_cron
@@ -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)
\ No newline at end of file
diff --git a/hosting/admin.py b/hosting/admin.py
index 8c9d59da..640878f5 100644
--- a/hosting/admin.py
+++ b/hosting/admin.py
@@ -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',
diff --git a/hosting/templates/emails/new_booked_vm.html b/hosting/templates/emails/new_booked_vm.html
index a36f12a8..651e1c54 100644
--- a/hosting/templates/emails/new_booked_vm.html
+++ b/hosting/templates/emails/new_booked_vm.html
@@ -114,7 +114,7 @@
My Account
- View Invoice
+ View Invoice
diff --git a/hosting/templates/emails/new_booked_vm.txt b/hosting/templates/emails/new_booked_vm.txt
index 3f32d12a..651e1c54 100644
--- a/hosting/templates/emails/new_booked_vm.txt
+++ b/hosting/templates/emails/new_booked_vm.txt
@@ -101,7 +101,7 @@
Your virtual machine {{vm.name}} subscription has been charged,
- 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.
You can view your invoice clicking on the button below.
|
@@ -114,7 +114,7 @@
My Account
- View Invoice
+ View Invoice
diff --git a/hosting/templates/emails/vm_charged.html b/hosting/templates/emails/vm_charged.html
index 3f0f5f8f..ff3508d9 100644
--- a/hosting/templates/emails/vm_charged.html
+++ b/hosting/templates/emails/vm_charged.html
@@ -110,7 +110,7 @@
My Account
- View Invoice
+ View Invoice
diff --git a/hosting/templates/emails/vm_charged.txt b/hosting/templates/emails/vm_charged.txt
index 3f0f5f8f..ff3508d9 100644
--- a/hosting/templates/emails/vm_charged.txt
+++ b/hosting/templates/emails/vm_charged.txt
@@ -110,7 +110,7 @@
My Account
- View Invoice
+ View Invoice
diff --git a/hosting/templates/emails/vm_status_changed.html b/hosting/templates/emails/vm_status_changed.html
index 96261f44..fd10182a 100644
--- a/hosting/templates/emails/vm_status_changed.html
+++ b/hosting/templates/emails/vm_status_changed.html
@@ -111,7 +111,7 @@
My Account
- VM Dashboard
+ VM Dashboard
diff --git a/hosting/templates/emails/vm_status_changed.txt b/hosting/templates/emails/vm_status_changed.txt
index 96261f44..fd10182a 100644
--- a/hosting/templates/emails/vm_status_changed.txt
+++ b/hosting/templates/emails/vm_status_changed.txt
@@ -111,7 +111,7 @@
My Account
- VM Dashboard
+ VM Dashboard
diff --git a/hosting/test_views.py b/hosting/test_views.py
index 0e9c7626..b2deb6d7 100644
--- a/hosting/test_views.py
+++ b/hosting/test_views.py
@@ -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):
diff --git a/hosting/views.py b/hosting/views.py
index eca04023..ca591c45 100644
--- a/hosting/views.py
+++ b/hosting/views.py
@@ -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',
diff --git a/ungleich/templates/cms/ungleichch/base_ungleich.html b/ungleich/templates/cms/ungleichch/base_ungleich.html
index 833b2111..6f70a4a8 100644
--- a/ungleich/templates/cms/ungleichch/base_ungleich.html
+++ b/ungleich/templates/cms/ungleichch/base_ungleich.html
@@ -1,4 +1,4 @@
-{% load cms_tags menu_tags sekizai_tags staticfiles bootstrap3 %}
+{% load i18n cms_tags menu_tags sekizai_tags staticfiles bootstrap3 %}
diff --git a/utils/mailer.py b/utils/mailer.py
index 130b74ee..0afa60b7 100644
--- a/utils/mailer.py
+++ b/utils/mailer.py
@@ -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()