# -*- coding: utf-8 -*- """ Sistema de Consulta Pública Copyleft (@) 2017 CENDITEL nodo Mérida - https://planificacion.cenditel.gob.ve/trac/wiki/ModeladoTopicos_2017 """ ## @package base.fields # # Contiene las clases, atributos y métodos para los campos personalizados a implementar en los formularios # @author Rodrigo Boet (rboet at cenditel.gob.ve) # @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres # (CENDITEL) nodo Mérida - Venezuela # @copyright GNU Public License versión 2 (GPLv2) # @version 1.0 from __future__ import unicode_literals from django.forms import MultiValueField, ChoiceField, CharField from .constant import SHORT_NACIONALIDAD from .widgets import CedulaWidget class CedulaField(MultiValueField): """! Clase que agrupa los campos de la nacionalidad y número de cédula de identidad en un solo campo del formulario @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) @copyright GNU Public License versión 2 (GPLv2) @date 26-04-2016 @version 2.0.0 """ widget = CedulaWidget default_error_messages = { 'invalid_choices': "Debe seleccionar una nacionalidad válida" } def __init__(self, *args, **kwargs): error_messages = { 'required': "Debe indicar un número de Cédula", 'invalid': "El valor indicado no es válido", 'incomplete': "El número de Cédula esta incompleto" } fields = ( ChoiceField(choices=SHORT_NACIONALIDAD), CharField(max_length=8) ) label = "Cedula de Identidad:" super(CedulaField, self).__init__( error_messages=error_messages, fields=fields, label=label, require_all_fields=True, *args, **kwargs ) def compress(self, data_list): if data_list: return ''.join(data_list) return ''