mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-10 16:23:23 +00:00
Add automatic mail when an eticket has been bought
This commit is contained in:
parent
3e99f97b7a
commit
b00fc23fc4
@ -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):
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user