no functional changes:

update format
This commit is contained in:
2020-06-19 00:39:44 +00:00
parent 987dca8ef6
commit 29c7c77c23

View File

@@ -1,22 +1,22 @@
from django.db import models
from django.contrib.auth.models import User
from taggit.managers import TaggableManager
from django.db import models
from django.db.models import Q
from django.utils.text import slugify
from django.utils import timezone
from django.urls import reverse
from taggit.managers import TaggableManager
#from ckeditor_uploader import RichTextUploadingField
import django
import uuid
import re
from rest_framework import serializers
from django.db.models import Q
from datetime import timedelta
import logging
logger = logging.getLogger('posts')
#TODO: is_fetsitzung -> is_fetmeeting
############
# MANAGERS #
@@ -55,44 +55,57 @@ class FetMeetingManager(models.Manager):
##########
class Category(models.Model):
title = models.CharField(max_length=200) # Titel des Posts
subtitle = models.CharField(max_length=500, null=True, blank=True) # subtitle
slug = models.SlugField(unique=True,null=True,blank=True) # Slug = Text Basierter url bestandteil zb Fetsitzung 22.1.2020 --> fetsitzung_22_1_2020 für Url
image = models.ImageField(null=True,blank=True) # Ein Haupt Bild für den Post
tags = TaggableManager(blank=True) # Tags
# Titel des Posts
title = models.CharField(max_length=200)
subtitle = models.CharField(max_length=500, null=True, blank=True)
# Slug = Text Basierter url bestandteil zb Fetsitzung 22.1.2020 --> fetsitzung_22_1_2020 für Url
slug = models.SlugField(unique=True,null=True,blank=True)
# Ein Haupt Bild für den Post
image = models.ImageField(null=True, blank=True)
tags = TaggableManager(blank=True)
class Meta:
verbose_name = "Category"
verbose_name_plural = "Categories"
class Post(models.Model):
# id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
#id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
legacy_id = models.IntegerField(null=True)
legacy_rubrik_id = models.IntegerField(null=True)
title = models.CharField(max_length=200) # Titel des Posts
subtitle = models.CharField(max_length=500, null=True, blank=True) # subtitle
slug = models.SlugField(unique=True,null=True,blank=True) # Slug = Text Basierter url bestandteil zb Fetsitzung 22.1.2020 --> fetsitzung_22_1_2020 für Url
body = models.TextField(null=True, blank=True) # Body Text Artikel Text soll später mit WYSIWG Editor bearbeitet werden
image = models.ImageField(null=True,blank=True) # Ein Haupt Bild für den Post
author = models.ForeignKey(User,on_delete=models.SET_NULL, null=True,blank=True) # Wer hat das geschrieben
tags = TaggableManager(blank=True) # Tags
public_date = models.DateField('date published',null=True,blank=True, default=django.utils.timezone.now) # Datum ab dem etwas öffentlich sein soll
# Titel des Posts
title = models.CharField(max_length=200)
subtitle = models.CharField(max_length=500, null=True, blank=True)
imported_from = models.CharField(max_length=200, null=True, blank=True) # Titel des Posts
# Slug = Text Basierter url bestandteil zb Fetsitzung 22.1.2020 --> fetsitzung_22_1_2020 für Url
slug = models.SlugField(unique=True, null=True, blank=True)
# Body Text Artikel Text soll später mit WYSIWG Editor bearbeitet werden
body = models.TextField(null=True, blank=True)
# Ein Haupt Bild für den Post
image = models.ImageField(null=True, blank=True)
# Wer hat das geschrieben
author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
tags = TaggableManager(blank=True)
# Datum ab dem etwas öffentlich sein soll
public_date = models.DateField('date published', null=True, blank=True, default=timezone.now)
imported_from = models.CharField(max_length=200, null=True, blank=True)
is_fetsitzung = models.BooleanField(default=False)
is_event = models.BooleanField(default=False)
# Zusatz Info wenn ein Event gepostet wird
event_start = models.DateTimeField('Event Start', null=True,blank=True)
event_end = models.DateTimeField('Event Ende', null=True,blank=True)
event_place = models.CharField(max_length=200, null=True,blank=True)
event_start = models.DateTimeField('Event Start', null=True, blank=True)
event_end = models.DateTimeField('Event Ende', null=True, blank=True)
event_place = models.CharField(max_length=200, null=True, blank=True)
# Dokumente v.a. fuer Sitzungen
has_protocol = models.BooleanField(default=False)
has_agenda = models.BooleanField(default=False)#
protocol_key = models.CharField(max_length=200, null=True,blank=True)
agenda_key = models.CharField(max_length=200, null=True,blank=True)
has_agenda = models.BooleanField(default=False)
protocol_key = models.CharField(max_length=200, null=True, blank=True)
agenda_key = models.CharField(max_length=200, null=True, blank=True)
# TimeStamps
date_modified = models.DateTimeField(auto_now=True)
@@ -122,9 +135,10 @@ class Post(models.Model):
def find_an_image(self):
"find an image via another post"
#ToDo: Explain why this image is selected on save of the image
posts1=Post.objects.filter(slug__in=self.tags.names()).filter(image__isnull=False)[0:1].all() # Query all posts that have a slug that equals one of the tags
if len(posts1)>0:
# 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()
if len(posts1) > 0:
return posts1.get().image
#posts2=self.tags.similar_objects()
@@ -153,9 +167,19 @@ class Post(models.Model):
class PostSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Post
fields = ['slug', 'title', 'subtitle', 'body', 'url', 'public_date',
'legacy_id', 'image', 'event_start', 'event_end',
'is_fetsitzung']
fields = [
'slug',
'title',
'subtitle',
'body',
'url',
'public_date',
'legacy_id',
'image',
'event_start',
'event_end',
'is_fetsitzung'
]
class News(Post):
class Meta:
@@ -172,6 +196,7 @@ class News(Post):
class Event(Post):
class Meta:
proxy = True
objects = EventManager()
def save(self, *args, **kwargs):
@@ -188,11 +213,10 @@ class FetMeeting(Event):
objects = FetMeetingManager()
def save(self, *args, **kwargs):
self.title = "Fachschaftssitzung"
self.slug = slugify(self.event_start.date()) + "-" + slugify(self.title)
self.body ="TODO: Agenda + Protokoll Link"
self.body = "TODO: Agenda + Protokoll Link"
#TODO
#self.image