source: gestor_consulta/base/fields.py

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

Agregada GPL V3 en todos los métodos y clases, añadida funcionalidad para retornar los datos del usuario autenticado

  • Propiedad mode establecida a 100644
File size: 2.3 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 base.fields
8#
9# Contiene las clases, atributos y métodos para los campos personalizados a implementar en los formularios
10# @author Rodrigo Boet (rboet 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 __future__ import unicode_literals
16
17from django.forms import MultiValueField, ChoiceField, CharField
18
19from rest_framework import serializers
20
21from .constant import SHORT_NACIONALIDAD
22from .widgets import CedulaWidget
23
24class CedulaField(MultiValueField):
25    """!
26    Clase que agrupa los campos de la nacionalidad y número de cédula de identidad en un solo campo del formulario
27
28    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
29    @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a>
30    @date 26-04-2016
31    @version 2.0.0
32    """
33    widget = CedulaWidget
34    default_error_messages = {
35        'invalid_choices': "Debe seleccionar una nacionalidad válida"
36    }
37
38    def __init__(self, *args, **kwargs):
39
40        error_messages = {
41            'required': "Debe indicar un número de Cédula",
42            'invalid': "El valor indicado no es válido",
43            'incomplete': "El número de Cédula esta incompleto"
44        }
45
46        fields = (
47            ChoiceField(choices=SHORT_NACIONALIDAD),
48            CharField(max_length=8)
49        )
50
51        label = "Cedula de Identidad:"
52
53        super(CedulaField, self).__init__(
54            error_messages=error_messages, fields=fields, label=label, require_all_fields=True, *args, **kwargs
55        )
56
57    def compress(self, data_list):
58        if data_list:
59            return ''.join(data_list)
60        return ''
61   
62class CedulaRestField(serializers.Field):
63    def to_representation(self, obj):
64        return "some here"
65
66    def to_representation(self, obj):
67        """
68        Serialize the object's class name.
69        """
70        return obj.__class__.__name__
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.