reformatting pep8

This commit is contained in:
2020-12-31 09:14:09 +00:00
parent 8ff4a17629
commit f0cac03875

View File

@@ -1,5 +1,7 @@
import re import re
import logging
from urllib.request import URLError from urllib.request import URLError
from datetime import timedelta
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.validators import ValidationError from django.core.validators import ValidationError
from django.db import models from django.db import models
@@ -10,16 +12,31 @@ from django.utils.translation import gettext_lazy as _
from taggit.managers import TaggableManager from taggit.managers import TaggableManager
from documents.api import getPadHTML, setPadHTML, createPadifNotExists from documents.api import getPadHTML, setPadHTML, createPadifNotExists
from .managers import ( from .managers import (
PostManager, ArticleManager, NewsManager, AllEventManager, EventManager, FetMeetingManager PostManager,
ArticleManager,
NewsManager,
AllEventManager,
EventManager,
FetMeetingManager,
) )
from datetime import timedelta
import logging
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
request_logger = logging.getLogger('django.request') request_logger = logging.getLogger("django.request")
def create_pad_for_post(slug, typ="agenda"):
try:
agenda_key = createPadifNotExists(slug + "-" + typ)
except URLError as error:
request_logger.info(
"""%s konnte von dem Slug '%s' nicht erstellt werden.
Error: %s""",
typ,
slug,
error,
)
return None
return agenda_key
class Category(models.Model): class Category(models.Model):
@@ -42,7 +59,7 @@ class Category(models.Model):
class Post(models.Model): 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, blank=True) legacy_id = models.IntegerField(null=True, blank=True)
legacy_rubrik_id = models.IntegerField(null=True,blank=True) legacy_rubrik_id = models.IntegerField(null=True, blank=True)
# Titel des Posts # Titel des Posts
title = models.CharField(verbose_name="Titel", max_length=200) title = models.CharField(verbose_name="Titel", max_length=200)
subtitle = models.CharField(max_length=500, null=True, blank=True) subtitle = models.CharField(max_length=500, null=True, blank=True)
@@ -58,15 +75,13 @@ class Post(models.Model):
tags = TaggableManager(blank=True) tags = TaggableManager(blank=True)
# Datum ab dem etwas öffentlich sein soll # Datum ab dem etwas öffentlich sein soll
public_date = models.DateField(verbose_name="Veröffentlichung", null=True, blank=True, default=timezone.now) public_date = models.DateField(
verbose_name="Veröffentlichung", null=True, blank=True, default=timezone.now
)
imported_from = models.CharField(max_length=200, null=True, blank=True) imported_from = models.CharField(max_length=200, null=True, blank=True)
__choices = [ __choices = [("N", _("News")), ("E", _("Event")), ("F", _("FetMeeting"))]
('N', _('News')),
('E', _('Event')),
('F', _('FetMeeting'))
]
post_type = models.CharField(max_length=1, choices=__choices, editable=True) post_type = models.CharField(max_length=1, choices=__choices, editable=True)
# post is pinned at main page # post is pinned at main page
@@ -76,7 +91,9 @@ class Post(models.Model):
is_hidden = models.BooleanField(verbose_name="UNSICHTBAR", default=False) is_hidden = models.BooleanField(verbose_name="UNSICHTBAR", default=False)
# Zusatz Info wenn ein Event gepostet wird # Zusatz Info wenn ein Event gepostet wird
event_start = models.DateTimeField(verbose_name="Event Start", null=True, blank=True) event_start = models.DateTimeField(
verbose_name="Event Start", null=True, blank=True
)
event_end = models.DateTimeField(verbose_name="Event Ende", null=True, blank=True) event_end = models.DateTimeField(verbose_name="Event Ende", null=True, blank=True)
event_place = models.CharField(max_length=200, null=True, blank=True) event_place = models.CharField(max_length=200, null=True, blank=True)
@@ -106,8 +123,26 @@ class Post(models.Model):
try: try:
html = getPadHTML(self.agenda_key) html = getPadHTML(self.agenda_key)
except URLError as error: except URLError as error:
logger.error("Can't get the agenda html from agenda '%s'. Error: %s", logger.error(
self.agenda_key, error) "Can't get the agenda html from agenda '%s'. Error: %s",
self.agenda_key,
error,
)
html = None
return html
@property
def protocol_html(self):
if not self.protocol_key:
return None
try:
html = getPadHTML(self.protocol_key)
except URLError as error:
logger.error(
"Can't get the agenda html from agenda '%s'. Error: %s",
self.protocol_key,
error,
)
html = None html = None
return html return html
@@ -115,49 +150,62 @@ class Post(models.Model):
def agenda_html(self, value): def agenda_html(self, value):
if not self.agenda_key: if not self.agenda_key:
self.agenda_key = self.get_agenda_key() self.agenda_key = self.get_agenda_key()
if not value or not self.agenda_key:
if not value:
return None
if not self.agenda_key:
return None return None
try: try:
setPadHTML(self.agenda_key, value) setPadHTML(self.agenda_key, value)
except URLError as error: except URLError as error:
request_logger.error("Es konnte kein Pad von der Agenda '{}' erzeugt werden. Error: {}".format(self.agenda_key, error)) request_logger.error(
"""Es konnte kein Pad von der Agenda '%s' erzeugt werden.
Error: %s""",
self.agenda_key,
error,
)
request_logger.info("set etherpad! for post %s id: %s", self.slug,self.agenda_key) request_logger.info(
"set etherpad! for post %s id: %s", self.slug, self.agenda_key
)
return value
@protocol_html.setter
def protocol_html(self, value):
if not self.protocol_key:
self.protocol_key = self.get_protocol_key()
if not value or not self.protocol_key:
return None
try:
setPadHTML(self.protocol_key, value)
except URLError as error:
request_logger.error(
"""Es konnte kein Pad von der Agenda '%s' erzeugt werden.
Error: %s""",
self.protocol_key,
error,
)
request_logger.info(
"set etherpad! for post %s id: %s", self.slug, self.protocol_key
)
return value return value
def get_agenda_key(self): def get_agenda_key(self):
"Create a Etherpad Id for the Pad associated to this post. Creates the pad if it doesn't exist" "Create a Etherpad Id for the Pad associated to this post. Creates the pad if it doesn't exist"
if not self.slug: if not self.slug:
return None return None
try: return create_pad_for_post(self.slug, typ="agenda")
agenda_key = createPadifNotExists(self.slug + "-agenda")
except URLError as error:
request_logger.info(
"""Die Agenda konnte von dem Slug '%s' nicht erstellt werden.
Error: %s""",self.slug, error)
return None
return agenda_key
def get_protocol_key(self): def get_protocol_key(self):
"Create a Etherpad Id for the Pad associated to this post. Creates the pad if it doesn't exist" "Create a Etherpad Id for the Pad associated to this post. Creates the pad if it doesn't exist"
if not self.slug: if not self.slug:
return None return None
return create_pad_for_post(self.slug, typ="protocol")
try:
protocol_key = createPadifNotExists(self.slug + "-protocol")
except URLError as e:
request_logger.info("Das Protokoll konnte von dem Slug '{}' nicht erstellt werden. Error: {}".format(self.slug, e))
return None
return protocol_key
@property @property
def get_tagnames(self): def get_tagnames(self):
return ["#%s" % t for t in self.tags.names()] return ["#%s" % t for t in self.tags.names()]
@property @property
def tag_string(self): def tag_string(self):
return self.get_tags() return self.get_tags()
@@ -173,16 +221,18 @@ class Post(models.Model):
return image.url return image.url
return "" return ""
#def key(self): # def key(self):
# return self.slug or self.id # return self.slug or self.id
def find_an_image(self): def find_an_image(self):
"find an image via another post" "find an image via another post"
# TODO: Explain why this image is selected on save of the image # 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 # Query all posts that have a slug that equals one of the tags
posts1 = Post.objects.filter( posts1 = (
slug__in=self.tags.names() Post.objects.filter(slug__in=self.tags.names())
).filter(image__isnull=False)[0:1].all() .filter(image__isnull=False)[0:1]
.all()
)
if len(posts1) > 0: if len(posts1) > 0:
return posts1.get().image return posts1.get().image
@@ -194,7 +244,7 @@ class Post(models.Model):
@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):
# save the post with some defaults # save the post with some defaults
@@ -207,12 +257,16 @@ class Post(models.Model):
super().save(*args, **kwargs) super().save(*args, **kwargs)
self.tags.set( self.tags.set(
*re.findall(r'\#([\d\w-]+)', str(self.subtitle)), *re.findall(r"\#([\d\w-]+)", str(self.subtitle)),
*re.findall(r'\#([\d\w-]+)', str(self.title)) *re.findall(r"\#([\d\w-]+)", str(self.title))
) )
def __str__(self): def __str__(self):
return "Post (%s, %s): %s " % (self.slug, self.public_date.strftime("%d.%m.%Y"), self.title) return "Post (%s, %s): %s " % (
self.slug,
self.public_date.strftime("%d.%m.%Y"),
self.title,
)
class News(Post): class News(Post):
@@ -226,7 +280,7 @@ class News(Post):
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if not self.post_type: if not self.post_type:
self.post_type = 'N' self.post_type = "N"
super().save(*args, **kwargs) super().save(*args, **kwargs)
@@ -243,13 +297,13 @@ class Event(Post):
def clean(self): def clean(self):
if self.event_end is None or self.event_start is None: if self.event_end is None or self.event_start is None:
raise ValidationError(_('Das Datum des Events fehlt.')) raise ValidationError(_("Das Datum des Events fehlt."))
elif self.event_end < self.event_start: if self.event_end < self.event_start:
raise ValidationError(_('Das Ende des Events liegt vor dem Beginn.')) raise ValidationError(_("Das Ende des Events liegt vor dem Beginn."))
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if not self.post_type: if not self.post_type:
self.post_type = 'E' self.post_type = "E"
super().save(*args, **kwargs) super().save(*args, **kwargs)
@@ -269,56 +323,50 @@ class FetMeeting(Event):
if Post.objects.filter(slug=slug).exists(): if Post.objects.filter(slug=slug).exists():
if Post.objects.get(slug=slug).id != self.id: if Post.objects.get(slug=slug).id != self.id:
raise ValidationError( raise ValidationError(
_('Es existiert bereits eine Sitzung mit demselben Datum.') _("Es existiert bereits eine Sitzung mit demselben Datum.")
) )
return slug return slug
def __get_agenda_key(self): # def __get_agenda_key(self):
if not self.slug: # if not self.slug:
return None # return None##
#
# try:
# agenda_key = createPadifNotExists(self.slug + "-agenda")
# except Exception as error:
# raise ValidationError(
# _("Die Agenda konnte nicht erstellt werden. Error: %(error)s"),
# params={"error": str(error)},
# ) from error
#
# return agenda_key
try: # def __get_protocol_key(self):
agenda_key = createPadifNotExists(self.slug + "-agenda") # if not self.slug:
except Exception as error: # return None#
raise ValidationError( #
_('Die Agenda konnte nicht erstellt werden. Error: %(error)s'), # try:
params={'error': str(error)}, # protocol_key = createPadifNotExists(self.slug + "-protocol")
) from error # except URLError as error:
# raise ValidationError(
# _("Das Protokoll konnte nicht erstellt werden. Error: %(error)s"),
return agenda_key # params={"error": str(error)},
# ) from error#
def __get_protocol_key(self): #
if not self.slug: # return protocol_key
return None
try:
protocol_key = createPadifNotExists(self.slug + "-protocol")
except Exception as e:
raise ValidationError(
_('Das Protokoll konnte nicht erstellt werden. Error: %(error)s'),
params={'error': str(e)},
)
return None
return protocol_key
def clean(self): def clean(self):
if self.event_start is None: super().clean()
raise ValidationError(_('Das Datum des Events fehlt.'))
elif (self.event_end) and (self.event_end < self.event_start):
raise ValidationError(_('Das Ende des Events liegt vor dem Beginn.'))
if not self.slug: if not self.slug:
self.slug = self.__get_slug() self.slug = self.__get_slug()
if self.has_agenda: if self.has_agenda:
self.agenda_key = self.__get_agenda_key() self.agenda_key = self.get_agenda_key()
if self.has_protocol: if self.has_protocol:
self.protocol_key = self.__get_protocol_key() self.protocol_key = self.get_protocol_key()
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
self.title = "Fachschaftssitzung" self.title = "Fachschaftssitzung"
@@ -327,7 +375,7 @@ class FetMeeting(Event):
# self.image # self.image
if not self.post_type: if not self.post_type:
self.post_type = 'F' self.post_type = "F"
if not self.event_place: if not self.event_place:
self.event_place = "FET" self.event_place = "FET"