src/p4l/forms.py
changeset 4 047675624f45
parent 0 81e7900b06a7
child 5 62e97cd13730
equal deleted inserted replaced
3:63c5437a9b7d 4:047675624f45
     7 from django.conf import settings
     7 from django.conf import settings
     8 from django.contrib.auth import get_user_model
     8 from django.contrib.auth import get_user_model
     9 from django.contrib.auth.forms import (UserChangeForm as AuthUserChangeForm, 
     9 from django.contrib.auth.forms import (UserChangeForm as AuthUserChangeForm, 
    10     UserCreationForm as AuthUserCreationForm)
    10     UserCreationForm as AuthUserCreationForm)
    11 from django.core.exceptions import ValidationError
    11 from django.core.exceptions import ValidationError
    12 from django.forms.fields import ChoiceField
    12 from django.forms import Form
       
    13 from django.forms.fields import ChoiceField, CharField
    13 from django.utils.translation import ugettext as _
    14 from django.utils.translation import ugettext as _
       
    15 from .models import Record
    14 
    16 
    15 
    17 
    16 User = get_user_model()
    18 User = get_user_model()
    17 
    19 
    18 class UserCreationform(AuthUserCreationForm):
    20 class UserCreationform(AuthUserCreationForm):
    32 
    34 
    33 class UserChangeForm(AuthUserChangeForm):
    35 class UserChangeForm(AuthUserChangeForm):
    34     language = ChoiceField(label=_("language"), choices=[(k,_(v)) for k,v in settings.LANGUAGES], initial=settings.LANGUAGE_CODE[:2])
    36     language = ChoiceField(label=_("language"), choices=[(k,_(v)) for k,v in settings.LANGUAGES], initial=settings.LANGUAGE_CODE[:2])
    35     class Meta:
    37     class Meta:
    36         model = User
    38         model = User
       
    39 
       
    40 
       
    41 class RecordFilterForm(Form):
       
    42     title = CharField(required=True, min_length=1)
       
    43     def get_filter_qs(self, qs=None):
       
    44         if qs is None:
       
    45             qs = Record.objects.select_related("language").prefetch_related('titles')  # @UndefinedVariable
       
    46         t = self.cleaned_data.get('title',None)
       
    47         if t:
       
    48             qs = qs.filter(titles__title__icontains=t)
       
    49         return qs
       
    50