source: gestor_consulta/users/serializers.py @ 9eeb2c3

Last change on this file since 9eeb2c3 was 9eeb2c3, checked in by rudmanmrrod <rudman22@…>, 7 años ago

Añadido de nuevo django filter, incorporado en el modelo de perfil

  • Propiedad mode establecida a 100644
File size: 3.6 KB
Línea 
1# -*- coding: utf-8 -*-
2"""
3Sistema de Consulta Pública
4
5Copyleft (@) 2017 CENDITEL nodo Mérida - https://planificacion.cenditel.gob.ve/trac/wiki/ModeladoTopicos_2017
6"""
7## @package user.serializers
8#
9# Serializadores de los modelos de usuario para el rest framework
10# @author Antonio Araujo (aaraujo at cenditel.gob.ve)
11# @author <a href='http://www.cenditel.gob.ve'>Centro Nacional de Desarrollo e Investigación en Tecnologías Libres
12# (CENDITEL) nodo Mérida - Venezuela</a>
13# @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
14# @version 1.0
15from django import forms
16from rest_framework import serializers
17from django.contrib.auth.models import User
18from base.fields import CedulaField
19from base.functions import (
20    cargar_entidad, cargar_municipios, cargar_parroquias,
21    validate_cedula, validate_email
22    )
23from base.models import Parroquia
24from .forms import UserForm
25from .models import Perfil
26from drf_braces.serializers.form_serializer import FormSerializer
27
28
29class UserSerializer(serializers.HyperlinkedModelSerializer):
30    """!
31    Metodo que permite serializar el modelo User
32
33    @author Antonio Araujo (aaraujo at cenditel.gob.ve)
34    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
35    @date 31-08-2017
36    @param serializers.HyperlinkedModelSerializer <b>{object}</b> Objeto del serializer
37    @return Retorna los datos de contexto
38    """
39
40    class Meta:
41        model = User
42        fields = ('username', 'first_name', 'last_name', 'email')
43
44class PerfilSerializer(serializers.ModelSerializer):
45    """!
46    Metodo que permite serializar el modelo Perfil
47
48    @author Antonio Araujo (aaraujo at cenditel.gob.ve)
49    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
50    @date 31-08-2017
51    @param serializers.HyperlinkedModelSerializer <b>{object}</b> Objeto del serializer
52    @return Retorna los datos de contexto
53    """
54    user = UserSerializer(read_only=True)
55
56    class Meta:
57        model = Perfil
58        fields = ('cedula', 'parroquia', 'user')
59
60class RegistroSerializer(FormSerializer):
61    """!
62    Clase serializador de registro de usuario
63
64    @author Antonio Araujo (aaraujo at cenditel.gob.ve)
65    @author Rodrigo Boet (rboet at cenditel.gob.ve)
66    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
67    @date 19-09-2017
68    @param serializers.HyperlinkedModelSerializer <b>{object}</b> Objeto del serializer
69    @return Retorna los datos de contexto
70    """
71    def save(self):
72        """!
73        Metodo que guarda lols registros del formulario
74   
75        @author Rodrigo Boet (rboet at cenditel.gob.ve)
76        @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
77        @date 20-09-2017
78        @param self <b>{object}</b> Objeto que instancia la clase
79        @return Retorna verdadero si se guarda
80        """
81        user = User()
82        user.username = self.validated_data['username']
83        user.first_name = self.validated_data['nombre']
84        user.last_name = self.validated_data['apellido']
85        user.set_password(self.validated_data['password'])
86        user.email = self.validated_data['email']
87        user.save()
88               
89        parroquia = Parroquia.objects.get(id=self.validated_data['parroquia'])
90       
91        perfil = Perfil()
92        perfil.cedula = self.validated_data['cedula']
93        perfil.parroquia = parroquia
94        perfil.user = user
95        perfil.save()
96        return True
97   
98    class Meta(object):
99            form = UserForm
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.