save, news filter
This commit is contained in:
@@ -9,6 +9,14 @@ import django
|
||||
import uuid
|
||||
import re
|
||||
from rest_framework import serializers
|
||||
from django.db.models import Q
|
||||
|
||||
class PostManager(models.Manager):
|
||||
def get_queryset(self):
|
||||
return super().get_queryset()
|
||||
class NewsPostManager(models.Manager):
|
||||
def get_queryset(self):
|
||||
return super().get_queryset().filter(~Q(is_fetsitzung=True))
|
||||
|
||||
# Create your models here.
|
||||
class Post(models.Model):
|
||||
@@ -20,7 +28,7 @@ class Post(models.Model):
|
||||
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) # Wer hat das geschrieben
|
||||
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
|
||||
|
||||
@@ -37,19 +45,21 @@ class Post(models.Model):
|
||||
# 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)
|
||||
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)
|
||||
date_created=models.DateTimeField(auto_now_add=True)
|
||||
|
||||
objects=PostManager()
|
||||
news_objects=NewsPostManager()
|
||||
|
||||
|
||||
def get_tags(self):
|
||||
"""Returns assigned tags as a comma seperated list."""
|
||||
return ",".join(self.tags.names())
|
||||
|
||||
def imageurl(self):
|
||||
""" returns the url to the image"""
|
||||
if self.image:
|
||||
return self.image.url
|
||||
else:
|
||||
@@ -57,24 +67,28 @@ class Post(models.Model):
|
||||
|
||||
def key(self):
|
||||
return self.slug or self.id
|
||||
|
||||
@property
|
||||
def url(self):
|
||||
return reverse('posts.show', kwargs={"id":self.slug})
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if self.id is None and (self.slug is None or self.slug ==""):
|
||||
self.slug=slugify(self.title)
|
||||
|
||||
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)))
|
||||
|
||||
|
||||
def __str__(self):
|
||||
return "Post (%s, %s): %s " %(self.slug, self.public_date.strftime("%d.%m.%Y"), self.title)
|
||||
|
||||
|
||||
|
||||
class PostSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = Post
|
||||
fields = ['slug','title', 'body','url', 'legacy_id']
|
||||
fields = ['slug','title', 'body','url', 'legacy_id','image', 'event_start','event_end','is_fetsitzung']
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user