Files
fet2020/fet2020/members/views.py
2020-09-06 08:38:17 +00:00

98 lines
2.7 KiB
Python

from django.shortcuts import render
from collections import deque
from .models import Member, JobMember, JobGroup, MemberSerializer
from rest_framework import viewsets
from rest_framework import permissions
# from django_filters.rest_framework import DjangoFilterBackend
def index(request, slug=None, filter=None):
job_group = deque(JobGroup.objects.all())
members = None
if filter is None:
members = deque(Member.all_members.all())
elif filter in Member.MemberRole:
members = deque(Member.all_members.filter(role=filter))
else:
members = None
context = {
"job_group": job_group,
"members": members,
}
return render(request, 'members/index.html', context)
def jobs_view(request, slug=None):
job_group = deque(JobGroup.objects.all())
job_list = []
job_names = JobMember.jobs.get_job_names(slug=slug)
active_members = JobMember.active_member.get_members_of_job(job_names=job_names)
inactive_members = JobMember.inactive_member.get_members_of_job(job_names=job_names)
for idx, item in enumerate(job_names):
job_list.append((job_names[idx], active_members[idx], inactive_members[idx]))
context = {
"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)
def members_view(request, filter=None):
job_group = deque(JobGroup.objects.all())
if filter is None:
members = deque(Member.all_members.all())
elif filter in Member.MemberRole:
members = deque(Member.all_members.filter(role=filter))
else:
members = None
context = {
"job_group": job_group,
"members": members,
}
return render(request, 'members/index.html', context)
def profile_view(request, member_name=None):
job_group = deque(JobGroup.objects.all())
member = None
jobs = None
member = deque(Member.all_members.filter(nickname=member_name))
jobs = deque(JobMember.members.filter(member__nickname=member_name))
context = {
"job_group": job_group,
"member": member,
"jobs": jobs,
}
return render(request, 'members/index.html', context)
class MemberViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = Member.all_members.all().order_by('nickname')
serializer_class = MemberSerializer
permission_classes = [permissions.IsAuthenticated]
# filter_backends = [DjangoFilterBackend]
# filterset_fields = ['legacy_id', 'slug','legacy_rubrik_id']
lookup_field = 'name'
def pre_save(self, obj):
obj.image = self.request.FILES.get('image')