source: seiven/base/fields.py

carga
Last change on this file was 2037da0, checked in by Luis Barrios <nikeven@…>, 7 años ago

Modificado la carga masiva

  • Propiedad mode establecida a 100644
File size: 2.3 KB
Línea 
1"""
2Sistema Estadístico Integral de Venezuela - (SEIVEN)
3
4Copyleft (@) 2015 CENDITEL nodo Mérida - https://mpv.cenditel.gob.ve/seiven
5"""
6## @namespace base.fields
7#
8# Contiene las clases, atributos y métodos para los campos personalizados a implementar en los formularios
9# @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
10# @author <a href='http://www.cenditel.gob.ve'>Centro Nacional de Desarrollo e Investigación en Tecnologías Libres
11# (CENDITEL) nodo Mérida - Venezuela</a>
12# @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
13from __future__ import unicode_literals
14
15import logging
16
17from django.forms import MultiValueField, ChoiceField, CharField, TextInput
18from django.utils.translation import ugettext_lazy as _
19
20from .constant import (
21    TIPO_DOCUMENTO_IDENTIFICACION
22)
23from .widgets import (
24    TipoDocumentoWidget, TipoDocumentoWidgetReadOnly
25)
26
27"""!
28Contiene el objeto que registra la vitacora de eventos del módulo base.
29(configuración en el settings de la aplicación)
30"""
31logger = logging.getLogger("base")
32
33
34class TipoDocumentoField(MultiValueField):
35    """!
36    Clase que agrupa los campos del tipo de rif, número de rif y dígito validador del rif en un solo campo del
37    formulario
38
39    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
40    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
41    @date 26-04-2016
42    @version 2.0.0
43    """
44    widget = TipoDocumentoWidget
45    default_error_messages = {
46        'invalid_choices': _("Debe seleccionar un tipo de documento válido")
47    }
48
49    def __init__(self, *args, **kwargs):
50
51        error_messages = {
52            'required': _("Debe indicar un numero de documento"),
53            'invalid': _("El valor indicado no es válido"),
54            'incomplete': _("El número del documento está incompleto")
55        }
56
57        fields = (
58            ChoiceField(choices=TIPO_DOCUMENTO_IDENTIFICACION),
59            CharField(max_length=8, min_length=8)
60        )
61
62        label = _("Cedula o Pasaporte:")
63
64        super(TipoDocumentoField, self).__init__(
65            error_messages=error_messages, fields=fields, label=label, require_all_fields=True, *args, **kwargs
66        )
67
68    def compress(self, data_list):
69
70        if data_list:
71            return ''.join(data_list)
72        return ''
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.