src/p4l/forms.py
changeset 4 047675624f45
parent 0 81e7900b06a7
child 5 62e97cd13730
--- 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
+