diff --git a/fet2020/authentications/views.py b/fet2020/authentications/views.py index bbf8b0a3..2c9cc80e 100644 --- a/fet2020/authentications/views.py +++ b/fet2020/authentications/views.py @@ -25,7 +25,11 @@ def loginPage(request): user = User.objects.create_user(auth_user.lower()) login(request, user) - return redirect('home') + + try: + return redirect(request.GET.get('next')) + except: + return redirect('home') else: messages.info(request, 'username or password is incorrect') diff --git a/fet2020/fet2020/middleware.py b/fet2020/fet2020/middleware.py index 4a638721..e69de29b 100644 --- a/fet2020/fet2020/middleware.py +++ b/fet2020/fet2020/middleware.py @@ -1,22 +0,0 @@ -# from django.contrib.auth.models import User -from django.contrib.auth.middleware import RemoteUserMiddleware -# import django -# import logging -# logger=logging.getLogger("django.request") - - -class FETHeaderMiddleware(RemoteUserMiddleware): - header = "Remote-User" - - def process_request(self, request): - request.META[self.header] = request.META.get( - self.header, - request.headers.get(self.header, None) - ) - # logger = logging.getLogger(__name__) - super().process_request(request) - # logger.info('User: ' + str(request.user)) - if request.user.is_authenticated: - request.user.is_admin = True - request.user.is_superuser = True - request.user.is_staff = True diff --git a/fet2020/fet2020/settings.py b/fet2020/fet2020/settings.py index 4b834e78..3dc57c3b 100644 --- a/fet2020/fet2020/settings.py +++ b/fet2020/fet2020/settings.py @@ -89,7 +89,6 @@ MIDDLEWARE = [ 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'fet2020.middleware.FETHeaderMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] @@ -141,7 +140,6 @@ else: AUTHENTICATION_BACKENDS = [ - # 'django.contrib.auth.backends.RemoteUserBackend', 'django.contrib.auth.backends.ModelBackend', ] diff --git a/fet2020/fet2020/urls.py b/fet2020/fet2020/urls.py index 81de07ee..b7701ef2 100644 --- a/fet2020/fet2020/urls.py +++ b/fet2020/fet2020/urls.py @@ -4,9 +4,9 @@ from django.conf.urls.static import static from django.conf import settings from django.views.generic import RedirectView from . import views -from posts.views import PostViewSet +from posts.viewsets import PostViewSet from members.urls import member_urlpatterns, jobs_urlpatterns -from members.views import MemberViewSet, JobViewSet, JobGroupViewSet, JobMemberViewSet +from members.viewsets import MemberViewSet, JobViewSet, JobGroupViewSet, JobMemberViewSet from rest_framework import routers router = routers.DefaultRouter() diff --git a/fet2020/members/views.py b/fet2020/members/views.py index bff13896..5381cca7 100644 --- a/fet2020/members/views.py +++ b/fet2020/members/views.py @@ -2,13 +2,9 @@ from django.http import Http404 from django.shortcuts import render from collections import deque -from django_filters.rest_framework import DjangoFilterBackend from .models import Member, JobMember, JobGroup, Job -from .serializers import MemberSerializer, JobSerializer, JobGroupSerializer, JobMemberSerializer - -from rest_framework import viewsets -#from rest_framework import permissions +from posts.models import Post import logging logger = logging.getLogger(__name__) @@ -45,10 +41,13 @@ def index(request): pinned_job_groups, unpinned_job_groups = __get_job_groups() members = deque(Member.all_members.all()) + fs_info = Post.objects.filter(slug='fachschaft-info').first() + context = { "pinned_job_groups": pinned_job_groups, "unpinned_job_groups": unpinned_job_groups, "members": members, + "fs_info": fs_info, } return render(request, 'members/index.html', context) @@ -84,10 +83,13 @@ def members_view(request, filter=None): logger.info("Wrong member role '{}'".format(filter)) raise Http404("no member role") + fs_info = Post.objects.filter(slug='fachschaft-info').first() + context = { "pinned_job_groups": pinned_job_groups, "unpinned_job_groups": unpinned_job_groups, "members": members, + "fs_info": fs_info, } return render(request, 'members/index.html', context) @@ -111,52 +113,3 @@ def profile_view(request, member_id=None): } return render(request, 'members/member.html', context) - - -class MemberViewSet(viewsets.ModelViewSet): - """ - API endpoint that allows users to be viewed or edited. - """ - queryset = Member.all_members.order_by('nickname') - serializer_class = MemberSerializer - - #permission_classes = [permissions.IsAuthenticated] - filter_backends = [DjangoFilterBackend] - filterset_fields = ['nickname','mailaccount'] -# lookup_field = 'name' - - def pre_save(self, obj): - obj.image = self.request.FILES.get('image') - - -class JobGroupViewSet(viewsets.ModelViewSet): - """ - API endpoint that allows users to be viewed or edited. - """ - queryset = JobGroup.all_jobgroups.all() - serializer_class = JobGroupSerializer - - filter_backends = [DjangoFilterBackend] - filterset_fields = ['name','slug'] - #lookup_field = 'name' -# lookup_field = 'name' - -class JobViewSet(viewsets.ModelViewSet): - """ - API endpoint that allows users to be viewed or edited. - """ - queryset = Job.objects.all() - serializer_class = JobSerializer - filter_backends = [DjangoFilterBackend] - filterset_fields = ['name','slug'] - #lookup_field = 'slug' - -class JobMemberViewSet(viewsets.ModelViewSet): - """ - API endpoint that allows users to be viewed or edited. - """ - queryset = JobMember.objects.all() - serializer_class = JobMemberSerializer - filter_backends = [DjangoFilterBackend] - filterset_fields = ['member','job','job_role','job_start'] - #lookup_field = 'nickname' \ No newline at end of file diff --git a/fet2020/members/viewsets.py b/fet2020/members/viewsets.py new file mode 100644 index 00000000..27c1683f --- /dev/null +++ b/fet2020/members/viewsets.py @@ -0,0 +1,55 @@ +from django_filters.rest_framework import DjangoFilterBackend +from rest_framework import viewsets + +from .models import Member, JobMember, JobGroup, Job +from .serializers import MemberSerializer, JobSerializer, JobGroupSerializer, JobMemberSerializer + + +class MemberViewSet(viewsets.ModelViewSet): + """ + API endpoint that allows users to be viewed or edited. + """ + queryset = Member.all_members.order_by('nickname') + serializer_class = MemberSerializer + + #permission_classes = [permissions.IsAuthenticated] + filter_backends = [DjangoFilterBackend] + filterset_fields = ['nickname','mailaccount'] + #lookup_field = 'name' + + def pre_save(self, obj): + obj.image = self.request.FILES.get('image') + + +class JobGroupViewSet(viewsets.ModelViewSet): + """ + API endpoint that allows users to be viewed or edited. + """ + queryset = JobGroup.all_jobgroups.all() + serializer_class = JobGroupSerializer + + filter_backends = [DjangoFilterBackend] + filterset_fields = ['name','slug'] + #lookup_field = 'name' + + +class JobViewSet(viewsets.ModelViewSet): + """ + API endpoint that allows users to be viewed or edited. + """ + queryset = Job.objects.all() + serializer_class = JobSerializer + filter_backends = [DjangoFilterBackend] + filterset_fields = ['name','slug'] + #lookup_field = 'slug' + + +class JobMemberViewSet(viewsets.ModelViewSet): + """ + API endpoint that allows users to be viewed or edited. + """ + queryset = JobMember.objects.all() + serializer_class = JobMemberSerializer + filter_backends = [DjangoFilterBackend] + filterset_fields = ['member','job','job_role','job_start'] + #lookup_field = 'nickname' diff --git a/fet2020/posts/views.py b/fet2020/posts/views.py index 2481bf09..5b6c4f27 100644 --- a/fet2020/posts/views.py +++ b/fet2020/posts/views.py @@ -1,13 +1,11 @@ from collections import deque import logging -from rest_framework import viewsets from taggit.models import Tag from django.shortcuts import render from django.http import HttpResponse, JsonResponse, HttpResponseServerError from django.utils.text import slugify from django.utils import timezone -from django_filters.rest_framework import DjangoFilterBackend from documents.api import get_pad_link from documents.etherpadlib import add_ep_cookie @@ -15,7 +13,8 @@ from members.models import Member, JobMember from .models import Post, FetMeeting -from .serializers import PostSerializer + + logger = logging.getLogger(__name__) @@ -196,19 +195,3 @@ def get_next_dict(post=None): break return d - - -class PostViewSet(viewsets.ModelViewSet): - """ - API endpoint that allows users to be viewed or edited. - """ - - queryset = Post.objects.all().order_by("-public_date") - serializer_class = PostSerializer - # permission_classes = [permissions.IsAuthenticated] - filter_backends = [DjangoFilterBackend] - filterset_fields = ["legacy_id", "slug", "legacy_rubrik_id"] - lookup_field = "slug" - - def pre_save(self, obj): - obj.image = self.request.FILES.get("image") diff --git a/fet2020/posts/viewsets.py b/fet2020/posts/viewsets.py new file mode 100644 index 00000000..90a87ea2 --- /dev/null +++ b/fet2020/posts/viewsets.py @@ -0,0 +1,21 @@ +from django_filters.rest_framework import DjangoFilterBackend +from rest_framework import viewsets + +from .models import Post, FetMeeting +from .serializers import PostSerializer + + +class PostViewSet(viewsets.ModelViewSet): + """ + API endpoint that allows users to be viewed or edited. + """ + + queryset = Post.objects.all().order_by("-public_date") + serializer_class = PostSerializer + # permission_classes = [permissions.IsAuthenticated] + filter_backends = [DjangoFilterBackend] + filterset_fields = ["legacy_id", "slug", "legacy_rubrik_id"] + lookup_field = "slug" + + def pre_save(self, obj): + obj.image = self.request.FILES.get("image") diff --git a/fet2020/requirements.txt b/fet2020/requirements.txt index c3e5fcb5..b00d74f9 100644 --- a/fet2020/requirements.txt +++ b/fet2020/requirements.txt @@ -1,4 +1,4 @@ -django==3.1.4 +django==3.1.5 django-ckeditor==6.0.0 django-crontab==0.7.1 django-environ==0.4.5 diff --git a/fet2020/templates/home.html b/fet2020/templates/home.html index 9661e9d3..951b2834 100644 --- a/fet2020/templates/home.html +++ b/fet2020/templates/home.html @@ -58,7 +58,7 @@ {% for post in events %} {% include 'posts/partials/_date_box.html' %} {% endfor %} - ICS Kalendar + FET-Ka­len­der abonnieren: ICS Ka­len­der diff --git a/fet2020/templates/layout.html b/fet2020/templates/layout.html index c82f2b55..57f941b5 100644 --- a/fet2020/templates/layout.html +++ b/fet2020/templates/layout.html @@ -50,19 +50,19 @@ footer {
diff --git a/fet2020/templates/members/index.html b/fet2020/templates/members/index.html index 5826e49a..e29c4803 100644 --- a/fet2020/templates/members/index.html +++ b/fet2020/templates/members/index.html @@ -62,7 +62,9 @@ {% if members %}
- Die Fachschaft Elektrotechnik (kurz: FET), ist die offizielle Vertretung aller Studierenden auf der Fakultät für Elektrotechnik und Informationstechnik. Ehrenamtliche engagierte Studierende unterstützen dich in Anliegen und Fragen zum und rund ums Studium. Wir vertreten eure Interessen in den offiziellen Gremien der Universität und arbeiten an Studienplänen mit. Außerdem bieten wir ein Rahmenprogramm zum Studium in Form von Veranstaltungen und Festln. Wir freuen uns über Feedback und Anregungen, insbesondere von jenen, die gleich Nägel mit Köpfen machen und unser Team verstärken wollen oder ihre Themen und Meinungen in eine unserer Sitzungen einbringen möchten. + {% if fs_info %} + {{ fs_info.body|safe }} + {% endif %}
diff --git a/fet2020/templates/posts/fet_calendar.ics b/fet2020/templates/posts/fet_calendar.ics index 4c4f71cf..792b19c2 100644 --- a/fet2020/templates/posts/fet_calendar.ics +++ b/fet2020/templates/posts/fet_calendar.ics @@ -25,7 +25,7 @@ UID:{{event.id}} ORGANIZER;CN="Fachschaft Elektrotechnik":MAILTO:service@fet.at LOCATION:Vienna SUMMARY:{{ event.title }} -DESCRIPTION: {{ request.scheme }}://{{ request.get_host }}{{ event.url }} {{ even.title }} +DESCRIPTION:{{ request.scheme }}://{{ request.get_host }}{{ event.url }} {{ even.title }} CLASS:PUBLIC DTSTART;TZID=Europe/Vienna:{{ event.event_start|date:'Ymd' }}T{{ event.event_start|time:'His' }} DTEND;TZID=Europe/Vienna:{{ event.event_end|date:'Ymd' }}T{{ event.event_end|time:'His' }}