src/p4l/forms.py
changeset 113 c05567404888
parent 5 62e97cd13730
child 126 a345f1a67bf1
equal deleted inserted replaced
112:ba6056f58516 113:c05567404888
     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 import Form
    12 from django.forms.fields import ChoiceField
    13 from django.forms.fields import ChoiceField, CharField
       
    14 from django.utils.translation import ugettext as _
    13 from django.utils.translation import ugettext as _
    15 from .models import Record
       
    16 
    14 
    17 
    15 
    18 User = get_user_model()
    16 User = get_user_model()
    19 
    17 
    20 class UserCreationform(AuthUserCreationForm):
    18 class UserCreationform(AuthUserCreationForm):
    35 class UserChangeForm(AuthUserChangeForm):
    33 class UserChangeForm(AuthUserChangeForm):
    36     language = ChoiceField(label=_("language"), choices=[(k,_(v)) for k,v in settings.LANGUAGES], initial=settings.LANGUAGE_CODE[:2])
    34     language = ChoiceField(label=_("language"), choices=[(k,_(v)) for k,v in settings.LANGUAGES], initial=settings.LANGUAGE_CODE[:2])
    37     class Meta:
    35     class Meta:
    38         model = User
    36         model = User
    39 
    37 
    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').distinct()  # @UndefinedVariable
       
    46         t = self.cleaned_data.get('title',None)
       
    47         if t:
       
    48             qs = qs.filter(titles__title__icontains=t)
       
    49         return qs
       
    50