recettes/recette/forms.py

26 lines
863 B
Python
Raw Normal View History

2018-05-26 16:01:04 +02:00
from django import forms
from .models import Recette
2018-05-26 16:01:04 +02:00
class SearchForm(forms.Form):
2018-05-27 11:22:55 +02:00
text = forms.CharField(
widget=forms.TextInput(attrs={'autofocus': True}),
required=False
)
saison = forms.ChoiceField(choices=(('all', "Toutes"),) + Recette.SAISON_CHOICES)
2018-05-27 11:22:18 +02:00
veget = forms.BooleanField(label="Végétarien", required=False)
def search(self):
if self.is_valid():
qs = Recette.objects.all()
2018-05-27 11:22:18 +02:00
if self.cleaned_data['veget']:
qs = qs.filter(is_veget=True)
if self.cleaned_data['text']:
qs = qs.filter(nom__icontains=self.cleaned_data['text'])
if self.cleaned_data['saison'] != 'all':
qs = qs.filter(saison__contains=[self.cleaned_data['saison']])
return qs
else:
return Recette.objects.none()