# -*- coding: utf-8 -*-
"""!
Models que construye el modelo de datos de las organizaciones sociales
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@versi 1.0.0
"""
from django.db import models
from utils.models import (
Parroquia, TipoOrganizacion, TipoDocumento,
UnidadesOrganizacionSocial, ComiteUnidadEjecutiva
)
class OrganizacionSocial(models.Model):
"""!
Clase que contiene el modelo de datos de las organizaciones sociales
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
fk_tipo_organizacion = models.ForeignKey(TipoOrganizacion)
codigo = models.CharField(max_length=16)
rif = models.CharField(max_length=12, unique=True)
situr = models.CharField(max_length=17)
nombre = models.CharField(max_length=256)
email = models.EmailField(max_length=128)
fecha_conformacion = models.DateField(auto_now=False)
sector = models.CharField(max_length=256)
localidad = models.ForeignKey(Parroquia)
activa = models.BooleanField(default=True)
class Meta:
"""!
Clase que construye los meta datos del modelo
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
ordering = ('codigo',)
verbose_name = 'Organizacion Social'
verbose_name_plural = 'Organizaciones Sociales'
def __str__(self):
"""!
Funcion que muestra la informacion de las organizaciones sociales
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@param self {object} Objeto que instancia la clase
@return Devuelve los datos de la organizacion social
"""
return self.codigo + " | " + self.nombre
class MovimientoSocial(models.Model):
"""!
Clase que contiene el modelo de datos de los Movimientos Sociales
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
nombre = models.CharField(max_length=256, unique=True)
descripcion = models.TextField(blank=True)
activo = models.BooleanField(default=True)
class Meta:
"""!
Clase que construye los meta datos del modelo
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
ordering = ('nombre',)
verbose_name = 'Movimiento Social'
verbose_name_plural = 'Movimientos Sociales'
def __str__(self):
"""!
Funcion que muestra la informacion sobre los Movimientos Sociales
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@param self {object} Objeto que instancia la clase
@return Devuelve los datos de el Movimiento Social
"""
return self.nombre
class ComunaConsejoComunal(models.Model):
"""!
Clase que contiene el modelo de datos de los Consejos Comunales Relacionados a las Comunas
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
fk_comuna = models.ForeignKey(OrganizacionSocial, related_name='comuna')
fk_consejo_comunal = models.OneToOneField(OrganizacionSocial, related_name='consejo_comunal')
class Meta:
"""!
Clase que construye los meta datos del modelo
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
ordering = ('fk_comuna',)
verbose_name = 'Consejo Comunal asociado a Comuna'
verbose_name_plural = 'Consejos Comunales asociados a las Comunas'
unique_together = (("fk_comuna", "fk_consejo_comunal"),)
def __str__(self):
"""!
Funcion que muestra la informacion sobre los Consejos Comunales asociados a las Comunas
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@param self {object} Objeto que instancia la clase
@return Devuelve los datos de el Consejo Comunal asociado a Comuna
"""
return self.pk
class ComunaOrgSociproductiva(models.Model):
"""!
Clase que contiene el modelo de datos de las organizaciones Socioproductivas Relacionadas a las comunas
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
fk_comuna = models.ForeignKey(OrganizacionSocial, related_name='comunas')
fk_ospc = models.OneToOneField(OrganizacionSocial, related_name='opsc')
class Meta:
"""!
Clase que construye los meta datos del modelo
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
ordering = ('fk_comuna',)
verbose_name = 'Organizacion Socioproductiva relacionada a la comuna'
verbose_name_plural = 'Organizaciones Socioproductivas relacionadas a las comunas'
unique_together = (("fk_comuna", "fk_ospc"),)
def __str__(self):
"""!
Funcion que muestra la informacion sobre las Organizaciones Socioproductivas Relacionadas a las Comunas
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@param self {object} Objeto que instancia la clase
@return Devuelve los datos de la Organizacion Socioproductiva relacionada a la comuna
"""
return self.pk
class ComunaMovimientoSocial(models.Model):
"""!
Clase que contiene el modelo de datos de los Movimientos Sociales Relacionados a las Comunas
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
fk_comuna = models.ForeignKey(OrganizacionSocial, related_name='comunas_mov')
fk_mov_social = models.ForeignKey(MovimientoSocial)
class Meta:
"""!
Clase que construye los meta datos del modelo
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
ordering = ('fk_comuna',)
verbose_name = 'Movimiento Social Relacionado a la Comuna'
verbose_name_plural = 'Movimientos Sociales Relacionados a las Comunas'
unique_together = (("fk_comuna", "fk_mov_social"),)
def __str__(self):
"""!
Funcion que muestra la informacion sobre los Movimientos Sociales Relacionados a las Comunas
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@param self {object} Objeto que instancia la clase
@return Devuelve los datos del Movimiento Social Relacionado a la Comuna
"""
return self.pk
class Vocero(models.Model):
"""!
Clase que contiene el modelo de datos de los Voceros
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
fk_org_social = models.ForeignKey(OrganizacionSocial)
fk_tipo_documento = models.ForeignKey(TipoDocumento)
fk_rol_unidad = models.ForeignKey(UnidadesOrganizacionSocial, null=True)
nombres = models.CharField(max_length=120)
apellidos = models.CharField(max_length=120)
documento_identidad = models.PositiveIntegerField()
sector = models.TextField(blank=True, null=True)
casa_edificio_calle = models.TextField(blank=True, null=True)
localidad = models.ForeignKey(Parroquia, null=True)
telefono = models.CharField(max_length=18, null=True)
activo = models.BooleanField(default=True)
class Meta:
"""!
Clase que construye los meta datos del modelo
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
ordering = ('documento_identidad',)
verbose_name = 'Vocero'
verbose_name_plural = 'Voceros'
unique_together = (("fk_org_social", "documento_identidad"),)
def __str__(self):
"""!
Funcion que muestra la informacion sobre los Voceros
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@param self {object} Objeto que instancia la clase
@return Devuelve los datos del Vocero
"""
return str(self.documento_identidad)
class VoceroComite(models.Model):
"""!
Clase que contiene el modelo de datos de los Voceros que pertenecen a un comite de la unidad ejecutiva
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
fk_vocero = models.OneToOneField(Vocero)
fk_comite = models.ForeignKey(ComiteUnidadEjecutiva)
class Meta:
"""!
Clase que construye los meta datos del modelo
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@version 1.0.0
"""
ordering = ('fk_vocero',)
verbose_name = 'Vocero del comite'
verbose_name_plural = 'Voceros de los comites'
def __str__(self):
"""!
Funcion que muestra la informacion sobre los Voceros
@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 25-07-2017
@param self {object} Objeto que instancia la clase
@return Devuelve los datos del Vocero
"""
return self.fk_vocero