2020-11-21 15:40:35 +01:00
|
|
|
from django import forms
|
2020-11-22 12:59:46 +01:00
|
|
|
from django.core.validators import MinValueValidator
|
|
|
|
|
|
|
|
from exercises.models import BodyRegion, Exercise
|
2020-11-21 15:40:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
class QueryForm(forms.Form):
|
|
|
|
CARDIO_CHOICE = "cardio"
|
|
|
|
STRENGTHENING_CHOICE = "strengthening"
|
|
|
|
BALANCED_CHOICE = "balanced"
|
2020-11-22 12:59:46 +01:00
|
|
|
EVERYTHING_CHOICE = "everything"
|
2020-11-21 15:40:35 +01:00
|
|
|
RATING_CHOICES = [
|
|
|
|
(CARDIO_CHOICE, "Cardio"),
|
|
|
|
(STRENGTHENING_CHOICE, "Strengthening"),
|
|
|
|
(BALANCED_CHOICE, "Balanced"),
|
2020-11-22 12:59:46 +01:00
|
|
|
(EVERYTHING_CHOICE, "Everything"),
|
2020-11-21 15:40:35 +01:00
|
|
|
]
|
2020-11-22 12:59:46 +01:00
|
|
|
rating = forms.ChoiceField(
|
|
|
|
choices=RATING_CHOICES,
|
|
|
|
widget=forms.RadioSelect,
|
|
|
|
initial=EVERYTHING_CHOICE,
|
|
|
|
label="Catégorie",
|
|
|
|
)
|
|
|
|
body_regions = forms.ModelMultipleChoiceField(
|
|
|
|
BodyRegion.objects.filter(
|
|
|
|
id__in=Exercise.objects.values_list("body_regions", flat=True).distinct()
|
|
|
|
).order_by("name"),
|
|
|
|
required=False,
|
|
|
|
label="Région du corps",
|
|
|
|
)
|
|
|
|
number_of_exercises = forms.IntegerField(
|
|
|
|
validators=[MinValueValidator(1)], initial=5, label="Nombre"
|
|
|
|
)
|