save, news filter
This commit is contained in:
@@ -42,7 +42,8 @@ INSTALLED_APPS = [
|
|||||||
'taggit',
|
'taggit',
|
||||||
'ckeditor',
|
'ckeditor',
|
||||||
'ckeditor_uploader',
|
'ckeditor_uploader',
|
||||||
'rest_framework'
|
'rest_framework',
|
||||||
|
'django_filters'
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
@@ -140,3 +141,21 @@ MEDIA_URL='/files/'
|
|||||||
|
|
||||||
|
|
||||||
TAGGIT_FORCE_LOWERCASE = True
|
TAGGIT_FORCE_LOWERCASE = True
|
||||||
|
|
||||||
|
CKEDITOR_CONFIGS = {
|
||||||
|
'default': {
|
||||||
|
'stylesSet': [
|
||||||
|
{
|
||||||
|
"name": 'Überschrift 2',
|
||||||
|
"element": 'h2',
|
||||||
|
"attributes": {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": 'Code',
|
||||||
|
"element": 'code',
|
||||||
|
"attributes": {"class": "code-block"},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@ from posts.models import Post
|
|||||||
|
|
||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
posts=deque(Post.objects.all())
|
posts=deque(Post.news_objects.all())
|
||||||
l=len(posts)
|
l=len(posts)
|
||||||
|
|
||||||
if l>=1:
|
if l>=1:
|
||||||
|
|||||||
@@ -7,4 +7,7 @@ class MyPostAdmin(admin.ModelAdmin):
|
|||||||
form = MyPostForm
|
form = MyPostForm
|
||||||
model = Post
|
model = Post
|
||||||
|
|
||||||
|
def save_model(self, request, obj, form, change):
|
||||||
|
obj.author = request.user
|
||||||
|
super().save_model(request, obj, form, change)
|
||||||
admin.site.register(Post,MyPostAdmin)
|
admin.site.register(Post,MyPostAdmin)
|
||||||
@@ -9,6 +9,14 @@ import django
|
|||||||
import uuid
|
import uuid
|
||||||
import re
|
import re
|
||||||
from rest_framework import serializers
|
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.
|
# Create your models here.
|
||||||
class Post(models.Model):
|
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
|
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
|
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
|
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
|
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
|
public_date=models.DateField('date published',null=True,blank=True, default=django.utils.timezone.now) # Datum ab dem etwas öffentlich sein soll
|
||||||
|
|
||||||
@@ -43,13 +51,15 @@ class Post(models.Model):
|
|||||||
# TimeStamps
|
# TimeStamps
|
||||||
date_modified=models.DateTimeField(auto_now=True)
|
date_modified=models.DateTimeField(auto_now=True)
|
||||||
date_created=models.DateTimeField(auto_now_add=True)
|
date_created=models.DateTimeField(auto_now_add=True)
|
||||||
|
objects=PostManager()
|
||||||
|
news_objects=NewsPostManager()
|
||||||
|
|
||||||
def get_tags(self):
|
def get_tags(self):
|
||||||
|
"""Returns assigned tags as a comma seperated list."""
|
||||||
return ",".join(self.tags.names())
|
return ",".join(self.tags.names())
|
||||||
|
|
||||||
def imageurl(self):
|
def imageurl(self):
|
||||||
|
""" returns the url to the image"""
|
||||||
if self.image:
|
if self.image:
|
||||||
return self.image.url
|
return self.image.url
|
||||||
else:
|
else:
|
||||||
@@ -57,24 +67,28 @@ class Post(models.Model):
|
|||||||
|
|
||||||
def key(self):
|
def key(self):
|
||||||
return self.slug or self.id
|
return self.slug or self.id
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def url(self):
|
def url(self):
|
||||||
return reverse('posts.show', kwargs={"id":self.slug})
|
return reverse('posts.show', kwargs={"id":self.slug})
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
if self.id is None and (self.slug is None or self.slug ==""):
|
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)
|
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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class PostSerializer(serializers.HyperlinkedModelSerializer):
|
class PostSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Post
|
model = Post
|
||||||
fields = ['slug','title', 'body','url', 'legacy_id']
|
fields = ['slug','title', 'body','url', 'legacy_id','image', 'event_start','event_end','is_fetsitzung']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ from taggit.models import Tag
|
|||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from rest_framework import permissions
|
from rest_framework import permissions
|
||||||
|
|
||||||
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
def index(request):
|
def index(request):
|
||||||
posts=deque(Post.objects.all())
|
posts=deque(Post.objects.all())
|
||||||
@@ -28,5 +30,9 @@ class PostViewSet(viewsets.ModelViewSet):
|
|||||||
"""
|
"""
|
||||||
queryset = Post.objects.all().order_by('-public_date')
|
queryset = Post.objects.all().order_by('-public_date')
|
||||||
serializer_class = PostSerializer
|
serializer_class = PostSerializer
|
||||||
permission_classes = [permissions.IsAuthenticated]
|
#permission_classes = [permissions.IsAuthenticated]
|
||||||
|
filter_backends = [DjangoFilterBackend]
|
||||||
|
filterset_fields = ['legacy_id', 'slug','legacy_rubrik_id']
|
||||||
lookup_field='slug'
|
lookup_field='slug'
|
||||||
|
def pre_save(self, obj):
|
||||||
|
obj.image = self.request.FILES.get('image')
|
||||||
Reference in New Issue
Block a user