source: sapic/organizaciones/models.py @ a100574

Last change on this file since a100574 was a100574, checked in by William Páez <wpaez@…>, 6 años ago

agragadas validaciones en los campos: documento de identidad, teléfono, rif del consejo comunal y arreglado error en documento de identidad creando un vocero

  • Propiedad mode establecida a 100644
File size: 12.2 KB
Línea 
1# -*- coding: utf-8 -*-
2"""!
3    Models que construye el modelo de datos de las organizaciones sociales
4
5    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
6    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
7    @date 25-07-2017
8    @versi 1.0.0
9"""
10
11from django.db import models
12
13from utils.models import (
14    Parroquia, TipoOrganizacion, TipoDocumento,
15    UnidadesOrganizacionSocial, ComiteUnidadEjecutiva
16)
17
18
19
20class OrganizacionSocial(models.Model):
21    """!
22        Clase que contiene el modelo de datos de las organizaciones sociales
23
24        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
25        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
26        @date 25-07-2017
27        @version 1.0.0
28    """
29    fk_tipo_organizacion = models.ForeignKey(TipoOrganizacion)
30    codigo = models.CharField(max_length=16)
31    rif = models.CharField(max_length=12, unique=True)
32    situr = models.CharField(max_length=17)
33    nombre = models.CharField(max_length=256)
34    email = models.EmailField(max_length=128)
35    fecha_conformacion = models.DateField(auto_now=False)
36    sector = models.CharField(max_length=256)
37    localidad = models.ForeignKey(Parroquia)
38    activa = models.BooleanField(default=True)
39
40    class Meta:
41        """!
42            Clase que construye los meta datos del modelo
43
44            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
45            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
46            @date 25-07-2017
47            @version 1.0.0
48        """
49        ordering = ('codigo',)
50        verbose_name = 'Organizacion Social'
51        verbose_name_plural = 'Organizaciones Sociales'
52
53    def __str__(self):
54        """!
55            Funcion que muestra la informacion de las organizaciones sociales
56            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
57            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
58            @date 25-07-2017
59            @param self <b>{object}</b> Objeto que instancia la clase
60            @return Devuelve los datos de la organizacion social
61        """
62        return self.codigo + " | " + self.nombre
63
64
65class MovimientoSocial(models.Model):
66    """!
67        Clase que contiene el modelo de datos de los Movimientos Sociales
68
69        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
70        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
71        @date 25-07-2017
72        @version 1.0.0
73    """
74    nombre = models.CharField(max_length=256, unique=True)
75    descripcion = models.TextField(blank=True)
76    activo = models.BooleanField(default=True)
77
78    class Meta:
79        """!
80            Clase que construye los meta datos del modelo
81
82            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
83            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
84            @date 25-07-2017
85            @version 1.0.0
86        """
87        ordering = ('nombre',)
88        verbose_name = 'Movimiento Social'
89        verbose_name_plural = 'Movimientos Sociales'
90
91    def __str__(self):
92        """!
93            Funcion que muestra la informacion sobre los Movimientos Sociales
94            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
95            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
96            @date 25-07-2017
97            @param self <b>{object}</b> Objeto que instancia la clase
98            @return Devuelve los datos de el Movimiento Social
99        """
100        return self.nombre
101
102
103class ComunaConsejoComunal(models.Model):
104    """!
105        Clase que contiene el modelo de datos de los Consejos Comunales Relacionados a las Comunas
106
107        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
108        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
109        @date 25-07-2017
110        @version 1.0.0
111    """
112    fk_comuna = models.ForeignKey(OrganizacionSocial, related_name='comuna')
113    fk_consejo_comunal = models.OneToOneField(OrganizacionSocial, related_name='consejo_comunal')
114
115    class Meta:
116        """!
117            Clase que construye los meta datos del modelo
118
119            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
120            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
121            @date 25-07-2017
122            @version 1.0.0
123        """
124        ordering = ('fk_comuna',)
125        verbose_name = 'Consejo Comunal asociado a Comuna'
126        verbose_name_plural = 'Consejos Comunales asociados a las Comunas'
127        unique_together = (("fk_comuna", "fk_consejo_comunal"),)
128
129    def __str__(self):
130        """!
131            Funcion que muestra la informacion sobre los Consejos Comunales asociados a las Comunas
132            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
133            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
134            @date 25-07-2017
135            @param self <b>{object}</b> Objeto que instancia la clase
136            @return Devuelve los datos de el Consejo Comunal asociado a Comuna
137        """
138        return self.pk
139
140
141class ComunaOrgSociproductiva(models.Model):
142    """!
143        Clase que contiene el modelo de datos de las organizaciones Socioproductivas Relacionadas a las comunas
144
145        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
146        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
147        @date 25-07-2017
148        @version 1.0.0
149    """
150    fk_comuna = models.ForeignKey(OrganizacionSocial, related_name='comunas')
151    fk_ospc = models.OneToOneField(OrganizacionSocial, related_name='opsc')
152
153    class Meta:
154        """!
155            Clase que construye los meta datos del modelo
156
157            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
158            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
159            @date 25-07-2017
160            @version 1.0.0
161        """
162        ordering = ('fk_comuna',)
163        verbose_name = 'Organizacion Socioproductiva relacionada a la comuna'
164        verbose_name_plural = 'Organizaciones Socioproductivas relacionadas a las comunas'
165        unique_together = (("fk_comuna", "fk_ospc"),)
166
167    def __str__(self):
168        """!
169            Funcion que muestra la informacion sobre las Organizaciones Socioproductivas Relacionadas a las Comunas
170            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
171            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
172            @date 25-07-2017
173            @param self <b>{object}</b> Objeto que instancia la clase
174            @return Devuelve los datos de la  Organizacion Socioproductiva relacionada a la comuna
175        """
176        return self.pk
177
178
179class ComunaMovimientoSocial(models.Model):
180    """!
181        Clase que contiene el modelo de datos de los Movimientos Sociales Relacionados a las Comunas
182
183        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
184        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
185        @date 25-07-2017
186        @version 1.0.0
187    """
188    fk_comuna = models.ForeignKey(OrganizacionSocial,  related_name='comunas_mov')
189    fk_mov_social = models.ForeignKey(MovimientoSocial)
190
191    class Meta:
192        """!
193            Clase que construye los meta datos del modelo
194
195            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
196            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
197            @date 25-07-2017
198            @version 1.0.0
199        """
200        ordering = ('fk_comuna',)
201        verbose_name = 'Movimiento Social Relacionado a la Comuna'
202        verbose_name_plural = 'Movimientos Sociales Relacionados a las Comunas'
203        unique_together = (("fk_comuna", "fk_mov_social"),)
204
205    def __str__(self):
206        """!
207            Funcion que muestra la informacion sobre los Movimientos Sociales Relacionados a las Comunas
208            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
209            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
210            @date 25-07-2017
211            @param self <b>{object}</b> Objeto que instancia la clase
212            @return Devuelve los datos del Movimiento Social Relacionado a la Comuna
213        """
214        return self.pk
215
216
217class Vocero(models.Model):
218    """!
219        Clase que contiene el modelo de datos de los Voceros
220
221        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
222        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
223        @date 25-07-2017
224        @version 1.0.0
225    """
226    fk_org_social = models.ForeignKey(OrganizacionSocial)
227    fk_tipo_documento = models.ForeignKey(TipoDocumento)
228    fk_rol_unidad = models.ForeignKey(UnidadesOrganizacionSocial, null=True)
229    nombres = models.CharField(max_length=120)
230    apellidos = models.CharField(max_length=120)
231    documento_identidad = models.PositiveIntegerField()
232    sector = models.TextField(blank=True, null=True)
233    casa_edificio_calle = models.TextField(blank=True, null=True)
234    localidad = models.ForeignKey(Parroquia, null=True)
235    telefono = models.CharField(max_length=18, null=True)
236    activo = models.BooleanField(default=True)
237
238    class Meta:
239        """!
240            Clase que construye los meta datos del modelo
241
242            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
243            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
244            @date 25-07-2017
245            @version 1.0.0
246        """
247        ordering = ('documento_identidad',)
248        verbose_name = 'Vocero'
249        verbose_name_plural = 'Voceros'
250        unique_together = (("fk_org_social", "documento_identidad"),)
251
252    def __str__(self):
253        """!
254            Funcion que muestra la informacion sobre los Voceros
255            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
256            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
257            @date 25-07-2017
258            @param self <b>{object}</b> Objeto que instancia la clase
259            @return Devuelve los datos del Vocero
260        """
261        return str(self.documento_identidad)
262
263
264class VoceroComite(models.Model):
265    """!
266        Clase que contiene el modelo de datos de los Voceros que pertenecen a un comite de la unidad ejecutiva
267
268        @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
269        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
270        @date 25-07-2017
271        @version 1.0.0
272    """
273    fk_vocero = models.OneToOneField(Vocero)
274    fk_comite = models.ForeignKey(ComiteUnidadEjecutiva)
275
276    class Meta:
277        """!
278            Clase que construye los meta datos del modelo
279
280            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
281            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
282            @date 25-07-2017
283            @version 1.0.0
284        """
285        ordering = ('fk_vocero',)
286        verbose_name = 'Vocero del comite'
287        verbose_name_plural = 'Voceros de los comites'
288
289    def __str__(self):
290        """!
291            Funcion que muestra la informacion sobre los Voceros
292            @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
293            @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
294            @date 25-07-2017
295            @param self <b>{object}</b> Objeto que instancia la clase
296            @return Devuelve los datos del Vocero
297        """
298        return self.fk_vocero
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.