finished primitive email notifications.
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
from babel.dates import format_date
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.db import models
|
||||
from django.template.loader import get_template
|
||||
from django.utils import timezone
|
||||
@@ -10,6 +12,7 @@ from django_countries.fields import CountryField
|
||||
|
||||
from . import choices
|
||||
from . import config
|
||||
from . import emails
|
||||
|
||||
CHOICE_FIELD_MAX_LENGTH = 25
|
||||
|
||||
@@ -136,10 +139,13 @@ class Event(models.Model):
|
||||
sport=self.sport,
|
||||
first_day=self.first_day)
|
||||
|
||||
def save(self, notify=None, **kwargs):
|
||||
def get_absolute_url(self):
|
||||
return reverse('dav_events:event_detail', kwargs={'pk': self.pk})
|
||||
|
||||
def save(self, **kwargs):
|
||||
emails_to_send = []
|
||||
|
||||
if not self.id:
|
||||
if notify is None:
|
||||
notify = True
|
||||
user_model = get_user_model()
|
||||
try:
|
||||
owner = user_model.objects.get(username=self.trainer_email.lower())
|
||||
@@ -151,19 +157,24 @@ class Event(models.Model):
|
||||
)
|
||||
owner.save()
|
||||
self.owner = owner
|
||||
emails_to_send.append(emails.NewEventMail(event=self))
|
||||
emails_to_send.append(emails.EventToAcceptMail(event=self))
|
||||
|
||||
super(Event, self).save(**kwargs)
|
||||
if notify:
|
||||
self.send_notification()
|
||||
|
||||
def send_notification(self):
|
||||
pass
|
||||
for email in emails_to_send:
|
||||
email.send()
|
||||
|
||||
def accept(self):
|
||||
if not self.accepted:
|
||||
self.accepted = True
|
||||
self.accepted_at = timezone.now()
|
||||
self.save(notify=True)
|
||||
self.save()
|
||||
emails_to_send = [
|
||||
emails.EventAcceptedMail(event=self),
|
||||
emails.EventToPublishMail(event=self)
|
||||
]
|
||||
for email in emails_to_send:
|
||||
email.send()
|
||||
|
||||
def get_short_date(self, begin_date=None, end_date=None):
|
||||
if begin_date is None:
|
||||
@@ -195,7 +206,7 @@ class Event(models.Model):
|
||||
else:
|
||||
return None
|
||||
|
||||
def _get_context(self):
|
||||
def get_template_context(self):
|
||||
context = {
|
||||
'event': self,
|
||||
'mode': self.mode,
|
||||
@@ -248,7 +259,12 @@ class Event(models.Model):
|
||||
}
|
||||
return context
|
||||
|
||||
def render_as_text(self):
|
||||
template_name = os.path.join('dav_events', 'event.txt')
|
||||
template = get_template(template_name)
|
||||
return template.render(self.get_template_context())
|
||||
|
||||
def render_as_html(self):
|
||||
template_name = os.path.join('dav_events', 'event.html')
|
||||
template = get_template(template_name)
|
||||
return template.render(self._get_context())
|
||||
return template.render(self.get_template_context())
|
||||
|
||||
Reference in New Issue
Block a user