source: firmaeventos/users/forms.py @ 8fa24c3

Last change on this file since 8fa24c3 was 3996539, checked in by rudmanmrrod <rudman22@…>, 7 years ago

Renombrado utils como base, cambiado el template, quitados modelos no usados, agregado materialize

  • Property mode set to 100644
File size: 4.4 KB
Line 
1# -*- coding: utf-8 -*-
2"""!
3Modulo Forms  que construye los formularios para los templates  de la plataforma
4
5@author Ing. Leonel P. Hernandez M. (leonelphm at gmail.com)
6@copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
7@date 09-06-2017
8@version 1.0.0
9"""
10from captcha.fields import CaptchaField
11from django import forms
12from django.forms import ModelForm
13from django.contrib.auth.models import User
14from django.contrib.auth.forms import (
15    UserCreationForm, PasswordResetForm,
16    SetPasswordForm
17    )
18from django.forms.fields import (
19    CharField, BooleanField
20)
21from django.forms.widgets import (
22    PasswordInput, CheckboxInput
23)
24
25class FormularioLogin(forms.Form):
26    """!
27    Clase que permite crear el formulario de ingreso a la aplicación
28
29    @author Ing. Leonel P. Hernandez M. (leonelphm at gmail.com)
30    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
31    @date 09-01-2017
32    @version 1.0.0
33    """
34    contrasena = CharField()
35    usuario = CharField()
36    remember_me = BooleanField()
37    captcha = CaptchaField()
38
39    class Meta:
40        fields = ('usuario', 'contrasena', 'remember_me' 'captcha')
41
42    def __init__(self, *args, **kwargs):
43        super(FormularioLogin, self).__init__(*args, **kwargs)
44        self.fields['contrasena'].widget = PasswordInput()
45        self.fields['contrasena'].widget.attrs.update({'class': 'form-control',
46        'placeholder': 'Contraseña'})
47        self.fields['usuario'].widget.attrs.update({'class': 'form-control',
48        'placeholder': 'Username o Email'})
49        self.fields['remember_me'].label = "Recordar"
50        self.fields['remember_me'].widget = CheckboxInput()
51        self.fields['remember_me'].required = False
52        self.fields['captcha'].required=True
53
54
55class PasswordResetForm(PasswordResetForm):
56    """!
57    Clase que permite sobrescribir el formulario para resetear la contraseña
58
59    @author Ing. Leonel P. Hernandez M. (leonelphm at gmail.com)
60    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
61    @date 09-01-2017
62    @version 1.0.0
63    """
64
65    def __init__(self, *args, **kwargs):
66        super(PasswordResetForm, self).__init__(*args, **kwargs)
67        self.fields['email'].widget.attrs.update({'class': 'form-control',
68                                                  'placeholder': 'Email Address'})
69
70    def clean(self):
71        cleaned_data = super(PasswordResetForm, self).clean()
72        email = cleaned_data.get("email")
73
74        if email:
75            msg = "Error este email: %s, no se encuentra asociado a una cuenta\
76                  " % (email)
77            try:
78                User.objects.get(email=email)
79            except:
80                self.add_error('email', msg)
81
82
83class SetPasswordForm(SetPasswordForm):
84
85    def __init__(self, *args, **kwargs):
86        super(SetPasswordForm, self).__init__(*args, **kwargs)
87
88        self.fields['new_password1'].widget.attrs.update({'class': 'form-control',
89                                                  'placeholder': 'Ingresa la nueva contraseña'})
90
91        self.fields['new_password2'].widget.attrs.update({'class': 'form-control',
92                                                  'placeholder': 'Repite la nueva contraseña'})
93
94
95class FormularioUpdate(ModelForm):
96    class Meta:
97        model = User
98        fields = ['first_name', 'last_name', 'email', 'groups',
99                  'is_staff', 'is_active']
100
101    def __init__(self, *args, **kwargs):
102        super(FormularioUpdate, self).__init__(*args, **kwargs)
103
104        self.fields['first_name'].widget.attrs.update({'class': 'form-control',
105        'placeholder': 'Nombres'})
106        self.fields['first_name'].required=True
107        self.fields['last_name'].widget.attrs.update({'class': 'form-control',
108        'placeholder': 'Apellidos'})
109        self.fields['last_name'].required=True
110        self.fields['email'].widget.attrs.update({'class': 'form-control',
111        'placeholder': 'Email'})
112        self.fields['email'].required=True
113        self.fields['is_staff'].label= 'Es Administrador?'
114        self.fields['is_staff'].widget.attrs.update({'class': 'form-control'})
115        self.fields['is_active'].label= 'Estara Activo?'
116        self.fields['is_active'].widget.attrs.update({'class': 'form-control', 'checked': 'checked'})
117        self.fields['groups'].widget.attrs.update({'class': 'form-control'})
118
Note: See TracBrowser for help on using the repository browser.