This commit is contained in:
2020-09-08 05:21:36 +00:00
10 changed files with 91 additions and 56 deletions

View File

@@ -1,14 +1,15 @@
from etherpad_lite import EtherpadLiteClient
# from etherpad_lite import EtherpadLiteClient
# from django.conf import settings
from datetime import datetime, timedelta
from django.utils.text import slugify
# from django.utils.text import slugify
import urllib.parse
t = datetime.now() + timedelta(days=1)
from django.conf import settings
import os
# import os
from .api import ep
# from .etherpadlib import get_ep_sessionid2, add_ep_cookie
SERVER_URL = settings.ETHERPAD_CLIENT["exturl"]
t = datetime.now() + timedelta(days=1)
def get_pad_link(padID):
if padID is None:

View File

@@ -8,8 +8,8 @@ from etherpad_lite import EtherpadLiteClient, EtherpadException
class ep_api():
def __init__(self):
self.group=None
self.epc=None
self.group = None
self.epc = None
return
def load(self):
@@ -21,20 +21,21 @@ class ep_api():
base_url=urllib.parse.urljoin(settings.ETHERPAD_CLIENT["url"], "api")
)
g = epc.createGroupIfNotExistsFor(groupMapper="fet")
self.group=g
self.epc=epc
self.group = g
self.epc = epc
except Exception as e:
raise e
self.group=None
self.epc=None
self.group = None
self.epc = None
def checkPadExists(self,padID=None):
print( self.epc.listPads(groupID=self.group["groupID"]))
def checkPadExists(self, padID=None):
print(self.epc.listPads(groupID=self.group["groupID"]))
if not padID:
return False
try:
r=self.epc.getRevisionsCount(padID=self.group["groupID"]+"$"+padID)
self.epc.getRevisionsCount(padID=self.group["groupID"] + "$" + padID)
except EtherpadException as e:
print(e)
return False
return True
@@ -42,20 +43,21 @@ class ep_api():
self.get_epc()
if not self.epc:
return None
if not self.checkPadExists(padID=padid): # Pad doesn't exist
self.epc.createGroupPad(groupID=self.group["groupID"],padName=padid,text="helloworld")
if not self.checkPadExists(padID=padid): # Pad doesn't exist
self.epc.createGroupPad(groupID=self.group["groupID"], padName=padid, text="helloworld")
return padid
def get_epc(self):
if self.epc:
return self.epc
self.load()
return self.epc
def get_ep_sessionid2(self,request):
def get_ep_sessionid2(self, request):
if request.user is None:
return None, None
if not request.user.is_authenticated:
return None,None
return None, None
# server = SERVER_URL
ep.get_epc()
author = self.epc.createAuthorIfNotExistsFor(
@@ -78,5 +80,4 @@ class ep_api():
return result['sessionID'], expires
ep=ep_api()
ep = ep_api()

View File

@@ -1,23 +1,22 @@
from etherpad_lite import EtherpadLiteClient
# from etherpad_lite import EtherpadLiteClient
from datetime import datetime, timedelta
# from datetime import datetime, timedelta
# from django.utils.text import slugify
import urllib.parse
# import urllib.parse
# from django.conf import settings
from .api import ep
def add_ep_cookie(request, response):
response.set_cookie("HILib", "TestWert", domain="https://andis.2020.fet.at")
ep_sessid, expires = ep.get_ep_sessionid2(request)
if ep_sessid is None:
response.set_cookie(
"sessionID",
"NOTAUTHENTICATED",
expires=expires,
domain=".2020.fet.at",
path="/"
"sessionID",
"NOTAUTHENTICATED",
expires=expires,
domain=".2020.fet.at",
path="/",
)
return response
response.set_cookie(

View File

@@ -11,7 +11,7 @@ from rest_framework import serializers
class MemberQuerySet(models.QuerySet):
def get_members(self):
def get_active(self):
date_today = timezone.now().date()
return self.filter(
@@ -35,11 +35,11 @@ class ActiveMemberManager(models.Manager):
def get_members_of_job(self, job_names):
tmp_list = []
for job_name in job_names:
tmp_list.append(self.get_queryset().get_members().filter(Q(job__name=job_name)))
tmp_list.append(self.get_queryset().get_active().filter(Q(job__name=job_name)))
return tmp_list
def get_all(self):
return self.get_queryset().get_members()
return self.get_queryset().get_active()
def get_queryset(self):
return MemberQuerySet(self.model, using=self._db)

View File

@@ -40,7 +40,7 @@ def jobs_view(request, slug=None):
)
context = {
"job_group": job_group, # Das sind die Tabs
"job_group": job_group, # Das sind die Tabs
"job_list": job_list, # Das ist die Liste, die dargestellt wird
}
return render(request, 'members/index.html', context)

View File

@@ -103,7 +103,6 @@ class MyFetMeetingForm(MyEventForm):
'has_protocol': _('Protokoll zur Sitzung hinzufügen.'),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) # to get the self.fields set

View File

@@ -14,8 +14,6 @@ from .managers import (
PostManager, ArticleManager, NewsManager, AllEventManager, EventManager, FetMeetingManager
)
# from ckeditor_uploader import RichTextUploadingField
# import uuid
import re
@@ -149,8 +147,10 @@ class Post(models.Model):
if (self.id is None) and (not self.slug):
self.slug = slugify(self.public_date.date()) + "-" + slugify(self.title)
if self.has_agenda:# and (self.agenda_key == "" or self.agenda_key is None):
self.agenda_key= ep.createPadifNotExists(self.slug+"-agenda")
if self.has_agenda: # and (self.agenda_key == "" or self.agenda_key is None):
self.agenda_key = ep.createPadifNotExists(self.slug + "agenda")
print("AgendaKey: %s" % self.agenda_key)
if self.has_protocol and (self.agenda_key == "" or self.agenda_key is None):
@@ -249,7 +249,6 @@ class FetMeeting(Event):
slug = slugify(self.event_start.date()) + "-" + slugify("Fachschaftssitzung")
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.'))

View File

@@ -10,7 +10,7 @@ from rest_framework import viewsets
# from rest_framework import permissions
from .models import Post, PostSerializer, FetMeeting
from members.models import Member
from members.models import Member, JobMember
# from documents import add_ep_to_response, get_ep_sessionid2
from documents import get_pad_link
from documents.etherpadlib import add_ep_cookie
@@ -35,10 +35,23 @@ def index(request):
def tags(request, tag=""):
posts = deque(Post.objects.get_visible_articles().filter(tags__name=tag))
featured_post = Post.objects.get_visible_articles().filter(slug=tag).first()
members = []
job_names, slug_list = JobMember.jobs.get_job_names(slug=tag)
if job_names:
active_members = JobMember.active_member.get_members_of_job(job_names=job_names)
for idx, item in enumerate(job_names):
if active_members[idx]:
members.append(
(job_names[idx], active_members[idx], tag + "#" + slug_list[idx])
)
context = {
"posts": posts,
"featured_post": featured_post,
"members": members,
"tags_list": None,
}

View File

@@ -1,13 +1,18 @@
{% if active_members %}
<b>Aktuelle Mitglieder:</b>
{% with job_memberships=active_members %}
{% include 'members/partials/_job_membership_grid.html' %}
{% endwith %}
<b>Aktuelle Mitglieder:</b>
{% with job_memberships=active_members %}
{% include 'members/partials/_job_membership_grid.html' %}
{% endwith %}
{% endif %}
{% if inactive_members %}
<b>Vergangene Mitglieder: </b>
{% with job_memberships=inactive_members %}
{% include 'members/partials/_job_membership_grid.html' %}
{% endwith %}
<b>Vergangene Mitglieder: </b>
{% with job_memberships=inactive_members %}
{% include 'members/partials/_job_membership_grid.html' %}
{% endwith %}
{% endif %}

View File

@@ -34,19 +34,37 @@
</div>
</div>
</div>
{% endwith %}
{% endwith %}
{% endif %}
<div class="grid-container">
{% for member in members %}
<h2>{{member.0}}<a class="headerlink" href="/members/jobs/{{member.2}}" title="Permalink to {{member.2}}"> #</a></h2>
<div class="grid-x">
{% for mem in member.1 %}
<div class="grid-x">
{% with member=mem.member %}
<div class="medium-3 large-2 small-6 cell">
<h2>{{member.surname}}</h2>
{% include 'members/partials/_member.html' %}
</div>
{% endwith %}
{% endfor %}
</div>
{% endfor %}
</div>
<div class="grid-container">
<div class="grid-x">
<div class="medium-8 cell">
{% for post in posts %}
{% include 'posts/partials/_posts_hero.html' %}
{% include 'posts/partials/_posts_hero.html' %}
{% endfor %}
</div>
</div>
</div>
</div>
{% endblock %}