src/p4l/forms.py
author ymh <ymh.work@gmail.com>
Sat, 28 Sep 2013 02:55:26 +0200
changeset 120 6ec0300b626e
parent 113 c05567404888
child 126 a345f1a67bf1
permissions -rw-r--r--
- update django - clear search input - footer
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
'''
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
Created on Aug 4, 2013
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
@author: ymh
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
'''
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
from django.conf import settings
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
from django.contrib.auth import get_user_model
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
from django.contrib.auth.forms import (UserChangeForm as AuthUserChangeForm, 
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    UserCreationForm as AuthUserCreationForm)
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
from django.core.exceptions import ValidationError
113
c05567404888 First version of indexation. Replace the list view by a search view
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    12
from django.forms.fields import ChoiceField
0
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
from django.utils.translation import ugettext as _
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
User = get_user_model()
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
class UserCreationform(AuthUserCreationForm):
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    class Meta:
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        model = User
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
        
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    def clean_username(self):
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
        # Since User.username is unique, this check is redundant,
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        # but it sets a nicer error message than the ORM. See #13147.
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        username = self.cleaned_data["username"]
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        try:
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
            User.objects.get(username=username)
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        except User.DoesNotExist:
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
            return username
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        raise ValidationError(self.error_messages['duplicate_username'])    
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
class UserChangeForm(AuthUserChangeForm):
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    language = ChoiceField(label=_("language"), choices=[(k,_(v)) for k,v in settings.LANGUAGES], initial=settings.LANGUAGE_CODE[:2])
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
    class Meta:
81e7900b06a7 First import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        model = User
4
047675624f45 first step of title search in list of records
cavaliet
parents: 0
diff changeset
    37