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 logging
from urllib.request import URLError
from datetime import timedelta
from django.contrib.auth.models import User
from django.core.validators import ValidationError
from django.db import models
@@ -10,16 +12,31 @@ from django.utils.translation import gettext_lazy as _
from taggit.managers import TaggableManager
from documents.api import getPadHTML, setPadHTML, createPadifNotExists
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__)
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):
@@ -58,15 +75,13 @@ class Post(models.Model):
tags = TaggableManager(blank=True)
# 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)
__choices = [
('N', _('News')),
('E', _('Event')),
('F', _('FetMeeting'))
]
__choices = [("N", _("News")), ("E", _("Event")), ("F", _("FetMeeting"))]
post_type = models.CharField(max_length=1, choices=__choices, editable=True)
# post is pinned at main page
@@ -76,7 +91,9 @@ class Post(models.Model):
is_hidden = models.BooleanField(verbose_name="UNSICHTBAR", default=False)
# 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_place = models.CharField(max_length=200, null=True, blank=True)
@@ -106,8 +123,26 @@ class Post(models.Model):
try:
html = getPadHTML(self.agenda_key)
except URLError as error:
logger.error("Can't get the agenda html from agenda '%s'. Error: %s",
self.agenda_key, error)
logger.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
return html
@@ -115,49 +150,62 @@ class Post(models.Model):
def agenda_html(self, value):
if not self.agenda_key:
self.agenda_key = self.get_agenda_key()
if not value:
return None
if not self.agenda_key:
if not value or not self.agenda_key:
return None
try:
setPadHTML(self.agenda_key, value)
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
def get_agenda_key(self):
"Create a Etherpad Id for the Pad associated to this post. Creates the pad if it doesn't exist"
if not self.slug:
return None
try:
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
return create_pad_for_post(self.slug, typ="agenda")
def get_protocol_key(self):
"Create a Etherpad Id for the Pad associated to this post. Creates the pad if it doesn't exist"
if not self.slug:
return None
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
return create_pad_for_post(self.slug, typ="protocol")
@property
def get_tagnames(self):
return ["#%s" % t for t in self.tags.names()]
@property
def tag_string(self):
return self.get_tags()
@@ -180,9 +228,11 @@ class Post(models.Model):
"find an image via another post"
# 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()
posts1 = (
Post.objects.filter(slug__in=self.tags.names())
.filter(image__isnull=False)[0:1]
.all()
)
if len(posts1) > 0:
return posts1.get().image
@@ -194,7 +244,7 @@ class Post(models.Model):
@property
def url(self):
return reverse('posts.show', kwargs={"id": self.slug})
return reverse("posts.show", kwargs={"id": self.slug})
def save(self, *args, **kwargs):
# save the post with some defaults
@@ -207,12 +257,16 @@ class Post(models.Model):
super().save(*args, **kwargs)
self.tags.set(
*re.findall(r'\#([\d\w-]+)', str(self.subtitle)),
*re.findall(r'\#([\d\w-]+)', str(self.title))
*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)
return "Post (%s, %s): %s " % (
self.slug,
self.public_date.strftime("%d.%m.%Y"),
self.title,
)
class News(Post):
@@ -226,7 +280,7 @@ class News(Post):
def save(self, *args, **kwargs):
if not self.post_type:
self.post_type = 'N'
self.post_type = "N"
super().save(*args, **kwargs)
@@ -243,13 +297,13 @@ class Event(Post):
def clean(self):
if self.event_end is None or self.event_start is None:
raise ValidationError(_('Das Datum des Events fehlt.'))
elif self.event_end < self.event_start:
raise ValidationError(_('Das Ende des Events liegt vor dem Beginn.'))
raise ValidationError(_("Das Datum des Events fehlt."))
if self.event_end < self.event_start:
raise ValidationError(_("Das Ende des Events liegt vor dem Beginn."))
def save(self, *args, **kwargs):
if not self.post_type:
self.post_type = 'E'
self.post_type = "E"
super().save(*args, **kwargs)
@@ -269,56 +323,50 @@ class FetMeeting(Event):
if Post.objects.filter(slug=slug).exists():
if Post.objects.get(slug=slug).id != self.id:
raise ValidationError(
_('Es existiert bereits eine Sitzung mit demselben Datum.')
_("Es existiert bereits eine Sitzung mit demselben Datum.")
)
return slug
def __get_agenda_key(self):
if not self.slug:
return None
# def __get_agenda_key(self):
# if not self.slug:
# 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:
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
def __get_protocol_key(self):
if not self.slug:
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 __get_protocol_key(self):
# if not self.slug:
# return None#
#
# try:
# protocol_key = createPadifNotExists(self.slug + "-protocol")
# except URLError as error:
# raise ValidationError(
# _("Das Protokoll konnte nicht erstellt werden. Error: %(error)s"),
# params={"error": str(error)},
# ) from error#
#
# return protocol_key
def clean(self):
if self.event_start is None:
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.'))
super().clean()
if not self.slug:
self.slug = self.__get_slug()
if self.has_agenda:
self.agenda_key = self.__get_agenda_key()
self.agenda_key = self.get_agenda_key()
if self.has_protocol:
self.protocol_key = self.__get_protocol_key()
self.protocol_key = self.get_protocol_key()
def save(self, *args, **kwargs):
self.title = "Fachschaftssitzung"
@@ -327,7 +375,7 @@ class FetMeeting(Event):
# self.image
if not self.post_type:
self.post_type = 'F'
self.post_type = "F"
if not self.event_place:
self.event_place = "FET"