feat(v2): implement scoped player search and detail flows
This commit is contained in:
@ -25,10 +25,8 @@ class PlayerSearchForm(forms.Form):
|
||||
nominal_position = forms.ModelChoiceField(queryset=Position.objects.none(), required=False)
|
||||
inferred_role = forms.ModelChoiceField(queryset=Role.objects.none(), required=False)
|
||||
competition = forms.ModelChoiceField(queryset=Competition.objects.none(), required=False)
|
||||
origin_competition = forms.ModelChoiceField(queryset=Competition.objects.none(), required=False)
|
||||
nationality = forms.ModelChoiceField(queryset=Nationality.objects.none(), required=False)
|
||||
team = forms.ModelChoiceField(queryset=Team.objects.none(), required=False)
|
||||
origin_team = forms.ModelChoiceField(queryset=Team.objects.none(), required=False)
|
||||
season = forms.ModelChoiceField(queryset=Season.objects.none(), required=False)
|
||||
|
||||
age_min = forms.IntegerField(required=False, min_value=0, max_value=60, label="Min age")
|
||||
@ -60,20 +58,6 @@ class PlayerSearchForm(forms.Form):
|
||||
three_pct_max = forms.DecimalField(required=False, min_value=0, decimal_places=2, max_digits=5, label="3P% max")
|
||||
ft_pct_min = forms.DecimalField(required=False, min_value=0, decimal_places=2, max_digits=5, label="FT% min")
|
||||
ft_pct_max = forms.DecimalField(required=False, min_value=0, decimal_places=2, max_digits=5, label="FT% max")
|
||||
efficiency_metric_min = forms.DecimalField(
|
||||
required=False,
|
||||
min_value=0,
|
||||
decimal_places=2,
|
||||
max_digits=6,
|
||||
label="Impact metric min",
|
||||
)
|
||||
efficiency_metric_max = forms.DecimalField(
|
||||
required=False,
|
||||
min_value=0,
|
||||
decimal_places=2,
|
||||
max_digits=6,
|
||||
label="Impact metric max",
|
||||
)
|
||||
|
||||
sort = forms.ChoiceField(choices=SORT_CHOICES, required=False, initial="name_asc")
|
||||
page_size = forms.TypedChoiceField(
|
||||
@ -88,10 +72,8 @@ class PlayerSearchForm(forms.Form):
|
||||
self.fields["nominal_position"].queryset = Position.objects.order_by("code")
|
||||
self.fields["inferred_role"].queryset = Role.objects.order_by("name")
|
||||
self.fields["competition"].queryset = Competition.objects.order_by("name")
|
||||
self.fields["origin_competition"].queryset = Competition.objects.order_by("name")
|
||||
self.fields["nationality"].queryset = Nationality.objects.order_by("name")
|
||||
self.fields["team"].queryset = Team.objects.order_by("name")
|
||||
self.fields["origin_team"].queryset = Team.objects.order_by("name")
|
||||
self.fields["season"].queryset = Season.objects.order_by("-start_date")
|
||||
|
||||
def clean(self):
|
||||
@ -110,7 +92,6 @@ class PlayerSearchForm(forms.Form):
|
||||
self._validate_min_max(cleaned_data, "fg_pct_min", "fg_pct_max")
|
||||
self._validate_min_max(cleaned_data, "three_pct_min", "three_pct_max")
|
||||
self._validate_min_max(cleaned_data, "ft_pct_min", "ft_pct_max")
|
||||
self._validate_min_max(cleaned_data, "efficiency_metric_min", "efficiency_metric_max")
|
||||
|
||||
if not cleaned_data.get("sort"):
|
||||
cleaned_data["sort"] = "name_asc"
|
||||
|
||||
Reference in New Issue
Block a user