pytask/profile/forms.py
author Madhusudan.C.S <madhusudancs@gmail.com>
Fri, 28 Jan 2011 02:27:40 +0530
changeset 519 84709567f47a
parent 478 863dba311ba2
child 520 958eb8854b63
permissions -rw-r--r--
Use the release version of South than the latest version. South is very critical for our application. So don't take any risk with the users data. Use the release version.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
252
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
     1
import os
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
     2
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
     3
from django import forms
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
     4
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
     5
from registration.forms import RegistrationFormUniqueEmail
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
     6
from registration.models import RegistrationProfile
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
     7
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
     8
from pytask.profile.models import GENDER_CHOICES, Profile
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
     9
254
5c000bf6f241 Fixed a few typos
Nishanth Amuluru <nishanth@fossee.in>
parents: 253
diff changeset
    10
class CustomRegistrationForm(RegistrationFormUniqueEmail):
252
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    11
    """Used instead of RegistrationForm used by default django-registration
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    12
    backend, this adds aboutme, dob, gender, address, phonenum to the default 
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    13
    django-registration RegistrationForm"""
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    14
300
ce5f3cdbd545 Used the new field in forms
Nishanth Amuluru <nishanth@fossee.in>
parents: 269
diff changeset
    15
    full_name = forms.CharField(required=True, max_length=50, 
ce5f3cdbd545 Used the new field in forms
Nishanth Amuluru <nishanth@fossee.in>
parents: 269
diff changeset
    16
                                label="Name as on your bank account", 
ce5f3cdbd545 Used the new field in forms
Nishanth Amuluru <nishanth@fossee.in>
parents: 269
diff changeset
    17
                                help_text="Any DD/Cheque will be issued on \
ce5f3cdbd545 Used the new field in forms
Nishanth Amuluru <nishanth@fossee.in>
parents: 269
diff changeset
    18
                                           this name")
ce5f3cdbd545 Used the new field in forms
Nishanth Amuluru <nishanth@fossee.in>
parents: 269
diff changeset
    19
319
70726699ca80 now the text area is displayed in a more elegant way
Nishanth Amuluru <nishanth@fossee.in>
parents: 315
diff changeset
    20
    aboutme = forms.CharField(required=True, widget=forms.Textarea, 
70726699ca80 now the text area is displayed in a more elegant way
Nishanth Amuluru <nishanth@fossee.in>
parents: 315
diff changeset
    21
                              max_length=1000, label=u"About Me",
252
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    22
                              help_text="A write up about yourself to aid the\
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    23
                              reviewer in judging your eligibility for a task.\
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    24
                              It can have your educational background, CGPA,\
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    25
                              field of interests etc.,"
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    26
                             )
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    27
478
863dba311ba2 Fix the styling and modify the help text to calendar field to use the conventional format.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 468
diff changeset
    28
863dba311ba2 Fix the styling and modify the help text to calendar field to use the conventional format.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 468
diff changeset
    29
    dob = forms.DateField(help_text = "yyyy-mm-dd", required=True,
863dba311ba2 Fix the styling and modify the help text to calendar field to use the conventional format.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 468
diff changeset
    30
                          label=u'Date of Birth')
252
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    31
463
c7c595c0bed3 Make changes to the code style so that it is consistent across the code base.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 412
diff changeset
    32
    gender = forms.ChoiceField(choices = GENDER_CHOICES,
c7c595c0bed3 Make changes to the code style so that it is consistent across the code base.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 412
diff changeset
    33
                               required=True, label=u'Gender')
c7c595c0bed3 Make changes to the code style so that it is consistent across the code base.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 412
diff changeset
    34
c7c595c0bed3 Make changes to the code style so that it is consistent across the code base.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 412
diff changeset
    35
    address = forms.CharField(
c7c595c0bed3 Make changes to the code style so that it is consistent across the code base.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 412
diff changeset
    36
      required=True, max_length=200, widget=forms.Textarea,
c7c595c0bed3 Make changes to the code style so that it is consistent across the code base.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 412
diff changeset
    37
      help_text="This information will be used while sending DD/Cheque")
c7c595c0bed3 Make changes to the code style so that it is consistent across the code base.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 412
diff changeset
    38
254
5c000bf6f241 Fixed a few typos
Nishanth Amuluru <nishanth@fossee.in>
parents: 253
diff changeset
    39
    phonenum = forms.CharField(required=True, max_length=10, 
5c000bf6f241 Fixed a few typos
Nishanth Amuluru <nishanth@fossee.in>
parents: 253
diff changeset
    40
                               label="Phone Number")
252
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    41
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    42
    def clean_aboutme(self):
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    43
        """ Empty not allowed """
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    44
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    45
        data = self.cleaned_data['aboutme']
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    46
        if not data.strip():
254
5c000bf6f241 Fixed a few typos
Nishanth Amuluru <nishanth@fossee.in>
parents: 253
diff changeset
    47
            raise forms.ValidationError("Please write something about\
252
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    48
                                        yourself")
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    49
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    50
        return data
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    51
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    52
    def clean_address(self):
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    53
        """ Empty not allowed """
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    54
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    55
        data = self.cleaned_data['address']
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    56
        if not data.strip():
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    57
            raise forms.ValidationError("Please enter an address")
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    58
        
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    59
        return data
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    60
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    61
    def clean_phonenum(self):
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    62
        """ should be of 10 digits """
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    63
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    64
        data = self.cleaned_data['phonenum']
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    65
254
5c000bf6f241 Fixed a few typos
Nishanth Amuluru <nishanth@fossee.in>
parents: 253
diff changeset
    66
        if (not data.strip()) or \
5c000bf6f241 Fixed a few typos
Nishanth Amuluru <nishanth@fossee.in>
parents: 253
diff changeset
    67
           (data.strip("1234567890")) or \
252
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    68
           (len(data)!= 10):
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    69
               raise forms.ValidationError("This is not a valid phone number")
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    70
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    71
        return data
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    72
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    73
    
466
8ecd503354de Fix the style as per PEP8 guidelines.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 463
diff changeset
    74
    def save(self, profile_callback=None):
252
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    75
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    76
        new_user = RegistrationProfile.objects.create_inactive_user(
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    77
                       username=self.cleaned_data['username'],
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    78
                       password=self.cleaned_data['password1'],
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    79
                       email=self.cleaned_data['email'])
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    80
        
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    81
        new_profile = Profile(user=new_user,
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    82
                              aboutme=self.cleaned_data['aboutme'],
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    83
                              dob=self.cleaned_data['dob'],
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    84
                              gender=self.cleaned_data['gender'],
254
5c000bf6f241 Fixed a few typos
Nishanth Amuluru <nishanth@fossee.in>
parents: 253
diff changeset
    85
                              address=self.cleaned_data['address'],
252
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    86
                              phonenum=self.cleaned_data['phonenum'],
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    87
                             )
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    88
        new_profile.save()
466
8ecd503354de Fix the style as per PEP8 guidelines.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 463
diff changeset
    89
252
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    90
        return new_user
5a92fcacdd5a Created a form for user creation
Nishanth Amuluru <nishanth@fossee.in>
parents: 247
diff changeset
    91
466
8ecd503354de Fix the style as per PEP8 guidelines.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 463
diff changeset
    92
312
a8fbe291385c Created a form for creating profile
Nishanth Amuluru <nishanth@fossee.in>
parents: 311
diff changeset
    93
class CreateProfileForm(forms.ModelForm):
a8fbe291385c Created a form for creating profile
Nishanth Amuluru <nishanth@fossee.in>
parents: 311
diff changeset
    94
a8fbe291385c Created a form for creating profile
Nishanth Amuluru <nishanth@fossee.in>
parents: 311
diff changeset
    95
    class Meta:
a8fbe291385c Created a form for creating profile
Nishanth Amuluru <nishanth@fossee.in>
parents: 311
diff changeset
    96
        model = Profile
468
e5f8ea40369c Replace the occurence of role to rights.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 467
diff changeset
    97
        exclude = ['pynts', 'role']
312
a8fbe291385c Created a form for creating profile
Nishanth Amuluru <nishanth@fossee.in>
parents: 311
diff changeset
    98
269
dde894b36370 created view for editing profile and created corresponding template
Nishanth Amuluru <nishanth@fossee.in>
parents: 254
diff changeset
    99
class EditProfileForm(forms.ModelForm):
dde894b36370 created view for editing profile and created corresponding template
Nishanth Amuluru <nishanth@fossee.in>
parents: 254
diff changeset
   100
dde894b36370 created view for editing profile and created corresponding template
Nishanth Amuluru <nishanth@fossee.in>
parents: 254
diff changeset
   101
    class Meta:
dde894b36370 created view for editing profile and created corresponding template
Nishanth Amuluru <nishanth@fossee.in>
parents: 254
diff changeset
   102
        model = Profile
300
ce5f3cdbd545 Used the new field in forms
Nishanth Amuluru <nishanth@fossee.in>
parents: 269
diff changeset
   103
        fields = ['full_name', 'aboutme', 'gender', 'dob', 'address', 'phonenum']
311
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   104
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   105
    def clean_aboutme(self):
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   106
        """ Empty not allowed """
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   107
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   108
        data = self.cleaned_data['aboutme']
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   109
        if not data.strip():
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   110
            raise forms.ValidationError("Please write something about\
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   111
                                        yourself")
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   112
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   113
        return data
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   114
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   115
    def clean_address(self):
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   116
        """ Empty not allowed """
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   117
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   118
        data = self.cleaned_data['address']
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   119
        if not data.strip():
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   120
            raise forms.ValidationError("Please enter an address")
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   121
        
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   122
        return data
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   123
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   124
    def clean_phonenum(self):
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   125
        """ should be of 10 digits """
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   126
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   127
        data = self.cleaned_data['phonenum']
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   128
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   129
        if (not data.strip()) or \
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   130
           (data.strip("1234567890")) or \
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   131
           (len(data)!= 10):
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   132
               raise forms.ValidationError("This is not a valid phone number")
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   133
de27bb39375f Added clean methods to edit profile form
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
   134
        return data