diff --git a/fet2020/documents/__init__.py b/fet2020/documents/__init__.py index 946e5ff4..94d1ce48 100644 --- a/fet2020/documents/__init__.py +++ b/fet2020/documents/__init__.py @@ -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: diff --git a/fet2020/documents/api.py b/fet2020/documents/api.py index c5bc5bd3..3f0f63a7 100644 --- a/fet2020/documents/api.py +++ b/fet2020/documents/api.py @@ -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,41 +21,43 @@ 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 - + def createPadifNotExists(self, padid): 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() \ No newline at end of file +ep = ep_api() diff --git a/fet2020/documents/etherpadlib.py b/fet2020/documents/etherpadlib.py index 96459179..7f7fb709 100644 --- a/fet2020/documents/etherpadlib.py +++ b/fet2020/documents/etherpadlib.py @@ -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( diff --git a/fet2020/members/models.py b/fet2020/members/models.py index d9569356..b10fa292 100644 --- a/fet2020/members/models.py +++ b/fet2020/members/models.py @@ -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) diff --git a/fet2020/members/views.py b/fet2020/members/views.py index 84a0ecc4..00164d21 100644 --- a/fet2020/members/views.py +++ b/fet2020/members/views.py @@ -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) diff --git a/fet2020/posts/forms.py b/fet2020/posts/forms.py index d963595e..838a976d 100644 --- a/fet2020/posts/forms.py +++ b/fet2020/posts/forms.py @@ -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 diff --git a/fet2020/posts/models.py b/fet2020/posts/models.py index 528f6fb2..36a6d23e 100644 --- a/fet2020/posts/models.py +++ b/fet2020/posts/models.py @@ -14,8 +14,6 @@ from .managers import ( PostManager, ArticleManager, NewsManager, AllEventManager, EventManager, FetMeetingManager ) - - # from ckeditor_uploader import RichTextUploadingField # import uuid import re @@ -149,9 +147,11 @@ 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): self.protocol_key = ep.createPadifNotExists(self.slug+"-protocol") @@ -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.')) diff --git a/fet2020/posts/views.py b/fet2020/posts/views.py index 94df5125..db6a3c25 100644 --- a/fet2020/posts/views.py +++ b/fet2020/posts/views.py @@ -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, } diff --git a/fet2020/templates/members/jobs_list.html b/fet2020/templates/members/jobs_list.html index 7d09c3bd..db5acb90 100644 --- a/fet2020/templates/members/jobs_list.html +++ b/fet2020/templates/members/jobs_list.html @@ -1,13 +1,18 @@ {% if active_members %} -Aktuelle Mitglieder: -{% with job_memberships=active_members %} - {% include 'members/partials/_job_membership_grid.html' %} -{% endwith %} + + Aktuelle Mitglieder: + {% with job_memberships=active_members %} + {% include 'members/partials/_job_membership_grid.html' %} + {% endwith %} + {% endif %} + {% if inactive_members %} -Vergangene Mitglieder: -{% with job_memberships=inactive_members %} - {% include 'members/partials/_job_membership_grid.html' %} -{% endwith %} + + Vergangene Mitglieder: + {% with job_memberships=inactive_members %} + {% include 'members/partials/_job_membership_grid.html' %} + {% endwith %} + {% endif %} diff --git a/fet2020/templates/posts/tag.html b/fet2020/templates/posts/tag.html index b1f036c6..f518f382 100644 --- a/fet2020/templates/posts/tag.html +++ b/fet2020/templates/posts/tag.html @@ -34,19 +34,37 @@ - {% endwith %} +{% endwith %} {% endif %} +
+ {% for member in members %} +

{{member.0}} #

+
+ {% for mem in member.1 %} -
+ {% with member=mem.member %} +
+

{{member.surname}}

+ {% include 'members/partials/_member.html' %} +
+ {% endwith %} + + {% endfor %} +
+ + {% endfor %} +
+ +
+
{% for post in posts %} - {% include 'posts/partials/_posts_hero.html' %} + {% include 'posts/partials/_posts_hero.html' %} {% endfor %} - - +
-
-{% endblock %} \ No newline at end of file + +{% endblock %}