Files
hoopscout/apps/scouting/services/searches.py

29 lines
1021 B
Python

from django.db.models import QuerySet
from apps.players.models import Player
def apply_saved_search_filters(queryset: QuerySet[Player], filters: dict) -> QuerySet[Player]:
"""Apply structured saved-search filters to a player queryset."""
nationality_id = filters.get("nationality_id")
if nationality_id:
queryset = queryset.filter(nationality_id=nationality_id)
nominal_position_id = filters.get("nominal_position_id")
if nominal_position_id:
queryset = queryset.filter(nominal_position_id=nominal_position_id)
inferred_role_id = filters.get("inferred_role_id")
if inferred_role_id:
queryset = queryset.filter(inferred_role_id=inferred_role_id)
min_height_cm = filters.get("min_height_cm")
if min_height_cm is not None:
queryset = queryset.filter(height_cm__gte=min_height_cm)
max_height_cm = filters.get("max_height_cm")
if max_height_cm is not None:
queryset = queryset.filter(height_cm__lte=max_height_cm)
return queryset