Conjunto e81243a en gestor_consulta
- Fecha y hora:
- 19/09/2017 15:06:23 (hace 7 años)
- Branches:
- master
- Children:
- d45fcdc
- Parents:
- abd93af
- Ficheros:
-
- 1 añadido
- 5 editados
Leyenda
- No modificado
- Añadido
- Eliminado
-
gestor_consulta/urls.py
rd7b19bc re81243a 17 17 from django.contrib import admin 18 18 from rest.routers import router 19 from rest_framework_jwt.views import obtain_jwt_token 20 19 21 20 22 urlpatterns = [ … … 25 27 url(r'^captcha/', include('captcha.urls')), 26 28 url(r'^api/', include('rest_framework.urls', namespace='rest_framework')), 27 url(r'^api/', include(router.urls)) 29 url(r'^api/', include(router.urls)), 30 url(r'^api-token-auth/', obtain_jwt_token), 28 31 ] -
requirements.txt
rabd93af re81243a 1 1 Django==1.11.2 2 2 Pillow==4.1.1 3 PyJWT==1.5.2 4 argparse==1.2.1 5 codegen==1.0 6 dateutils==0.6.6 3 7 django-filter==1.0.4 8 django-rest-framework-braces==0.2.2 4 9 django-simple-captcha==0.5.5 5 10 djangorestframework==3.6.3 11 djangorestframework-jwt==1.11.0 6 12 olefile==0.44 13 patterns==0.3 14 python-dateutil==2.6.1 7 15 pytz==2017.2 8 16 six==1.10.0 17 wsgiref==0.1.2 -
rest/routers.py
rb1cb066 re81243a 16 16 from consulta.rest import ConsultaViewSet 17 17 from base.rest import EntidadViewSet, MunicipioViewSet, ParroquiaViewSet 18 from users.rest import FormViewSet 18 19 19 20 router = DefaultRouter() … … 23 24 router.register(r'municipio', MunicipioViewSet, 'municipio') 24 25 router.register(r'parroquia', ParroquiaViewSet, 'parroquia') 26 router.register(r'registro', FormViewSet, 'registro') -
users/forms.py
rd7b19bc re81243a 33 33 from captcha.fields import CaptchaField 34 34 35 from django.core.validators import RegexValidator 35 36 36 37 class LoginForm(forms.Form): … … 45 46 ## Campo de la constraseña 46 47 contrasena = CharField() 47 48 48 49 ## Nombre del usuario 49 50 usuario = CharField() 50 51 51 52 ## Formulario de recordarme 52 53 remember_me = BooleanField() … … 58 59 """! 59 60 Metodo que sobreescribe cuando se inicializa el formulario 60 61 61 62 @author Rodrigo Boet (rboet at cenditel.gob.ve) 62 63 @copyright GNU/GPLv2 … … 78 79 self.fields['captcha'].label = "Captcha" 79 80 self.fields['captcha'].widget.attrs.update({'class': 'validate'}) 80 81 81 82 def clean(self): 82 83 """! 83 84 Método que valida si el usuario a autenticar es valido 84 85 85 86 @author Rodrigo Boet (rboet at cenditel.gob.ve) 86 87 @copyright GNU/GPLv2 … … 95 96 msg = "Verifique su usuario o contraseña" 96 97 self.add_error('usuario', msg) 97 98 98 99 class Meta: 99 100 fields = ('usuario', 'contrasena', 'remember_me') … … 112 113 """! 113 114 Metodo que sobreescribe cuando se inicializa el formulario 114 115 115 116 @author Rodrigo Boet (rboet at cenditel.gob.ve) 116 117 @copyright GNU/GPLv2 … … 122 123 """ 123 124 super(UserRegisterForm, self).__init__(*args, **kwargs) 124 125 125 126 # Si se ha seleccionado un estado establece el listado de municipios y elimina el atributo disable 126 127 if 'estado' in self.data and self.data['estado']: … … 132 133 self.fields['parroquia'].widget.attrs.pop('disabled') 133 134 self.fields['parroquia'].queryset=Parroquia.objects.filter(municipio=self.data['municipio']) 134 135 135 136 self.fields['estado'].choices = cargar_entidad() 136 137 self.fields['municipio'].choices = cargar_municipios() 137 138 self.fields['parroquia'].choices = cargar_parroquias() 138 139 140 139 141 ## Nombre de usuario 140 142 username = forms.CharField(max_length=30, … … 142 144 label="Nombre de Usuario" 143 145 ) 144 146 145 147 ## Contraseña 146 148 password = forms.CharField(max_length=20, … … 148 150 label="Constraseña" 149 151 ) 150 152 151 153 ## Repita la Contraseña 152 154 password_repeat = forms.CharField(max_length=20, … … 154 156 label="Repita su constraseña" 155 157 ) 156 158 157 159 ## nombre 158 160 nombre = forms.CharField(max_length=100, … … 160 162 label="Nombre" 161 163 ) 162 164 163 165 ## apellido 164 166 apellido = forms.CharField(max_length=100, … … 166 168 label="Apellido" 167 169 ) 168 170 169 171 ## correo 170 172 email = forms.EmailField( … … 172 174 label="Correo" 173 175 ) 174 176 175 177 ## cedula 176 178 cedula = CedulaField() 177 179 178 180 ## estado 179 181 estado = forms.ChoiceField(widget=forms.Select(attrs={ 180 182 'onchange': "actualizar_combo(this.value,'base','Municipio','entidad','codigo','nombre','id_municipio');$('select').material_select();"})) 181 183 182 184 ## municipio 183 185 municipio = forms.ChoiceField(widget=forms.Select(attrs={'disabled':'disabled', 184 186 'onchange': "actualizar_combo(this.value,'base','Parroquia','municipio','codigo','nombre','id_parroquia');$('select').material_select();"})) 185 187 186 188 ## parroquia 187 189 parroquia = forms.ChoiceField(widget=forms.Select(attrs={'disabled':'disabled'})) … … 189 191 ## Campo del captcha 190 192 captcha = CaptchaField() 191 193 192 194 def clean_password_repeat(self): 193 195 """! 194 196 Método que valida si las contraseñas coinciden 195 197 196 198 @author Rodrigo Boet (rboet at cenditel.gob.ve) 197 199 @copyright GNU/GPLv2 … … 205 207 raise forms.ValidationError("La contraseña no coincide") 206 208 return password_repeat 207 209 208 210 def clean_cedula(self): 209 211 """! 210 212 Método que valida si la cedula es única 211 213 212 214 @author Rodrigo Boet (rboet at cenditel.gob.ve) 213 215 @copyright GNU/GPLv2 … … 220 222 raise forms.ValidationError("La cédula ingresada ya existe") 221 223 return cedula 222 224 223 225 def clean_email(self): 224 226 """! 225 227 Método que valida si el correo es única 226 228 227 229 @author Rodrigo Boet (rboet at cenditel.gob.ve) 228 230 @copyright GNU/GPLv2 … … 235 237 raise forms.ValidationError("El correo ingresado ya existe") 236 238 return email 237 239 238 240 class Meta: 239 241 model = User 240 242 exclude = ['is_staff','is_active','date_joined'] 241 243 242 244 class PerfilForm(forms.ModelForm): 243 245 """! … … 252 254 """! 253 255 Metodo que sobreescribe cuando se inicializa el formulario 254 256 255 257 @author Rodrigo Boet (rboet at cenditel.gob.ve) 256 258 @copyright GNU/GPLv2 … … 262 264 """ 263 265 super(PerfilForm, self).__init__(*args, **kwargs) 264 266 265 267 self.fields['estado'].choices = cargar_entidad() 266 268 self.fields['municipio'].choices = cargar_municipios() 267 269 self.fields['parroquia'].choices = cargar_parroquias() 268 270 269 271 ## cedula 270 272 cedula = CedulaField() 271 273 272 274 ## estado 273 275 estado = forms.ChoiceField(widget=forms.Select(attrs={ 274 276 'onchange': "actualizar_combo(this.value,'base','Municipio','entidad','codigo','nombre','id_municipio');$('select').material_select();"})) 275 277 276 278 ## municipio 277 279 municipio = forms.ChoiceField(widget=forms.Select(attrs={ 278 280 'onchange': "actualizar_combo(this.value,'base','Parroquia','municipio','codigo','nombre','id_parroquia');$('select').material_select();"})) 279 281 280 282 ## parroquia 281 283 parroquia = forms.ChoiceField(widget=forms.Select()) 282 284 283 285 class Meta: 284 286 model = Perfil 285 287 exclude = ['user','parroquia'] 286 287 288 289 288 290 class PasswordResetForm(PasswordResetForm): 289 291 """! … … 311 313 except: 312 314 self.add_error('email', msg) 313 314 315 316 315 317 316 318 class PasswordConfirmForm(SetPasswordForm): … … 329 331 self.fields['new_password2'].widget.attrs.update({'class': 'input-field', 330 332 'placeholder': 'Repita su Contraseña'}) 333 334 class UserForm(forms.Form): 335 ## Nombre de usuario 336 username = forms.CharField(max_length=30, 337 widget=forms.TextInput(), 338 label="Nombre de Usuario" 339 ) 340 341 ## Contraseña 342 password = forms.CharField(max_length=20, 343 widget=forms.TextInput(attrs={'type':'password'}), 344 label="Constraseña" 345 ) 346 347 ## Repita la Contraseña 348 password_repeat = forms.CharField(max_length=20, 349 widget=forms.TextInput(attrs={'type':'password'}), 350 label="Repita su constraseña" 351 ) 352 353 ## nombre 354 nombre = forms.CharField(max_length=100, 355 widget=forms.TextInput(), 356 label="Nombre" 357 ) 358 359 ## apellido 360 apellido = forms.CharField(max_length=100, 361 widget=forms.TextInput(), 362 label="Apellido" 363 ) 364 365 ## correo 366 email = forms.EmailField( 367 widget=forms.TextInput(), 368 label="Correo" 369 ) 370 371 cedula = forms.CharField(max_length=9, 372 validators=[RegexValidator( 373 regex='^[V|E][0-9]{7,8}', 374 message='La cédula no está en el formato indicado' 375 )], 376 label="Cedula" 377 ) 378 379 # validations 380 def clean_password_repeat(self): 381 """! 382 Método que valida si las contraseñas coinciden 383 384 @author Rodrigo Boet (rboet at cenditel.gob.ve) 385 @copyright GNU/GPLv2 386 @date 01-03-2017 387 @param self <b>{object}</b> Objeto que instancia la clase 388 @return Retorna el campo con la validacion 389 """ 390 print("******clean_password_repeat") 391 password = self.cleaned_data['password'] 392 password_repeat = self.cleaned_data['password_repeat'] 393 if(password_repeat!=password): 394 raise forms.ValidationError("La contraseña no coincide") 395 return password_repeat 396 397 def clean_cedula(self): 398 """! 399 Método que valida si la cedula es única 400 401 @author Rodrigo Boet (rboet at cenditel.gob.ve) 402 @copyright GNU/GPLv2 403 @date 01-03-2017 404 @param self <b>{object}</b> Objeto que instancia la clase 405 @return Retorna el campo con la validacion 406 """ 407 cedula = self.cleaned_data['cedula'] 408 if(validate_cedula(cedula)): 409 raise forms.ValidationError("La cédula ingresada ya existe") 410 return cedula 411 412 def clean_email(self): 413 """! 414 Método que valida si el correo es única 415 416 @author Rodrigo Boet (rboet at cenditel.gob.ve) 417 @copyright GNU/GPLv2 418 @date 01-03-2017 419 @param self <b>{object}</b> Objeto que instancia la clase 420 @return Retorna el campo con la validacion 421 """ 422 email = self.cleaned_data['email'] 423 if(validate_email(email)): 424 raise forms.ValidationError("El correo ingresado ya existe") 425 return email 426 427 428 def validate(self, data): 429 print(data) 430 return data -
users/serializers.py
rd821e95 re81243a 2 2 from rest_framework import serializers 3 3 from django.contrib.auth.models import User 4 from .forms import UserForm 5 from .models import Perfil 6 from drf_braces.serializers.form_serializer import FormSerializer 4 7 5 8 … … 8 11 Metodo que permite serializar el modelo User 9 12 10 @author A rgenis Osorio (aosorio at cenditel.gob.ve)13 @author Antonio Araujo (aaraujo at cenditel.gob.ve) 11 14 @copyright GNU/GPLv2 12 @date 17-08-201715 @date 31-08-2017 13 16 @param serializers.HyperlinkedModelSerializer <b>{object}</b> Objeto del serializer 14 17 @return Retorna los datos de contexto … … 17 20 class Meta: 18 21 model = User 19 fields = ('id', 'username', 'email',) 22 fields = ('username', 'first_name', 'last_name', 'email') 23 24 class PerfilSerializer(serializers.ModelSerializer): 25 """! 26 Metodo que permite serializar el modelo Perfil 27 28 @author Antonio Araujo (aaraujo at cenditel.gob.ve) 29 @copyright GNU/GPLv2 30 @date 31-08-2017 31 @param serializers.HyperlinkedModelSerializer <b>{object}</b> Objeto del serializer 32 @return Retorna los datos de contexto 33 """ 34 user = UserSerializer(read_only=True) 35 36 class Meta: 37 model = Perfil 38 fields = ('cedula', 'parroquia', 'user') 39 40 class RegistroSerializer(FormSerializer): 41 """! 42 Clase serializador de registro de usuario 43 44 @author Antonio Araujo (aaraujo at cenditel.gob.ve) 45 @copyright GNU/GPLv2 46 @date 31-08-2017 47 @param serializers.HyperlinkedModelSerializer <b>{object}</b> Objeto del serializer 48 @return Retorna los datos de contexto 49 """ 50 class Meta(object): 51 form = UserForm
Nota: Vea TracChangeset
para ayuda en el uso del visor de conjuntos de cambios.