update member and job api
This commit is contained in:
@@ -119,6 +119,7 @@ class Member(models.Model):
|
||||
date_created = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
# Managers
|
||||
objects = models.Manager()
|
||||
all_members = MemberManager()
|
||||
|
||||
class Meta:
|
||||
@@ -149,6 +150,7 @@ class JobGroup(models.Model):
|
||||
is_pinned = models.BooleanField(verbose_name="ANGEHEFTET", default=False)
|
||||
|
||||
# Managers
|
||||
objects = models.Manager()
|
||||
all_jobgroups = JobGroupManager()
|
||||
|
||||
class Meta:
|
||||
@@ -177,6 +179,9 @@ class Job(models.Model):
|
||||
verbose_name="Job Gruppe",
|
||||
)
|
||||
|
||||
# Managers
|
||||
objects = models.Manager()
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Tätigkeit"
|
||||
verbose_name_plural = "Tätigkeiten"
|
||||
@@ -216,6 +221,7 @@ class JobMember(models.Model):
|
||||
|
||||
job_role = models.CharField(max_length=2, choices=JobRole.choices, default=JobRole.MEMBER)
|
||||
|
||||
objects = models.Manager()
|
||||
members = JobMemberManager()
|
||||
active_member = ActiveJobMemberManager()
|
||||
inactive_member = InactiveJobMemberManager()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from .models import Member
|
||||
from .models import Member, Job, JobGroup, JobMember
|
||||
|
||||
from rest_framework import serializers
|
||||
|
||||
@@ -14,4 +14,61 @@ class MemberSerializer(serializers.HyperlinkedModelSerializer):
|
||||
'role',
|
||||
'description',
|
||||
'image',
|
||||
'birthday',
|
||||
]
|
||||
|
||||
class JobGroupSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = JobGroup
|
||||
fields = [
|
||||
'name',
|
||||
'shortterm',
|
||||
]
|
||||
|
||||
class JobSerializer(serializers.HyperlinkedModelSerializer):
|
||||
job_group = JobGroupSerializer()
|
||||
|
||||
class Meta:
|
||||
model = Job
|
||||
fields = [
|
||||
'name',
|
||||
'shortterm',
|
||||
'job_group',
|
||||
]
|
||||
|
||||
def create(self, validated_data):
|
||||
job_groups_data = validated_data.pop('job_group')
|
||||
|
||||
jobgroup = JobGroup.objects.get(**job_groups_data)
|
||||
if not jobgroup:
|
||||
jobgroup = JobGroup.objects.create(**job_groups_data)
|
||||
|
||||
job = Job.objects.create(job_group=jobgroup, **validated_data)
|
||||
|
||||
return job
|
||||
|
||||
class JobMemberSerializer(serializers.HyperlinkedModelSerializer):
|
||||
member = MemberSerializer()
|
||||
job = JobSerializer()
|
||||
|
||||
class Meta:
|
||||
model = JobMember
|
||||
fields = [
|
||||
'job_start',
|
||||
'job_end',
|
||||
'member',
|
||||
'job',
|
||||
]
|
||||
|
||||
def create(self, validated_data):
|
||||
member_data = validated_data.pop('member')
|
||||
print(member_data)
|
||||
member = Member.objects.get(firstname=member_data['firstname'], surname=member_data['surname'])
|
||||
|
||||
job_data = validated_data.pop('job')
|
||||
print(job_data)
|
||||
job = Job.objects.get(name=job_data['name'])
|
||||
|
||||
jobmember = JobMember.objects.create(member=member, job=job, **validated_data)
|
||||
|
||||
return jobmember
|
||||
|
||||
@@ -3,8 +3,8 @@ from django.shortcuts import render
|
||||
|
||||
from collections import deque
|
||||
|
||||
from .models import Member, JobMember, JobGroup
|
||||
from .serializers import MemberSerializer
|
||||
from .models import Member, JobMember, JobGroup, Job
|
||||
from .serializers import MemberSerializer, JobSerializer, JobGroupSerializer, JobMemberSerializer
|
||||
|
||||
from rest_framework import viewsets
|
||||
#from rest_framework import permissions
|
||||
@@ -103,3 +103,29 @@ class MemberViewSet(viewsets.ModelViewSet):
|
||||
|
||||
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
|
||||
|
||||
lookup_field = 'name'
|
||||
|
||||
|
||||
class JobViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows users to be viewed or edited.
|
||||
"""
|
||||
queryset = Job.objects.all()
|
||||
serializer_class = JobSerializer
|
||||
|
||||
|
||||
class JobMemberViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
API endpoint that allows users to be viewed or edited.
|
||||
"""
|
||||
queryset = JobMember.objects.all()
|
||||
serializer_class = JobMemberSerializer
|
||||
|
||||
Reference in New Issue
Block a user