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-Kalender abonnieren: ICS Kalender 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 %}