Merge branch 'master' of /srv/andis
This commit is contained in:
@@ -27,15 +27,17 @@ class ep_api():
|
|||||||
raise e
|
raise e
|
||||||
self.group = None
|
self.group = None
|
||||||
self.epc = None
|
self.epc = None
|
||||||
|
|
||||||
def getPadHTML(self, padID):
|
def getPadHTML(self, padID):
|
||||||
self.get_epc()
|
self.get_epc()
|
||||||
text=self.epc.getHTML(padID=self.group["groupID"] + "$" + padID)["html"]
|
text = self.epc.getHTML(padID=self.group["groupID"] + "$" + padID)["html"]
|
||||||
return text
|
return text
|
||||||
def setPadHTML(self, padID,html):
|
|
||||||
|
def setPadHTML(self, padID, html):
|
||||||
self.get_epc()
|
self.get_epc()
|
||||||
text=self.epc.setHTML(padID=self.group["groupID"] + "$" + padID, html=html)
|
self.epc.setHTML(padID=self.group["groupID"] + "$" + padID, html=html)
|
||||||
return html
|
return html
|
||||||
|
|
||||||
def checkPadExists(self, padID=None):
|
def checkPadExists(self, padID=None):
|
||||||
print(self.epc.listPads(groupID=self.group["groupID"]))
|
print(self.epc.listPads(groupID=self.group["groupID"]))
|
||||||
if not padID:
|
if not padID:
|
||||||
|
|||||||
@@ -19,13 +19,13 @@ def add_ep_cookie(request, response):
|
|||||||
path="/",
|
path="/",
|
||||||
)
|
)
|
||||||
return response
|
return response
|
||||||
response.set_cookie(
|
#response.set_cookie(
|
||||||
"sessionID",
|
# "sessionID",
|
||||||
ep_sessid,
|
# ep_sessid,
|
||||||
expires=expires,
|
# expires=expires,
|
||||||
domain=".2020.fet.at",
|
# domain=".2020.fet.at",
|
||||||
path="/"
|
# path="/"
|
||||||
)
|
#)
|
||||||
response.set_cookie(
|
response.set_cookie(
|
||||||
"sessionID",
|
"sessionID",
|
||||||
ep_sessid,
|
ep_sessid,
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ https://docs.djangoproject.com/en/3.0/ref/settings/
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import environ
|
||||||
|
env = environ.Env(
|
||||||
|
# set casting, default value
|
||||||
|
DEBUG=(bool, True)
|
||||||
|
)
|
||||||
|
|
||||||
# Prints and logs are written to console
|
# Prints and logs are written to console
|
||||||
# TODO: Change before release
|
# TODO: Change before release
|
||||||
@@ -37,13 +42,17 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|||||||
# Quick-start development settings - unsuitable for production
|
# Quick-start development settings - unsuitable for production
|
||||||
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
|
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
|
||||||
|
|
||||||
# SECURITY WARNING: keep the secret key used in production secret!
|
|
||||||
SECRET_KEY = 'r37-i7l)vrduzz2-gira+z#u!p!di9#f+%s*5-bb($hg)55@ns'
|
|
||||||
|
|
||||||
# SECURITY WARNING: don't run with debug turned on in production!
|
# SECURITY WARNING: don't run with debug turned on in production!
|
||||||
DEBUG = True
|
DEBUG = env('DEBUG')
|
||||||
|
if DEBUG:
|
||||||
|
# SECURITY WARNING: keep the secret key used in production secret!
|
||||||
|
SECRET_KEY = 'r37-i7l)vrduzz2-gira+z#u!p!di9#f+%s*5-bb($hg)55@ns'
|
||||||
|
else:
|
||||||
|
SECRET_KEY = env('SECRET_KEY')
|
||||||
|
|
||||||
|
|
||||||
|
ALLOWED_HOSTS = ["127.0.0.1", "localhost"]
|
||||||
|
|
||||||
ALLOWED_HOSTS = ['uat1.2020.fet.at', '127.0.0.1']
|
|
||||||
|
|
||||||
DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 1024
|
DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 1024
|
||||||
# Application definition
|
# Application definition
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ class MyEventForm(MyPostForm):
|
|||||||
|
|
||||||
|
|
||||||
class MyFetMeetingForm(MyEventForm):
|
class MyFetMeetingForm(MyEventForm):
|
||||||
#agenda_html = forms.CharField(widget = forms.TextInput())
|
# agenda_html = forms.CharField(widget = forms.TextInput())
|
||||||
class Meta:
|
class Meta:
|
||||||
model = FetMeeting
|
model = FetMeeting
|
||||||
|
|
||||||
|
|||||||
@@ -102,16 +102,15 @@ class Post(models.Model):
|
|||||||
def agenda_html(self):
|
def agenda_html(self):
|
||||||
if not self.agenda_key:
|
if not self.agenda_key:
|
||||||
return None
|
return None
|
||||||
h=ep.getPadHTML(self.agenda_key)
|
h = ep.getPadHTML(self.agenda_key)
|
||||||
return h
|
return h
|
||||||
|
|
||||||
@agenda_html.setter
|
@agenda_html.setter
|
||||||
def agenda_html(self, value):
|
def agenda_html(self, value):
|
||||||
request_logger.info("Accessing etherpad ...")
|
request_logger.info("Accessing etherpad ...")
|
||||||
h=ep.setPadHTML(self.agenda_key,value)
|
ep.setPadHTML(self.agenda_key, value)
|
||||||
request_logger.info("set etherpad!")
|
request_logger.info("set etherpad!")
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def get_tagnames(self):
|
def get_tagnames(self):
|
||||||
@@ -156,16 +155,9 @@ class Post(models.Model):
|
|||||||
if not self.public_date:
|
if not self.public_date:
|
||||||
self.public_date = timezone.now()
|
self.public_date = timezone.now()
|
||||||
|
|
||||||
if (self.id is None) and (not self.slug):
|
if not self.slug:
|
||||||
self.slug = slugify(self.public_date.date()) + "-" + slugify(self.title)
|
self.slug = slugify(self.public_date.date()) + "-" + slugify(self.title)
|
||||||
|
|
||||||
if self.has_agenda:
|
|
||||||
self.agenda_key = ep.createPadifNotExists(self.slug + "-agenda")
|
|
||||||
|
|
||||||
if self.has_protocol:
|
|
||||||
self.protocol_key = ep.createPadifNotExists(self.slug + "-protocol")
|
|
||||||
request_logger.info(self.post_type)
|
|
||||||
|
|
||||||
super().save(*args, **kwargs)
|
super().save(*args, **kwargs)
|
||||||
|
|
||||||
self.tags.set(
|
self.tags.set(
|
||||||
@@ -178,7 +170,8 @@ class Post(models.Model):
|
|||||||
|
|
||||||
|
|
||||||
class PostSerializer(serializers.HyperlinkedModelSerializer):
|
class PostSerializer(serializers.HyperlinkedModelSerializer):
|
||||||
agenda_html=serializers.CharField()
|
agenda_html = serializers.CharField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Post
|
model = Post
|
||||||
fields = [
|
fields = [
|
||||||
@@ -255,31 +248,54 @@ class FetMeeting(Event):
|
|||||||
verbose_name = "Fet Sitzung"
|
verbose_name = "Fet Sitzung"
|
||||||
verbose_name_plural = "Fet Sitzungen"
|
verbose_name_plural = "Fet Sitzungen"
|
||||||
|
|
||||||
|
def __get_slug(self):
|
||||||
|
self.slug = slugify(self.event_start.date()) + "-" + slugify("Fachschaftssitzung")
|
||||||
|
|
||||||
|
if Post.objects.filter(slug=self.slug).exists():
|
||||||
|
if Post.objects.get(slug=self.slug).id != self.id:
|
||||||
|
raise ValidationError(
|
||||||
|
_('Es existiert bereits eine Sitzung mit demselben Datum.')
|
||||||
|
)
|
||||||
|
|
||||||
|
def __get_agenda_key(self):
|
||||||
|
try:
|
||||||
|
self.agenda_key = ep.createPadifNotExists(self.slug + "-agenda")
|
||||||
|
except Exception as e:
|
||||||
|
raise ValidationError(
|
||||||
|
_('Die Agenda konnte nicht erstellt werden. Error: %(error)s'),
|
||||||
|
params={'error': str(e)},
|
||||||
|
)
|
||||||
|
|
||||||
|
def __get_protocol_key(self):
|
||||||
|
try:
|
||||||
|
self.protocol_key = ep.createPadifNotExists(self.slug + "-protocol")
|
||||||
|
except Exception as e:
|
||||||
|
raise ValidationError(
|
||||||
|
_('Das Protokoll konnte nicht erstellt werden. Error: %(error)s'),
|
||||||
|
params={'error': str(e)},
|
||||||
|
)
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
if self.event_start is None:
|
if self.event_start is None:
|
||||||
raise ValidationError(_('Das Datum des Events fehlt.'))
|
raise ValidationError(_('Das Datum des Events fehlt.'))
|
||||||
elif (self.event_end) and (self.event_end < self.event_start):
|
elif (self.event_end) and (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.'))
|
||||||
|
|
||||||
slug = slugify(self.event_start.date()) + "-" + slugify("Fachschaftssitzung")
|
if not self.slug:
|
||||||
|
self.__get_slug()
|
||||||
|
|
||||||
if Post.objects.filter(slug=slug).exists():
|
if self.has_agenda:
|
||||||
if Post.objects.get(slug=slug).id != self.id:
|
self.__get_agenda_key()
|
||||||
raise ValidationError(_('Es existiert bereits eine Sitzung mit demselben Datum.'))
|
|
||||||
|
if self.has_protocol:
|
||||||
|
self.__get_protocol_key()
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
self.title = "Fachschaftssitzung"
|
self.title = "Fachschaftssitzung"
|
||||||
if not self.slug:
|
|
||||||
self.slug = slugify(self.event_start.date()) + "-" + slugify(self.title)
|
|
||||||
self.body = "TODO: Agenda + Protokoll Link"
|
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
# self.image
|
# self.image
|
||||||
|
|
||||||
# TODO
|
|
||||||
# self.protocol_key
|
|
||||||
# self.agenda_key
|
|
||||||
|
|
||||||
if not self.post_type:
|
if not self.post_type:
|
||||||
self.post_type = 'F'
|
self.post_type = 'F'
|
||||||
|
|
||||||
|
|||||||
@@ -8,4 +8,4 @@ docutils==0.16
|
|||||||
easy-thumbnails==2.7.0
|
easy-thumbnails==2.7.0
|
||||||
etherpad-lite==0.5
|
etherpad-lite==0.5
|
||||||
django-filter
|
django-filter
|
||||||
ldap3
|
ldap3django-environ
|
||||||
|
|||||||
Reference in New Issue
Block a user