Skip to content

Commit d440658

Browse files
committed
change filter for vacancies
1 parent 5ec455d commit d440658

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

projects/filters.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,19 @@ def filter_collaborator_count_gte(cls, queryset, name, value):
3838
collaborator__count__gte=value
3939
)
4040

41+
@classmethod
42+
def vacancy_filter(cls, queryset, name, value):
43+
"""Filter by vacancies
44+
If value is False, returns all projects.
45+
If value is True, returns projects with active vacancies.
46+
"""
47+
if value:
48+
return queryset.filter(
49+
vacancies=True,
50+
vacancies__is_active=True,
51+
)
52+
return queryset
53+
4154
name__contains = filters.Filter(field_name="name", lookup_expr="contains")
4255
description__contains = filters.Filter(
4356
field_name="description", lookup_expr="contains"
@@ -50,9 +63,7 @@ def filter_collaborator_count_gte(cls, queryset, name, value):
5063
)
5164

5265
# filters by whether there are any vacancies in the project
53-
any_vacancies = filters.BooleanFilter(
54-
field_name="vacancies", lookup_expr="isnull", exclude=True
55-
)
66+
any_vacancies = filters.BooleanFilter(field_name="vacancies", method="vacancy_filter")
5667
collaborator__count__gte = filters.NumberFilter(
5768
field_name="collaborator", method="filter_collaborator_count_gte"
5869
)

0 commit comments

Comments
 (0)