[0ff122b] | 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 procesamiento.forms |
---|
| 8 | # |
---|
| 9 | # Formulario correspondiente a la aplicación procesamiento |
---|
| 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 | import os |
---|
| 16 | from django import forms |
---|
[6abfabc] | 17 | from consulta_publica.settings import PROCESAMIENTO_PATH |
---|
| 18 | from base.functions import cargar_procesamiento, validate_dir |
---|
[0ff122b] | 19 | from participacion.forms import ParticipacionSelectForm |
---|
| 20 | from .models import Procesamiento |
---|
| 21 | |
---|
| 22 | class ProcesamientoSelectForm(ParticipacionSelectForm): |
---|
| 23 | """! |
---|
| 24 | Clase del formulario que muestra las consultas |
---|
| 25 | |
---|
| 26 | @author Rodrigo Boet (rboet 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 22-02-2017 |
---|
| 29 | @version 1.0.0 |
---|
| 30 | """ |
---|
| 31 | pass |
---|
| 32 | |
---|
| 33 | class ProcesamientoForm(forms.ModelForm): |
---|
| 34 | """! |
---|
| 35 | Clase para crear el formulario del procesamiento |
---|
| 36 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
| 37 | @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> |
---|
| 38 | @date 28-03-2017 |
---|
| 39 | """ |
---|
[6abfabc] | 40 | def __init__(self, *args, **kwargs): |
---|
| 41 | self.pk = kwargs.pop('pk') |
---|
| 42 | super(ProcesamientoForm, self).__init__(*args, **kwargs) |
---|
| 43 | |
---|
[0ff122b] | 44 | ## Campo con el nombre del directorio a procesar |
---|
[6abfabc] | 45 | procesamiento_dir = forms.CharField(label=('Nombre del Perfil'), widget=forms.TextInput(attrs={'class':'form-control'})) |
---|
| 46 | |
---|
[0ff122b] | 47 | ## Palabras a excluir |
---|
| 48 | words = forms.MultipleChoiceField(label = ('Palabras'),choices = [('V', 'verbos'),('A', 'adjetivos'), ('N', 'sustantivos'), |
---|
| 49 | ('R', 'adverbios'),('D', 'determinantes'),('P', 'pronombres'),('C', 'conjunciones'),('I', 'interjecciones'),('S', 'preposiciones')], |
---|
| 50 | widget=forms.SelectMultiple(attrs={'class':'form-control'}),required=False) |
---|
| 51 | |
---|
| 52 | ## Listado de palabras excluidas por el usuario |
---|
| 53 | excluded_words = forms.CharField(label=('Palabras Excluidas'),widget=forms.Textarea(attrs={'class':'form-control'}),required = False) |
---|
| 54 | |
---|
[250830e] | 55 | def clean_procesamiento_dir(self): |
---|
[6abfabc] | 56 | procesamiento_dir = self.cleaned_data['procesamiento_dir'] |
---|
| 57 | if not validate_dir(self.pk): |
---|
| 58 | raise forms.ValidationError("La Ruta Solicitada no existe, debe generar primero los textos en la consulta") |
---|
[250830e] | 59 | return procesamiento_dir |
---|
[0ff122b] | 60 | |
---|
| 61 | class Meta: |
---|
| 62 | model = Procesamiento |
---|
| 63 | exclude = ['user','consulta','used'] |
---|
| 64 | |
---|
| 65 | |
---|
| 66 | class ProcesamientoActionForm(forms.Form): |
---|
| 67 | """! |
---|
| 68 | Clase del formulario que los perfiles de procesamiento |
---|
| 69 | |
---|
| 70 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
| 71 | @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> |
---|
| 72 | @date 28-03-2017 |
---|
| 73 | @version 1.0.0 |
---|
| 74 | """ |
---|
| 75 | |
---|
| 76 | def __init__(self, *args, **kwargs): |
---|
| 77 | """! |
---|
| 78 | Metodo que sobreescribe cuando se inicializa el formulario |
---|
| 79 | |
---|
| 80 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
| 81 | @copyright GNU/GPLv2 |
---|
| 82 | @date 28-03-2017 |
---|
| 83 | @param self <b>{object}</b> Objeto que instancia la clase |
---|
| 84 | @param args <b>{list}</b> Lista de los argumentos |
---|
| 85 | @param kwargs <b>{dict}</b> Diccionario con argumentos |
---|
| 86 | @return Retorna el formulario validado |
---|
| 87 | """ |
---|
[7310249] | 88 | self.pk = kwargs.pop('pk') |
---|
[0ff122b] | 89 | super(ProcesamientoActionForm, self).__init__(*args, **kwargs) |
---|
| 90 | |
---|
[7310249] | 91 | self.fields['procesamiento'].choices = cargar_procesamiento(self.pk) |
---|
[0ff122b] | 92 | |
---|
| 93 | ## Procesamientos |
---|
| 94 | procesamiento = forms.ChoiceField(widget=forms.Select(attrs={'class':'form-control'}), |
---|
| 95 | label="Selecione un perfil de procesamiento") |
---|