[feat] vacancy

This commit is contained in:
Data-Name-ID
2024-04-01 17:48:02 +03:00
parent bf0f46428f
commit 25a47d660c
3 changed files with 39 additions and 7 deletions
+7 -3
View File
@@ -25,6 +25,12 @@ class Vacancy(models.Model):
skills = models.ManyToManyField( skills = models.ManyToManyField(
Skill, Skill,
blank=True, blank=True,
related_name="vacancies",
)
users = models.ManyToManyField(
User,
blank=True,
related_name="vacancies",
) )
def __str__(self): def __str__(self):
@@ -74,9 +80,7 @@ class Team(models.Model):
) )
author = models.ForeignKey( author = models.ForeignKey(
User, User, on_delete=models.CASCADE, related_name="teams"
on_delete=models.CASCADE,
related_name="teams"
) )
def __str__(self): def __str__(self):
+24 -1
View File
@@ -1,8 +1,31 @@
from rest_framework import serializers from rest_framework import serializers
from teams.models import Team from teams.models import Team, Vacancy
from datetime import datetime, timedelta, timezone
class TeamSerializer(serializers.ModelSerializer): class TeamSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Team model = Team
fields = ["id", "name", "description"] fields = ["id", "name", "description"]
class VacancySerializer(serializers.ModelSerializer):
min_age = serializers.IntegerField(write_only=True, required=True)
max_age = serializers.IntegerField(write_only=True, required=True)
class Meta:
model = Vacancy
fields = "__all__"
def create(self, validated_data):
min_age = validated_data.pop("min_age")
max_age = validated_data.pop("max_age")
validated_data["start_date"] = datetime.now(
timezone.utc
).date() - timedelta(days=365 * min_age)
validated_data["end_date"] = datetime.now(
timezone.utc
).date() - timedelta(days=365 * max_age)
return Team.objects.create(**validated_data)
+8 -3
View File
@@ -1,10 +1,10 @@
from backend.project.users.models import User
from rest_framework import status from rest_framework import status
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.views import APIView from rest_framework.views import APIView
from teams.models import Team from teams.models import Team
from users.models import User
from api.teams.serializers import TeamSerializer from rest_framework.generics import CreateAPIView
from api.teams.serializers import TeamSerializer, VacancySerializer
class AddUserToTeam(APIView): class AddUserToTeam(APIView):
@@ -24,3 +24,8 @@ class AddUserToTeam(APIView):
team.members.add(user) team.members.add(user)
team_serializer = TeamSerializer(team) team_serializer = TeamSerializer(team)
return Response(team_serializer.data, status=status.HTTP_200_OK) return Response(team_serializer.data, status=status.HTTP_200_OK)
class CreateVacancy(CreateAPIView):
http_method_names = ("post",)
serializer_class = VacancySerializer