Conjunto de cambios 3b38b3f en sapic para users/forms.py


Ignorar:
Fecha y hora:
09/08/2017 16:22:17 (hace 7 años)
Autor:
lhernandez <lhernandez@…>
Branches:
master, erwin, explicacion_situacional, gestion_usuarios, taller_django
Children:
79326b0
Parents:
d95c87b
Mensaje:

Desarrollado e implementado el Registro de Usuarios Voceros asociados a una organizacion social

Fichero:
1 editado

Leyenda

No modificado
Añadido
Eliminado
  • users/forms.py

    r1512662 r3b38b3f  
    1717    )
    1818from django.forms.fields import (
    19     CharField, BooleanField
     19    CharField, BooleanField, IntegerField
    2020)
    2121from django.forms.widgets import (
     
    2525from .models import UserProfile
    2626
     27from utils.views import (
     28    obtenerEstados, listMunicipios, listParroquias,
     29    obtenerTipoDocumento, obtenerUnidades, obtenerTipoOrganizacion
     30    )
     31
     32from utils.models import (
     33    Estado, Municipio, Parroquia,
     34    TipoDocumento, UnidadesOrganizacionSocial, TipoOrganizacion,
     35    ComiteUnidadEjecutiva
     36    )
     37
     38from organizaciones.models import (
     39  OrganizacionSocial, Vocero
     40  )
    2741
    2842class FormularioLogin(forms.Form):
     
    275289        self.fields['new_password2'].widget.attrs.update({'class': 'form-control',
    276290                                                  'placeholder': 'Repite la nueva contraseña'})
     291
     292
     293
     294class FormularioAdminRegVoceros(UserCreationForm):
     295    """!
     296     Clase que permite crear el formulario para crear usuarios voceros por el administrador
     297
     298    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
     299    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     300    @date 04-08-2017
     301    @version 1.0.0
     302    """
     303
     304    class Meta:
     305        model = User
     306        fields = ['username', 'password1', 'password2',
     307                  'first_name', 'last_name', 'email',
     308                  'is_active']
     309
     310    def __init__(self, *args, **kwargs):
     311        super(FormularioAdminRegVoceros, self).__init__(*args, **kwargs)
     312
     313        self.fields['first_name'].widget.attrs.update({'class': 'form-control',
     314                                                       'placeholder':
     315                                                       'Nombres'})
     316        self.fields['first_name'].required = True
     317        self.fields['last_name'].widget.attrs.update({'class': 'form-control',
     318                                                      'placeholder':
     319                                                      'Apellidos'})
     320        self.fields['last_name'].required = True
     321        self.fields['username'].widget.attrs.update({'class': 'form-control',
     322                                                     'placeholder':
     323                                                     'Nombre de usuario \
     324                                                     (Username)'})
     325        self.fields['username'].required = True
     326        self.fields['password1'].widget.attrs.update({'class': 'form-control',
     327                                                      'placeholder':
     328                                                      'Contraseña'})
     329        self.fields['password1'].required = True
     330        self.fields['password2'].widget.attrs.update({'class': 'form-control',
     331                                                      'placeholder':
     332                                                      'Repite la Contraseña'})
     333        self.fields['password2'].required = True
     334        self.fields['email'].widget.attrs.update({'class': 'form-control',
     335                                                  'placeholder': 'Email'})
     336
     337        self.fields['is_active'].label = 'Estara Activo?'
     338        self.fields['is_active'].widget.attrs.update({'class': 'form-control','data-toggle': 'toggle','data-on': 'Si',
     339                                                   'data-off': 'No',
     340                                                   'checked': 'checked'})
     341
     342    def clean(self):
     343        cleaned_data = super(FormularioAdminRegVoceros, self).clean()
     344        email = cleaned_data.get("email")
     345
     346        if email:
     347            msg = "Error este email: %s, ya se encuentra asociado a otra cuenta\
     348                  " % (email)
     349            try:
     350                User.objects.get(email=email)
     351                self.add_error('email', msg)
     352            except:
     353                pass
     354
     355
     356class FormularioRegVoceros(ModelForm):
     357
     358    tipo_organizacion = forms.ModelChoiceField(queryset=TipoOrganizacion.objects.all())
     359
     360    comite_unidad_ejecutiva = forms.ModelChoiceField(queryset=ComiteUnidadEjecutiva.objects.all())
     361
     362    estado = forms.ModelChoiceField(queryset=Estado.objects.all())
     363
     364    municipio = forms.ModelChoiceField(queryset=Municipio.objects.all())
     365
     366    documento = forms.IntegerField()
     367
     368    organizacion = forms.ModelChoiceField(queryset=OrganizacionSocial.objects.all())
     369
     370    class Meta:
     371        model = Vocero
     372        fields = ['organizacion', 'fk_tipo_documento', 'documento',
     373                  'tipo_organizacion', 'fk_rol_unidad', 'sector',
     374                  'casa_edificio_calle', 'comite_unidad_ejecutiva', 'localidad',
     375                  'telefono', 'estado', 'municipio']
     376
     377    def __init__(self, *args, **kwargs):
     378        super(FormularioRegVoceros, self).__init__(*args, **kwargs)
     379
     380        self.fields['fk_tipo_documento'].widget.attrs.update({'class':'form-control'})
     381        self.fields['fk_tipo_documento'].empty_label = 'Seleccione El tipo de Documento'
     382        self.fields['fk_tipo_documento'].required = True
     383
     384        self.fields['documento'].widget.attrs.update({'class':'form-control'})
     385        self.fields['documento'].label = 'Documento de Identidad'
     386        self.fields['documento'].required=True
     387
     388        self.fields['tipo_organizacion'].widget.attrs.update({'class':'form-control'})
     389        self.fields['tipo_organizacion'].empty_label = 'Seleccione Tipo Organizacion social'
     390        self.fields['tipo_organizacion'].required = True
     391
     392        self.fields['organizacion'].widget.attrs.update({'class':'form-control'})
     393        self.fields['organizacion'].empty_label = 'Seleccione la Organizacion social'
     394        self.fields['organizacion'].label = 'Organizacion social'
     395        self.fields['organizacion'].required = True
     396
     397        self.fields['fk_rol_unidad'].widget.attrs.update({'class':'form-control'})
     398        self.fields['fk_rol_unidad'].empty_label = 'Seleccione el Rol'
     399        self.fields['fk_rol_unidad'].label = 'Rol del Vocero'
     400        self.fields['fk_rol_unidad'].required = True
     401
     402        self.fields['comite_unidad_ejecutiva'].widget.attrs.update({'class':'form-control'})
     403        self.fields['comite_unidad_ejecutiva'].empty_label = 'Seleccione el Comite'
     404        self.fields['comite_unidad_ejecutiva'].required = False
     405
     406        self.fields['estado'].widget.attrs.update({'class':'form-control'})
     407        self.fields['estado'].empty_label = 'Seleccione Estado'
     408        self.fields['estado'].required = True
     409
     410        self.fields['municipio'].widget.attrs.update({'class':'form-control'})
     411        self.fields['municipio'].empty_label = 'Seleccione Municipio'
     412        self.fields['municipio'].required = True
     413
     414        self.fields['localidad'].widget.attrs.update({'class':'form-control'})
     415        self.fields['localidad'].empty_label = 'Seleccione Parroquia'
     416        self.fields['localidad'].required = True
     417
     418        self.fields['sector'].widget = forms.Textarea()
     419        self.fields['sector'].widget.attrs.update(
     420                                        {'class': 'form-control',
     421                                         'placeholder':
     422                                         'Sector del vocero'})
     423        self.fields['sector'].required = False
     424
     425        self.fields['casa_edificio_calle'].widget = forms.Textarea()
     426        self.fields['casa_edificio_calle'].widget.attrs.update(
     427                                        {'class': 'form-control',
     428                                         'placeholder':
     429                                         'Casa/Edificio/Calle del vocero'})
     430        self.fields['casa_edificio_calle'].required = False
     431
     432        self.fields['telefono'].widget.attrs.update({'class': 'form-control',
     433                                                 'placeholder': 'Telefono'})
     434        self.fields['telefono'].required = False
     435
     436    def clean(self):
     437        cleaned_data = super(FormularioRegVoceros, self).clean()
     438        tipo_documento = cleaned_data.get("fk_tipo_documento")
     439        documento_identidad = cleaned_data.get("documento")
     440        organizacion_social = cleaned_data.get("organizacion")
     441
     442        self.instance.documento_identidad = documento_identidad
     443        self.instance.fk_org_social = organizacion_social
     444
     445        if documento_identidad is not None and tipo_documento is not None:
     446
     447            msg = "Error este Vocero %s, no se encuentra asociado a la \
     448                   organizacion social: %s" % (documento_identidad,
     449                                               organizacion_social)
     450            try:
     451                Vocero.objects.get(fk_org_social=organizacion_social,
     452                                   fk_tipo_documento=tipo_documento,
     453                                   documento_identidad=documento_identidad)
     454            except:
     455                self.add_error('documento_identidad', msg)
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.