This commit is contained in:
2021-01-15 14:11:31 +00:00
13 changed files with 103 additions and 109 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

21
fet2020/posts/viewsets.py Normal file
View File

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

View File

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

View File

@@ -58,7 +58,7 @@
{% for post in events %}
{% include 'posts/partials/_date_box.html' %}
{% endfor %}
<a href="{% url 'posts.calendar' %}">ICS Kalendar</a>
FET-Ka­len­der abonnieren: <a href="{% url 'posts.calendar' %}">ICS Ka­len­der</a>
</div>
</div>

View File

@@ -50,19 +50,19 @@ footer {
<div class="top-bar-right">
<ul class="dropdown vertical medium-horizontal menu" data-responsive-menu="drilldown medium-dropdown" data-animate-heigt="true">
{% if request.user.is_authenticated %}
<li><a role="menuitem" style="color: black; background: lightgrey">Hallo {{request.user.username}}</a></li>
<li><a role="menuitem" style="color: black; background: lightgrey">Hallo {{ request.user.username }}</a></li>
<li><a href="/admin" style="background: lightgrey;">Admin</a></li>
<li><a href="{%url 'tasks'%}" style="background: lightgrey;">Tasks</a></li>
<li><a href="{% url 'tasks' %}" style="background: lightgrey;">Tasks</a></li>
{% endif %}
<li><a href="{% url 'posts.index' %}">Aktuelles</a></li>
<!-- show active members first -->
<li><a href="{% url 'members'%}A">Fachschaft</a></li>
<li><a href="{% url 'members' %}A">Fachschaft</a></li>
<li><a href="/fotos/">Fotos</a></li>
<li><a href="/blackboard">Blackboard</a></li>
{% if request.user.is_authenticated %}
<li><a href="{%url 'logout'%}">Logout</a></li>
<li><a href="{% url 'logout' %}">Logout</a></li>
{% else %}
<li><a href="{%url 'login'%}">Login</a></li>
<li><a href="{% url 'login' %}?next={{ request.path }}">Login</a></li>
{% endif %}
</ul>
</div>

View File

@@ -62,7 +62,9 @@
{% if members %}
<div class="grid-x">
<div class="cell padding-top-1 padding-left-1 padding-right-1" style="background-color: white; text-align: justify;">
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 %}
</div>
</div>

View File

@@ -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 }}</a>
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' }}