UPD: trainer email address is now optional.
This commit is contained in:
@@ -3,6 +3,7 @@ import datetime
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import unicodedata
|
||||
import uuid
|
||||
from babel.dates import format_date
|
||||
from django.conf import settings
|
||||
@@ -263,10 +264,23 @@ class Event(models.Model):
|
||||
|
||||
if not self.id:
|
||||
user_model = get_user_model()
|
||||
username = self.trainer_email.lower()
|
||||
if not username:
|
||||
s = self.trainer_firstname.replace(u'ß', u'ss')
|
||||
s = unicodedata.normalize('NFKD', s).encode('ascii', 'ignore')
|
||||
s = re.sub(r'[^a-z-]', '', s.lower())
|
||||
username = s
|
||||
s = self.trainer_familyname.replace(u'ß', u'ss')
|
||||
s = unicodedata.normalize('NFKD', s).encode('ascii', 'ignore')
|
||||
s = re.sub(r'[^a-z-]', '', s.lower())
|
||||
username += '.' + s
|
||||
s = re.sub(r'[^0-9]', '', str(self.trainer_phone))
|
||||
username += '@' + s
|
||||
|
||||
try:
|
||||
owner = user_model.objects.get(username=self.trainer_email.lower())
|
||||
owner = user_model.objects.get(username=username)
|
||||
except user_model.DoesNotExist:
|
||||
owner = user_model(username=self.trainer_email.lower(),
|
||||
owner = user_model(username=username,
|
||||
first_name=self.trainer_firstname,
|
||||
last_name=self.trainer_familyname,
|
||||
email=self.trainer_email,
|
||||
@@ -285,14 +299,16 @@ class Event(models.Model):
|
||||
managers = get_users_by_role('manage_all')
|
||||
managers += get_users_by_role('manage_{}'.format(self.sport.lower()))
|
||||
for user in managers:
|
||||
action = OneClickAction(command='EA')
|
||||
action.parameters = '{event},{user}'.format(event=self.id, user=user.id)
|
||||
action.save()
|
||||
email = emails.EventToAcceptMail(recipient=user, event=self, accept_action=action)
|
||||
email.send()
|
||||
if user.email:
|
||||
action = OneClickAction(command='EA')
|
||||
action.parameters = '{event},{user}'.format(event=self.id, user=user.id)
|
||||
action.save()
|
||||
email = emails.EventToAcceptMail(recipient=user, event=self, accept_action=action)
|
||||
email.send()
|
||||
|
||||
email = emails.NewEventMail(recipient=self.owner, event=self)
|
||||
email.send()
|
||||
if self.owner.email:
|
||||
email = emails.NewEventMail(recipient=self.owner, event=self)
|
||||
email.send()
|
||||
|
||||
def accept(self, user=None):
|
||||
if not self.accepted:
|
||||
@@ -309,14 +325,16 @@ class Event(models.Model):
|
||||
|
||||
publishers = get_users_by_role('publish_incremental')
|
||||
for user in publishers:
|
||||
action = OneClickAction(command='EP')
|
||||
action.parameters = '{event},{user}'.format(event=self.id, user=user.id)
|
||||
action.save()
|
||||
email = emails.EventToPublishMail(recipient=user, event=self, confirm_publication_action=action)
|
||||
email.send()
|
||||
if user.email:
|
||||
action = OneClickAction(command='EP')
|
||||
action.parameters = '{event},{user}'.format(event=self.id, user=user.id)
|
||||
action.save()
|
||||
email = emails.EventToPublishMail(recipient=user, event=self, confirm_publication_action=action)
|
||||
email.send()
|
||||
|
||||
email = emails.EventAcceptedMail(recipient=self.owner, event=self)
|
||||
email.send()
|
||||
if self.owner.email:
|
||||
email = emails.EventAcceptedMail(recipient=self.owner, event=self)
|
||||
email.send()
|
||||
|
||||
return self.number
|
||||
else:
|
||||
@@ -453,6 +471,9 @@ class Event(models.Model):
|
||||
def get_numeric_date(self, begin_date=None, end_date=None):
|
||||
return self.get_formated_date(begin_date=begin_date, end_date=end_date, format='numeric')
|
||||
|
||||
def get_trainer_full_name(self):
|
||||
return u'%s %s' % (self.trainer_firstname, self.trainer_familyname)
|
||||
|
||||
def get_template_context(self, context=None):
|
||||
r = {
|
||||
'event': self,
|
||||
@@ -494,6 +515,7 @@ class Event(models.Model):
|
||||
'pre_meeting_2': self.pre_meeting_2,
|
||||
'trainer_firstname': self.trainer_firstname,
|
||||
'trainer_familyname': self.trainer_familyname,
|
||||
'trainer_fullname': self.get_trainer_full_name(),
|
||||
'trainer_email': self.trainer_email,
|
||||
'trainer_phone': self.trainer_phone,
|
||||
'trainer_2_fullname': self.trainer_2_fullname,
|
||||
|
||||
Reference in New Issue
Block a user