src/ldt/ldt/user/forms.py
author verrierj
Thu, 25 Aug 2011 15:41:12 +0200
changeset 155 73ce005c4727
parent 154 2f83bcf58cc1
child 156 c4b5d188d111
permissions -rw-r--r--
Changed name of class user.models.ldt to user.Ldt
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
111
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
     1
from django import forms
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
     2
from django.contrib.auth.forms import UserCreationForm
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
     3
from django.forms.util import ErrorList
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
     4
from django.utils.translation import gettext as _
155
73ce005c4727 Changed name of class user.models.ldt to user.Ldt
verrierj
parents: 154
diff changeset
     5
from models import Ldt
111
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
     6
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
     7
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
     8
class ldtForm(UserCreationForm):
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
     9
        
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    10
    class Meta:
155
73ce005c4727 Changed name of class user.models.ldt to user.Ldt
verrierj
parents: 154
diff changeset
    11
        model = Ldt
111
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    12
        
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    13
    def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    14
                 initial=None, error_class=ErrorList, label_suffix=':',
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    15
                 empty_permitted=False, instance=None):
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    16
                 
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    17
        if instance:
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    18
            initial = initial or {}           
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    19
        
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    20
        super(ldtForm, self).__init__(data, files, auto_id, prefix,
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    21
            initial, error_class, label_suffix, empty_permitted, instance)
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    22
        
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    23
        if instance:
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    24
            self.fields['password1'].required = False
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    25
            self.fields['password1'].label = _('New password')
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    26
            self.fields['password2'].required = False
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    27
            self.fields['password2'].label = _('New password confirmation')
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    28
        
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    29
        self._password_change = True
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    30
        
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    31
    def clean_username(self):
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    32
        if self.instance:
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    33
            return self.cleaned_data['username']
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    34
        return super(ldtForm, self).clean_username()
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    35
    
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    36
    def clean_password2(self): 
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    37
        if self.instance and self.cleaned_data['password1'] == '' and self.cleaned_data['password2'] == '':
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    38
            self._password_change = False
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    39
            return u''
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    40
        return super(ldtForm, self).clean_password2()
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    41
    
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    42
   
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    43
    def save(self, commit=True):
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    44
        Super = self._password_change and ldtForm  or UserCreationForm  
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    45
        user = super(Super, self).save(commit=False)
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    46
        # if user.pk != None:
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    47
            # self.save_m2m()
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    48
        
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    49
        if commit:
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    50
            user.save()
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    51
        
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    52
        return user
130
1cc949de2d1f Useless code removed. Iri group finally removed from the model. User's templates cleaned. Little css changed for home.
cavaliet
parents: 128
diff changeset
    53
111
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    54
        
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    55
class EmailChangeForm(forms.Form):
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    56
    email1 = forms.EmailField(label=_("E-mail"), max_length=75)
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    57
    email2 = forms.EmailField(label=_("E-mail"), max_length=75)
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    58
    
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    59
    def __init__(self, user=None, *args, **kwargs):
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    60
        self.user = user
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    61
        super(EmailChangeForm, self).__init__(*args, **kwargs)
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    62
        
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    63
    def clean_email2(self):
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    64
        email1 = self.cleaned_data.get('email1')
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    65
        email2 = self.cleaned_data.get('email2')
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    66
        if email1 and email2:
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    67
            if email1 != email2:
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    68
                raise forms.ValidationError(_("The two emails didn't match."))
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    69
        return email2
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    70
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    71
    
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    72
    def save(self):
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    73
        self.user.email = self.cleaned_data['email1']
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    74
        self.user.save()
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    75
        return self.user
154
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    76
    
111
4535dafa6007 improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    77
154
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    78
class NameChangeForm(forms.Form):
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    79
    first_name = forms.CharField(label=_("First name"), max_length=30)
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    80
    last_name = forms.CharField(label=_("Last name"), max_length=30)
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    81
    
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    82
    def __init__(self, user=None, *args, **kwargs):
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    83
        self.user = user
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    84
        super(NameChangeForm, self).__init__(*args, **kwargs)
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    85
        
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    86
        
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    87
    def save(self):
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    88
        self.user.first_name = self.cleaned_data['first_name']
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    89
        self.user.last_name = self.cleaned_data['last_name']
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    90
        self.user.save()
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    91
        return self.user
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    92
    
2f83bcf58cc1 Added a form enabling the user to change his name #1
verrierj
parents: 130
diff changeset
    93