1 | # -*- coding: utf-8 -*- |
---|
2 | """ |
---|
3 | Sistema de modelado de Tópicos v1.4 |
---|
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='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a> |
---|
14 | # @version 1.4 |
---|
15 | |
---|
16 | |
---|
17 | import os |
---|
18 | from django import forms |
---|
19 | from modelado_topicos.settings import PROCESAMIENTO_PATH |
---|
20 | from base.functions import cargar_procesamiento, validate_dir, cargar_archivos |
---|
21 | from .models import Procesamiento |
---|
22 | |
---|
23 | class ProcesamientoForm(forms.ModelForm): |
---|
24 | """! |
---|
25 | Clase para crear el formulario del procesamiento |
---|
26 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
27 | @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a> |
---|
28 | @date 28-03-2017 |
---|
29 | """ |
---|
30 | |
---|
31 | def __init__(self, *args, **kwargs): |
---|
32 | """! |
---|
33 | Metodo que sobreescribe cuando se inicializa el formulario |
---|
34 | |
---|
35 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
36 | @copyright GNU/GPLv2 |
---|
37 | @date 28-03-2017 |
---|
38 | @param self <b>{object}</b> Objeto que instancia la clase |
---|
39 | @param args <b>{list}</b> Lista de los argumentos |
---|
40 | @param kwargs <b>{dict}</b> Diccionario con argumentos |
---|
41 | @return Retorna el formulario validado |
---|
42 | """ |
---|
43 | user = kwargs.pop('user') |
---|
44 | super(ProcesamientoForm, self).__init__(*args, **kwargs) |
---|
45 | |
---|
46 | self.fields['carga'].choices = cargar_archivos(user.id) |
---|
47 | |
---|
48 | ## Campo con el nombre del directorio a procesar |
---|
49 | nombre = forms.CharField(label=('Nombre del Perfil'), widget=forms.TextInput(attrs={'class':'form-control'})) |
---|
50 | |
---|
51 | ## Palabras a excluir |
---|
52 | words = forms.MultipleChoiceField(label = ('Palabras'),choices = [('V', 'verbos'),('A', 'adjetivos'), ('N', 'sustantivos'), |
---|
53 | ('R', 'adverbios'),('D', 'determinantes'),('P', 'pronombres'),('C', 'conjunciones'),('I', 'interjecciones'),('S', 'preposiciones')], |
---|
54 | widget=forms.SelectMultiple(attrs={'class':'form-control'}),required=False) |
---|
55 | |
---|
56 | ## Listado de palabras excluidas por el usuario |
---|
57 | excluded_words = forms.CharField(label=('Palabras Excluidas'),widget=forms.TextInput(attrs={'class':'form-control','data-role':'tagsinput'}),required = False) |
---|
58 | |
---|
59 | ## Campo con el nombre del directorio a procesar |
---|
60 | carga = forms.ChoiceField(widget=forms.Select(attrs={'class':'form-control'}), |
---|
61 | label="Selecione una instacia con archivos") |
---|
62 | |
---|
63 | class Meta: |
---|
64 | model = Procesamiento |
---|
65 | exclude = ['user','consulta','used','carga'] |
---|
66 | |
---|
67 | |
---|
68 | class ProcesamientoActionForm(forms.Form): |
---|
69 | """! |
---|
70 | Clase del formulario que los perfiles de procesamiento |
---|
71 | |
---|
72 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
73 | @copyright <a href='https://www.gnu.org/licenses/gpl-3.0.en.html'>GNU Public License versión 3 (GPLv3)</a> |
---|
74 | @date 28-03-2017 |
---|
75 | @version 1.0.0 |
---|
76 | """ |
---|
77 | |
---|
78 | def __init__(self, *args, **kwargs): |
---|
79 | """! |
---|
80 | Metodo que sobreescribe cuando se inicializa el formulario |
---|
81 | |
---|
82 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
83 | @copyright GNU/GPLv2 |
---|
84 | @date 28-03-2017 |
---|
85 | @param self <b>{object}</b> Objeto que instancia la clase |
---|
86 | @param args <b>{list}</b> Lista de los argumentos |
---|
87 | @param kwargs <b>{dict}</b> Diccionario con argumentos |
---|
88 | @return Retorna el formulario validado |
---|
89 | """ |
---|
90 | user = kwargs.pop('user') |
---|
91 | super(ProcesamientoActionForm, self).__init__(*args, **kwargs) |
---|
92 | |
---|
93 | self.fields['procesamiento'].choices = cargar_procesamiento(user.id) |
---|
94 | |
---|
95 | ## Procesamientos |
---|
96 | procesamiento = forms.ChoiceField(widget=forms.Select(attrs={'class':'form-control'}), |
---|
97 | label="Selecione un perfil de procesamiento") |
---|