Add automatic mail when an eticket has been bought

This commit is contained in:
Antoine Bartuccio 2016-10-21 13:09:46 +02:00
parent 3e99f97b7a
commit b00fc23fc4
4 changed files with 1924 additions and 2263 deletions

View File

@ -1,4 +1,5 @@
from django.db import models
from django.core.mail import send_mail
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin, UserManager, Group as AuthGroup, GroupManager as AuthGroupManager, AnonymousUser as AuthAnonymousUser
from django.utils.translation import ugettext_lazy as _
from django.utils import timezone
@ -332,6 +333,8 @@ class User(AbstractBaseUser):
"""
Sends an email to this User.
"""
if from_email is None:
from_email = settings.DEFAULT_FROM_EMAIL
send_mail(subject, message, from_email, [self.email], **kwargs)
def generate_username(self):

View File

@ -4,6 +4,7 @@ from django.utils import timezone
from django.conf import settings
from django.core.urlresolvers import reverse
from django.forms import ValidationError
from django.contrib.sites.shortcuts import get_current_site
from datetime import timedelta
import random
@ -54,6 +55,15 @@ class Customer(models.Model):
self.amount -= s.quantity * s.unit_price
self.save()
def get_absolute_url(self):
return reverse('core:user_account', kwargs={'user_id': self.user.pk})
def get_full_url(self):
request = None
full_url = ''.join(['http://', settings.SITH_URL, self.get_absolute_url()])
return full_url
class ProductType(models.Model):
"""
This describes a product type
@ -292,6 +302,32 @@ class Selling(models.Model):
self.customer.save()
super(Selling, self).delete(*args, **kwargs)
def send_mail_customer(self):
subject = _('Eticket bought for the event %(event)s') % {'event': self.product.name}
message_html = _(
"You bought an eticket for the event %(event)s.\nYou can download it on this page %(url)s."
) % {
'event': self.product.name,
'url':''.join((
'<a href="',
self.customer.get_full_url(),
'">',
self.customer.get_full_url(),
'</a>'
))
}
message_txt = _(
"You bought an eticket for the event %(event)s.\nYou can download it on this page %(url)s."
) % {
'event': self.product.name,
'url': self.customer.get_full_url(),
}
self.customer.user.email_user(
subject,
message_txt,
html_message=message_html
)
def save(self, *args, **kwargs):
if not self.date:
self.date = timezone.now()
@ -330,6 +366,10 @@ class Selling(models.Model):
duration=settings.SITH_SUBSCRIPTIONS[sub.subscription_type]['duration'],
start=sub.subscription_start)
sub.save()
try:
if self.product.eticket:
self.send_mail_customer()
except:pass
super(Selling, self).save(*args, **kwargs)
class Permanency(models.Model):

Binary file not shown.

File diff suppressed because it is too large Load Diff