This commit is contained in:
parent
47fed892cf
commit
9e1860faf9
@ -47,3 +47,11 @@ class MyUser(AbstractBaseUser, PermissionsMixin):
|
|||||||
|
|
||||||
def get_short_name(self):
|
def get_short_name(self):
|
||||||
return self.first_name
|
return self.first_name
|
||||||
|
|
||||||
|
class AnonymousUserData(models.Model):
|
||||||
|
first_name = models.CharField(max_length=100)
|
||||||
|
last_name = models.CharField(max_length=100)
|
||||||
|
contact_email = models.EmailField()
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f"{self.first_name} {self.last_name}"
|
||||||
@ -1,6 +1,6 @@
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
from core.models import MyUser
|
from core.models import MyUser, AnonymousUserData
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
@ -45,7 +45,14 @@ class JobListing(models.Model):
|
|||||||
workFromHome = models.CharField(max_length=255)
|
workFromHome = models.CharField(max_length=255)
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
updated_at = models.DateTimeField(auto_now=True)
|
||||||
skillLevels = models.ManyToManyField('SkillLevels', blank=True)
|
skillLevels = models.ManyToManyField('SkillLevels', blank=True)
|
||||||
created_by = models.ForeignKey(MyUser, on_delete=models.CASCADE)
|
anonymous_user_data = models.ForeignKey(AnonymousUserData,
|
||||||
|
null=True,
|
||||||
|
blank=True,
|
||||||
|
on_delete=models.SET_NULL)
|
||||||
|
created_by = models.ForeignKey(MyUser,
|
||||||
|
null=True,
|
||||||
|
blank=True,
|
||||||
|
on_delete=models.CASCADE)
|
||||||
first_name = models.CharField(max_length=255)
|
first_name = models.CharField(max_length=255)
|
||||||
last_name = models.CharField(max_length=255)
|
last_name = models.CharField(max_length=255)
|
||||||
contact_email = models.EmailField(max_length=255, null=True, blank=True)
|
contact_email = models.EmailField(max_length=255, null=True, blank=True)
|
||||||
@ -58,6 +65,9 @@ class JobListing(models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.name} at {self.company_name}"
|
return f"{self.name} at {self.company_name}"
|
||||||
|
|
||||||
|
class Skill(models.Model):
|
||||||
|
skill_name = models.CharField(max_length=255)
|
||||||
|
|
||||||
class SkillLevels(models.Model):
|
class SkillLevels(models.Model):
|
||||||
|
|
||||||
proficiency_choices = [
|
proficiency_choices = [
|
||||||
@ -68,7 +78,7 @@ class SkillLevels(models.Model):
|
|||||||
('E', 'Ekspert'),
|
('E', 'Ekspert'),
|
||||||
]
|
]
|
||||||
|
|
||||||
skill_name = models.CharField(max_length=255)
|
skill_id = models.ForeignKey(Skill)
|
||||||
skill_level = models.CharField(max_length=1, choices=proficiency_choices,)
|
skill_level = models.CharField(max_length=1, choices=proficiency_choices,)
|
||||||
|
|
||||||
class CompanyLogo(models.Model):
|
class CompanyLogo(models.Model):
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from jobposting.models import JobListing, SkillLevels, CompanyLogo
|
from jobposting.models import JobListing, SkillLevels, CompanyLogo, Skills
|
||||||
from core.models import MyUser
|
from core.models import MyUser
|
||||||
|
|
||||||
class MyUserSerializer(serializers.ModelSerializer):
|
class MyUserSerializer(serializers.ModelSerializer):
|
||||||
@ -10,7 +10,7 @@ class MyUserSerializer(serializers.ModelSerializer):
|
|||||||
class SkillLevelsSerializer(serializers.ModelSerializer):
|
class SkillLevelsSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = SkillLevels
|
model = SkillLevels
|
||||||
fields = ['id', 'jobPostingId', 'skill_name', 'skill_level']
|
fields = ['id', 'skill_id', 'skill_level']
|
||||||
|
|
||||||
class JobListingSerializer(serializers.ModelSerializer):
|
class JobListingSerializer(serializers.ModelSerializer):
|
||||||
created_by = MyUserSerializer(read_only=True)
|
created_by = MyUserSerializer(read_only=True)
|
||||||
@ -23,10 +23,15 @@ class JobListingSerializer(serializers.ModelSerializer):
|
|||||||
'company_name', 'name', 'content', 'minsalary', 'maxsalary',
|
'company_name', 'name', 'content', 'minsalary', 'maxsalary',
|
||||||
'localization', 'created_by', 'created_at', 'status', 'status_paid',
|
'localization', 'created_by', 'created_at', 'status', 'status_paid',
|
||||||
'expiration_date', 'experience_level', 'employmentType', 'workFromHome',
|
'expiration_date', 'experience_level', 'employmentType', 'workFromHome',
|
||||||
'updated_at', 'job_skills', 'contact_email', 'first_name', 'last_name',
|
'updated_at', 'skillLevels', 'contact_email', 'first_name', 'last_name',
|
||||||
]
|
]
|
||||||
|
|
||||||
class CompanyLogoSerializer(serializers.ModelSerializer):
|
class CompanyLogoSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = CompanyLogo
|
model = CompanyLogo
|
||||||
fields = ['id', 'company_logo']
|
fields = ['id', 'company_logo']
|
||||||
|
|
||||||
|
class SkillsSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = Skills
|
||||||
|
fields = ['id', 'skill_name']
|
||||||
@ -1,5 +1,6 @@
|
|||||||
from rest_framework import viewsets, permissions
|
from rest_framework import viewsets, permissions
|
||||||
from jobposting.models import JobListing, SkillLevels, CompanyLogo
|
from jobposting.models import JobListing, SkillLevels, CompanyLogo
|
||||||
|
from core.models import MyUser, AnonymousUserData
|
||||||
|
|
||||||
from jobposting.serializers import (
|
from jobposting.serializers import (
|
||||||
JobListingSerializer,
|
JobListingSerializer,
|
||||||
@ -7,7 +8,6 @@ from jobposting.serializers import (
|
|||||||
MyUserSerializer,
|
MyUserSerializer,
|
||||||
CompanyLogoSerializer
|
CompanyLogoSerializer
|
||||||
)
|
)
|
||||||
from core.models import MyUser
|
|
||||||
|
|
||||||
class MyUserViewSet(viewsets.ModelViewSet):
|
class MyUserViewSet(viewsets.ModelViewSet):
|
||||||
permission_classes = [permissions.AllowAny] # test only
|
permission_classes = [permissions.AllowAny] # test only
|
||||||
@ -25,12 +25,19 @@ class JobListingViewSet(viewsets.ModelViewSet):
|
|||||||
if self.request.user.is_authenticated:
|
if self.request.user.is_authenticated:
|
||||||
serializer.save(created_by=self.request.user)
|
serializer.save(created_by=self.request.user)
|
||||||
else:
|
else:
|
||||||
|
# Pobieranie danych z formularza
|
||||||
first_name = self.request.data.get('first_name')
|
first_name = self.request.data.get('first_name')
|
||||||
last_name = self.request.data.get('last_name')
|
last_name = self.request.data.get('last_name')
|
||||||
contact_email = self.request.data.get('contact_email')
|
contact_email = self.request.data.get('contact_email')
|
||||||
serializer.save(contact_email=contact_email,
|
|
||||||
last_name=last_name,
|
# Tworzenie rekordu AnonymousUserData
|
||||||
first_name=first_name)
|
anonymous_user_data = AnonymousUserData.objects.create(
|
||||||
|
first_name=first_name,
|
||||||
|
last_name=last_name,
|
||||||
|
contact_email=contact_email
|
||||||
|
)
|
||||||
|
|
||||||
|
serializer.save(anonymous_user_data=anonymous_user_data)
|
||||||
|
|
||||||
class SkillLevelsViewSet(viewsets.ModelViewSet):
|
class SkillLevelsViewSet(viewsets.ModelViewSet):
|
||||||
permission_classes = [permissions.AllowAny] # test only
|
permission_classes = [permissions.AllowAny] # test only
|
||||||
@ -38,8 +45,12 @@ class SkillLevelsViewSet(viewsets.ModelViewSet):
|
|||||||
serializer_class = SkillLevelsSerializer
|
serializer_class = SkillLevelsSerializer
|
||||||
# permission_classes = [permissions.IsAuthenticatedOrReadOnly]
|
# permission_classes = [permissions.IsAuthenticatedOrReadOnly]
|
||||||
|
|
||||||
# Możesz także chcieć dodać widoki szczegółowe lub niestandardowe akcje.
|
|
||||||
class CompanyLogoViewSet(viewsets.ModelViewSet):
|
class CompanyLogoViewSet(viewsets.ModelViewSet):
|
||||||
permission_classes = [permissions.AllowAny]
|
permission_classes = [permissions.AllowAny]
|
||||||
queryset = CompanyLogo.objects.all()
|
queryset = CompanyLogo.objects.all()
|
||||||
serializer_class = CompanyLogoSerializer
|
serializer_class = CompanyLogoSerializer
|
||||||
|
|
||||||
|
class SkillsViewset(viewsets.ModelViewSet):
|
||||||
|
permission_classes = [permissions.AllowAny]
|
||||||
|
queryset = CompanyLogo.objects.all()
|
||||||
|
serializer_class = SkillsSerializer
|
||||||
Loading…
x
Reference in New Issue
Block a user