[bf6bc0b] | 1 | # -*- coding: utf-8 -*- |
---|
| 2 | """ |
---|
| 3 | Sistema de Consulta Pública |
---|
| 4 | |
---|
| 5 | Copyleft (@) 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='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> |
---|
| 14 | # @version 1.0 |
---|
| 15 | from __future__ import unicode_literals |
---|
| 16 | |
---|
| 17 | from django.forms import MultiValueField, ChoiceField, CharField |
---|
| 18 | |
---|
| 19 | from .constant import SHORT_NACIONALIDAD |
---|
| 20 | from .widgets import CedulaWidget |
---|
| 21 | |
---|
| 22 | class CedulaField(MultiValueField): |
---|
| 23 | """! |
---|
| 24 | Clase que agrupa los campos de la nacionalidad y número de cédula de identidad en un solo campo del formulario |
---|
| 25 | |
---|
| 26 | @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve) |
---|
| 27 | @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> |
---|
| 28 | @date 26-04-2016 |
---|
| 29 | @version 2.0.0 |
---|
| 30 | """ |
---|
| 31 | widget = CedulaWidget |
---|
| 32 | default_error_messages = { |
---|
| 33 | 'invalid_choices': "Debe seleccionar una nacionalidad válida" |
---|
| 34 | } |
---|
| 35 | |
---|
| 36 | def __init__(self, *args, **kwargs): |
---|
| 37 | |
---|
| 38 | error_messages = { |
---|
| 39 | 'required': "Debe indicar un número de Cédula", |
---|
| 40 | 'invalid': "El valor indicado no es válido", |
---|
| 41 | 'incomplete': "El número de Cédula esta incompleto" |
---|
| 42 | } |
---|
| 43 | |
---|
| 44 | fields = ( |
---|
| 45 | ChoiceField(choices=SHORT_NACIONALIDAD), |
---|
| 46 | CharField(max_length=8) |
---|
| 47 | ) |
---|
| 48 | |
---|
| 49 | label = "Cedula de Identidad:" |
---|
| 50 | |
---|
| 51 | super(CedulaField, self).__init__( |
---|
| 52 | error_messages=error_messages, fields=fields, label=label, require_all_fields=True, *args, **kwargs |
---|
| 53 | ) |
---|
| 54 | |
---|
| 55 | def compress(self, data_list): |
---|
| 56 | if data_list: |
---|
| 57 | return ''.join(data_list) |
---|
| 58 | return '' |
---|