merged
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.validators import ValidationError
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
from django.urls import reverse
|
||||
@@ -61,7 +62,7 @@ class EventManager(models.Manager):
|
||||
return super().get_queryset().filter(
|
||||
Q(is_event=True)
|
||||
& Q(event_start__gt=date_today)
|
||||
).order_by('-public_date')
|
||||
).order_by('-event_start')
|
||||
|
||||
|
||||
class FetMeetingManager(models.Manager):
|
||||
@@ -168,7 +169,8 @@ class Post(models.Model):
|
||||
# TODO: Explain why this image is selected on save of the image
|
||||
# Query all posts that have a slug that equals one of the tags
|
||||
posts1 = Post.objects.filter(
|
||||
slug__in=self.tags.names()).filter(image__isnull=False)[0:1].all()
|
||||
slug__in=self.tags.names()
|
||||
).filter(image__isnull=False)[0:1].all()
|
||||
if len(posts1) > 0:
|
||||
return posts1.get().image
|
||||
|
||||
@@ -190,11 +192,12 @@ class Post(models.Model):
|
||||
"save the post with some defaults"
|
||||
if (self.id is None) and (not self.slug):
|
||||
self.slug = slugify(self.public_date.date()) + "-" + slugify(self.title)
|
||||
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
self.tags.set(*re.findall(r'\#([\d\w-]+)', str(self.subtitle)),
|
||||
*re.findall(r'\#([\d\w-]+)', str(self.title)))
|
||||
self.tags.set(
|
||||
*re.findall(r'\#([\d\w-]+)', str(self.subtitle)),
|
||||
*re.findall(r'\#([\d\w-]+)', str(self.title))
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return "Post (%s, %s): %s " % (self.slug, self.public_date.strftime("%d.%m.%Y"), self.title)
|
||||
@@ -239,12 +242,24 @@ class Event(Post):
|
||||
|
||||
class Meta:
|
||||
proxy = True
|
||||
|
||||
verbose_name = "Event"
|
||||
verbose_name_plural = "Events"
|
||||
|
||||
@property
|
||||
def event_start_month (self):
|
||||
def event_start_month(self):
|
||||
return self.event_start.strftime("%b")
|
||||
|
||||
@property
|
||||
def event_start_day(self):
|
||||
return self.event_start.strftime("%d")
|
||||
|
||||
def clean(self):
|
||||
if self.event_end is None or self.event_start is None:
|
||||
raise ValidationError(_('Das Datum des Events fehlt.'))
|
||||
elif self.event_end < self.event_start:
|
||||
raise ValidationError(_('Das Ende des Events liegt vor dem Beginn.'))
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
self.is_event = True
|
||||
|
||||
@@ -263,6 +278,15 @@ class FetMeeting(Event):
|
||||
verbose_name = "Fet Sitzung"
|
||||
verbose_name_plural = "Fet Sitzungen"
|
||||
|
||||
def clean(self):
|
||||
if self.event_start is None:
|
||||
raise ValidationError(_('Das Datum des Events fehlt.'))
|
||||
|
||||
slug = slugify(self.event_start.date()) + "-" + slugify("Fachschaftssitzung")
|
||||
|
||||
if Post.objects.filter(slug=slug).count() != 0:
|
||||
raise ValidationError(_('Es existiert bereits eine Sitzung mit demselben Datum.'))
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
self.title = "Fachschaftssitzung"
|
||||
self.slug = slugify(self.event_start.date()) + "-" + slugify(self.title)
|
||||
|
||||
Reference in New Issue
Block a user