for owner/auth stuff.
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import os
|
||||
from babel.dates import format_date
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.db import models
|
||||
from django.template.loader import get_template
|
||||
from django.utils import timezone
|
||||
@@ -11,8 +13,16 @@ from . import config
|
||||
CHOICE_FIELD_MAX_LENGTH = 25
|
||||
|
||||
|
||||
def get_ghost_user():
|
||||
return get_user_model().objects.get_or_create(username='deleted')[0]
|
||||
|
||||
|
||||
class Event(models.Model):
|
||||
# Meta
|
||||
owner = models.ForeignKey(settings.AUTH_USER_MODEL,
|
||||
null=True,
|
||||
on_delete=models.SET(get_ghost_user),
|
||||
related_name='events')
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
accepted = models.BooleanField(default=False)
|
||||
accepted_at = models.DateTimeField(null=True)
|
||||
@@ -130,6 +140,18 @@ class Event(models.Model):
|
||||
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)
|
||||
except user_model.DoesNotExist:
|
||||
owner = user_model(username=self.trainer_email,
|
||||
first_name=self.trainer_firstname,
|
||||
last_name=self.trainer_familyname,
|
||||
email=self.trainer_email,
|
||||
)
|
||||
owner.save()
|
||||
self.owner = owner
|
||||
|
||||
super(Event, self).save(**kwargs)
|
||||
if notify:
|
||||
self.send_notification()
|
||||
@@ -173,8 +195,9 @@ class Event(models.Model):
|
||||
else:
|
||||
return None
|
||||
|
||||
def render_as_html(self):
|
||||
def _get_context(self):
|
||||
context = {
|
||||
'event': self,
|
||||
'mode': self.mode,
|
||||
'sport': self.sport,
|
||||
'title': self.title,
|
||||
@@ -222,8 +245,10 @@ class Event(models.Model):
|
||||
'trainer_email': self.trainer_email,
|
||||
'trainer_phone': self.trainer_phone,
|
||||
'trainer_2_fullname': self.trainer_2_fullname,
|
||||
'event': self,
|
||||
}
|
||||
return context
|
||||
|
||||
def render_as_html(self):
|
||||
template_name = os.path.join('dav_events', 'event.html')
|
||||
template = get_template(template_name)
|
||||
return template.render(context)
|
||||
return template.render(self._get_context())
|
||||
|
||||
Reference in New Issue
Block a user