diff -r 63c5437a9b7d -r 047675624f45 src/p4l/forms.py --- a/src/p4l/forms.py Wed Aug 28 11:16:03 2013 +0200 +++ b/src/p4l/forms.py Wed Aug 28 13:36:31 2013 +0200 @@ -9,8 +9,10 @@ from django.contrib.auth.forms import (UserChangeForm as AuthUserChangeForm, UserCreationForm as AuthUserCreationForm) from django.core.exceptions import ValidationError -from django.forms.fields import ChoiceField +from django.forms import Form +from django.forms.fields import ChoiceField, CharField from django.utils.translation import ugettext as _ +from .models import Record User = get_user_model() @@ -34,3 +36,15 @@ language = ChoiceField(label=_("language"), choices=[(k,_(v)) for k,v in settings.LANGUAGES], initial=settings.LANGUAGE_CODE[:2]) class Meta: model = User + + +class RecordFilterForm(Form): + title = CharField(required=True, min_length=1) + def get_filter_qs(self, qs=None): + if qs is None: + qs = Record.objects.select_related("language").prefetch_related('titles') # @UndefinedVariable + t = self.cleaned_data.get('title',None) + if t: + qs = qs.filter(titles__title__icontains=t) + return qs +