source: seguimiento_proyectos/sepai/proyectos/models.py @ 08c074e

desarrollo
Last change on this file since 08c074e was de2ff87, checked in by lhernandez <lhernandez@…>, 7 años ago

Desarrollado el modulo para registrar proyecto, por validar campos del formulario, preparando plataforma para los siguientes modulos.

  • Propiedad mode establecida a 100644
File size: 25.9 KB
Línea 
1from django.db import models
2from django.core.validators import MaxValueValidator
3from adaptor.model import CsvDbModel, CsvModel
4from django.contrib.auth.models import User
5from adaptor.fields import *
6
7from utils.models import (
8    Estado, Municipio, Parroquia,
9    TipoDocumento
10    )
11from .constantes import CHOICE_LOCALIDAD
12
13
14class Alcance(models.Model):
15    """!
16    Clase que contiene las opciones del Alcance
17
18    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
19    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
20    @date 16-08-2016
21    @version 1.0.0
22    """
23    opcion_alcance = models.CharField(max_length=128)
24    activo = models.BooleanField(default=True)
25
26    def __str__(self):
27        """!
28        Fucncion que muestra el identificador del area estrategica
29        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
30        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
31        @date 16-08-2016
32        @param self <b>{object}</b> Objeto que instancia la clase
33        @return Devuelve el identificador de la opcion
34        """
35        return self.opcion_alcance
36
37
38class Sector(models.Model):
39    """!
40    Clase que contiene las opciones del sector
41
42    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
43    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
44    @date 18-08-2016
45    @version 1.0.0
46    """
47    opcion_sector = models.CharField(max_length=128)
48    activo = models.BooleanField(default=True)
49
50    def __str__(self):
51        """!
52        Fucncion que muestra la informacion sobre las opciones
53        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
54        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
55        @date 18-08-2016
56        @param self <b>{object}</b> Objeto que instancia la clase
57        @return Devuelve los datos del proyecto
58        """
59        return self.opcion_sector
60
61
62class ObjetivosHistorico(models.Model):
63    """!
64    Clase que contiene las opciones de los objetivos Historico
65
66    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
67    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
68    @date 18-08-2016
69    @version 1.0.0
70    """
71    nivel = models.CharField('nivel', primary_key=True, max_length=5)
72    objetivo = models.CharField(max_length=500)
73
74    def __str__(self):
75        """!
76        Fucncion que muestra la informacion sobre el objetivo Historico
77        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
78        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
79        @date 18-08-2016
80        @param self <b>{object}</b> Objeto que instancia la clase
81        @return Devuelve los datos sobre el objetivo Historico
82        """
83        return self.nivel + '-' + self.objetivo
84
85    def __unicode__(self):
86        return self.nivel
87
88
89class ObjetivosNacional(models.Model):
90    """!
91    Clase que contiene las opciones de los Objetivos Nacional
92
93    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
94    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
95    @date 18-08-2016
96    @version 1.0.0
97    """
98    fk_objetivo_historico = models.ForeignKey(ObjetivosHistorico, verbose_name="Objetivo Historico")
99    nivel = models.CharField('nivel', primary_key=True, max_length=5)
100    objetivo = models.CharField(max_length=500)
101
102    def __str__(self):
103        """!
104        Fucncion que muestra la informacion sobre los Objetivos Nacional
105        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
106        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
107        @date 18-08-2016
108        @param self <b>{object}</b> Objeto que instancia la clase
109        @return Devuelve los datos sobre los objetivos Nacional
110        """
111        return self.nivel + '-' + self.objetivo
112
113    def __unicode__(self):
114        return self.nivel
115
116
117class ObjetivosEstrategico(models.Model):
118    """!
119    Clase que contiene las opciones de los Objetivos Estrategicos
120
121    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
122    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
123    @date 18-08-2016
124    @version 1.0.0
125    """
126    fk_objetivo_nacional = models.ForeignKey(ObjetivosNacional, verbose_name="Objetivo Nacional")
127    nivel = models.CharField('nivel', primary_key=True, max_length=10)
128    objetivo = models.CharField(max_length=800)
129
130    def __str__(self):
131        """!
132        Fucncion que muestra la informacion sobre los Objetivos Estrategicos
133        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
134        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
135        @date 18-08-2016
136        @param self <b>{object}</b> Objeto que instancia la clase
137        @return Devuelve los datos sobre los Objetivos Estrategicos
138        """
139        return self.nivel + '-' + self.objetivo
140
141    def __unicode__(self):
142        return self.nivel
143
144
145class ObjetivosGeneral(models.Model):
146    """!
147    Clase que contiene las opciones de los Objetivos Generales
148
149    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
150    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
151    @date 18-08-2016
152    @version 1.0.0
153    """
154    fk_objetivo_estrategico = models.ForeignKey(ObjetivosEstrategico, verbose_name="Objetivo Estratégico")
155    nivel = models.CharField('nivel', primary_key=True, max_length=13)
156    objetivo = models.CharField(max_length=2300)
157
158    def __str__(self):
159        """!
160        Fucncion que muestra la informacion sobre los Objetivos Generales
161        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
162        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
163        @date 18-08-2016
164        @param self <b>{object}</b> Objeto que instancia la clase
165        @return Devuelve los datos sobre los Objetivos Generales
166        """
167        return self.nivel + '-' + self.objetivo
168
169    def __str__(self):
170        return self.nivel
171
172
173class TipoProyecto(models.Model):
174    """!
175    Clase que contiene los datos para el tipo de proyecto
176
177    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
178    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
179    @date 02-06-2017
180    @version 1.0.0
181    """
182    tipo_proyecto = models.CharField(max_length=97)
183    descripcion = models.TextField()
184
185    class Meta:
186        """!
187        Clase que construye los meta datos del modelo
188
189        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
190        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
191        @date 02-06-2017
192        @version 1.0.0
193        """
194        ordering = ('tipo_proyecto',)
195        verbose_name = 'Tipo de Proyecto'
196        verbose_name_plural = 'Tipos de Proyectos'
197
198    def __str__(self):
199        return self.tipo_proyecto
200
201
202class Proyecto(models.Model):
203    """!
204    Clase que contiene los Proyectos de Alta Ingeniería del Pais
205
206    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
207    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
208    @date 16-08-2016
209    @version 1.0.0
210    """
211    fk_tipo = models.ForeignKey(TipoProyecto, verbose_name="Tipo de Proyecto")
212    fk_user = models.ForeignKey(User)
213    codigo = models.CharField(max_length=15, unique=True)
214    nombre = models.CharField(max_length=128)
215    descripcion = models.TextField(blank=True)
216    objetivo_general = models.CharField(max_length=128)
217    justificacion = models.TextField(blank=True)
218    fecha_inicio = models.DateField(auto_now=False)
219    fecha_culminacion = models.DateField(auto_now=False)
220    plurianual = models.BooleanField(default=True)
221    monto_anho_anterior = models.DecimalField(max_digits=50, decimal_places=2, null=True)
222    monto_anho_proximo = models.DecimalField(max_digits=50, decimal_places=2, null=True)
223    monto_total = models.DecimalField(max_digits=50, decimal_places=2, null=True)
224    poan = models.BooleanField(default=True)
225    localidad = models.ForeignKey(Parroquia)
226    activo = models.BooleanField(default=True)
227
228    class Meta:
229        """!
230        Clase que construye los meta datos del modelo
231
232        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
233        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
234        @date 02-06-2017
235        @version 1.0.0
236        """
237        ordering = ('nombre',)
238        verbose_name = 'Proyecto'
239        verbose_name_plural = 'Proyectos'
240
241    def __str__(self):
242        """!
243        Fucncion que muestra la informacion sobre el proyecto
244        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
245        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
246        @date 16-08-2016
247        @param self <b>{object}</b> Objeto que instancia la clase
248        @return Devuelve los datos del proyecto
249        """
250        return self.codigo
251
252
253class ObjetivosEspecificosProy(models.Model):
254    """!
255    Clase que contiene el modelo de datos de los objetivos especificos del proyecto
256
257    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
258    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
259    @date 02-06-2017
260    @version 1.0.0
261    """
262    fk_proyecto = models.ForeignKey(Proyecto)
263    objetivos_especificos = models.CharField(max_length=255)
264
265    class Meta:
266        """!
267        Clase que construye los meta datos del modelo
268
269        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
270        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
271        @date 02-06-2017
272        @version 1.0.0
273        """
274        ordering = ('objetivos_especificos',)
275        verbose_name = 'Objetivo Especifico'
276        verbose_name_plural = 'Objetivos Especificos'
277
278    def __str__(self):
279
280        return str(self.fk_proyecto)
281
282
283class Responsable(models.Model):
284    """!
285    Clase que contiene el modelo de datos para el Responsable
286
287    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
288    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
289    @date 02-06-2017
290    @version 1.0.0
291    """
292    fk_documento = models.ForeignKey(TipoDocumento)
293    cedula = models.CharField(max_length=12, verbose_name='Documento de identidad')
294    nombres = models.CharField(max_length=128)
295    apellidos = models.CharField(max_length=128)
296    correo = models.EmailField(max_length=75)
297    numero_telefono = models.CharField(max_length=11)
298
299    class Meta:
300        """!
301        Clase que construye los meta datos del modelo
302
303        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
304        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
305        @date 02-06-2017
306        @version 1.0.0
307        """
308        ordering = ('cedula',)
309        verbose_name = 'Responsable'
310        verbose_name_plural = 'Responsables'
311        abstract = True
312
313    def __str__(self):
314
315        return self.cedula
316
317
318class ResponsableTecnico(Responsable):
319    """!
320    Clase que contiene el modelo de datos para el Responsable Tecnico
321
322    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
323    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
324    @date 02-06-2017
325    @version 1.0.0
326    """
327    fk_proyecto = models.ForeignKey(Proyecto)
328
329    class Meta:
330        """!
331        Clase que construye los meta datos del modelo
332
333        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
334        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
335        @date 02-06-2017
336        @version 1.0.0
337        """
338        ordering = ('cedula',)
339        verbose_name = 'Responsable Tecnico'
340        verbose_name_plural = 'Responsables Tecnicos'
341        unique_together = (('fk_proyecto', 'cedula'),)
342
343    def __str__(self):
344
345        return self.cedula
346
347
348class ResponsableGerente(Responsable):
349    """!
350    Clase que contiene el modelo de datos para el Responsable Tecnico
351
352    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
353    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
354    @date 02-06-2017
355    @version 1.0.0
356    """
357    fk_proyecto = models.ForeignKey(Proyecto)
358
359    class Meta:
360        """!
361        Clase que construye los meta datos del modelo
362
363        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
364        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
365        @date 02-06-2017
366        @version 1.0.0
367        """
368        ordering = ('cedula',)
369        verbose_name = 'Responsable Gerente'
370        verbose_name_plural = 'Responsables Gerentes'
371
372    def __str__(self):
373
374        return self.cedula
375
376
377class VinculacionPndes(models.Model):
378    """!
379    Clase que contiene la vinculacion con
380
381    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
382    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
383    @date 16-08-2016
384    @version 1.0.0
385    """
386    fk_objetivo_generales = models.ForeignKey(ObjetivosGeneral, verbose_name="Objetivo General")
387    vinculacion_activa =  models.BooleanField(default=True)
388
389    def __int__(self):
390        """!
391        Fucncion que muestra el identificador de la vinculacion
392        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
393        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
394        @date 16-08-2016
395        @param self <b>{object}</b> Objeto que instancia la clase
396        @return Devuelve el identificador de la vinculacion
397        """
398        return self.pk
399
400
401class AreasEstrategica(models.Model):
402    """!
403    Clase que contiene las opciones de las areas estrategicas
404
405    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
406    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
407    @date 16-08-2016
408    @version 1.0.0
409    """
410    fk_objetivo_historico = models.ForeignKey(VinculacionPndes, verbose_name="PNDES")
411    fk_proyecto = models.ForeignKey(Proyecto, verbose_name="Proyecto")
412    activo = models.BooleanField(default=True)
413
414    def __int__(self):
415        """!
416        Fucncion que muestra el identificador del area estrategica
417        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
418        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
419        @date 16-08-2016
420        @param self <b>{object}</b> Objeto que instancia la clase
421        @return Devuelve el identificador de la opcion
422        """
423        return self.pk
424
425class SubProyecto(models.Model):
426    """!
427    Clase que contiene los SubProyectos que perteneces a proyectos de Alta Ingeniería del Pais
428
429    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
430    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
431    @date 16-08-2016
432    @version 1.0.0
433    """
434    fk_proyecto = models.ForeignKey(Proyecto, verbose_name="Proyecto")
435    parroquia = models.ForeignKey(Parroquia, verbose_name="Parroquia")
436    codigo = models.CharField(max_length=15, unique=True)
437    nombre = models.CharField(max_length=128)
438    descripcion_bien_servicio = models.TextField(blank=True)
439    unidad_medida = models.CharField(max_length=10)
440    meta = models.IntegerField(validators=[MaxValueValidator(999)])
441    fecha_inicio = models.DateField(auto_now=False)
442    fecha_culminacion = models.DateField(auto_now=False)
443    comunidad = models.CharField(max_length=10)
444    monto_subproyecto = models.DecimalField(max_digits=50, decimal_places=2)
445    activo = models.BooleanField(default=True)
446
447    def __str__(self):
448        """!
449        Fucncion que muestra la informacion sobre el subproyecto
450        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
451        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
452        @date 16-08-2016
453        @param self <b>{object}</b> Objeto que instancia la clase
454        @return Devuelve los datos del subproyecto
455        """
456        return self.codigo
457
458
459class AvancesProyecto(models.Model):
460    """!
461    Clase que contiene los avances de los proyectos
462
463    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
464    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
465    @date 16-08-2016
466    @version 1.0.0
467    """
468    fk_proyecto = models.ForeignKey(Proyecto)
469    avance_subproyecto = models.IntegerField(validators=[MaxValueValidator(999)])
470    avance_proyecto = models.IntegerField(validators=[MaxValueValidator(999)])
471    fecha_avance = models.DateTimeField(auto_now_add=True)
472    activo = models.BooleanField(default=True)
473
474    def __int__(self):
475        """!
476        Fucncion que muestra el identificador del avance del proyecto
477        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
478        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
479        @date 16-08-2016
480        @param self <b>{object}</b> Objeto que instancia la clase
481        @return Devuelve el identificador del avance del proyecto
482        """
483        return self.pk
484
485
486class Actividad(models.Model):
487    """!
488    Clase que contiene las Actividades de los subproyectos
489
490    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
491    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
492    @date 16-08-2016
493    @version 1.0.0
494    """
495    fk_subproyecto = models.ForeignKey(SubProyecto, verbose_name="Sub-Proyecto")
496    descripcion = models.CharField(max_length=128)
497    unidad_medida = models.CharField(max_length=10)
498    fecha_inicio = models.DateField(auto_now=False)
499    fecha_culminacion = models.DateField(auto_now=False)
500    horas_estimadas_ejecucion = models.IntegerField(validators=[MaxValueValidator(9999999999)])
501    costo_estimadao_ejecucion = models.DecimalField(max_digits=50,
502                                                    decimal_places=2)
503    peso_actividad = models.IntegerField(validators=[MaxValueValidator(999)])
504    cantidad_estimada_trabajo = models.IntegerField(validators=[MaxValueValidator(999)])
505    activo = models.BooleanField(default=True)
506
507    def __int__(self):
508        """!
509        Fucncion que muestra el identificador de la actividad
510        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
511        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
512        @date 16-08-2016
513        @param self <b>{object}</b> Objeto que instancia la clase
514        @return Devuelve el identificador de la actividad
515        """
516        return self.pk
517
518
519class CronogramaTarea(models.Model):
520    """!
521    Clase que contiene las Tareas de las actividades
522
523    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
524    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
525    @date 16-08-2016
526    @version 1.0.0
527    """
528    fk_actividad = models.ForeignKey(Actividad)
529    nombre = models.CharField(max_length=128)
530    horas_estimadas_tarea = models.IntegerField(validators=[MaxValueValidator(9999999999)])
531    costo_estimado_tarea = models.DecimalField(max_digits=50, decimal_places=2)
532    peso_tarea = models.IntegerField(validators=[MaxValueValidator(999)])
533    fin_comiento_tarea = models.BooleanField(default=True)
534    comienzo_comienzo_tarea = models.BooleanField(default=False)
535    fin_fin_tarea = models.BooleanField(default=False)
536    activo = models.BooleanField(default=True)
537
538    def __int__(self):
539        """!
540        Fucncion que muestra el identificador de la tarea
541        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
542        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
543        @date 16-08-2016
544        @param self <b>{object}</b> Objeto que instancia la clase
545        @return Devuelve el identificador de la tarea
546        """
547        return self.pk
548
549
550class EstatusCosto(models.Model):
551    """!
552    Clase que contiene los Estatus para el avance de una Actividad
553
554    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
555    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
556    @date 16-08-2016
557    @version 1.0.0
558    """
559    opcion_costo = models.CharField(max_length=30)
560    activo = models.BooleanField(default=True)
561
562    def __str__(self):
563        """!
564        Fucncion que muestra el identificador del estatus costo
565        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
566        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
567        @date 16-08-2016
568        @param self <b>{object}</b> Objeto que instancia la clase
569        @return Devuelve el identificador del estatus costo
570        """
571        return self.opcion_costo
572
573
574class EstatusActividad(models.Model):
575    """!
576    Clase que contiene los Estatus para el avance de una Actividad
577
578    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
579    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
580    @date 16-08-2016
581    @version 1.0.0
582    """
583    opcion_actividad = models.CharField(max_length=30)
584    activo = models.BooleanField(default=True)
585
586    def __str__(self):
587        """!
588        Fucncion que muestra el identificador del estatus de la actividad
589        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
590        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
591        @date 16-08-2016
592        @param self <b>{object}</b> Objeto que instancia la clase
593        @return Devuelve el identificador del estatus de la actividad
594        """
595        return self.opcion_actividad
596
597
598class AvanceActvidad(models.Model):
599    """!
600    Clase que contiene el Reporte de avance de las actividades
601
602    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
603    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
604    @date 16-08-2016
605    @version 1.0.0
606    """
607    fk_actividad = models.ForeignKey(Actividad)
608    fk_estatus_actividad = models.ForeignKey(EstatusActividad)
609    fk_estatus_costo = models.ForeignKey(EstatusCosto)
610    horas_invertidas = models.IntegerField(validators=[MaxValueValidator(999)])
611    costo = models.IntegerField(validators=[MaxValueValidator(9999999999)])
612    peso_ejecutado = models.IntegerField(validators=[MaxValueValidator(999)])
613    cantidad_trabajo_realizado = models.IntegerField(validators=[MaxValueValidator(999)])
614    fecha_avance = models.DateTimeField(auto_now_add=True)
615    activo = models.BooleanField(default=True)
616
617    def __int__(self):
618        """!
619        Fucncion que muestra el identificador del avance de las actividades
620        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
621        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
622        @date 16-08-2016
623        @param self <b>{object}</b> Objeto que instancia la clase
624        @return Devuelve el identificador del avance de las actividades
625        """
626        return self.pk
627
628
629class Indicador(models.Model):
630    """!
631    Clase que contiene los indicadores
632
633    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
634    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
635    @date 16-08-2016
636    @version 1.0.0
637    """
638    fk_avance = models.ForeignKey(AvanceActvidad)
639    indicador_avance = models.IntegerField(validators=[MaxValueValidator(999)])
640    indicador_rendimiento_costo = models.IntegerField(validators=[MaxValueValidator(999)])
641    avance_respeto_tiempo = models.IntegerField(validators=[MaxValueValidator(999)])
642    activo = models.BooleanField(default=True)
643
644    def __int__(self):
645        """!
646        Fucncion que muestra el identificador de los indicadores
647        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
648        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
649        @date 16-08-2016
650        @param self <b>{object}</b> Objeto que instancia la clase
651        @return Devuelve el identificador de el Indicador de los proyectos
652        """
653        return self.pk
654
655
656class CargaMasivaObjetivosHistoricos(CsvDbModel):
657
658    class Meta:
659        delimiter = "|"
660        dbModel = ObjetivosHistorico
661        has_header = False
662
663
664class CargaMasivaObjetivosNacional(CsvModel):
665    fk_objetivo_historico = ForeignKey(ObjetivosHistorico)
666
667    class Meta:
668        delimiter = "|"
669        dbModel = ObjetivosNacional
670        has_header = True
671
672
673class CargaMasivaObjetivosEstrategico(CsvModel):
674    fk_objetivo_nacional = ForeignKey(ObjetivosNacional)
675
676    class Meta:
677        delimiter = "|"
678        dbModel = ObjetivosEstrategico
679        has_header = True
680
681
682class CargaMasivaObjetivosGeneral(CsvModel):
683    fk_objetivo_estrategico = ForeignKey(ObjetivosEstrategico)
684
685    class Meta:
686        delimiter = "|"
687        dbModel = ObjetivosGeneral
688        has_header = True
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.