Skip to content
Open
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
6fcb003
Merge pull request #275 from PROCOLLAB-github/fix_required_skills
sh1nkey Feb 14, 2024
4abd77d
fix required_skills serializer
yakser Feb 14, 2024
fbb1352
fix required_skills serializer
yakser Feb 14, 2024
99c5eed
Merge pull request #277 from PROCOLLAB-github/dev
IgorDuino Feb 16, 2024
2561e72
Merge pull request #278 from PROCOLLAB-github/flexivanov237-pro-170
sh1nkey Feb 16, 2024
df51d69
Merge pull request #279 from PROCOLLAB-github/flexivanov237-pro-170
sh1nkey Feb 16, 2024
78f4c00
Merge pull request #280 from PROCOLLAB-github/flexivanov237-pro-170
sh1nkey Feb 16, 2024
da12c13
Merge pull request #293 from PROCOLLAB-github/dev
yakser Feb 22, 2024
8c93cc8
Merge pull request #299 from PROCOLLAB-github/dev
sh1nkey Feb 23, 2024
e3a7321
Merge pull request #301 from PROCOLLAB-github/dev
sh1nkey Feb 24, 2024
2c64569
Merge pull request #304 from PROCOLLAB-github/dev
sh1nkey Feb 26, 2024
77a416c
add type-hints vacancy
DaniilSvinsov Feb 29, 2024
7f69ddf
add type-hints vacancy
DaniilSvinsov Mar 18, 2024
f706ae3
add type-hints vacancy
DaniilSvinsov Mar 18, 2024
be8f3ef
add norm type-hints vacancy
DaniilSvinsov Mar 21, 2024
284ce77
Merge remote-tracking branch 'origin/dev' into daniilsvinsov-67
DaniilSvinsov Mar 30, 2024
7250222
add type-hints vacancy
DaniilSvinsov Mar 31, 2024
974940d
hmhmhm
DaniilSvinsov Mar 31, 2024
a5a88aa
small fix 1
DaniilSvinsov Mar 31, 2024
c9294e5
small fix 2
DaniilSvinsov Mar 31, 2024
6b604d7
rollback
DaniilSvinsov Mar 31, 2024
575e2f2
first type-hints vacancy
DaniilSvinsov Mar 31, 2024
3d8f285
type-hints vacancy
DaniilSvinsov Mar 31, 2024
8fa264c
small fix type-hints
DaniilSvinsov Apr 6, 2024
fa94f00
add type-hints core
DaniilSvinsov Apr 8, 2024
7779dbf
fix anyway
DaniilSvinsov Apr 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions vacancy/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from vacancy.models import Vacancy


def project_id_filter(queryset, name, value):
def project_id_filter(queryset, name, value) -> queryset:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

оно точно работает?
кажется тут должен быт QuerySet[Project] или что то такое

return queryset.filter(
**{
"project_id": value[0],
Expand All @@ -27,7 +27,7 @@ class VacancyFilter(filters.FilterSet):

def __init__(self, *args, **kwargs):
"""if is_active filter is not passed, default to True"""
super().__init__(*args, **kwargs)
super().init(*args, **kwargs)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

почему так?

if self.data.get("is_active") is None:
self.data = dict(self.data)
self.data["is_active"] = True
Expand All @@ -37,4 +37,4 @@ def __init__(self, *args, **kwargs):

class Meta:
model = Vacancy
fields = ("project_id", "is_active")
fields = ("project_id", "is_active")
11 changes: 6 additions & 5 deletions vacancy/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from projects.models import Project
from vacancy.managers import VacancyManager, VacancyResponseManager
from django_stubs_ext.db.models import TypedModelMeta


class Vacancy(models.Model):
Expand Down Expand Up @@ -39,10 +40,10 @@ class Vacancy(models.Model):

objects = VacancyManager()

def __str__(self):
def __str__(self) -> str:
return f"Vacancy<{self.id}> - {self.role}"

class Meta:
class Meta(TypedModelMeta):
verbose_name = "Вакансия"
verbose_name_plural = "Вакансии"
ordering = ["-datetime_created"]
Expand Down Expand Up @@ -88,10 +89,10 @@ class VacancyResponse(models.Model):

objects = VacancyResponseManager()

def __str__(self):
def __str__(self) -> str:
return f"VacancyResponse<{self.id}> - {self.user} - {self.vacancy}"

class Meta:
class Meta(TypedModelMeta):
verbose_name = "Отклик на вакансию"
verbose_name_plural = "Отклик на вакансии"
ordering = ["-datetime_created"]
ordering = ["-datetime_created"]
42 changes: 18 additions & 24 deletions vacancy/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class RequiredSkillsSerializerMixin(serializers.Serializer):
required_skills = CustomListField(child=serializers.CharField())


class ProjectForVacancySerializer(serializers.ModelSerializer):
class ProjectForVacancySerializer(serializers.ModelSerializer[Project]):
class Meta:
model = Project
fields = [
Expand All @@ -23,7 +23,7 @@ class Meta:
]


class VacancyDetailSerializer(serializers.ModelSerializer, RequiredSkillsSerializerMixin):
class VacancyDetailSerializer(serializers.ModelSerializer, RequiredSkillsSerializerMixin[Vacancy]):
project = ProjectForVacancySerializer(many=False, read_only=True)

class Meta:
Expand All @@ -41,7 +41,7 @@ class Meta:
read_only_fields = ["project"]


class VacancyListSerializer(serializers.ModelSerializer, RequiredSkillsSerializerMixin):
class VacancyListSerializer(serializers.ModelSerializer, RequiredSkillsSerializerMixin[Vacancy]):
class Meta:
model = Vacancy
fields = [
Expand All @@ -57,7 +57,7 @@ class Meta:


class ProjectVacancyListSerializer(
serializers.ModelSerializer, RequiredSkillsSerializerMixin
serializers.ModelSerializer, RequiredSkillsSerializerMixin[Project]
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

неправильно

):
class Meta:
model = Vacancy
Expand All @@ -72,7 +72,7 @@ class Meta:


class ProjectVacancyCreateListSerializer(
serializers.ModelSerializer, RequiredSkillsSerializerMixin
serializers.ModelSerializer, RequiredSkillsSerializerMixin[Project]
):
class Meta:
model = Vacancy
Expand All @@ -85,8 +85,18 @@ class Meta:
"is_active",
]

def create(self, validated_data):
if validated_data["project"].draft:
validated_data["is_active"] = False
else:
validated_data["is_active"] = True

instance = super().create(validated_data)

return instance

class VacancyResponseListSerializer(serializers.ModelSerializer):

class VacancyResponseListSerializer(serializers.ModelSerializer[VacancyResponse]):
is_approved = serializers.BooleanField(read_only=True)
user = UserDetailSerializer(read_only=True)
user_id = serializers.IntegerField(write_only=True)
Expand Down Expand Up @@ -127,23 +137,7 @@ def create(self, validated_data):
return vacancy_response


class VacancyResponseDetailSerializer(serializers.ModelSerializer):
class VacancyResponseDetailSerializer(serializers.ModelSerializer[VacancyResponse]):
user = UserDetailSerializer(many=False, read_only=True)
vacancy = VacancyListSerializer(many=False, read_only=True)
is_approved = serializers.BooleanField(read_only=True)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

почему удалил кусок кода?


class Meta:
model = VacancyResponse
fields = [
"id",
"user",
"vacancy",
"why_me",
"is_approved",
"datetime_created",
"datetime_updated",
]


class VacancyResponseAcceptSerializer(VacancyResponseDetailSerializer):
is_approved = serializers.BooleanField(required=True, read_only=False)
is_approve
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

что это вообще..

4 changes: 2 additions & 2 deletions vacancy/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,17 @@
IsVacancyProjectLeader,
)
from vacancy.serializers import (
ProjectVacancyListSerializer,
VacancyDetailSerializer,
VacancyResponseAcceptSerializer,
VacancyResponseDetailSerializer,
VacancyResponseListSerializer,
ProjectVacancyCreateListSerializer,
)


class VacancyList(generics.ListCreateAPIView):
queryset = Vacancy.objects.get_vacancy_for_list_view()
serializer_class = ProjectVacancyCreateListSerializer
serializer_class = ProjectVacancyListSerializer
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
filter_backends = (filters.DjangoFilterBackend,)
filterset_class = VacancyFilter
Expand Down