multicategory filtering
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
ad8bcf0f19
commit
fb0d36f060
@ -77,20 +77,36 @@ class JobOfferListView(APIView):
|
|||||||
permission_classes = []
|
permission_classes = []
|
||||||
|
|
||||||
def get(self, request, format=None):
|
def get(self, request, format=None):
|
||||||
categories = request.query_params.get('categories', None)
|
min_salary = request.query_params.get('min_salary', None)
|
||||||
if categories is not None:
|
max_salary = request.query_params.get('max_salary', None)
|
||||||
categories = categories.split(',')
|
localization = request.query_params.get('localization', None)
|
||||||
filters = {
|
name = request.query_params.get('name', None)
|
||||||
'min_salary__gte': request.query_params.get('min_salary', None),
|
if min_salary is not None and min_salary != '':
|
||||||
'max_salary__lte': request.query_params.get('max_salary', None),
|
min_salary = int(min_salary)
|
||||||
'localization': request.query_params.get('localization', None),
|
if max_salary is not None and max_salary != '':
|
||||||
'categories': categories,
|
max_salary = int(max_salary)
|
||||||
'experience_level': request.query_params.get('experience_level', None),
|
if localization is not None and localization != '':
|
||||||
'employment_type': request.query_params.get('employment_type', None),
|
pass
|
||||||
'work_from_home': request.query_params.get('work_from_home', None),
|
else:
|
||||||
}
|
localization = None
|
||||||
|
if name is not None and name != '':
|
||||||
|
name = Q(name__icontains=name) | Q(company_name__icontains=name)
|
||||||
|
else:
|
||||||
|
name = None
|
||||||
|
|
||||||
# remove None values
|
categories = request.query_params.getlist('categories', None)
|
||||||
|
|
||||||
|
filters = {
|
||||||
|
'min_salary__gte': min_salary,
|
||||||
|
'max_salary__lte': max_salary,
|
||||||
|
'localization': localization,
|
||||||
|
'category__in': categories,
|
||||||
|
'experience_level': request.query_params.get('experience_level', None),
|
||||||
|
'employment_type': request.query_params.get('employment_type', None),
|
||||||
|
'work_from_home': request.query_params.get('work_from_home', None),
|
||||||
|
}
|
||||||
|
|
||||||
|
# remove None values
|
||||||
filters = {k: v for k, v in filters.items() if v is not None}
|
filters = {k: v for k, v in filters.items() if v is not None}
|
||||||
|
|
||||||
job_offers = JobOffer.objects.filter(**filters)
|
job_offers = JobOffer.objects.filter(**filters)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user