This commit is contained in:
2020-09-22 13:08:21 +00:00
3 changed files with 46 additions and 28 deletions

View File

@@ -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:

View File

@@ -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

View File

@@ -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'