Post app & Settings

This commit is contained in:
2020-05-03 18:53:54 +00:00
parent 52623ef98d
commit 88ad66de73
13 changed files with 200 additions and 11 deletions

View File

@@ -1,3 +1,70 @@
from django.db import models
from django.contrib.auth.models import User
from taggit.managers import TaggableManager
from django.utils.text import slugify
#from ckeditor_uploader import RichTextUploadingField
import django
import uuid
import re
# Create your models here.
class Post(models.Model):
# 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) # 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
imported_from = models.CharField(max_length=200, null=True, blank=True) # Titel des Posts
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)
# 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)
# TimeStamps
date_modified=models.DateTimeField(auto_now=True)
date_created=models.DateTimeField(auto_now_add=True)
def get_tags(self):
return ",".join(self.tags.names())
def imageurl(self):
if self.image:
return self.image.url
else:
return ""
def key(self):
return self.slug or self.id
def save(self, *args, **kwargs):
if self.id is None and (self.slug is None or self.slug ==""):
self.slug=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)))