eco-back 0.2.4__py3-none-any.whl → 0.2.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- eco_back/__init__.py +2 -1
- eco_back/models/__init__.py +0 -0
- eco_back/models/registro.py +256 -0
- eco_back/models/sistema.py +2503 -0
- eco_back/models/static.py +1127 -0
- eco_back/models/usuario.py +638 -0
- {eco_back-0.2.4.dist-info → eco_back-0.2.5.dist-info}/METADATA +1 -1
- {eco_back-0.2.4.dist-info → eco_back-0.2.5.dist-info}/RECORD +11 -6
- {eco_back-0.2.4.dist-info → eco_back-0.2.5.dist-info}/WHEEL +0 -0
- {eco_back-0.2.4.dist-info → eco_back-0.2.5.dist-info}/licenses/LICENSE +0 -0
- {eco_back-0.2.4.dist-info → eco_back-0.2.5.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,2503 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Modelos del sistema de gestión de solicitudes eco-back.
|
|
3
|
+
|
|
4
|
+
Este módulo contiene los modelos de Django para gestionar datos de personas individuales,
|
|
5
|
+
colectivos, ubicaciones, contactos y toda la información relacionada con solicitudes
|
|
6
|
+
de protección en el sistema de la UNP.
|
|
7
|
+
"""
|
|
8
|
+
from django.db import models
|
|
9
|
+
from django.contrib.contenttypes.models import ContentType
|
|
10
|
+
from django.contrib.gis.db import models as geo_models
|
|
11
|
+
import uuid
|
|
12
|
+
from django.utils import timezone
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from eco_back.models.static import CategoriaPnis, Departamento, EstadoEspecificoSolicitud, Municipio, Pais, PoblacionObjeto, PoblacionSesp, SubPoblacionObjeto, TipoCategoriaOrganizacion, TipoDiscapacidad, TipoFactorDiferencial, TipoGenero, TipoGrupoEtnico, TipoIdentificacion, TipoIdentificacionColectivo, TipoMedidaCautelar, TipoMediosSituacion, TipoOrganizacionPersona, TipoOrientacionSexual, TipoRangoEtario, TipoReporte, TipoSexo, TipoSituacionesRiesgo, TipoSolicitud, ZonaUbicacion, tipoEntidadAcreditadora
|
|
16
|
+
from eco_back.models.usuario import DatosBasicosUsuario
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
##### MODELOS GLOBALES - UBICACIÓN Y CONTACTO #######
|
|
20
|
+
|
|
21
|
+
class DatosUbicacion(models.Model):
|
|
22
|
+
"""
|
|
23
|
+
Modelo base para datos de ubicación geográfica del sistema.
|
|
24
|
+
|
|
25
|
+
Almacena información geográfica completa incluyendo país, departamento, municipio,
|
|
26
|
+
zona y dirección. Utiliza GenericRelation para asociarse con diferentes entidades.
|
|
27
|
+
|
|
28
|
+
Attributes:
|
|
29
|
+
id_ubicacion: Identificador único UUID.
|
|
30
|
+
pais: País de la ubicación.
|
|
31
|
+
departamento: Departamento o estado.
|
|
32
|
+
municipio: Municipio o ciudad.
|
|
33
|
+
zona: Tipo de zona (urbana/rural).
|
|
34
|
+
direccion: Dirección completa.
|
|
35
|
+
indicacion: Indicaciones adicionales de referencia.
|
|
36
|
+
object_id: ID del objeto relacionado.
|
|
37
|
+
content_type: Tipo de contenido relacionado.
|
|
38
|
+
esta_activa: Indicador si la ubicación está activa.
|
|
39
|
+
"""
|
|
40
|
+
id_ubicacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
41
|
+
pais = models.ForeignKey(Pais, to_field='id_pais', on_delete=models.CASCADE)
|
|
42
|
+
departamento = models.ForeignKey(Departamento, to_field='id_departamento', on_delete=models.CASCADE)
|
|
43
|
+
municipio = models.ForeignKey(Municipio, to_field='id_municipio', on_delete=models.CASCADE)
|
|
44
|
+
zona = models.ForeignKey(ZonaUbicacion, to_field='id_zubicacion', on_delete=models.CASCADE)
|
|
45
|
+
direccion = models.CharField(max_length=160, blank=True, null=True)
|
|
46
|
+
indicacion = models.CharField(max_length=160, blank=True, null=True)
|
|
47
|
+
object_id = models.CharField(blank=True, null=True, max_length=50)
|
|
48
|
+
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE, blank=True, null=True)
|
|
49
|
+
esta_activa = models.BooleanField(default=True)
|
|
50
|
+
|
|
51
|
+
class Meta:
|
|
52
|
+
db_table = 'eco_sis_ubicacion'
|
|
53
|
+
verbose_name_plural = 'Datos de ubicación'
|
|
54
|
+
|
|
55
|
+
def __str__(self):
|
|
56
|
+
return str(self.id_ubicacion)
|
|
57
|
+
|
|
58
|
+
class UbicacionRural(DatosUbicacion):
|
|
59
|
+
"""
|
|
60
|
+
Modelo para direcciones rurales del sistema.
|
|
61
|
+
|
|
62
|
+
Extiende DatosUbicacion con campos específicos para zonas rurales.
|
|
63
|
+
|
|
64
|
+
Attributes:
|
|
65
|
+
corregimiento: Nombre del corregimiento.
|
|
66
|
+
centro_poblado: Centro poblado de referencia.
|
|
67
|
+
vereda: Vereda o localidad rural.
|
|
68
|
+
"""
|
|
69
|
+
corregimiento = models.CharField(max_length=150, null=True, blank=True)
|
|
70
|
+
centro_poblado = models.CharField(max_length=150, null=True, blank=True)
|
|
71
|
+
vereda = models.CharField(max_length=150, null=True, blank=True)
|
|
72
|
+
|
|
73
|
+
def __str__(self):
|
|
74
|
+
return self.direccion
|
|
75
|
+
|
|
76
|
+
class Meta:
|
|
77
|
+
db_table = 'eco_sis_direccionrural'
|
|
78
|
+
verbose_name_plural = 'Dirección rural'
|
|
79
|
+
|
|
80
|
+
class UbicacionUrbana(DatosUbicacion):
|
|
81
|
+
"""
|
|
82
|
+
Modelo para direcciones urbanas del sistema.
|
|
83
|
+
|
|
84
|
+
Extiende DatosUbicacion con campos para direcciones urbanas colombianas.
|
|
85
|
+
|
|
86
|
+
Attributes:
|
|
87
|
+
nombre_barrio: Barrio o localidad urbana.
|
|
88
|
+
tipo_viaprincipal: Tipo de vía (Calle, Carrera, etc.).
|
|
89
|
+
numero_viaprincipal: Número de la vía principal.
|
|
90
|
+
letra_principal: Letra de la vía principal.
|
|
91
|
+
es_bis: Indicador si tiene "BIS".
|
|
92
|
+
cuadrante_principal: Cuadrante (N, S, E, O).
|
|
93
|
+
numero_viasecundaria: Número de la vía secundaria.
|
|
94
|
+
letra_secundaria: Letra de la vía secundaria.
|
|
95
|
+
cuadrante_secundario: Cuadrante secundario.
|
|
96
|
+
numero_placa: Número de placa o lote.
|
|
97
|
+
complemento: Complemento (apto, casa, etc.).
|
|
98
|
+
"""
|
|
99
|
+
nombre_barrio = models.CharField(max_length=100, null=True, blank=True)
|
|
100
|
+
tipo_viaprincipal = models.CharField(max_length=20, null=True, blank=True)
|
|
101
|
+
numero_viaprincipal = models.IntegerField(null=True, blank=True)
|
|
102
|
+
letra_principal = models.CharField(max_length=10, null=True, blank=True)
|
|
103
|
+
es_bis = models.BooleanField(null=True)
|
|
104
|
+
cuadrante_principal = models.CharField(max_length=10, null=True, blank=True)
|
|
105
|
+
numero_viasecundaria = models.IntegerField(null=True, blank=True)
|
|
106
|
+
letra_secundaria = models.CharField(max_length=10, null=True, blank=True)
|
|
107
|
+
cuadrante_secundario = models.CharField(max_length=10, null=True, blank=True)
|
|
108
|
+
numero_placa = models.IntegerField(null=True, blank=True)
|
|
109
|
+
complemento = models.CharField(max_length=60, null=True, blank=True)
|
|
110
|
+
|
|
111
|
+
def __str__(self):
|
|
112
|
+
fields = [
|
|
113
|
+
self.tipo_viaprincipal, self.numero_viaprincipal, self.letra_principal,
|
|
114
|
+
self.cuadrante_principal, self.numero_viasecundaria, self.letra_secundaria, self.numero_placa,
|
|
115
|
+
self.cuadrante_secundario, self.complemento]
|
|
116
|
+
|
|
117
|
+
fields = [str(field) for field in fields if field]
|
|
118
|
+
return " ".join(fields)
|
|
119
|
+
|
|
120
|
+
class Meta:
|
|
121
|
+
db_table = 'eco_sis_direccionurbana'
|
|
122
|
+
verbose_name_plural = 'Dirección urbana'
|
|
123
|
+
|
|
124
|
+
class GeoUrbana(geo_models.Model):
|
|
125
|
+
"""
|
|
126
|
+
Modelo para geolocalización de ubicaciones.
|
|
127
|
+
|
|
128
|
+
Almacena coordenadas geográficas (latitud/longitud) de ubicaciones urbanas.
|
|
129
|
+
|
|
130
|
+
Attributes:
|
|
131
|
+
id_geourbana: Identificador único UUID.
|
|
132
|
+
ubicacion: Relación con DatosUbicacion.
|
|
133
|
+
geom: Punto geográfico (coordenadas en formato Point con SRID 4326).
|
|
134
|
+
"""
|
|
135
|
+
id_geourbana = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
136
|
+
ubicacion = geo_models.ForeignKey(DatosUbicacion, to_field='id_ubicacion', on_delete=geo_models.CASCADE, blank=True, null=True)
|
|
137
|
+
geom = geo_models.PointField(srid=4326, blank=True, null=True)
|
|
138
|
+
|
|
139
|
+
class Meta:
|
|
140
|
+
db_table = 'eco_geo_dsolicitante'
|
|
141
|
+
verbose_name_plural = 'Geolocalización de la dirección del solicitante'
|
|
142
|
+
|
|
143
|
+
def __str__(self):
|
|
144
|
+
return str(self.id_geourbana)
|
|
145
|
+
|
|
146
|
+
class TelefonoCelularContacto(models.Model):
|
|
147
|
+
"""
|
|
148
|
+
Modelo para números telefónicos de contacto.
|
|
149
|
+
|
|
150
|
+
Attributes:
|
|
151
|
+
id_ctelefono: Identificador único UUID.
|
|
152
|
+
celular_uno: Teléfono celular principal.
|
|
153
|
+
celular_dos: Teléfono celular secundario.
|
|
154
|
+
telefono: Teléfono fijo.
|
|
155
|
+
"""
|
|
156
|
+
id_ctelefono = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
157
|
+
celular_uno = models.CharField(max_length=15, blank=True, null=True)
|
|
158
|
+
celular_dos = models.CharField(max_length=15, blank=True, null=True)
|
|
159
|
+
telefono = models.CharField(max_length=20, blank=True, null=True)
|
|
160
|
+
|
|
161
|
+
class Meta:
|
|
162
|
+
db_table = 'eco_sis_ctelefono'
|
|
163
|
+
verbose_name_plural = 'Datos de contacto'
|
|
164
|
+
|
|
165
|
+
def __str__(self):
|
|
166
|
+
return str(self.id_ctelefono)
|
|
167
|
+
|
|
168
|
+
class CorreoElectronicoContacto(models.Model):
|
|
169
|
+
"""
|
|
170
|
+
Modelo para correos electrónicos de contacto.
|
|
171
|
+
|
|
172
|
+
Attributes:
|
|
173
|
+
id_ccelectronico: Identificador único UUID.
|
|
174
|
+
correo_electronico: Dirección de correo.
|
|
175
|
+
autoriza_envio: Autorización para envío de comunicaciones.
|
|
176
|
+
"""
|
|
177
|
+
id_ccelectronico = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
178
|
+
correo_electronico = models.EmailField(max_length=100, null=True, blank=True)
|
|
179
|
+
autoriza_envio = models.BooleanField(default=False)
|
|
180
|
+
|
|
181
|
+
class Meta:
|
|
182
|
+
db_table = 'eco_sis_ccelectronico'
|
|
183
|
+
verbose_name_plural = 'Datos de contacto'
|
|
184
|
+
|
|
185
|
+
def __str__(self):
|
|
186
|
+
return str(self.id_ccelectronico)
|
|
187
|
+
|
|
188
|
+
class DatosContacto(models.Model):
|
|
189
|
+
"""
|
|
190
|
+
Modelo consolidado de datos de contacto.
|
|
191
|
+
|
|
192
|
+
Agrupa teléfonos y correos electrónicos de contacto.
|
|
193
|
+
Usa GenericRelation para asociarse con diferentes entidades.
|
|
194
|
+
|
|
195
|
+
Attributes:
|
|
196
|
+
id_contacto: Identificador único UUID.
|
|
197
|
+
id_ctelefono: Relación con datos telefónicos.
|
|
198
|
+
id_ccelectronico: Relación con datos de correo.
|
|
199
|
+
esta_activo: Indicador si el contacto está activo.
|
|
200
|
+
content_type: Tipo de contenido relacionado.
|
|
201
|
+
object_id: ID del objeto relacionado.
|
|
202
|
+
"""
|
|
203
|
+
id_contacto = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
204
|
+
id_ctelefono = models.ForeignKey(TelefonoCelularContacto, to_field='id_ctelefono', on_delete=models.CASCADE)
|
|
205
|
+
id_ccelectronico = models.ForeignKey(CorreoElectronicoContacto, to_field='id_ccelectronico', on_delete=models.CASCADE)
|
|
206
|
+
esta_activo = models.BooleanField(default=True)
|
|
207
|
+
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE, blank=True, null=True)
|
|
208
|
+
object_id = models.CharField(blank=True, null=True, max_length=50)
|
|
209
|
+
|
|
210
|
+
class Meta:
|
|
211
|
+
db_table = 'eco_sis_contacto'
|
|
212
|
+
verbose_name_plural = 'Datos de contacto'
|
|
213
|
+
|
|
214
|
+
def __str__(self):
|
|
215
|
+
return str(self.id_contacto)
|
|
216
|
+
|
|
217
|
+
class ReferenciasInformacion(models.Model):
|
|
218
|
+
"""
|
|
219
|
+
Modelo para referencias de información adicional.
|
|
220
|
+
|
|
221
|
+
Permite almacenar referencias o notas adicionales sobre entidades.
|
|
222
|
+
|
|
223
|
+
Attributes:
|
|
224
|
+
id_referencia: Identificador único UUID.
|
|
225
|
+
descripcion_referencia: Texto descriptivo de la referencia.
|
|
226
|
+
object_id: ID del objeto relacionado.
|
|
227
|
+
content_type: Tipo de contenido relacionado.
|
|
228
|
+
"""
|
|
229
|
+
id_referencia = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
230
|
+
descripcion_referencia = models.CharField(max_length=2000, null=True, blank=True)
|
|
231
|
+
object_id = models.CharField(blank=True, null=True, max_length=50)
|
|
232
|
+
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE, blank=True, null=True)
|
|
233
|
+
|
|
234
|
+
class Meta:
|
|
235
|
+
db_table = 'eco_sis_referenciainformacion'
|
|
236
|
+
verbose_name_plural = 'Referencias a la informacion ingresada'
|
|
237
|
+
|
|
238
|
+
def __str__(self):
|
|
239
|
+
return str(self.id_referencia)
|
|
240
|
+
|
|
241
|
+
class FuenteDocumentalGeneral(models.Model):
|
|
242
|
+
"""
|
|
243
|
+
Modelo para fuentes documentales.
|
|
244
|
+
|
|
245
|
+
Almacena referencias bibliográficas o documentales.
|
|
246
|
+
|
|
247
|
+
Attributes:
|
|
248
|
+
id_fuentedocumental: Identificador único UUID.
|
|
249
|
+
nombre_fuente: Nombre de la fuente.
|
|
250
|
+
titulo_fuente: Título del documento.
|
|
251
|
+
anio: Año de publicación.
|
|
252
|
+
enlace: URL del documento.
|
|
253
|
+
object_id: ID del objeto relacionado.
|
|
254
|
+
content_type: Tipo de contenido relacionado.
|
|
255
|
+
"""
|
|
256
|
+
id_fuentedocumental = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
257
|
+
nombre_fuente = models.CharField(max_length=200, blank=True, null=True)
|
|
258
|
+
titulo_fuente = models.CharField(max_length=200, blank=True, null=True)
|
|
259
|
+
anio = models.CharField(max_length=5, blank=True, null=True)
|
|
260
|
+
enlace = models.CharField(max_length=500, blank=True, null=True)
|
|
261
|
+
object_id = models.CharField(blank=True, null=True, max_length=50)
|
|
262
|
+
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE, blank=True, null=True)
|
|
263
|
+
|
|
264
|
+
class Meta:
|
|
265
|
+
db_table = 'eco_sis_fuentedocumental'
|
|
266
|
+
verbose_name_plural = 'Fuente documental'
|
|
267
|
+
|
|
268
|
+
def __str__(self):
|
|
269
|
+
return str(self.id_fuentedocumental)
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
##### MODELOS INDIVIDUALES - DATOS BÁSICOS DE PERSONAS #######
|
|
273
|
+
|
|
274
|
+
class IdentificacionPersona(models.Model):
|
|
275
|
+
"""
|
|
276
|
+
Modelo para identificación de personas en solicitudes.
|
|
277
|
+
|
|
278
|
+
Attributes:
|
|
279
|
+
id_ipersona: Identificador único UUID.
|
|
280
|
+
numero_identificacion: Número del documento.
|
|
281
|
+
fecha_expedicion: Fecha de expedición del documento.
|
|
282
|
+
tipo_identificacion: Tipo de documento (CC, TI, CE, etc.).
|
|
283
|
+
"""
|
|
284
|
+
id_ipersona = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
285
|
+
numero_identificacion = models.CharField(max_length=20, null=False, blank=True)
|
|
286
|
+
fecha_expedicion = models.DateField(null=True, blank=True)
|
|
287
|
+
tipo_identificacion = models.ForeignKey(TipoIdentificacion, to_field='id_tidentificacion', on_delete=models.CASCADE)
|
|
288
|
+
|
|
289
|
+
class Meta:
|
|
290
|
+
db_table = 'eco_sis_ipersona'
|
|
291
|
+
verbose_name_plural = 'Datos de la identificación de la persona'
|
|
292
|
+
|
|
293
|
+
def __str__(self):
|
|
294
|
+
return str(self.numero_identificacion) + str(self.fecha_expedicion)
|
|
295
|
+
|
|
296
|
+
class NombrePersona(models.Model):
|
|
297
|
+
"""
|
|
298
|
+
Modelo para nombres completos de personas.
|
|
299
|
+
|
|
300
|
+
Attributes:
|
|
301
|
+
id_npersona: Identificador único UUID.
|
|
302
|
+
primer_nombre: Primer nombre.
|
|
303
|
+
segundo_nombre: Segundo nombre (opcional).
|
|
304
|
+
primer_apellido: Primer apellido.
|
|
305
|
+
segundo_apellido: Segundo apellido (opcional).
|
|
306
|
+
"""
|
|
307
|
+
id_npersona = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
308
|
+
primer_nombre = models.CharField(max_length=20, null=False, blank=False)
|
|
309
|
+
segundo_nombre = models.CharField(max_length=50, null=True, blank=True)
|
|
310
|
+
primer_apellido = models.CharField(max_length=50, null=False, blank=False)
|
|
311
|
+
segundo_apellido = models.CharField(max_length=50, null=True, blank=True)
|
|
312
|
+
|
|
313
|
+
class Meta:
|
|
314
|
+
db_table = 'eco_sis_nombrepersona'
|
|
315
|
+
verbose_name_plural = 'Nombres y apellidos de las personas'
|
|
316
|
+
|
|
317
|
+
def __str__(self):
|
|
318
|
+
return str(self.id_npersona)
|
|
319
|
+
|
|
320
|
+
class DatosBasicosPersona(models.Model):
|
|
321
|
+
"""
|
|
322
|
+
Modelo para datos básicos de personas en solicitudes.
|
|
323
|
+
|
|
324
|
+
Consolida nombre, identificación y género de la persona.
|
|
325
|
+
|
|
326
|
+
Attributes:
|
|
327
|
+
id_persona: Identificador único UUID.
|
|
328
|
+
nombre_persona: Relación con nombres completos.
|
|
329
|
+
identificacion_persona: Relación con identificación.
|
|
330
|
+
genero_persona: Género de la persona.
|
|
331
|
+
esta_verificado: Indicador si los datos fueron verificados.
|
|
332
|
+
esta_activo: Indicador si el registro está activo.
|
|
333
|
+
"""
|
|
334
|
+
id_persona = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
335
|
+
nombre_persona = models.ForeignKey(NombrePersona, to_field='id_npersona', on_delete=models.CASCADE)
|
|
336
|
+
identificacion_persona = models.ForeignKey(IdentificacionPersona, to_field='id_ipersona', on_delete=models.CASCADE)
|
|
337
|
+
genero_persona = models.ForeignKey(TipoGenero, to_field='id_tgenero', on_delete=models.CASCADE, null=True)
|
|
338
|
+
esta_verificado = models.BooleanField(default=False)
|
|
339
|
+
esta_activo = models.BooleanField(default=False)
|
|
340
|
+
|
|
341
|
+
class Meta:
|
|
342
|
+
db_table = 'eco_sis_basicospersona'
|
|
343
|
+
verbose_name_plural = 'Datos básicos de la persona'
|
|
344
|
+
|
|
345
|
+
def __str__(self):
|
|
346
|
+
return str(self.id_persona)
|
|
347
|
+
|
|
348
|
+
class LlaveDatosBasicosPersona(models.Model):
|
|
349
|
+
"""
|
|
350
|
+
Modelo para llave de datos básicos de persona.
|
|
351
|
+
|
|
352
|
+
Llave de relación para datos básicos de personas.
|
|
353
|
+
|
|
354
|
+
Attributes:
|
|
355
|
+
id_llavebasicos: Identificador único UUID editable.
|
|
356
|
+
id_persona: Relación con datos básicos de la persona.
|
|
357
|
+
"""
|
|
358
|
+
id_llavebasicos = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True)
|
|
359
|
+
id_persona = models.ForeignKey(DatosBasicosPersona, to_field='id_persona', on_delete=models.CASCADE, null=True)
|
|
360
|
+
|
|
361
|
+
class Meta:
|
|
362
|
+
db_table = 'eco_sis_llavebasicospersona'
|
|
363
|
+
|
|
364
|
+
def __str__(self):
|
|
365
|
+
return str(self.id_llavebasicos)
|
|
366
|
+
|
|
367
|
+
class LugarNacimientoPersona(models.Model):
|
|
368
|
+
"""
|
|
369
|
+
Modelo para lugar de nacimiento de personas.
|
|
370
|
+
|
|
371
|
+
Attributes:
|
|
372
|
+
id_lnacimiento: Identificador único UUID.
|
|
373
|
+
pais: País de nacimiento.
|
|
374
|
+
departamento: Departamento de nacimiento.
|
|
375
|
+
municipio: Municipio de nacimiento.
|
|
376
|
+
"""
|
|
377
|
+
id_lnacimiento = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
378
|
+
pais = models.ForeignKey(Pais, to_field='id_pais', on_delete=models.CASCADE)
|
|
379
|
+
departamento = models.ForeignKey(Departamento, to_field='id_departamento', on_delete=models.CASCADE)
|
|
380
|
+
municipio = models.ForeignKey(Municipio, to_field='id_municipio', on_delete=models.CASCADE)
|
|
381
|
+
|
|
382
|
+
class Meta:
|
|
383
|
+
db_table = 'eco_sis_lnpersona'
|
|
384
|
+
verbose_name_plural = 'Lugar de nacimiento de la persona'
|
|
385
|
+
|
|
386
|
+
def __str__(self):
|
|
387
|
+
return str(self.id_lnacimiento)
|
|
388
|
+
|
|
389
|
+
class FechaNacimientoPersona(models.Model):
|
|
390
|
+
"""
|
|
391
|
+
Modelo para fecha de nacimiento de personas.
|
|
392
|
+
|
|
393
|
+
Attributes:
|
|
394
|
+
id_fnacimiento: Identificador único UUID.
|
|
395
|
+
fecha_nacimiento: Fecha de nacimiento.
|
|
396
|
+
"""
|
|
397
|
+
id_fnacimiento = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
398
|
+
fecha_nacimiento = models.DateField(null=True, blank=True)
|
|
399
|
+
|
|
400
|
+
class Meta:
|
|
401
|
+
db_table = 'eco_sis_fnpersona'
|
|
402
|
+
verbose_name_plural = 'Fecha de nacimiento de la persona'
|
|
403
|
+
|
|
404
|
+
def __str__(self):
|
|
405
|
+
return str(self.id_fnacimiento)
|
|
406
|
+
|
|
407
|
+
class DatosNacimientoPersona(models.Model):
|
|
408
|
+
"""
|
|
409
|
+
Modelo consolidado de datos de nacimiento.
|
|
410
|
+
|
|
411
|
+
Agrupa lugar y fecha de nacimiento de una persona.
|
|
412
|
+
|
|
413
|
+
Attributes:
|
|
414
|
+
id_dnacimiento: Identificador único UUID.
|
|
415
|
+
Lugar_npersona: Lugar de nacimiento.
|
|
416
|
+
fecha_npersona: Fecha de nacimiento.
|
|
417
|
+
persona: Relación con datos básicos de la persona.
|
|
418
|
+
"""
|
|
419
|
+
id_dnacimiento = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
420
|
+
Lugar_npersona = models.ForeignKey(LugarNacimientoPersona, to_field='id_lnacimiento', on_delete=models.CASCADE, null=True, blank=True)
|
|
421
|
+
fecha_npersona = models.ForeignKey(FechaNacimientoPersona, to_field='id_fnacimiento', on_delete=models.CASCADE, null=True, blank=True)
|
|
422
|
+
persona = models.ForeignKey(DatosBasicosPersona, to_field='id_persona', on_delete=models.CASCADE, null=True, blank=True)
|
|
423
|
+
|
|
424
|
+
class Meta:
|
|
425
|
+
db_table = 'eco_sis_dnpersona'
|
|
426
|
+
verbose_name_plural = 'Datos de nacimiento de la persona'
|
|
427
|
+
|
|
428
|
+
def __str__(self):
|
|
429
|
+
return str(self.id_dnacimiento)
|
|
430
|
+
|
|
431
|
+
class DatosComplemetariosPersona(models.Model):
|
|
432
|
+
"""
|
|
433
|
+
Modelo para datos complementarios de personas.
|
|
434
|
+
|
|
435
|
+
Almacena información adicional demográfica y social de la persona.
|
|
436
|
+
|
|
437
|
+
Attributes:
|
|
438
|
+
id_complementarios: Identificador único UUID.
|
|
439
|
+
sexo: Sexo biológico.
|
|
440
|
+
orientacion_sexual: Orientación sexual.
|
|
441
|
+
rango_etario: Grupo de edad.
|
|
442
|
+
factor_diferencial: Factor diferencial de población.
|
|
443
|
+
tiene_discapacidad: Indicador de discapacidad.
|
|
444
|
+
pertenece_getnico: Indicador de pertenencia a grupo étnico.
|
|
445
|
+
pertenece_organizacion: Indicador de pertenencia a organización.
|
|
446
|
+
tiene_mcautelar: Indicador de medida cautelar.
|
|
447
|
+
registra_tercero: Indicador si registra en nombre de tercero.
|
|
448
|
+
persona: Relación con datos básicos de la persona.
|
|
449
|
+
"""
|
|
450
|
+
id_complementarios = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
451
|
+
sexo = models.ForeignKey(TipoSexo, to_field='id_tsexo', on_delete=models.CASCADE, null=True, blank=True)
|
|
452
|
+
orientacion_sexual = models.ForeignKey(TipoOrientacionSexual, to_field='id_torientacion', on_delete=models.CASCADE, null=True, blank=True)
|
|
453
|
+
rango_etario = models.ForeignKey(TipoRangoEtario, to_field='id_tretario', on_delete=models.CASCADE, null=True, blank=True)
|
|
454
|
+
factor_diferencial = models.ForeignKey(TipoFactorDiferencial, to_field='id_tfdiferencial', on_delete=models.CASCADE, null=True, blank=True)
|
|
455
|
+
tiene_discapacidad = models.BooleanField(default=False)
|
|
456
|
+
pertenece_getnico = models.BooleanField(default=False)
|
|
457
|
+
pertenece_organizacion = models.BooleanField(default=False)
|
|
458
|
+
tiene_mcautelar = models.BooleanField(default=False)
|
|
459
|
+
registra_tercero = models.BooleanField(default=False)
|
|
460
|
+
persona = models.ForeignKey(DatosBasicosPersona, to_field='id_persona', on_delete=models.CASCADE, null=True, blank=True)
|
|
461
|
+
|
|
462
|
+
class Meta:
|
|
463
|
+
db_table = 'eco_sis_cpersona'
|
|
464
|
+
verbose_name_plural = 'Datos complementarios de la persona'
|
|
465
|
+
|
|
466
|
+
def __str__(self):
|
|
467
|
+
return str(self.id_complementarios)
|
|
468
|
+
|
|
469
|
+
class NombreRepresentanteLegalMenor(models.Model):
|
|
470
|
+
"""
|
|
471
|
+
Modelo para nombres de representantes legales de menores.
|
|
472
|
+
|
|
473
|
+
Attributes:
|
|
474
|
+
id_nrepresentante: Identificador único UUID.
|
|
475
|
+
primer_nrepresentante: Primer nombre del representante.
|
|
476
|
+
segundo_nrepresentante: Segundo nombre del representante (opcional).
|
|
477
|
+
primer_arepresentante: Primer apellido del representante.
|
|
478
|
+
segundo_arepresentante: Segundo apellido del representante (opcional).
|
|
479
|
+
"""
|
|
480
|
+
id_nrepresentante = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
481
|
+
primer_nrepresentante = models.CharField(max_length=50, null=False, blank=False)
|
|
482
|
+
segundo_nrepresentante = models.CharField(max_length=50, null=True, blank=True)
|
|
483
|
+
primer_arepresentante = models.CharField(max_length=50, null=False, blank=False)
|
|
484
|
+
segundo_arepresentante = models.CharField(max_length=50, null=True, blank=True)
|
|
485
|
+
|
|
486
|
+
class Meta:
|
|
487
|
+
db_table = 'eco_sis_nrepresentante'
|
|
488
|
+
verbose_name_plural = 'Nombres y apellidos del representante legal'
|
|
489
|
+
|
|
490
|
+
def __str__(self):
|
|
491
|
+
return str(self.id_nrepresentante)
|
|
492
|
+
|
|
493
|
+
class IdentificacionRepresentante(models.Model):
|
|
494
|
+
"""
|
|
495
|
+
Modelo para identificación de representantes legales.
|
|
496
|
+
|
|
497
|
+
Attributes:
|
|
498
|
+
id_irepresentante: Identificador único UUID.
|
|
499
|
+
numero_irepresentante: Número de identificación del representante.
|
|
500
|
+
fecha_exrepresentante: Fecha de expedición del documento.
|
|
501
|
+
tipo_irepresentante: Tipo de documento de identificación.
|
|
502
|
+
"""
|
|
503
|
+
id_irepresentante = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
504
|
+
numero_irepresentante = models.CharField(max_length=20, null=False, blank=True)
|
|
505
|
+
fecha_exrepresentante = models.DateField()
|
|
506
|
+
tipo_irepresentante = models.ForeignKey(TipoIdentificacion, to_field='id_tidentificacion', on_delete=models.CASCADE)
|
|
507
|
+
|
|
508
|
+
class Meta:
|
|
509
|
+
db_table = 'eco_sis_rrepresentante'
|
|
510
|
+
verbose_name_plural = 'Datos de la identificación del representante legal'
|
|
511
|
+
|
|
512
|
+
def __str__(self):
|
|
513
|
+
return str(self.id_irepresentante)
|
|
514
|
+
|
|
515
|
+
class DatosRepresentanteLegal(models.Model):
|
|
516
|
+
"""
|
|
517
|
+
Modelo consolidado de datos del representante legal.
|
|
518
|
+
|
|
519
|
+
Agrupa nombre e identificación del representante legal de un menor.
|
|
520
|
+
|
|
521
|
+
Attributes:
|
|
522
|
+
id_rrepresentante: Identificador único UUID.
|
|
523
|
+
nombre_rrepresentante: Nombre completo del representante.
|
|
524
|
+
identificacion_rrepresentante: Identificación del representante.
|
|
525
|
+
persona: Relación con la persona representada.
|
|
526
|
+
"""
|
|
527
|
+
id_rrepresentante = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
528
|
+
nombre_rrepresentante = models.ForeignKey(NombreRepresentanteLegalMenor, to_field='id_nrepresentante', on_delete=models.CASCADE)
|
|
529
|
+
identificacion_rrepresentante = models.ForeignKey(IdentificacionRepresentante, to_field='id_irepresentante', on_delete=models.CASCADE)
|
|
530
|
+
persona = models.ForeignKey(DatosBasicosPersona, to_field='id_persona', on_delete=models.CASCADE, null=True, blank=True)
|
|
531
|
+
|
|
532
|
+
class Meta:
|
|
533
|
+
db_table = 'eco_sis_representantelegal'
|
|
534
|
+
verbose_name_plural = 'Datos del representante legal'
|
|
535
|
+
|
|
536
|
+
def __str__(self):
|
|
537
|
+
return str(self.id_rrepresentante)
|
|
538
|
+
|
|
539
|
+
class NombrePersonaTercero(models.Model):
|
|
540
|
+
"""
|
|
541
|
+
Modelo para nombres de terceras personas.
|
|
542
|
+
|
|
543
|
+
Nombre completo de persona tercera que realiza el registro.
|
|
544
|
+
|
|
545
|
+
Attributes:
|
|
546
|
+
id_ntpersona: Identificador único UUID.
|
|
547
|
+
primer_nombre: Primer nombre.
|
|
548
|
+
segundo_nombre: Segundo nombre (opcional).
|
|
549
|
+
primer_apellido: Primer apellido.
|
|
550
|
+
segundo_apellido: Segundo apellido (opcional).
|
|
551
|
+
"""
|
|
552
|
+
id_ntpersona = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
553
|
+
primer_nombre = models.CharField(max_length=20, null=False, blank=False)
|
|
554
|
+
segundo_nombre = models.CharField(max_length=50, null=True, blank=True)
|
|
555
|
+
primer_apellido = models.CharField(max_length=50, null=False, blank=False)
|
|
556
|
+
segundo_apellido = models.CharField(max_length=50, null=True, blank=True)
|
|
557
|
+
|
|
558
|
+
class Meta:
|
|
559
|
+
db_table = 'eco_sis_ntercero'
|
|
560
|
+
verbose_name_plural = 'Nombre y apellido del tercero'
|
|
561
|
+
|
|
562
|
+
def __str__(self):
|
|
563
|
+
return str(self.id_ntpersona) + str(self.primer_nombre)
|
|
564
|
+
|
|
565
|
+
class TerceroPersona(models.Model):
|
|
566
|
+
"""
|
|
567
|
+
Modelo para datos de tercero que registra.
|
|
568
|
+
|
|
569
|
+
Attributes:
|
|
570
|
+
id_tercero: Identificador único UUID.
|
|
571
|
+
nombre_tercero: Nombre del tercero.
|
|
572
|
+
cpersona: Relación con datos complementarios de la persona.
|
|
573
|
+
"""
|
|
574
|
+
id_tercero = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
575
|
+
nombre_tercero = models.ForeignKey(NombrePersonaTercero, to_field='id_ntpersona', on_delete=models.CASCADE)
|
|
576
|
+
cpersona = models.ForeignKey(DatosComplemetariosPersona, to_field='id_complementarios', on_delete=models.CASCADE)
|
|
577
|
+
|
|
578
|
+
class Meta:
|
|
579
|
+
db_table = 'eco_sis_tercero'
|
|
580
|
+
verbose_name_plural = 'Datos de tercero'
|
|
581
|
+
|
|
582
|
+
def __str__(self):
|
|
583
|
+
return str(self.id_tercero)
|
|
584
|
+
|
|
585
|
+
class DireccionNotificacionPersona(models.Model):
|
|
586
|
+
"""
|
|
587
|
+
Modelo para dirección de notificación de personas.
|
|
588
|
+
|
|
589
|
+
Attributes:
|
|
590
|
+
id_notificacion: Identificador único UUID.
|
|
591
|
+
persona: Relación con datos básicos de la persona.
|
|
592
|
+
activa: Indicador si la dirección está activa.
|
|
593
|
+
"""
|
|
594
|
+
id_notificacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
595
|
+
persona = models.ForeignKey(DatosBasicosPersona, to_field='id_persona', on_delete=models.CASCADE)
|
|
596
|
+
activa = models.BooleanField(default=False)
|
|
597
|
+
|
|
598
|
+
class Meta:
|
|
599
|
+
db_table = 'eco_gsc_npersona'
|
|
600
|
+
verbose_name_plural = 'Datos de nacimiento de la persona'
|
|
601
|
+
|
|
602
|
+
def __str__(self):
|
|
603
|
+
return str(self.ubicacion_notificacion)
|
|
604
|
+
|
|
605
|
+
class NombreIdentitario(models.Model):
|
|
606
|
+
"""
|
|
607
|
+
Modelo para nombre identitario de género.
|
|
608
|
+
|
|
609
|
+
Attributes:
|
|
610
|
+
id_identitario: Identificador único UUID.
|
|
611
|
+
nombre_identitario: Nombre con el que se identifica la persona.
|
|
612
|
+
cpersona: Relación con datos complementarios de la persona.
|
|
613
|
+
"""
|
|
614
|
+
id_identitario = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
615
|
+
nombre_identitario = models.CharField(max_length=60, null=True, blank=True)
|
|
616
|
+
cpersona = models.ForeignKey(DatosComplemetariosPersona, to_field='id_complementarios', on_delete=models.CASCADE)
|
|
617
|
+
|
|
618
|
+
class Meta:
|
|
619
|
+
db_table = 'eco_gsc_nidentitario'
|
|
620
|
+
verbose_name_plural = 'Nombre identitario'
|
|
621
|
+
|
|
622
|
+
def __str__(self):
|
|
623
|
+
return str(self.id_identitario)
|
|
624
|
+
|
|
625
|
+
class PersonasCargo(models.Model):
|
|
626
|
+
"""
|
|
627
|
+
Modelo para número de personas a cargo.
|
|
628
|
+
|
|
629
|
+
Attributes:
|
|
630
|
+
id_pcargo: Identificador único UUID.
|
|
631
|
+
numero_pcargo: Número de personas a cargo.
|
|
632
|
+
factor_diferencial: Relación con datos complementarios de la persona.
|
|
633
|
+
"""
|
|
634
|
+
id_pcargo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
635
|
+
numero_pcargo= models.SmallIntegerField(null=True, blank=True)
|
|
636
|
+
factor_diferencial = models.ForeignKey(DatosComplemetariosPersona, to_field='id_complementarios', on_delete=models.CASCADE)
|
|
637
|
+
|
|
638
|
+
class Meta:
|
|
639
|
+
db_table = 'eco_gsc_personascargo'
|
|
640
|
+
verbose_name_plural = 'Número de personas a cargo'
|
|
641
|
+
|
|
642
|
+
def __str__(self):
|
|
643
|
+
return str(self.id_pcargo)
|
|
644
|
+
|
|
645
|
+
class DispacidadPersona(models.Model):
|
|
646
|
+
"""
|
|
647
|
+
Modelo para discapacidad de personas.
|
|
648
|
+
|
|
649
|
+
Attributes:
|
|
650
|
+
id_dpersona: Identificador único UUID.
|
|
651
|
+
tipo_discapacidad: Tipo de discapacidad.
|
|
652
|
+
cpersona: Relación con datos complementarios de la persona.
|
|
653
|
+
"""
|
|
654
|
+
id_dpersona = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
655
|
+
tipo_discapacidad = models.ForeignKey(TipoDiscapacidad, to_field='id_tdiscapacidad',on_delete=models.CASCADE)
|
|
656
|
+
cpersona = models.ForeignKey(DatosComplemetariosPersona, to_field='id_complementarios', on_delete=models.CASCADE)
|
|
657
|
+
|
|
658
|
+
class Meta:
|
|
659
|
+
db_table = 'eco_gsc_discapacidadpersona'
|
|
660
|
+
verbose_name_plural = 'Discapacidad de la persona'
|
|
661
|
+
|
|
662
|
+
def __str__(self):
|
|
663
|
+
return str(self.id_dpersona)
|
|
664
|
+
|
|
665
|
+
class GrupoEtnicoPersona(models.Model):
|
|
666
|
+
"""
|
|
667
|
+
Modelo para grupo étnico de personas.
|
|
668
|
+
|
|
669
|
+
Attributes:
|
|
670
|
+
id_getnico: Identificador único UUID.
|
|
671
|
+
tipo_getnico: Tipo de grupo étnico.
|
|
672
|
+
cpersona: Relación con datos complementarios de la persona.
|
|
673
|
+
"""
|
|
674
|
+
id_getnico = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
675
|
+
tipo_getnico = models.ForeignKey(TipoGrupoEtnico, to_field='id_tetnico', on_delete=models.CASCADE)
|
|
676
|
+
cpersona = models.ForeignKey(DatosComplemetariosPersona, to_field='id_complementarios', on_delete=models.CASCADE)
|
|
677
|
+
|
|
678
|
+
class Meta:
|
|
679
|
+
db_table = 'eco_gsc_grupoetnico'
|
|
680
|
+
verbose_name_plural = 'Grupo étnico de la persona'
|
|
681
|
+
|
|
682
|
+
def __str__(self):
|
|
683
|
+
return str(self.id_getnico)
|
|
684
|
+
|
|
685
|
+
class GrupoIndigena(models.Model):
|
|
686
|
+
"""
|
|
687
|
+
Modelo para datos de grupo indígena.
|
|
688
|
+
|
|
689
|
+
Attributes:
|
|
690
|
+
id_gindigena: Identificador único UUID.
|
|
691
|
+
etnia: Nombre de la etnia.
|
|
692
|
+
resguardo: Resguardo al que pertenece.
|
|
693
|
+
comunidad: Comunidad indígena.
|
|
694
|
+
parcialidad: Parcialidad.
|
|
695
|
+
comunidad_sregistro: Comunidad sin registro.
|
|
696
|
+
"""
|
|
697
|
+
id_gindigena = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
698
|
+
etnia = models.CharField(max_length=100, null=True, blank=True)
|
|
699
|
+
resguardo = models.CharField(max_length=100, null=True, blank=True)
|
|
700
|
+
comunidad = models.CharField(max_length=100, null=True, blank=True)
|
|
701
|
+
parcialidad = models.CharField(max_length=100, null=True, blank=True)
|
|
702
|
+
comunidad_sregistro = models.CharField(max_length=100, null=True, blank=True)
|
|
703
|
+
|
|
704
|
+
class Meta:
|
|
705
|
+
db_table = 'eco_gsc_grupoindigena'
|
|
706
|
+
verbose_name_plural = 'Grupo indígena de la persona'
|
|
707
|
+
|
|
708
|
+
def __str__(self):
|
|
709
|
+
return str(self.id_gindigena)
|
|
710
|
+
|
|
711
|
+
class EtnicoIndigena(models.Model):
|
|
712
|
+
"""
|
|
713
|
+
Modelo para relacionar grupo étnico con datos indígenas.
|
|
714
|
+
|
|
715
|
+
Attributes:
|
|
716
|
+
id_etnicoindigena: Identificador único UUID.
|
|
717
|
+
grupo_etnico: Relación con grupo étnico.
|
|
718
|
+
grupo_indigena: Relación con datos específicos indígenas.
|
|
719
|
+
"""
|
|
720
|
+
id_etnicoindigena = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
721
|
+
grupo_etnico = models.ForeignKey(GrupoEtnicoPersona, to_field='id_getnico', on_delete=models.CASCADE)
|
|
722
|
+
grupo_indigena = models.ForeignKey(GrupoIndigena, to_field='id_gindigena', on_delete=models.CASCADE)
|
|
723
|
+
|
|
724
|
+
class Meta:
|
|
725
|
+
db_table = 'eco_gsc_etnicoindigena'
|
|
726
|
+
verbose_name_plural = 'Grupo étnico indígena de la persona'
|
|
727
|
+
|
|
728
|
+
def __str__(self):
|
|
729
|
+
return str(self.id_etnicoindigena)
|
|
730
|
+
|
|
731
|
+
class OtroGrupoPersona(models.Model):
|
|
732
|
+
"""
|
|
733
|
+
Modelo para otros grupos étnicos.
|
|
734
|
+
|
|
735
|
+
Attributes:
|
|
736
|
+
id_ogetnico: Identificador único UUID.
|
|
737
|
+
nombre_ccomunitario: Nombre del consejo comunitario u otro grupo.
|
|
738
|
+
"""
|
|
739
|
+
id_ogetnico = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
740
|
+
nombre_ccomunitario = models.CharField(max_length=100, null=True, blank=True)
|
|
741
|
+
|
|
742
|
+
class Meta:
|
|
743
|
+
db_table = 'eco_gsc_ogetnico'
|
|
744
|
+
verbose_name_plural = 'Otro grupo de la persona'
|
|
745
|
+
|
|
746
|
+
def __str__(self):
|
|
747
|
+
return str(self.id_ogetnico)
|
|
748
|
+
|
|
749
|
+
class EtnicoConcejo(models.Model):
|
|
750
|
+
"""
|
|
751
|
+
Modelo para relacionar grupo étnico con otros grupos.
|
|
752
|
+
|
|
753
|
+
Attributes:
|
|
754
|
+
id_etnicoconcejo: Identificador único UUID.
|
|
755
|
+
grupo_etnico: Relación con grupo étnico.
|
|
756
|
+
otro_grupo: Relación con otros grupos étnicos.
|
|
757
|
+
"""
|
|
758
|
+
id_etnicoconcejo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
759
|
+
grupo_etnico = models.ForeignKey(GrupoEtnicoPersona, to_field='id_getnico', on_delete=models.CASCADE)
|
|
760
|
+
otro_grupo = models.ForeignKey(OtroGrupoPersona, to_field='id_ogetnico', on_delete=models.CASCADE)
|
|
761
|
+
|
|
762
|
+
class Meta:
|
|
763
|
+
db_table = 'eco_gsc_etnicoconcejo'
|
|
764
|
+
verbose_name_plural = 'Otro grupo étnico de la persona'
|
|
765
|
+
|
|
766
|
+
def __str__(self):
|
|
767
|
+
return str(self.id_etnicoconcejo)
|
|
768
|
+
|
|
769
|
+
class Organizacion(models.Model):
|
|
770
|
+
"""
|
|
771
|
+
Modelo para organizaciones.
|
|
772
|
+
|
|
773
|
+
Attributes:
|
|
774
|
+
id_organizacion: Identificador único UUID.
|
|
775
|
+
nombre_organizacion: Nombre de la organización.
|
|
776
|
+
tipo_organizacion: Tipo de organización.
|
|
777
|
+
tiene_pjuridica: Indicador si tiene personería jurídica.
|
|
778
|
+
"""
|
|
779
|
+
id_organizacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
780
|
+
nombre_organizacion = models.CharField(max_length=100, null=True, blank=True)
|
|
781
|
+
tipo_organizacion = models.ForeignKey(TipoOrganizacionPersona, to_field='id_torganizacion', on_delete=models.CASCADE)
|
|
782
|
+
tiene_pjuridica = models.BooleanField(default=False)
|
|
783
|
+
|
|
784
|
+
class Meta:
|
|
785
|
+
db_table = 'eco_gsc_organizacion'
|
|
786
|
+
verbose_name_plural = 'Organizaciones'
|
|
787
|
+
|
|
788
|
+
def __str__(self):
|
|
789
|
+
return str(self.id_organizacion)
|
|
790
|
+
|
|
791
|
+
class OtraOrganizacion(models.Model):
|
|
792
|
+
"""
|
|
793
|
+
Modelo para otras organizaciones no listadas.
|
|
794
|
+
|
|
795
|
+
Attributes:
|
|
796
|
+
id_oorganizacion: Identificador único UUID.
|
|
797
|
+
nombre_oorganizacion: Nombre de otra organización.
|
|
798
|
+
organizacion: Relación con organización base.
|
|
799
|
+
"""
|
|
800
|
+
id_oorganizacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
801
|
+
nombre_oorganizacion = models.CharField(max_length=100, null=True, blank=True)
|
|
802
|
+
organizacion = models.ForeignKey(Organizacion, to_field='id_organizacion', on_delete=models.CASCADE)
|
|
803
|
+
|
|
804
|
+
class Meta:
|
|
805
|
+
db_table = 'eco_gsc_oorganizacion'
|
|
806
|
+
verbose_name_plural = 'Otro tipo de organización'
|
|
807
|
+
|
|
808
|
+
def __str__(self):
|
|
809
|
+
return str(self.id_oorganizacion)
|
|
810
|
+
|
|
811
|
+
class PersoneriaJuridica(models.Model):
|
|
812
|
+
"""
|
|
813
|
+
Modelo para personería jurídica de organizaciones.
|
|
814
|
+
|
|
815
|
+
Attributes:
|
|
816
|
+
id_pjuridica: Identificador único UUID.
|
|
817
|
+
numero_pjuridica: Número de personería jurídica.
|
|
818
|
+
organizacion: Relación con la organización.
|
|
819
|
+
"""
|
|
820
|
+
id_pjuridica = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
821
|
+
numero_pjuridica= models.CharField(max_length=20, blank=True, null=True)
|
|
822
|
+
organizacion = models.ForeignKey(Organizacion, to_field='id_organizacion', on_delete=models.CASCADE)
|
|
823
|
+
|
|
824
|
+
class Meta:
|
|
825
|
+
db_table = 'eco_gsc_pjorganizacion'
|
|
826
|
+
verbose_name_plural = 'Personería jurídica de la organización'
|
|
827
|
+
|
|
828
|
+
def __str__(self):
|
|
829
|
+
return str(self.id_pjuridica)
|
|
830
|
+
|
|
831
|
+
class OrganizacionPersona(models.Model):
|
|
832
|
+
"""
|
|
833
|
+
Modelo para relacionar personas con organizaciones.
|
|
834
|
+
|
|
835
|
+
Attributes:
|
|
836
|
+
id_orgpersona: Identificador único UUID.
|
|
837
|
+
cpersona: Relación con datos complementarios de la persona.
|
|
838
|
+
organizacion: Relación con la organización.
|
|
839
|
+
"""
|
|
840
|
+
id_orgpersona = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
841
|
+
cpersona = models.ForeignKey(DatosComplemetariosPersona, to_field='id_complementarios', on_delete=models.CASCADE)
|
|
842
|
+
organizacion = models.ForeignKey(Organizacion, to_field='id_organizacion', on_delete=models.CASCADE)
|
|
843
|
+
|
|
844
|
+
class Meta:
|
|
845
|
+
db_table = 'eco_gsc_organizacionpersona'
|
|
846
|
+
verbose_name_plural = 'Organización a la que pertenece la persona'
|
|
847
|
+
|
|
848
|
+
def __str__(self):
|
|
849
|
+
return str(self.id_orgpersona)
|
|
850
|
+
|
|
851
|
+
class MedidaCuatelarPersona(models.Model):
|
|
852
|
+
"""
|
|
853
|
+
Modelo para medidas cautelares de personas.
|
|
854
|
+
|
|
855
|
+
Attributes:
|
|
856
|
+
id_mcautelar: Identificador único UUID.
|
|
857
|
+
tipo_mcautelar: Tipo de medida cautelar.
|
|
858
|
+
cpersona: Relación con datos complementarios de la persona.
|
|
859
|
+
"""
|
|
860
|
+
id_mcautelar = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
861
|
+
tipo_mcautelar = models.ForeignKey(TipoMedidaCautelar, to_field='id_tmcautelar', on_delete=models.CASCADE)
|
|
862
|
+
cpersona = models.ForeignKey(DatosComplemetariosPersona, to_field='id_complementarios', on_delete=models.CASCADE)
|
|
863
|
+
|
|
864
|
+
class Meta:
|
|
865
|
+
db_table = 'eco_gsc_mcautelar'
|
|
866
|
+
verbose_name_plural = 'Medida cautelar de la persona'
|
|
867
|
+
|
|
868
|
+
def __str__(self):
|
|
869
|
+
return str(self.id_mcautelar)
|
|
870
|
+
|
|
871
|
+
class ActividadAmbientalPersona(models.Model):
|
|
872
|
+
"""
|
|
873
|
+
Modelo para indicar si desarrolla actividad ambiental.
|
|
874
|
+
|
|
875
|
+
Attributes:
|
|
876
|
+
id_actividadambiental: Identificador único UUID.
|
|
877
|
+
desarrolla_aambiental: Indicador de actividad ambiental.
|
|
878
|
+
cpersona: Relación con datos complementarios de la persona.
|
|
879
|
+
"""
|
|
880
|
+
id_actividadambiental = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
881
|
+
desarrolla_aambiental = models.BooleanField(default=False)
|
|
882
|
+
cpersona = models.ForeignKey(DatosComplemetariosPersona, to_field='id_complementarios', on_delete=models.CASCADE)
|
|
883
|
+
|
|
884
|
+
class Meta:
|
|
885
|
+
db_table = 'eco_gsc_aambiental'
|
|
886
|
+
verbose_name_plural = 'Dasarrolla actividad ambiental'
|
|
887
|
+
|
|
888
|
+
def __str__(self):
|
|
889
|
+
return str(self.id_actividadambiental)
|
|
890
|
+
|
|
891
|
+
class MujerVictimaBuscadora(models.Model):
|
|
892
|
+
"""
|
|
893
|
+
Modelo para mujeres buscadoras de víctimas de desaparición forzada.
|
|
894
|
+
|
|
895
|
+
Attributes:
|
|
896
|
+
id_mbvdforzada: Identificador único UUID.
|
|
897
|
+
es_mbvdforzada: Indicador si es buscadora de víctimas.
|
|
898
|
+
cpersona: Relación con datos complementarios de la persona.
|
|
899
|
+
"""
|
|
900
|
+
id_mbvdforzada = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
901
|
+
es_mbvdforzada = models.BooleanField(default=False)
|
|
902
|
+
cpersona = models.ForeignKey(DatosComplemetariosPersona, to_field='id_complementarios', on_delete=models.CASCADE)
|
|
903
|
+
|
|
904
|
+
class Meta:
|
|
905
|
+
db_table = 'eco_gsc_mbvdforzada'
|
|
906
|
+
verbose_name_plural = 'Mujer buscadora de víctimas de desaparición forzada'
|
|
907
|
+
|
|
908
|
+
def __str__(self):
|
|
909
|
+
return str(self.id_mbvdforzada)
|
|
910
|
+
|
|
911
|
+
class IdRiesgo(models.Model):
|
|
912
|
+
"""
|
|
913
|
+
Modelo para la identificación del riesgo de una persona.
|
|
914
|
+
|
|
915
|
+
Attributes:
|
|
916
|
+
id_iriesgo: Identificador único UUID.
|
|
917
|
+
persona: Relación con datos básicos de la persona en riesgo.
|
|
918
|
+
"""
|
|
919
|
+
id_iriesgo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
920
|
+
persona = models.ForeignKey(DatosBasicosPersona, to_field='id_persona', on_delete=models.CASCADE)
|
|
921
|
+
|
|
922
|
+
class Meta:
|
|
923
|
+
db_table = 'eco_gsc_identificacionriesgo'
|
|
924
|
+
verbose_name_plural = 'Identificación del Riesgo'
|
|
925
|
+
|
|
926
|
+
def __str__(self):
|
|
927
|
+
return str(self.id_iriesgo)
|
|
928
|
+
|
|
929
|
+
class IdentificacionSituacion(models.Model):
|
|
930
|
+
"""
|
|
931
|
+
Modelo para identificar situaciones de riesgo específicas.
|
|
932
|
+
|
|
933
|
+
Attributes:
|
|
934
|
+
id_identificacionSituacion: Identificador único UUID.
|
|
935
|
+
identificacion_riesgo: Relación con la identificación de riesgo principal.
|
|
936
|
+
tipo_sriesgo: Tipo de situación de riesgo.
|
|
937
|
+
"""
|
|
938
|
+
id_identificacionSituacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
939
|
+
identificacion_riesgo = models.ForeignKey(IdRiesgo, to_field='id_iriesgo', on_delete=models.CASCADE)
|
|
940
|
+
tipo_sriesgo = models.ForeignKey(TipoSituacionesRiesgo, to_field='id_tiporiesgo', on_delete=models.CASCADE)
|
|
941
|
+
|
|
942
|
+
class Meta:
|
|
943
|
+
db_table = 'eco_gsc_identificacionsituacion'
|
|
944
|
+
verbose_name_plural = 'Identificación de las situaciones de riesgo'
|
|
945
|
+
|
|
946
|
+
def __str__(self):
|
|
947
|
+
return str(self.id_identificacionSituacion)
|
|
948
|
+
|
|
949
|
+
class OtraSituacionRiesgo(models.Model):
|
|
950
|
+
"""
|
|
951
|
+
Modelo para otras situaciones de riesgo no listadas.
|
|
952
|
+
|
|
953
|
+
Attributes:
|
|
954
|
+
id_osriesgo: Identificador único UUID.
|
|
955
|
+
nombre_osituacion: Nombre descriptivo de otra situación.
|
|
956
|
+
identificacion_situacion: Relación con identificación de riesgo.
|
|
957
|
+
"""
|
|
958
|
+
id_osriesgo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
959
|
+
nombre_osituacion = models.CharField(max_length=50, null=True, blank=True)
|
|
960
|
+
identificacion_situacion = models.ForeignKey(IdRiesgo, to_field='id_iriesgo', on_delete=models.CASCADE)
|
|
961
|
+
|
|
962
|
+
class Meta:
|
|
963
|
+
db_table = 'eco_gsc_osriesgo'
|
|
964
|
+
verbose_name_plural = 'Otra situación de riesgo'
|
|
965
|
+
def __str__(self):
|
|
966
|
+
return str(self.id_osriesgo)
|
|
967
|
+
|
|
968
|
+
class IdentificacionMedio(models.Model):
|
|
969
|
+
"""
|
|
970
|
+
Modelo para identificar medios de situación de riesgo.
|
|
971
|
+
|
|
972
|
+
Attributes:
|
|
973
|
+
id_identificacionmedio: Identificador único UUID.
|
|
974
|
+
identificacion_riesgo: Relación con identificación de riesgo.
|
|
975
|
+
medio_situacion: Tipo de medio de situación.
|
|
976
|
+
"""
|
|
977
|
+
id_identificacionmedio = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
978
|
+
identificacion_riesgo = models.ForeignKey(IdRiesgo, to_field='id_iriesgo', on_delete=models.CASCADE)
|
|
979
|
+
medio_situacion = models.ForeignKey(TipoMediosSituacion, to_field='id_msituacion', on_delete=models.CASCADE)
|
|
980
|
+
|
|
981
|
+
class Meta:
|
|
982
|
+
db_table = 'eco_gsc_identificacionmedio'
|
|
983
|
+
verbose_name_plural = 'Identificacion de los medios de la situación de riesgo'
|
|
984
|
+
|
|
985
|
+
def __str__(self):
|
|
986
|
+
return str(self.id_identificacionmedio)
|
|
987
|
+
|
|
988
|
+
class RelatosHechos(models.Model):
|
|
989
|
+
"""
|
|
990
|
+
Modelo para el relato de los hechos victimizantes.
|
|
991
|
+
|
|
992
|
+
Attributes:
|
|
993
|
+
id_rhechos: Identificador único UUID.
|
|
994
|
+
relato_hechos: Texto descriptivo del relato (hasta 5000 caracteres).
|
|
995
|
+
identificacion_riesgo: Relación con identificación de riesgo.
|
|
996
|
+
"""
|
|
997
|
+
id_rhechos = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
998
|
+
relato_hechos = models.CharField(max_length=5000, null=False, blank=False)
|
|
999
|
+
identificacion_riesgo = models.ForeignKey(IdRiesgo, to_field='id_iriesgo', on_delete=models.CASCADE)
|
|
1000
|
+
|
|
1001
|
+
class Meta:
|
|
1002
|
+
db_table = 'eco_gsc_relatohechos'
|
|
1003
|
+
verbose_name_plural = 'Relato de los hechos victimizantes'
|
|
1004
|
+
|
|
1005
|
+
def __str__(self):
|
|
1006
|
+
return str(self.id_rhechos)
|
|
1007
|
+
|
|
1008
|
+
class IdPoblacion(models.Model):
|
|
1009
|
+
"""
|
|
1010
|
+
Modelo para identificar poblaciones objeto.
|
|
1011
|
+
|
|
1012
|
+
Attributes:
|
|
1013
|
+
id_ipoblacion: Identificador único UUID.
|
|
1014
|
+
persona: Relación con datos básicos de la persona.
|
|
1015
|
+
"""
|
|
1016
|
+
id_ipoblacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1017
|
+
persona = models.ForeignKey(DatosBasicosPersona, to_field='id_persona', on_delete=models.CASCADE)
|
|
1018
|
+
|
|
1019
|
+
class Meta:
|
|
1020
|
+
db_table = 'eco_gsc_idpoblacion'
|
|
1021
|
+
verbose_name_plural = 'Identificación de la población objeto'
|
|
1022
|
+
|
|
1023
|
+
def __str__(self):
|
|
1024
|
+
return str(self.id_ipoblacion)
|
|
1025
|
+
|
|
1026
|
+
class IdentificacionPoblacionObjeto(models.Model):
|
|
1027
|
+
"""
|
|
1028
|
+
Modelo para poblaciones objeto identificadas por la persona.
|
|
1029
|
+
|
|
1030
|
+
Attributes:
|
|
1031
|
+
id_ipobjeto: Identificador único UUID.
|
|
1032
|
+
identificacion_poblacion: Relación con identificación de población.
|
|
1033
|
+
poblacion_objeto: Tipo de población objeto.
|
|
1034
|
+
"""
|
|
1035
|
+
id_ipobjeto = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1036
|
+
identificacion_poblacion = models.ForeignKey(IdPoblacion, to_field='id_ipoblacion', on_delete=models.CASCADE)
|
|
1037
|
+
poblacion_objeto = models.ForeignKey(PoblacionObjeto, to_field='id_poblacionobjeto', on_delete=models.CASCADE)
|
|
1038
|
+
|
|
1039
|
+
class Meta:
|
|
1040
|
+
db_table = 'eco_gsc_ipobjeto'
|
|
1041
|
+
verbose_name_plural = 'Poblaciones objeto identificadas por la persona'
|
|
1042
|
+
|
|
1043
|
+
def __str__(self):
|
|
1044
|
+
return str(self.id_ipobjeto)
|
|
1045
|
+
|
|
1046
|
+
class OrganizacionPolitica(models.Model):
|
|
1047
|
+
"""
|
|
1048
|
+
Modelo para organizaciones políticas (población 1).
|
|
1049
|
+
|
|
1050
|
+
Attributes:
|
|
1051
|
+
id_porganizacion: Identificador único UUID.
|
|
1052
|
+
pertene_poprganizacion: Indicador si pertenece a organización política.
|
|
1053
|
+
poblacion_objeto: Relación con población objeto.
|
|
1054
|
+
tipo_catorganizacion: Categoría de organización.
|
|
1055
|
+
"""
|
|
1056
|
+
id_porganizacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1057
|
+
pertene_poprganizacion = models.BooleanField(default=False)
|
|
1058
|
+
poblacion_objeto = models.ForeignKey(IdPoblacion, to_field='id_ipoblacion', on_delete=models.CASCADE)
|
|
1059
|
+
tipo_catorganizacion = models.ForeignKey(TipoCategoriaOrganizacion, to_field='id_catorganizacion', on_delete=models.CASCADE)
|
|
1060
|
+
class Meta:
|
|
1061
|
+
db_table = 'eco_gsc_porganizacion'
|
|
1062
|
+
verbose_name_plural = 'Organizaciones Politicas poblacion 1'
|
|
1063
|
+
def __str__(self):
|
|
1064
|
+
return str(self.id_porganizacion)
|
|
1065
|
+
|
|
1066
|
+
class CargoOrganizacion(models.Model):
|
|
1067
|
+
"""
|
|
1068
|
+
Modelo para cargos en organizaciones (población 2).
|
|
1069
|
+
|
|
1070
|
+
Attributes:
|
|
1071
|
+
id_corganizacion: Identificador único UUID.
|
|
1072
|
+
nombre_corganizacion: Nombre del cargo en la organización.
|
|
1073
|
+
Poblacion_objeto: Relación con población objeto.
|
|
1074
|
+
"""
|
|
1075
|
+
id_corganizacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1076
|
+
nombre_corganizacion = models.CharField(max_length=200, null=True, blank=True)
|
|
1077
|
+
Poblacion_objeto = models.ForeignKey(IdPoblacion, to_field='id_ipoblacion', on_delete=models.CASCADE)
|
|
1078
|
+
class Meta:
|
|
1079
|
+
db_table = 'eco_gsc_corganizacion'
|
|
1080
|
+
verbose_name_plural = 'Cargos de las organizaciones poblacion 2'
|
|
1081
|
+
|
|
1082
|
+
def __str__(self):
|
|
1083
|
+
return str(self.id_corganizacion)
|
|
1084
|
+
|
|
1085
|
+
class DatosPnis(models.Model):
|
|
1086
|
+
"""
|
|
1087
|
+
Modelo para datos del Programa Nacional Integral de Sustitución (PNIS).
|
|
1088
|
+
|
|
1089
|
+
Attributes:
|
|
1090
|
+
id_pnis: Identificador único UUID.
|
|
1091
|
+
pertenece_pnis: Indicador de pertenencia al PNIS.
|
|
1092
|
+
categoria_pnis: Categoría dentro del PNIS.
|
|
1093
|
+
poblacion_objeto: Relación con población objeto.
|
|
1094
|
+
"""
|
|
1095
|
+
id_pnis = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1096
|
+
pertenece_pnis = models.BooleanField(default=False)
|
|
1097
|
+
categoria_pnis = models.ForeignKey(CategoriaPnis, to_field='id_categoriapnis', on_delete=models.CASCADE)
|
|
1098
|
+
poblacion_objeto = models.ForeignKey(IdPoblacion, to_field='id_ipoblacion', on_delete=models.CASCADE)
|
|
1099
|
+
class Meta:
|
|
1100
|
+
db_table = 'eco_gsc_datospnis'
|
|
1101
|
+
verbose_name_plural = 'Datos del PNIS'
|
|
1102
|
+
def __str__(self):
|
|
1103
|
+
return str(self.id_pnis)
|
|
1104
|
+
|
|
1105
|
+
class Consentimiento(models.Model):
|
|
1106
|
+
"""
|
|
1107
|
+
Modelo para el consentimiento informado de la persona.
|
|
1108
|
+
|
|
1109
|
+
Attributes:
|
|
1110
|
+
id_consentimiento: Identificador único UUID.
|
|
1111
|
+
acepta_tdpersonales: Aceptación de tratamiento de datos personales.
|
|
1112
|
+
autoriza_pnacional: Autorización para programa nacional.
|
|
1113
|
+
autoriza_cmujeres: Autorización para consejera de mujeres.
|
|
1114
|
+
persona: Relación con datos complementarios de la persona.
|
|
1115
|
+
"""
|
|
1116
|
+
id_consentimiento = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1117
|
+
acepta_tdpersonales = models.BooleanField(null=False)
|
|
1118
|
+
autoriza_pnacional = models.BooleanField(null=False)
|
|
1119
|
+
autoriza_cmujeres = models.BooleanField(null=False)
|
|
1120
|
+
persona = models.ForeignKey(DatosComplemetariosPersona, to_field='id_complementarios', on_delete=models.CASCADE)
|
|
1121
|
+
|
|
1122
|
+
class Meta:
|
|
1123
|
+
db_table = 'eco_gsc_consentimiento'
|
|
1124
|
+
verbose_name_plural = 'Consentimiento de la persona'
|
|
1125
|
+
|
|
1126
|
+
def __str__(self):
|
|
1127
|
+
return str(self.id_consentimiento)
|
|
1128
|
+
|
|
1129
|
+
|
|
1130
|
+
##### MODELOS DE FORMULARIOS #######
|
|
1131
|
+
|
|
1132
|
+
class fechaDiligenciamientoFormulario(models.Model):
|
|
1133
|
+
"""
|
|
1134
|
+
Modelo para fecha de diligenciamiento del formulario.
|
|
1135
|
+
|
|
1136
|
+
Attributes:
|
|
1137
|
+
id_fdformulario: Identificador único UUID.
|
|
1138
|
+
fecha_dformulario: Fecha en que se diligenci\u00f3 el formulario.
|
|
1139
|
+
"""
|
|
1140
|
+
id_fdformulario = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1141
|
+
fecha_dformulario = models.DateField(null=True, blank=True)
|
|
1142
|
+
|
|
1143
|
+
class Meta:
|
|
1144
|
+
db_table = 'eco_reg_fdiligenciamiento'
|
|
1145
|
+
verbose_name_plural = 'fecha de diligenciamiento del formualario'
|
|
1146
|
+
|
|
1147
|
+
def __str__(self):
|
|
1148
|
+
return str(self.id_fdformulario)
|
|
1149
|
+
|
|
1150
|
+
class lugarDiligenciamientoFormulario(models.Model):
|
|
1151
|
+
"""
|
|
1152
|
+
Modelo para lugar de diligenciamiento del formulario.
|
|
1153
|
+
|
|
1154
|
+
Attributes:
|
|
1155
|
+
id_ldiligenciamiento: Identificador único UUID.
|
|
1156
|
+
pais: País donde se diligenció.
|
|
1157
|
+
departamento: Departamento.
|
|
1158
|
+
municipio: Municipio.
|
|
1159
|
+
"""
|
|
1160
|
+
id_ldiligenciamiento = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1161
|
+
pais = models.ForeignKey(Pais, to_field='id_pais', on_delete=models.CASCADE)
|
|
1162
|
+
departamento = models.ForeignKey(Departamento, to_field='id_departamento', on_delete=models.CASCADE)
|
|
1163
|
+
municipio = models.ForeignKey(Municipio, to_field='id_municipio', on_delete=models.CASCADE)
|
|
1164
|
+
|
|
1165
|
+
class Meta:
|
|
1166
|
+
db_table = 'eco_reg_ldiligenciamiento'
|
|
1167
|
+
verbose_name_plural = 'lugar de diligenciamiento del formualario'
|
|
1168
|
+
|
|
1169
|
+
def __str__(self):
|
|
1170
|
+
return str(self.id_ldiligenciamiento)
|
|
1171
|
+
|
|
1172
|
+
class DiligenciaFormulario(models.Model):
|
|
1173
|
+
"""
|
|
1174
|
+
Modelo para datos de quién diligencia el formulario.
|
|
1175
|
+
|
|
1176
|
+
Attributes:
|
|
1177
|
+
id_dformulario: Identificador único UUID.
|
|
1178
|
+
primer_ndiligencia: Primer nombre de quien diligencia.
|
|
1179
|
+
segundo_ndiligencia: Segundo nombre.
|
|
1180
|
+
primer_adiligencia: Primer apellido.
|
|
1181
|
+
segundo_adiligencia: Segundo apellido.
|
|
1182
|
+
contacto_tdiligencia: Teléfono de contacto.
|
|
1183
|
+
correo_ediligencia: Correo electrónico.
|
|
1184
|
+
entidad_solicitante: Entidad que solicita.
|
|
1185
|
+
"""
|
|
1186
|
+
id_dformulario = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1187
|
+
primer_ndiligencia = models.CharField(max_length=30, null=True, blank=True)
|
|
1188
|
+
segundo_ndiligencia = models.CharField(max_length=30, null=True, blank=True)
|
|
1189
|
+
primer_adiligencia = models.CharField(max_length=30, null=True, blank=True)
|
|
1190
|
+
segundo_adiligencia = models.CharField(max_length=30, null=True, blank=True)
|
|
1191
|
+
contacto_tdiligencia = models.CharField(max_length=20, null=True, blank=True)
|
|
1192
|
+
correo_ediligencia = models.EmailField(max_length=60, null=True, blank=True)
|
|
1193
|
+
entidad_solicitante = models.CharField(max_length=60, null=True, blank=True)
|
|
1194
|
+
|
|
1195
|
+
class Meta:
|
|
1196
|
+
db_table = 'eco_reg_dformulario'
|
|
1197
|
+
verbose_name_plural = 'Datos de quien diligencia el formulario'
|
|
1198
|
+
|
|
1199
|
+
def __str__(self):
|
|
1200
|
+
return str(self.id_dformulario)
|
|
1201
|
+
|
|
1202
|
+
class Formulario(models.Model):
|
|
1203
|
+
"""
|
|
1204
|
+
Modelo base para formularios del sistema.
|
|
1205
|
+
|
|
1206
|
+
Attributes:
|
|
1207
|
+
id_formulario: Identificador único UUID.
|
|
1208
|
+
fecha_diligenciamiento: Fecha de diligenciamiento.
|
|
1209
|
+
lugar_diligenciamiento: Lugar de diligenciamiento.
|
|
1210
|
+
diligencia: Datos de quién diligencia.
|
|
1211
|
+
"""
|
|
1212
|
+
id_formulario = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1213
|
+
fecha_diligenciamiento = models.ForeignKey(fechaDiligenciamientoFormulario, to_field='id_fdformulario', on_delete=models.CASCADE)
|
|
1214
|
+
lugar_diligenciamiento = models.ForeignKey(lugarDiligenciamientoFormulario, to_field='id_ldiligenciamiento', on_delete=models.CASCADE)
|
|
1215
|
+
diligencia = models.ForeignKey(DiligenciaFormulario, to_field='id_dformulario', on_delete=models.CASCADE, null=True, blank=True)
|
|
1216
|
+
|
|
1217
|
+
class Meta:
|
|
1218
|
+
db_table = 'eco_reg_formulario'
|
|
1219
|
+
verbose_name_plural = 'Datos del formulario'
|
|
1220
|
+
|
|
1221
|
+
def __str__(self):
|
|
1222
|
+
return str(self.id_formulario)
|
|
1223
|
+
|
|
1224
|
+
class FormularioIndividual(Formulario):
|
|
1225
|
+
"""
|
|
1226
|
+
Modelo para formularios de personas individuales.
|
|
1227
|
+
|
|
1228
|
+
Extiende Formulario con referencias a datos de la persona solicitante.
|
|
1229
|
+
|
|
1230
|
+
Attributes:
|
|
1231
|
+
persona: Datos básicos de la persona.
|
|
1232
|
+
cpersona: Datos complementarios.
|
|
1233
|
+
ipoblacion: Identificación de población.
|
|
1234
|
+
iriesgo: Identificación de riesgo.
|
|
1235
|
+
consentimiento: Datos de consentimiento.
|
|
1236
|
+
"""
|
|
1237
|
+
persona = models.ForeignKey(DatosBasicosPersona, to_field='id_persona', on_delete=models.CASCADE)
|
|
1238
|
+
cpersona = models.ForeignKey(DatosComplemetariosPersona, to_field='id_complementarios', on_delete=models.CASCADE)
|
|
1239
|
+
ipoblacion = models.ForeignKey(IdPoblacion, to_field='id_ipoblacion', on_delete=models.CASCADE)
|
|
1240
|
+
iriesgo = models.ForeignKey(IdRiesgo, to_field='id_iriesgo', on_delete=models.CASCADE)
|
|
1241
|
+
consentimiento = models.ForeignKey(Consentimiento, to_field='id_consentimiento', on_delete=models.CASCADE)
|
|
1242
|
+
|
|
1243
|
+
class Meta:
|
|
1244
|
+
db_table = 'eco_gsc_formularioindividual'
|
|
1245
|
+
verbose_name_plural = 'Datos del formulario individual'
|
|
1246
|
+
|
|
1247
|
+
def __str__(self):
|
|
1248
|
+
return str(self.id_formulario)
|
|
1249
|
+
|
|
1250
|
+
class IdentificacionSubpoblacion(models.Model):
|
|
1251
|
+
"""
|
|
1252
|
+
Modelo para subpoblaciones objeto del solicitante.
|
|
1253
|
+
|
|
1254
|
+
Attributes:
|
|
1255
|
+
id_spobjeto: Identificador único UUID.
|
|
1256
|
+
identificacion_subpoblacion: Relación con población.
|
|
1257
|
+
subpoblacion_objeto: Tipo de subpoblación.
|
|
1258
|
+
"""
|
|
1259
|
+
id_spobjeto = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1260
|
+
identificacion_subpoblacion = models.ForeignKey(IdPoblacion, to_field='id_ipoblacion', on_delete=models.CASCADE, null=True, blank=True)
|
|
1261
|
+
subpoblacion_objeto = models.ForeignKey(SubPoblacionObjeto, to_field='id_subpoblacion', on_delete=models.CASCADE, null=True, blank=True)
|
|
1262
|
+
|
|
1263
|
+
class Meta:
|
|
1264
|
+
db_table = 'eco_gsc_sppobjeto'
|
|
1265
|
+
verbose_name_plural = 'Subpoblaciones objeto del solicitante'
|
|
1266
|
+
|
|
1267
|
+
def __str__(self):
|
|
1268
|
+
return str(self.id_spobjeto)
|
|
1269
|
+
|
|
1270
|
+
class OtroMedioSituacion(models.Model):
|
|
1271
|
+
"""
|
|
1272
|
+
Modelo para otros medios de situación no listados.
|
|
1273
|
+
|
|
1274
|
+
Attributes:
|
|
1275
|
+
id_omsituacion: Identificador único UUID.
|
|
1276
|
+
nombre_omsituacion: Nombre del otro medio.
|
|
1277
|
+
identificacion_situacion: Relación con identificación de riesgo.
|
|
1278
|
+
"""
|
|
1279
|
+
id_omsituacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1280
|
+
nombre_omsituacion = models.CharField(max_length=50, null=True, blank=True)
|
|
1281
|
+
identificacion_situacion = models.ForeignKey(IdRiesgo, to_field='id_iriesgo', on_delete=models.CASCADE)
|
|
1282
|
+
|
|
1283
|
+
class Meta:
|
|
1284
|
+
db_table = 'eco_gsc_omsriesgo'
|
|
1285
|
+
verbose_name_plural = 'Otro medio de la situación'
|
|
1286
|
+
def __str__(self):
|
|
1287
|
+
return str(self.id_omsituacion)
|
|
1288
|
+
|
|
1289
|
+
class IdentificacionPoblacionObjetoSESP(models.Model):
|
|
1290
|
+
"""
|
|
1291
|
+
Modelo para poblaciones SESP (Sistema Especial de Seguridad y Protección).
|
|
1292
|
+
|
|
1293
|
+
Attributes:
|
|
1294
|
+
id_ipobjeto: Identificador único UUID.
|
|
1295
|
+
identificacion_poblacion: Relación con población.
|
|
1296
|
+
poblacion_objeto: Tipo de población SESP.
|
|
1297
|
+
"""
|
|
1298
|
+
id_ipobjeto = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1299
|
+
identificacion_poblacion = models.ForeignKey(IdPoblacion, to_field='id_ipoblacion', on_delete=models.CASCADE)
|
|
1300
|
+
poblacion_objeto = models.ForeignKey(PoblacionSesp, to_field='id_poblacionsesp', on_delete=models.CASCADE)
|
|
1301
|
+
|
|
1302
|
+
class Meta:
|
|
1303
|
+
db_table = 'eco_gra_ipobjeto'
|
|
1304
|
+
verbose_name_plural = 'Poblaciones objeto identificadas por la persona'
|
|
1305
|
+
|
|
1306
|
+
def __str__(self):
|
|
1307
|
+
return str(self.id_ipobjeto)
|
|
1308
|
+
|
|
1309
|
+
|
|
1310
|
+
##### MODELOS DE COLECTIVOS #######
|
|
1311
|
+
|
|
1312
|
+
class NombreColectivo(models.Model):
|
|
1313
|
+
"""
|
|
1314
|
+
Modelo para nombres de colectivos u organizaciones.
|
|
1315
|
+
|
|
1316
|
+
Attributes:
|
|
1317
|
+
id_ncolectivo: Identificador único UUID.
|
|
1318
|
+
nombre_colectivo: Nombre del colectivo.
|
|
1319
|
+
"""
|
|
1320
|
+
id_ncolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1321
|
+
nombre_colectivo = models.CharField(max_length=200, blank=True, null=True)
|
|
1322
|
+
|
|
1323
|
+
class Meta:
|
|
1324
|
+
db_table = 'eco_sis_ncolectivo'
|
|
1325
|
+
verbose_name_plural = 'Tipos de colectivos'
|
|
1326
|
+
|
|
1327
|
+
def __str__(self):
|
|
1328
|
+
return str(self.id_ncolectivo)
|
|
1329
|
+
|
|
1330
|
+
class DatosbasicosColectivos(models.Model):
|
|
1331
|
+
"""
|
|
1332
|
+
Modelo para datos básicos de colectivos.
|
|
1333
|
+
|
|
1334
|
+
Attributes:
|
|
1335
|
+
id_bcolectivos: Identificador único UUID.
|
|
1336
|
+
nombre_colectivo: Relación con el nombre del colectivo.
|
|
1337
|
+
"""
|
|
1338
|
+
id_bcolectivos = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1339
|
+
nombre_colectivo = models.ForeignKey(NombreColectivo, to_field='id_ncolectivo', on_delete=models.CASCADE)
|
|
1340
|
+
|
|
1341
|
+
class Meta:
|
|
1342
|
+
db_table = 'eco_sis_dbcolectivo'
|
|
1343
|
+
verbose_name_plural = 'Datos básicos del id_bcolectivos'
|
|
1344
|
+
|
|
1345
|
+
def __str__(self):
|
|
1346
|
+
return str(self.id_bcolectivos)
|
|
1347
|
+
|
|
1348
|
+
class LlaveDatosBasicosColectivo(models.Model):
|
|
1349
|
+
"""
|
|
1350
|
+
Modelo llave para relacionar datos básicos de colectivo.
|
|
1351
|
+
|
|
1352
|
+
Attributes:
|
|
1353
|
+
id_llavebcolectivo: Identificador único UUID (editable).
|
|
1354
|
+
id_bcolectivo: Relación con datos básicos del colectivo.
|
|
1355
|
+
"""
|
|
1356
|
+
id_llavebcolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True)
|
|
1357
|
+
id_bcolectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE, null=True)
|
|
1358
|
+
|
|
1359
|
+
class Meta:
|
|
1360
|
+
db_table = 'eco_sis_llavebasicoscolectivo'
|
|
1361
|
+
|
|
1362
|
+
def __str__(self):
|
|
1363
|
+
return str(self.id_llavebcolectivo)
|
|
1364
|
+
|
|
1365
|
+
class IdentificacionColectivo(models.Model):
|
|
1366
|
+
"""
|
|
1367
|
+
Modelo para identificación de colectivos.
|
|
1368
|
+
|
|
1369
|
+
Attributes:
|
|
1370
|
+
id_icolectivo: Identificador único UUID.
|
|
1371
|
+
tipo_icolectivo: Tipo de documento del colectivo (NIT, etc.).
|
|
1372
|
+
numero_icolectivo: Número de identificación.
|
|
1373
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
1374
|
+
"""
|
|
1375
|
+
id_icolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1376
|
+
tipo_icolectivo = models.ForeignKey(TipoIdentificacionColectivo, to_field='id_ticolectivo', on_delete=models.CASCADE)
|
|
1377
|
+
numero_icolectivo = models.CharField(max_length=20, blank=True, null=True)
|
|
1378
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
1379
|
+
|
|
1380
|
+
class Meta:
|
|
1381
|
+
db_table = 'eco_sis_icolectivo'
|
|
1382
|
+
verbose_name_plural = 'Identificacion del colectivo'
|
|
1383
|
+
|
|
1384
|
+
def __str__(self):
|
|
1385
|
+
return str(self.id_icolectivo)
|
|
1386
|
+
|
|
1387
|
+
class ColectivoFDiferencial(models.Model):
|
|
1388
|
+
"""
|
|
1389
|
+
Modelo para factores diferenciales de colectivos.
|
|
1390
|
+
|
|
1391
|
+
Attributes:
|
|
1392
|
+
id_icfdiferencial: Identificador único UUID.
|
|
1393
|
+
tiene_pdiscapacidad: Indicador de personas con discapacidad.
|
|
1394
|
+
tiene_pindigenas: Indicador de personas indígenas.
|
|
1395
|
+
tiene_pafrocolombiano: Indicador de personas afrocolombianas.
|
|
1396
|
+
tiene_pnegro: Indicador de personas negras.
|
|
1397
|
+
tiene_praizal: Indicador de personas raizales.
|
|
1398
|
+
tiene_ppalenquero: Indicador de personas palenqueras.
|
|
1399
|
+
tiene_prongitano: Indicador de personas rom/gitanas.
|
|
1400
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
1401
|
+
"""
|
|
1402
|
+
id_icfdiferencial = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1403
|
+
tiene_pdiscapacidad = models.BooleanField(default=False, null=True, blank=True)
|
|
1404
|
+
tiene_pindigenas = models.BooleanField(default=False, null=True, blank=True)
|
|
1405
|
+
tiene_pafrocolombiano = models.BooleanField(default=False, null=True, blank=True)
|
|
1406
|
+
tiene_pnegro = models.BooleanField(default=False, null=True, blank=True)
|
|
1407
|
+
tiene_praizal = models.BooleanField(default=False, null=True, blank=True)
|
|
1408
|
+
tiene_ppalenquero = models.BooleanField(default=False, null=True, blank=True)
|
|
1409
|
+
tiene_prongitano = models.BooleanField(default=False, null=True, blank=True)
|
|
1410
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
1411
|
+
|
|
1412
|
+
class Meta:
|
|
1413
|
+
db_table = 'eco_sis_icfdiferencial'
|
|
1414
|
+
verbose_name_plural = 'Información del colectivo factor diferencial'
|
|
1415
|
+
|
|
1416
|
+
def __str__(self):
|
|
1417
|
+
return str(self.id_icfdiferencial)
|
|
1418
|
+
|
|
1419
|
+
class cantidadGenero(models.Model):
|
|
1420
|
+
"""
|
|
1421
|
+
Modelo para cantidad de personas por género en el colectivo.
|
|
1422
|
+
|
|
1423
|
+
Attributes:
|
|
1424
|
+
id_cgenero: Identificador único UUID.
|
|
1425
|
+
cantidad_femenino: Número de personas de género femenino.
|
|
1426
|
+
cantidad_masculino: Número de personas de género masculino.
|
|
1427
|
+
cantidad_nobinario: Número de personas no binarias.
|
|
1428
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
1429
|
+
"""
|
|
1430
|
+
id_cgenero = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1431
|
+
cantidad_femenino = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1432
|
+
cantidad_masculino = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1433
|
+
cantidad_nobinario = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1434
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
1435
|
+
|
|
1436
|
+
class Meta:
|
|
1437
|
+
db_table = 'eco_sis_cgenero'
|
|
1438
|
+
verbose_name_plural = 'Cantidad de personas por generos del colectivo'
|
|
1439
|
+
|
|
1440
|
+
def __str__(self):
|
|
1441
|
+
return str(self.id_cgenero)
|
|
1442
|
+
|
|
1443
|
+
class cantidadSexo(models.Model):
|
|
1444
|
+
"""
|
|
1445
|
+
Modelo para cantidad de personas por sexo en el colectivo.
|
|
1446
|
+
|
|
1447
|
+
Attributes:
|
|
1448
|
+
id_csexo: Identificador único UUID.
|
|
1449
|
+
cantidad_mujer: Número de mujeres.
|
|
1450
|
+
cantidad_hombre: Número de hombres.
|
|
1451
|
+
cantidad_intersexual: Número de personas intersexuales.
|
|
1452
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
1453
|
+
"""
|
|
1454
|
+
id_csexo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1455
|
+
cantidad_mujer = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1456
|
+
cantidad_hombre = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1457
|
+
cantidad_intersexual = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1458
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
1459
|
+
|
|
1460
|
+
class Meta:
|
|
1461
|
+
db_table = 'eco_sis_csexo'
|
|
1462
|
+
verbose_name_plural = 'Cantidad de personas por sexo del colectivo'
|
|
1463
|
+
|
|
1464
|
+
def __str__(self):
|
|
1465
|
+
return str(self.id_csexo)
|
|
1466
|
+
|
|
1467
|
+
class TotalIntegrantes(models.Model):
|
|
1468
|
+
"""
|
|
1469
|
+
Modelo para cantidad total aproximada de integrantes del colectivo.
|
|
1470
|
+
|
|
1471
|
+
Attributes:
|
|
1472
|
+
id_tintegrantes: Identificador único UUID.
|
|
1473
|
+
total_integrantes: Número total aproximado de integrantes.
|
|
1474
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
1475
|
+
"""
|
|
1476
|
+
id_tintegrantes = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1477
|
+
total_integrantes = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1478
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
1479
|
+
|
|
1480
|
+
class Meta:
|
|
1481
|
+
db_table = 'eco_sis_tintegrantes'
|
|
1482
|
+
verbose_name_plural = 'Cantidad aproximada de integrantes del colectivo'
|
|
1483
|
+
|
|
1484
|
+
def __str__(self):
|
|
1485
|
+
return str(self.id_tintegrantes)
|
|
1486
|
+
|
|
1487
|
+
class NombrePersonaColectivo(models.Model):
|
|
1488
|
+
"""
|
|
1489
|
+
Modelo para nombres de personas asociadas al colectivo.
|
|
1490
|
+
|
|
1491
|
+
Attributes:
|
|
1492
|
+
id_napcolectivo: Identificador único UUID.
|
|
1493
|
+
primer_npcolectivo: Primer nombre.
|
|
1494
|
+
segundo_npcolectivo: Segundo nombre.
|
|
1495
|
+
primer_apcolectivo: Primer apellido.
|
|
1496
|
+
segundo_apcolectivo: Segundo apellido.
|
|
1497
|
+
"""
|
|
1498
|
+
id_napcolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1499
|
+
primer_npcolectivo = models.CharField(max_length=20, null=False, blank=False)
|
|
1500
|
+
segundo_npcolectivo = models.CharField(max_length=50, null=True, blank=True)
|
|
1501
|
+
primer_apcolectivo = models.CharField(max_length=50, null=False, blank=False)
|
|
1502
|
+
segundo_apcolectivo = models.CharField(max_length=50, null=True, blank=True)
|
|
1503
|
+
|
|
1504
|
+
class Meta:
|
|
1505
|
+
db_table = 'eco_sis_napcolectivo'
|
|
1506
|
+
verbose_name_plural = 'Nombres y apellidos de las personas del colectivo'
|
|
1507
|
+
|
|
1508
|
+
def __str__(self):
|
|
1509
|
+
return str(self.id_napcolectivo)
|
|
1510
|
+
|
|
1511
|
+
class IdentificacionPersonaColectivo(models.Model):
|
|
1512
|
+
"""
|
|
1513
|
+
Modelo para identificación de personas del colectivo.
|
|
1514
|
+
|
|
1515
|
+
Attributes:
|
|
1516
|
+
id_ipcolectivo: Identificador único UUID.
|
|
1517
|
+
numero_ipcolectivo: Número de documento de identidad.
|
|
1518
|
+
tipo_identificacion: Tipo de documento.
|
|
1519
|
+
fecha_expedicion: Fecha de expedición del documento.
|
|
1520
|
+
"""
|
|
1521
|
+
id_ipcolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1522
|
+
numero_ipcolectivo = models.CharField(max_length=20, null=False, blank=True)
|
|
1523
|
+
tipo_identificacion = models.ForeignKey(TipoIdentificacion, to_field='id_tidentificacion', on_delete=models.CASCADE)
|
|
1524
|
+
fecha_expedicion = models.DateField(null=True, blank=True)
|
|
1525
|
+
|
|
1526
|
+
class Meta:
|
|
1527
|
+
db_table = 'eco_sis_ipcolectivo'
|
|
1528
|
+
verbose_name_plural = 'Datos de la identificación de la persona del colectivo'
|
|
1529
|
+
|
|
1530
|
+
def __str__(self):
|
|
1531
|
+
return str(self.id_ipcolectivo) + str(self.numero_ipcolectivo)
|
|
1532
|
+
|
|
1533
|
+
class PersonaColectivo(models.Model):
|
|
1534
|
+
"""
|
|
1535
|
+
Modelo para personas que pertenecen a un colectivo.
|
|
1536
|
+
|
|
1537
|
+
Attributes:
|
|
1538
|
+
id_pcolectivo: Identificador único UUID.
|
|
1539
|
+
nombre_pcolectivo: Nombre de la persona.
|
|
1540
|
+
es_representante: Indicador si es representante del colectivo.
|
|
1541
|
+
esta_activo: Indicador si está activo.
|
|
1542
|
+
colectivo: Relación con el colectivo al que pertenece.
|
|
1543
|
+
"""
|
|
1544
|
+
id_pcolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1545
|
+
nombre_pcolectivo = models.ForeignKey(NombrePersonaColectivo, to_field='id_napcolectivo', on_delete=models.CASCADE)
|
|
1546
|
+
es_representante = models.BooleanField(default=False)
|
|
1547
|
+
esta_activo = models.BooleanField(default=True)
|
|
1548
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
1549
|
+
|
|
1550
|
+
class Meta:
|
|
1551
|
+
db_table = 'eco_sis_pcolectivo'
|
|
1552
|
+
verbose_name_plural = 'Datos personales de las personas del colectivo'
|
|
1553
|
+
|
|
1554
|
+
def __str__(self):
|
|
1555
|
+
return str(self.id_pcolectivo)
|
|
1556
|
+
|
|
1557
|
+
class PersonaColectivoRepresentante(PersonaColectivo):
|
|
1558
|
+
"""
|
|
1559
|
+
Modelo para representantes de colectivos (extiende PersonaColectivo).
|
|
1560
|
+
|
|
1561
|
+
Attributes:
|
|
1562
|
+
sexo_pcolectivo: Sexo del representante.
|
|
1563
|
+
identificacion_pcolectivo: Datos de identificación del representante.
|
|
1564
|
+
"""
|
|
1565
|
+
sexo_pcolectivo = models.ForeignKey(TipoSexo, to_field='id_tsexo', on_delete=models.CASCADE, null=True)
|
|
1566
|
+
identificacion_pcolectivo = models.ForeignKey(IdentificacionPersonaColectivo, to_field='id_ipcolectivo', on_delete=models.CASCADE)
|
|
1567
|
+
|
|
1568
|
+
class Meta:
|
|
1569
|
+
db_table = 'eco_sis_prcolectivo'
|
|
1570
|
+
verbose_name_plural = 'Datos personales del representante del colectivo'
|
|
1571
|
+
|
|
1572
|
+
def __str__(self):
|
|
1573
|
+
return str(self.id_pcolectivo)
|
|
1574
|
+
|
|
1575
|
+
class funcionColectivo(models.Model):
|
|
1576
|
+
"""
|
|
1577
|
+
Modelo para función del colectivo.
|
|
1578
|
+
|
|
1579
|
+
Attributes:
|
|
1580
|
+
id_fcolectivo: Identificador único UUID.
|
|
1581
|
+
descripcion_funcion: Descripción de la función del colectivo.
|
|
1582
|
+
pertenece_ostnivel: Indicador si pertenece a org. segundo/tercer nivel.
|
|
1583
|
+
desarrolla_aambiental: Indicador de actividad ambiental.
|
|
1584
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
1585
|
+
"""
|
|
1586
|
+
id_fcolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1587
|
+
descripcion_funcion = models.CharField(max_length=300, blank=True, null=True)
|
|
1588
|
+
pertenece_ostnivel = models.BooleanField(default=False)
|
|
1589
|
+
desarrolla_aambiental = models.BooleanField(default=False)
|
|
1590
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
1591
|
+
|
|
1592
|
+
class Meta:
|
|
1593
|
+
db_table = 'eco_gsc_fcolectivo'
|
|
1594
|
+
verbose_name_plural = 'Función del colectivo'
|
|
1595
|
+
|
|
1596
|
+
def __str__(self):
|
|
1597
|
+
return str(self.id_fcolectivo)
|
|
1598
|
+
|
|
1599
|
+
class OrganizacionSegundoTercerNivel(models.Model):
|
|
1600
|
+
"""
|
|
1601
|
+
Modelo para organizaciones de segundo o tercer nivel.
|
|
1602
|
+
|
|
1603
|
+
Attributes:
|
|
1604
|
+
id_ostnivel: Identificador único UUID.
|
|
1605
|
+
nombre_ostnivel: Nombre de la organización.
|
|
1606
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
1607
|
+
"""
|
|
1608
|
+
id_ostnivel = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1609
|
+
nombre_ostnivel = models.CharField(max_length=300, blank=True, null=True)
|
|
1610
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
1611
|
+
|
|
1612
|
+
class Meta:
|
|
1613
|
+
db_table = 'eco_gsc_ostnivel'
|
|
1614
|
+
verbose_name_plural = 'Organización segundo tercer nivel colectivo'
|
|
1615
|
+
|
|
1616
|
+
def __str__(self):
|
|
1617
|
+
return str(self.id_ostnivel)
|
|
1618
|
+
|
|
1619
|
+
class EntidadAcreditadora(models.Model):
|
|
1620
|
+
"""
|
|
1621
|
+
Modelo para entidades acreditadoras del colectivo.
|
|
1622
|
+
|
|
1623
|
+
Attributes:
|
|
1624
|
+
id_eacreditadora: Identificador único UUID.
|
|
1625
|
+
Tipo_eacreditadora: Tipo de entidad acreditadora.
|
|
1626
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
1627
|
+
"""
|
|
1628
|
+
id_eacreditadora = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1629
|
+
Tipo_eacreditadora = models.ForeignKey(tipoEntidadAcreditadora, to_field='id_teacreditadora', on_delete=models.CASCADE, blank=True, null=True)
|
|
1630
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE, blank=True, null=True)
|
|
1631
|
+
|
|
1632
|
+
class Meta:
|
|
1633
|
+
db_table = 'eco_gsc_eacreditadora'
|
|
1634
|
+
verbose_name_plural = 'Entidad acreditadora'
|
|
1635
|
+
|
|
1636
|
+
def __str__(self):
|
|
1637
|
+
return str(self.id_eacreditadora)
|
|
1638
|
+
|
|
1639
|
+
class CantidadPersonasDiscapacidad(models.Model):
|
|
1640
|
+
"""
|
|
1641
|
+
Modelo para cantidad de personas con discapacidad en el colectivo.
|
|
1642
|
+
|
|
1643
|
+
Attributes:
|
|
1644
|
+
id_cpdiscapacidad: Identificador único UUID.
|
|
1645
|
+
cantidad_pdiscapacidad: Número de personas con discapacidad.
|
|
1646
|
+
informacion_cfdiferencial: Relación con factor diferencial.
|
|
1647
|
+
"""
|
|
1648
|
+
id_cpdiscapacidad = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1649
|
+
cantidad_pdiscapacidad = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1650
|
+
informacion_cfdiferencial = models.ForeignKey(ColectivoFDiferencial, to_field='id_icfdiferencial', on_delete=models.CASCADE)
|
|
1651
|
+
|
|
1652
|
+
class Meta:
|
|
1653
|
+
db_table = 'eco_gsc_cpdiscapacidad'
|
|
1654
|
+
verbose_name_plural = 'Cantidad de personas con discapacidad del colectivo'
|
|
1655
|
+
|
|
1656
|
+
def __str__(self):
|
|
1657
|
+
return str(self.id_cpdiscapacidad)
|
|
1658
|
+
|
|
1659
|
+
class CantidadPersonasIndigena(models.Model):
|
|
1660
|
+
"""
|
|
1661
|
+
Modelo para cantidad de personas indígenas en el colectivo.
|
|
1662
|
+
|
|
1663
|
+
Attributes:
|
|
1664
|
+
id_cpindigena: Identificador único UUID.
|
|
1665
|
+
cantidad_pindigena: Número de personas indígenas.
|
|
1666
|
+
informacion_cfdiferencial: Relación con factor diferencial.
|
|
1667
|
+
"""
|
|
1668
|
+
id_cpindigena = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1669
|
+
cantidad_pindigena = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1670
|
+
informacion_cfdiferencial = models.ForeignKey(ColectivoFDiferencial, to_field='id_icfdiferencial', on_delete=models.CASCADE)
|
|
1671
|
+
|
|
1672
|
+
class Meta:
|
|
1673
|
+
db_table = 'eco_gsc_cpindigena'
|
|
1674
|
+
verbose_name_plural = 'Cantidad de personas indígenas del colectivo'
|
|
1675
|
+
|
|
1676
|
+
def __str__(self):
|
|
1677
|
+
return str(self.id_cpindigena)
|
|
1678
|
+
|
|
1679
|
+
class cantidadPersonasAfrocolombianos(models.Model):
|
|
1680
|
+
"""
|
|
1681
|
+
Modelo para cantidad de personas afrocolombianas en el colectivo.
|
|
1682
|
+
|
|
1683
|
+
Attributes:
|
|
1684
|
+
id_cpafrocolombiano: Identificador único UUID.
|
|
1685
|
+
cantidad_pafrocolombiano: Número de personas afrocolombianas.
|
|
1686
|
+
informacion_cfdiferencial: Relación con factor diferencial.
|
|
1687
|
+
"""
|
|
1688
|
+
id_cpafrocolombiano = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1689
|
+
cantidad_pafrocolombiano = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1690
|
+
informacion_cfdiferencial = models.ForeignKey(ColectivoFDiferencial, to_field='id_icfdiferencial', on_delete=models.CASCADE)
|
|
1691
|
+
|
|
1692
|
+
class Meta:
|
|
1693
|
+
db_table = 'eco_gsc_cpafrocolombiano'
|
|
1694
|
+
verbose_name_plural = 'Cantidad de personas afrocolombianos del colectivo'
|
|
1695
|
+
|
|
1696
|
+
def __str__(self):
|
|
1697
|
+
return str(self.id_cpafrocolombiano)
|
|
1698
|
+
|
|
1699
|
+
class cantidadPersonasNegro(models.Model):
|
|
1700
|
+
"""
|
|
1701
|
+
Modelo para cantidad de personas negras en el colectivo.
|
|
1702
|
+
|
|
1703
|
+
Attributes:
|
|
1704
|
+
id_cpnegro: Identificador único UUID.
|
|
1705
|
+
cantidad_pnegro: Número de personas negras.
|
|
1706
|
+
informacion_cfdiferencial: Relación con factor diferencial.
|
|
1707
|
+
"""
|
|
1708
|
+
id_cpnegro = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1709
|
+
cantidad_pnegro = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1710
|
+
informacion_cfdiferencial = models.ForeignKey(ColectivoFDiferencial, to_field='id_icfdiferencial', on_delete=models.CASCADE)
|
|
1711
|
+
|
|
1712
|
+
class Meta:
|
|
1713
|
+
db_table = 'eco_gsc_cpnegro'
|
|
1714
|
+
verbose_name_plural = 'Cantidad de personas negras del colectivo'
|
|
1715
|
+
|
|
1716
|
+
def __str__(self):
|
|
1717
|
+
return str(self.id_cpnegro)
|
|
1718
|
+
|
|
1719
|
+
class cantidadPersonasRaizal(models.Model):
|
|
1720
|
+
"""
|
|
1721
|
+
Modelo para cantidad de personas raizales en el colectivo.
|
|
1722
|
+
|
|
1723
|
+
Attributes:
|
|
1724
|
+
id_cpraizal: Identificador único UUID.
|
|
1725
|
+
cantidad_praizal: Número de personas raizales.
|
|
1726
|
+
informacion_cfdiferencial: Relación con factor diferencial.
|
|
1727
|
+
"""
|
|
1728
|
+
id_cpraizal = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1729
|
+
cantidad_praizal = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1730
|
+
informacion_cfdiferencial = models.ForeignKey(ColectivoFDiferencial, to_field='id_icfdiferencial', on_delete=models.CASCADE)
|
|
1731
|
+
|
|
1732
|
+
class Meta:
|
|
1733
|
+
db_table = 'eco_gsc_cpraizal'
|
|
1734
|
+
verbose_name_plural = 'Cantidad de personas raizales del colectivo'
|
|
1735
|
+
|
|
1736
|
+
def __str__(self):
|
|
1737
|
+
return str(self.id_cpraizal)
|
|
1738
|
+
|
|
1739
|
+
class cantidadPersonasPalenquero(models.Model):
|
|
1740
|
+
"""
|
|
1741
|
+
Modelo para cantidad de personas palenqueras en el colectivo.
|
|
1742
|
+
|
|
1743
|
+
Attributes:
|
|
1744
|
+
id_cppalenquero: Identificador único UUID.
|
|
1745
|
+
cantidad_ppalenquero: Número de personas palenqueras.
|
|
1746
|
+
informacion_cfdiferencial: Relación con factor diferencial.
|
|
1747
|
+
"""
|
|
1748
|
+
id_cppalenquero = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1749
|
+
cantidad_ppalenquero = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1750
|
+
informacion_cfdiferencial = models.ForeignKey(ColectivoFDiferencial, to_field='id_icfdiferencial', on_delete=models.CASCADE)
|
|
1751
|
+
|
|
1752
|
+
class Meta:
|
|
1753
|
+
db_table = 'eco_gsc_cppalenquero'
|
|
1754
|
+
verbose_name_plural = 'Cantidad de personas palenqueros del colectivo'
|
|
1755
|
+
|
|
1756
|
+
def __str__(self):
|
|
1757
|
+
return str(self.id_cppalenquero)
|
|
1758
|
+
|
|
1759
|
+
class cantidadPersonasRomGitano(models.Model):
|
|
1760
|
+
"""
|
|
1761
|
+
Modelo para cantidad de personas rom o gitanas en el colectivo.
|
|
1762
|
+
|
|
1763
|
+
Attributes:
|
|
1764
|
+
id_cpromgitano: Identificador único UUID.
|
|
1765
|
+
cantidad_promgitano: Número de personas rom o gitanas.
|
|
1766
|
+
informacion_cfdiferencial: Relación con factor diferencial.
|
|
1767
|
+
"""
|
|
1768
|
+
id_cpromgitano = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1769
|
+
cantidad_promgitano = models.SmallIntegerField(default=0, null=True, blank=True)
|
|
1770
|
+
informacion_cfdiferencial = models.ForeignKey(ColectivoFDiferencial, to_field='id_icfdiferencial', on_delete=models.CASCADE)
|
|
1771
|
+
|
|
1772
|
+
class Meta:
|
|
1773
|
+
db_table = 'eco_gsc_cpromgitano'
|
|
1774
|
+
verbose_name_plural = 'Cantidad de personas rom o gitanos del colectivo'
|
|
1775
|
+
|
|
1776
|
+
def __str__(self):
|
|
1777
|
+
return str(self.id_cpromgitano)
|
|
1778
|
+
|
|
1779
|
+
class CorrespondenciaColectivo(models.Model):
|
|
1780
|
+
"""
|
|
1781
|
+
Modelo para dirección de correspondencia del colectivo.
|
|
1782
|
+
|
|
1783
|
+
Attributes:
|
|
1784
|
+
id_ccolectivo: Identificador único UUID.
|
|
1785
|
+
"""
|
|
1786
|
+
id_ccolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1787
|
+
|
|
1788
|
+
class Meta:
|
|
1789
|
+
db_table = 'eco_gsc_ccolectivo'
|
|
1790
|
+
verbose_name_plural = 'Dirección de correspondencia del colectivo'
|
|
1791
|
+
|
|
1792
|
+
def __str__(self):
|
|
1793
|
+
return str(self.id_ccolectivo)
|
|
1794
|
+
|
|
1795
|
+
class MedidaCautelarColectivo(models.Model):
|
|
1796
|
+
"""
|
|
1797
|
+
Modelo para medidas cautelares del colectivo.
|
|
1798
|
+
|
|
1799
|
+
Attributes:
|
|
1800
|
+
id_mccolectivo: Identificador único UUID.
|
|
1801
|
+
es_bmcocomisionidhumanos: Es beneficiario medida comisión DDHH.
|
|
1802
|
+
es_bmcocorteidhumanos: Es beneficiario medida corte DDHH.
|
|
1803
|
+
es_bmcojrepublica: Es beneficiario medida juez de la república.
|
|
1804
|
+
es_bmpsesp: Es beneficiario programa SESP.
|
|
1805
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
1806
|
+
"""
|
|
1807
|
+
id_mccolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1808
|
+
es_bmcocomisionidhumanos = models.BooleanField(default=False, null=True, blank=True)
|
|
1809
|
+
es_bmcocorteidhumanos = models.BooleanField(default=False, null=True, blank=True)
|
|
1810
|
+
es_bmcojrepublica = models.BooleanField(default=False, null=True, blank=True)
|
|
1811
|
+
es_bmpsesp = models.BooleanField(default=False, blank=True, null=True)
|
|
1812
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
1813
|
+
|
|
1814
|
+
class Meta:
|
|
1815
|
+
db_table = 'eco_gsc_bmccolectivo'
|
|
1816
|
+
verbose_name_plural = 'Beneficiario de alguna medida cautelar'
|
|
1817
|
+
|
|
1818
|
+
def __str__(self):
|
|
1819
|
+
return str(self.id_mccolectivo)
|
|
1820
|
+
|
|
1821
|
+
class mcComisionInternacional(models.Model):
|
|
1822
|
+
"""
|
|
1823
|
+
Modelo para número de medida cautelar de la comisión interamericana de DDHH.
|
|
1824
|
+
|
|
1825
|
+
Attributes:
|
|
1826
|
+
id_mccomision: Identificador único UUID.
|
|
1827
|
+
numero_medida: Número de la medida cautelar.
|
|
1828
|
+
id_mccolectivo: Relación con medida cautelar del colectivo.
|
|
1829
|
+
"""
|
|
1830
|
+
id_mccomision = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1831
|
+
numero_medida = models.CharField(max_length=20, blank=True, null=True)
|
|
1832
|
+
id_mccolectivo = models.ForeignKey(MedidaCautelarColectivo, to_field='id_mccolectivo', on_delete=models.CASCADE)
|
|
1833
|
+
|
|
1834
|
+
class Meta:
|
|
1835
|
+
db_table = 'eco_gsc_mccomision'
|
|
1836
|
+
verbose_name_plural = 'número medida cautelar comisión interamericana de derechos humanos'
|
|
1837
|
+
|
|
1838
|
+
def __str__(self):
|
|
1839
|
+
return str(self.id_mccomision)
|
|
1840
|
+
|
|
1841
|
+
class mcCorteInternacional(models.Model):
|
|
1842
|
+
"""
|
|
1843
|
+
Modelo para número de medida cautelar de la corte interamericana de DDHH.
|
|
1844
|
+
|
|
1845
|
+
Attributes:
|
|
1846
|
+
id_mccorte: Identificador único UUID.
|
|
1847
|
+
numero_medida: Número de la medida cautelar.
|
|
1848
|
+
id_mccolectivo: Relación con medida cautelar del colectivo.
|
|
1849
|
+
"""
|
|
1850
|
+
id_mccorte = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1851
|
+
numero_medida = models.CharField(max_length=20, blank=True, null=True)
|
|
1852
|
+
id_mccolectivo = models.ForeignKey(MedidaCautelarColectivo, to_field='id_mccolectivo', on_delete=models.CASCADE)
|
|
1853
|
+
|
|
1854
|
+
class Meta:
|
|
1855
|
+
db_table = 'eco_gsc_mccorte'
|
|
1856
|
+
verbose_name_plural = 'número medida cautelar corte interamericana de derechos humanos'
|
|
1857
|
+
|
|
1858
|
+
def __str__(self):
|
|
1859
|
+
return str(self.id_mccorte)
|
|
1860
|
+
|
|
1861
|
+
class mcJuezRepublica(models.Model):
|
|
1862
|
+
"""
|
|
1863
|
+
Modelo para número de medida cautelar otorgada por juez de la república.
|
|
1864
|
+
|
|
1865
|
+
Attributes:
|
|
1866
|
+
id_mcjrepublica: Identificador único UUID.
|
|
1867
|
+
numero_medida: Número de la medida cautelar.
|
|
1868
|
+
id_mccolectivo: Relación con medida cautelar del colectivo.
|
|
1869
|
+
"""
|
|
1870
|
+
id_mcjrepublica = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1871
|
+
numero_medida = models.CharField(max_length=20, blank=True, null=True)
|
|
1872
|
+
id_mccolectivo = models.ForeignKey(MedidaCautelarColectivo, to_field='id_mccolectivo', on_delete=models.CASCADE)
|
|
1873
|
+
|
|
1874
|
+
class Meta:
|
|
1875
|
+
db_table = 'eco_gsc_mcjrepublica'
|
|
1876
|
+
verbose_name_plural = 'número medida cautelar otorgado por un juez de la república'
|
|
1877
|
+
|
|
1878
|
+
def __str__(self):
|
|
1879
|
+
return str(self.id_mcjrepublica)
|
|
1880
|
+
|
|
1881
|
+
class EntidadSolicitanteColectivo(models.Model):
|
|
1882
|
+
"""
|
|
1883
|
+
Modelo para entidad solicitante del colectivo.
|
|
1884
|
+
|
|
1885
|
+
Attributes:
|
|
1886
|
+
id_esolicitante: Identificador único UUID.
|
|
1887
|
+
nombre_esolicitante: Nombre de la entidad solicitante.
|
|
1888
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
1889
|
+
"""
|
|
1890
|
+
id_esolicitante = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1891
|
+
nombre_esolicitante = models.CharField(max_length=100, blank=True, null=True)
|
|
1892
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
1893
|
+
|
|
1894
|
+
class Meta:
|
|
1895
|
+
db_table = 'eco_gsc_esolicitante'
|
|
1896
|
+
verbose_name_plural = 'Entidad solicitante'
|
|
1897
|
+
|
|
1898
|
+
def __str__(self):
|
|
1899
|
+
return str(self.id_esolicitante)
|
|
1900
|
+
|
|
1901
|
+
class ActividadPersonaColectivo(models.Model):
|
|
1902
|
+
"""
|
|
1903
|
+
Modelo para actividades de las personas dentro del colectivo.
|
|
1904
|
+
|
|
1905
|
+
Attributes:
|
|
1906
|
+
id_apcolectivo: Identificador único UUID.
|
|
1907
|
+
descripcion_actividad: Descripción de la actividad.
|
|
1908
|
+
persona_colectivo: Relación con persona del colectivo.
|
|
1909
|
+
"""
|
|
1910
|
+
id_apcolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1911
|
+
descripcion_actividad = models.CharField(max_length=300, null=True, blank=True)
|
|
1912
|
+
persona_colectivo = models.ForeignKey(PersonaColectivo, to_field='id_pcolectivo', on_delete=models.CASCADE)
|
|
1913
|
+
|
|
1914
|
+
class Meta:
|
|
1915
|
+
db_table = 'eco_gsc_apcolectivo'
|
|
1916
|
+
verbose_name_plural = 'Actividades de las personas dentro del colectivo'
|
|
1917
|
+
|
|
1918
|
+
def __str__(self):
|
|
1919
|
+
return str(self.id_apcolectivo)
|
|
1920
|
+
|
|
1921
|
+
class IdPoblacionColectivo(models.Model):
|
|
1922
|
+
"""
|
|
1923
|
+
Modelo para identificar poblaciones objeto en colectivos.
|
|
1924
|
+
|
|
1925
|
+
Attributes:
|
|
1926
|
+
id_ipcolectivo: Identificador único UUID.
|
|
1927
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
1928
|
+
"""
|
|
1929
|
+
id_ipcolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1930
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
1931
|
+
|
|
1932
|
+
class Meta:
|
|
1933
|
+
db_table = 'eco_gsc_idpcolectivo'
|
|
1934
|
+
verbose_name_plural = 'Identificación de la población objeto para colectivo'
|
|
1935
|
+
|
|
1936
|
+
def __str__(self):
|
|
1937
|
+
return str(self.id_ipcolectivo)
|
|
1938
|
+
|
|
1939
|
+
class PoblacionColectivo(models.Model):
|
|
1940
|
+
"""
|
|
1941
|
+
Modelo para población a la que pertenece el colectivo.
|
|
1942
|
+
|
|
1943
|
+
Attributes:
|
|
1944
|
+
id_pcoelctivo: Identificador único UUID.
|
|
1945
|
+
tipo_pcolectivo: Tipo de población objeto.
|
|
1946
|
+
poblacion_colectivo: Relación con identificación de población.
|
|
1947
|
+
"""
|
|
1948
|
+
id_pcoelctivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1949
|
+
tipo_pcolectivo = models.ForeignKey(PoblacionObjeto, to_field='id_poblacionobjeto', on_delete=models.CASCADE)
|
|
1950
|
+
poblacion_colectivo = models.ForeignKey(IdPoblacionColectivo, to_field='id_ipcolectivo', on_delete=models.CASCADE)
|
|
1951
|
+
|
|
1952
|
+
class Meta:
|
|
1953
|
+
db_table = 'eco_gsc_poblacioncolectivo'
|
|
1954
|
+
verbose_name_plural = 'Poblacion al que pertenece el colectivo'
|
|
1955
|
+
|
|
1956
|
+
def __str__(self):
|
|
1957
|
+
return str(self.id_pcoelctivo)
|
|
1958
|
+
|
|
1959
|
+
class PoblacionColectivoSesp(models.Model):
|
|
1960
|
+
"""
|
|
1961
|
+
Modelo para población SESP del colectivo.
|
|
1962
|
+
|
|
1963
|
+
Attributes:
|
|
1964
|
+
id_pcsesp: Identificador único UUID.
|
|
1965
|
+
poblacion_sesp: Tipo de población SESP.
|
|
1966
|
+
poblacion_colectivo: Relación con identificación de población.
|
|
1967
|
+
"""
|
|
1968
|
+
id_pcsesp = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1969
|
+
poblacion_sesp = models.ForeignKey(PoblacionSesp, to_field='id_poblacionsesp', on_delete=models.CASCADE)
|
|
1970
|
+
poblacion_colectivo = models.ForeignKey(IdPoblacionColectivo, to_field='id_ipcolectivo', on_delete=models.CASCADE, null=True, blank=True)
|
|
1971
|
+
|
|
1972
|
+
class Meta:
|
|
1973
|
+
db_table = 'eco_gsc_psesp'
|
|
1974
|
+
verbose_name_plural = 'Poblacion al que pertenece el colectivo si es de la sesp'
|
|
1975
|
+
|
|
1976
|
+
def __str__(self):
|
|
1977
|
+
return str(self.id_pcsesp)
|
|
1978
|
+
|
|
1979
|
+
class ActividadesColectivo(models.Model):
|
|
1980
|
+
"""
|
|
1981
|
+
Modelo para actividades del colectivo.
|
|
1982
|
+
|
|
1983
|
+
Attributes:
|
|
1984
|
+
id_acolectivo: Identificador único UUID.
|
|
1985
|
+
descripcion_actividad: Descripción de la actividad (hasta 2000 caracteres).
|
|
1986
|
+
poblacion_colectivo: Relación con población del colectivo.
|
|
1987
|
+
"""
|
|
1988
|
+
id_acolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
1989
|
+
descripcion_actividad = models.CharField(max_length=2000, blank=True, null=True)
|
|
1990
|
+
poblacion_colectivo = models.ForeignKey(IdPoblacionColectivo, to_field='id_ipcolectivo', on_delete=models.CASCADE)
|
|
1991
|
+
|
|
1992
|
+
class Meta:
|
|
1993
|
+
db_table = 'eco_gsc_acolectivo'
|
|
1994
|
+
verbose_name_plural = 'actividadeds del colectivo'
|
|
1995
|
+
|
|
1996
|
+
def __str__(self):
|
|
1997
|
+
return str(self.id_acolectivo)
|
|
1998
|
+
|
|
1999
|
+
class HechoVictimizanteColectivo(models.Model):
|
|
2000
|
+
"""
|
|
2001
|
+
Modelo para hechos victimizantes del colectivo.
|
|
2002
|
+
|
|
2003
|
+
Attributes:
|
|
2004
|
+
id_hvcolectivo: Identificador único UUID.
|
|
2005
|
+
descripcion_hvcolectivo: Descripción del hecho victimizante (hasta 5000 caracteres).
|
|
2006
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
2007
|
+
"""
|
|
2008
|
+
id_hvcolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2009
|
+
descripcion_hvcolectivo = models.CharField(max_length=5000, null=True, blank=True)
|
|
2010
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
2011
|
+
|
|
2012
|
+
class Meta:
|
|
2013
|
+
db_table = 'eco_sis_hvcolectivo'
|
|
2014
|
+
verbose_name_plural = 'Hechos victimizantes del colectivo'
|
|
2015
|
+
|
|
2016
|
+
def __str__(self):
|
|
2017
|
+
return str(self.id_hvcolectivo)
|
|
2018
|
+
|
|
2019
|
+
class ConsentimientoColectivo(models.Model):
|
|
2020
|
+
"""
|
|
2021
|
+
Modelo para consentimiento informado del colectivo.
|
|
2022
|
+
|
|
2023
|
+
Attributes:
|
|
2024
|
+
id_cocolectivo: Identificador único UUID.
|
|
2025
|
+
acepta_tdpersonales: Aceptación de tratamiento de datos personales.
|
|
2026
|
+
autoriza_mpfpublica: Autorización ministerio público/fiscalía.
|
|
2027
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
2028
|
+
"""
|
|
2029
|
+
id_cocolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2030
|
+
acepta_tdpersonales = models.BooleanField(null=False)
|
|
2031
|
+
autoriza_mpfpublica = models.BooleanField(null=False)
|
|
2032
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
2033
|
+
|
|
2034
|
+
class Meta:
|
|
2035
|
+
db_table = 'eco_gsc_consentimientoColectivo'
|
|
2036
|
+
verbose_name_plural = 'Consentimiento del colectivo'
|
|
2037
|
+
|
|
2038
|
+
def __str__(self):
|
|
2039
|
+
return str(self.id_cocolectivo)
|
|
2040
|
+
|
|
2041
|
+
class FormularioColectivo(Formulario):
|
|
2042
|
+
"""
|
|
2043
|
+
Modelo para formularios de colectivos (extiende Formulario).
|
|
2044
|
+
|
|
2045
|
+
Attributes:
|
|
2046
|
+
colectivo: Datos básicos del colectivo.
|
|
2047
|
+
factor_diferencial: Factor diferencial del colectivo.
|
|
2048
|
+
medida_cautelar: Medidas cautelares aplicables.
|
|
2049
|
+
id_representante: Representante del colectivo.
|
|
2050
|
+
poblacion_colectivo: Población del colectivo.
|
|
2051
|
+
hecho_victimizante: Hechos victimizantes.
|
|
2052
|
+
consentimiento: Datos de consentimiento.
|
|
2053
|
+
"""
|
|
2054
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
2055
|
+
factor_diferencial = models.ForeignKey(ColectivoFDiferencial, to_field='id_icfdiferencial', on_delete=models.CASCADE, null=True, blank=True)
|
|
2056
|
+
medida_cautelar = models.ForeignKey(MedidaCautelarColectivo, to_field='id_mccolectivo', on_delete=models.CASCADE, null=True, blank=True)
|
|
2057
|
+
id_representante = models.ForeignKey(PersonaColectivo, to_field='id_pcolectivo', on_delete=models.CASCADE, null=True, blank=True)
|
|
2058
|
+
poblacion_colectivo = models.ForeignKey(IdPoblacionColectivo, to_field='id_ipcolectivo', on_delete=models.CASCADE, null=True, blank=True)
|
|
2059
|
+
hecho_victimizante = models.ForeignKey(HechoVictimizanteColectivo, to_field='id_hvcolectivo', on_delete=models.CASCADE, null=True, blank=True)
|
|
2060
|
+
consentimiento = models.ForeignKey(ConsentimientoColectivo, to_field='id_cocolectivo', on_delete=models.CASCADE, null=True, blank=True)
|
|
2061
|
+
|
|
2062
|
+
class Meta:
|
|
2063
|
+
db_table = 'eco_gsc_formulariocolectivo'
|
|
2064
|
+
verbose_name_plural = 'Datos del formulario colectivo'
|
|
2065
|
+
|
|
2066
|
+
def __str__(self):
|
|
2067
|
+
return str(self.id_formulario)
|
|
2068
|
+
|
|
2069
|
+
class MujeresBuscadorasColectivo(models.Model):
|
|
2070
|
+
"""
|
|
2071
|
+
Modelo para indicar si el colectivo tiene mujeres buscadoras.
|
|
2072
|
+
|
|
2073
|
+
Attributes:
|
|
2074
|
+
id_mbuscadoras: Identificador único UUID.
|
|
2075
|
+
cuenta: Indicador si cuenta con mujeres buscadoras.
|
|
2076
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
2077
|
+
"""
|
|
2078
|
+
id_mbuscadoras = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2079
|
+
cuenta = models.BooleanField(default=False)
|
|
2080
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
2081
|
+
|
|
2082
|
+
class Meta:
|
|
2083
|
+
db_table = 'eco_gsc_mujeresbuscadorascolectivo'
|
|
2084
|
+
verbose_name_plural = 'Chequear si hay mujeres buscadoras del colectivo'
|
|
2085
|
+
|
|
2086
|
+
def __str__(self):
|
|
2087
|
+
return str(self.id_mbuscadoras)
|
|
2088
|
+
|
|
2089
|
+
class PNISColectivo(models.Model):
|
|
2090
|
+
"""
|
|
2091
|
+
Modelo para vincular colectivo con categoría PNIS.
|
|
2092
|
+
|
|
2093
|
+
Attributes:
|
|
2094
|
+
id_pniscolectivo: Identificador único UUID.
|
|
2095
|
+
categoria_pnis: Categoría del PNIS.
|
|
2096
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
2097
|
+
"""
|
|
2098
|
+
id_pniscolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2099
|
+
categoria_pnis = models.ForeignKey(CategoriaPnis, to_field='id_categoriapnis', on_delete=models.CASCADE)
|
|
2100
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
2101
|
+
|
|
2102
|
+
class Meta:
|
|
2103
|
+
db_table = 'eco_gsc_pniscolectivo'
|
|
2104
|
+
verbose_name_plural = 'Programa nacional integral de sustitución de cultivos ilícitos'
|
|
2105
|
+
|
|
2106
|
+
def __str__(self):
|
|
2107
|
+
return str(self.id_pniscolectivo)
|
|
2108
|
+
|
|
2109
|
+
class OrganizacionPoliticaColectivo(models.Model):
|
|
2110
|
+
"""
|
|
2111
|
+
Modelo para organización política del colectivo.
|
|
2112
|
+
|
|
2113
|
+
Attributes:
|
|
2114
|
+
id_organizacionpolitica: Identificador único UUID.
|
|
2115
|
+
tipo_catorganizacion: Tipo de categoría de organización.
|
|
2116
|
+
poblacion_colectivo: Relación con población del colectivo.
|
|
2117
|
+
"""
|
|
2118
|
+
id_organizacionpolitica = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2119
|
+
tipo_catorganizacion = models.ForeignKey(TipoCategoriaOrganizacion, to_field='id_catorganizacion', on_delete=models.CASCADE)
|
|
2120
|
+
poblacion_colectivo = models.ForeignKey(IdPoblacionColectivo, to_field='id_ipcolectivo', on_delete=models.CASCADE, null=True, blank=True)
|
|
2121
|
+
|
|
2122
|
+
class Meta:
|
|
2123
|
+
db_table = 'eco_gsc_organizacionpoliticacolectivo'
|
|
2124
|
+
verbose_name_plural = 'Organización política del Colectivo'
|
|
2125
|
+
|
|
2126
|
+
def __str__(self):
|
|
2127
|
+
return str(self.id_organizacionpolitica)
|
|
2128
|
+
|
|
2129
|
+
class DireccionNotificacionColectivo(models.Model):
|
|
2130
|
+
"""
|
|
2131
|
+
Modelo para dirección de notificación del colectivo.
|
|
2132
|
+
|
|
2133
|
+
Attributes:
|
|
2134
|
+
id_notificacion: Identificador único UUID.
|
|
2135
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
2136
|
+
"""
|
|
2137
|
+
id_notificacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2138
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
2139
|
+
|
|
2140
|
+
class Meta:
|
|
2141
|
+
db_table = 'eco_gsc_direccionnotificacioncolectivo'
|
|
2142
|
+
verbose_name_plural = 'Dirección de notificación del colectivo'
|
|
2143
|
+
|
|
2144
|
+
def __str__(self):
|
|
2145
|
+
return str(self.id_notificacion)
|
|
2146
|
+
|
|
2147
|
+
class IdRiesgoColectivo(models.Model):
|
|
2148
|
+
"""
|
|
2149
|
+
Modelo para identificación del riesgo del colectivo.
|
|
2150
|
+
|
|
2151
|
+
Attributes:
|
|
2152
|
+
id_iriesgocol: Identificador único UUID.
|
|
2153
|
+
colectivo: Relación con datos básicos del colectivo.
|
|
2154
|
+
"""
|
|
2155
|
+
id_iriesgocol = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2156
|
+
colectivo = models.ForeignKey(DatosbasicosColectivos, to_field='id_bcolectivos', on_delete=models.CASCADE)
|
|
2157
|
+
|
|
2158
|
+
class Meta:
|
|
2159
|
+
db_table = 'eco_gsc_identificacionriesgocol'
|
|
2160
|
+
verbose_name_plural = 'Identificación del Riesgo del colectivo'
|
|
2161
|
+
|
|
2162
|
+
def __str__(self):
|
|
2163
|
+
return str(self.id_iriesgocol)
|
|
2164
|
+
|
|
2165
|
+
class IdentificacionSituacionColectivo(models.Model):
|
|
2166
|
+
"""
|
|
2167
|
+
Modelo para identificación de situaciones de riesgo del colectivo.
|
|
2168
|
+
|
|
2169
|
+
Attributes:
|
|
2170
|
+
id_idsicolectivo: Identificador único UUID.
|
|
2171
|
+
identificacion_riesgo: Relación con identificación de riesgo.
|
|
2172
|
+
tipo_sriesgo: Tipo de situación de riesgo.
|
|
2173
|
+
"""
|
|
2174
|
+
id_idsicolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2175
|
+
identificacion_riesgo = models.ForeignKey(IdRiesgoColectivo, to_field='id_iriesgocol', on_delete=models.CASCADE)
|
|
2176
|
+
tipo_sriesgo = models.ForeignKey(TipoSituacionesRiesgo, to_field='id_tiporiesgo', on_delete=models.CASCADE)
|
|
2177
|
+
|
|
2178
|
+
class Meta:
|
|
2179
|
+
db_table = 'eco_gsc_identificacionsituacioncol'
|
|
2180
|
+
verbose_name_plural = 'Identificación de las situaciones de riesgo del colectivo'
|
|
2181
|
+
|
|
2182
|
+
def __str__(self):
|
|
2183
|
+
return str(self.id_idsicolectivo)
|
|
2184
|
+
|
|
2185
|
+
class OtraSituacionRiesgoColectivo(models.Model):
|
|
2186
|
+
"""
|
|
2187
|
+
Modelo para otras situaciones de riesgo del colectivo.
|
|
2188
|
+
|
|
2189
|
+
Attributes:
|
|
2190
|
+
id_osriesgocol: Identificador único UUID.
|
|
2191
|
+
nombre_osituacion: Nombre de otra situación de riesgo.
|
|
2192
|
+
identificacion_riesgo: Relación con identificación de riesgo.
|
|
2193
|
+
"""
|
|
2194
|
+
id_osriesgocol = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2195
|
+
nombre_osituacion = models.CharField(max_length=50, null=True, blank=True)
|
|
2196
|
+
identificacion_riesgo = models.ForeignKey(IdRiesgoColectivo, to_field='id_iriesgocol', on_delete=models.CASCADE)
|
|
2197
|
+
|
|
2198
|
+
class Meta:
|
|
2199
|
+
db_table = 'eco_gsc_osriesgocol'
|
|
2200
|
+
verbose_name_plural = 'Otra situación de riesgo del colectivo'
|
|
2201
|
+
def __str__(self):
|
|
2202
|
+
return str(self.id_osriesgocol)
|
|
2203
|
+
|
|
2204
|
+
class IdentificacionMedioColectivo(models.Model):
|
|
2205
|
+
"""
|
|
2206
|
+
Modelo para identificar medios de situación de riesgo del colectivo.
|
|
2207
|
+
|
|
2208
|
+
Attributes:
|
|
2209
|
+
id_idmecolectivo: Identificador único UUID.
|
|
2210
|
+
identificacion_riesgo: Relación con identificación de riesgo.
|
|
2211
|
+
medio_situacion: Tipo de medio de situación.
|
|
2212
|
+
"""
|
|
2213
|
+
id_idmecolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2214
|
+
identificacion_riesgo = models.ForeignKey(IdRiesgoColectivo, to_field='id_iriesgocol', on_delete=models.CASCADE)
|
|
2215
|
+
medio_situacion = models.ForeignKey(TipoMediosSituacion, to_field='id_msituacion', on_delete=models.CASCADE)
|
|
2216
|
+
|
|
2217
|
+
class Meta:
|
|
2218
|
+
db_table = 'eco_gsc_identificacionmediocol'
|
|
2219
|
+
verbose_name_plural = 'Identificacion de los medios de la situación de riesgo del colectivo'
|
|
2220
|
+
|
|
2221
|
+
def __str__(self):
|
|
2222
|
+
return str(self.id_idmecolectivo)
|
|
2223
|
+
|
|
2224
|
+
class OtroMedioSituacionColectivo(models.Model):
|
|
2225
|
+
"""
|
|
2226
|
+
Modelo para otros medios de situación de riesgo del colectivo.
|
|
2227
|
+
|
|
2228
|
+
Attributes:
|
|
2229
|
+
id_omsitucolectivo: Identificador único UUID.
|
|
2230
|
+
nombre_omsituacion: Nombre del otro medio.
|
|
2231
|
+
identificacion_riesgo: Relación con identificación de riesgo.
|
|
2232
|
+
"""
|
|
2233
|
+
id_omsitucolectivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2234
|
+
nombre_omsituacion = models.CharField(max_length=50, null=True, blank=True)
|
|
2235
|
+
identificacion_riesgo = models.ForeignKey(IdRiesgoColectivo, to_field='id_iriesgocol', on_delete=models.CASCADE)
|
|
2236
|
+
|
|
2237
|
+
class Meta:
|
|
2238
|
+
db_table = 'eco_gsc_omsituriesgocol'
|
|
2239
|
+
verbose_name_plural = 'Otro medio de la situación de riesgo del colectivo'
|
|
2240
|
+
def __str__(self):
|
|
2241
|
+
return str(self.id_omsitucolectivo)
|
|
2242
|
+
|
|
2243
|
+
|
|
2244
|
+
class SubPoblacionColectivo(models.Model):
|
|
2245
|
+
"""
|
|
2246
|
+
Modelo para subpoblaciones del colectivo.
|
|
2247
|
+
|
|
2248
|
+
Attributes:
|
|
2249
|
+
id_pcoelctivo: Identificador único UUID.
|
|
2250
|
+
tipo_pcolectivo: Tipo de subpoblación.
|
|
2251
|
+
poblacion_colectivo: Relación con población del colectivo.
|
|
2252
|
+
"""
|
|
2253
|
+
id_pcoelctivo = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2254
|
+
tipo_pcolectivo = models.ForeignKey(SubPoblacionObjeto, to_field='id_subpoblacion', on_delete=models.CASCADE)
|
|
2255
|
+
poblacion_colectivo = models.ForeignKey(IdPoblacionColectivo, to_field='id_ipcolectivo', on_delete=models.CASCADE)
|
|
2256
|
+
|
|
2257
|
+
class Meta:
|
|
2258
|
+
db_table = 'eco_gsc_subpoblacioncolectivo'
|
|
2259
|
+
verbose_name_plural = 'subPoblacion al que pertenece el colectivo'
|
|
2260
|
+
|
|
2261
|
+
def __str__(self):
|
|
2262
|
+
return str(self.id_pcoelctivo)
|
|
2263
|
+
|
|
2264
|
+
|
|
2265
|
+
###### modelos reportes del sistema ######
|
|
2266
|
+
class Reporte(models.Model):
|
|
2267
|
+
"""
|
|
2268
|
+
Modelo para reportes del sistema.
|
|
2269
|
+
|
|
2270
|
+
Attributes:
|
|
2271
|
+
id_reporte: Identificador único UUID (no editable).
|
|
2272
|
+
tipo_reporte: Tipo de reporte.
|
|
2273
|
+
es_prioritario: Indicador si es prioritario.
|
|
2274
|
+
esta_activo: Indicador si está activo.
|
|
2275
|
+
esta_online: Indicador si está disponible en línea.
|
|
2276
|
+
"""
|
|
2277
|
+
id_reporte = models.UUIDField(primary_key=True, editable=False)
|
|
2278
|
+
tipo_reporte = models.ForeignKey(TipoReporte, to_field='id_treporte', on_delete=models.CASCADE, null=True, blank=True)
|
|
2279
|
+
es_prioritario = models.BooleanField(default=False)
|
|
2280
|
+
esta_activo = models.BooleanField(default=False)
|
|
2281
|
+
esta_online = models.BooleanField(default=True)
|
|
2282
|
+
|
|
2283
|
+
class Meta:
|
|
2284
|
+
db_table = 'eco_sis_reporte'
|
|
2285
|
+
verbose_name_plural = 'Reportes'
|
|
2286
|
+
|
|
2287
|
+
def __str__(self):
|
|
2288
|
+
return str(self.id_reporte)
|
|
2289
|
+
|
|
2290
|
+
|
|
2291
|
+
class FechasReporte(models.Model):
|
|
2292
|
+
"""
|
|
2293
|
+
Modelo para fechas de reportes.
|
|
2294
|
+
|
|
2295
|
+
Attributes:
|
|
2296
|
+
id_fechasreporte: Identificador único UUID.
|
|
2297
|
+
fecha_inicio: Fecha de inicio del reporte.
|
|
2298
|
+
fecha_fin: Fecha de fin del reporte.
|
|
2299
|
+
reporte: Relación con el reporte.
|
|
2300
|
+
"""
|
|
2301
|
+
id_fechasreporte = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2302
|
+
fecha_inicio = models.DateField(null=True, blank=True)
|
|
2303
|
+
fecha_fin = models.DateField(null=True, blank=True)
|
|
2304
|
+
reporte = models.ForeignKey(Reporte, to_field='id_reporte', on_delete=models.CASCADE, null=True, blank=True)
|
|
2305
|
+
|
|
2306
|
+
class Meta:
|
|
2307
|
+
db_table = 'eco_sis_fechasreporte'
|
|
2308
|
+
verbose_name_plural = 'fechas de reportes'
|
|
2309
|
+
|
|
2310
|
+
def __str__(self):
|
|
2311
|
+
return str(self.id_fechasreporte)
|
|
2312
|
+
|
|
2313
|
+
class UbiacionReporte(models.Model):
|
|
2314
|
+
"""
|
|
2315
|
+
Modelo para ubicaciones de reportes.
|
|
2316
|
+
|
|
2317
|
+
Attributes:
|
|
2318
|
+
id_ubicacion: Identificador único UUID.
|
|
2319
|
+
es_inicio: Indicador si es ubicación de inicio.
|
|
2320
|
+
pais: País de la ubicación.
|
|
2321
|
+
departamento: Departamento.
|
|
2322
|
+
municipio: Municipio.
|
|
2323
|
+
zona: Zona de ubicación.
|
|
2324
|
+
geom: Punto geográfico (SRID 4326).
|
|
2325
|
+
reporte: Relación con el reporte.
|
|
2326
|
+
"""
|
|
2327
|
+
id_ubicacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2328
|
+
es_inicio = models.BooleanField(default=True)
|
|
2329
|
+
pais = models.ForeignKey(Pais, to_field='id_pais', on_delete=models.CASCADE, null=True, blank=True)
|
|
2330
|
+
departamento = models.ForeignKey(Departamento, to_field='id_departamento', on_delete=models.CASCADE, null=True, blank=True)
|
|
2331
|
+
municipio = models.ForeignKey(Municipio, to_field='id_municipio', on_delete=models.CASCADE, null=True, blank=True)
|
|
2332
|
+
zona = models.ForeignKey(ZonaUbicacion, to_field='id_zubicacion', on_delete=models.CASCADE, null=True, blank=True)
|
|
2333
|
+
geom = geo_models.PointField(srid=4326, blank=True, null=True)
|
|
2334
|
+
reporte = models.ForeignKey(Reporte, to_field='id_reporte', on_delete=models.CASCADE, null=True, blank=True)
|
|
2335
|
+
|
|
2336
|
+
class Meta:
|
|
2337
|
+
db_table = 'eco_sis_ubicacionreporte'
|
|
2338
|
+
verbose_name_plural = 'Ubicaciones de reporte'
|
|
2339
|
+
|
|
2340
|
+
def __str__(self):
|
|
2341
|
+
return str(self.id_ubicacion)
|
|
2342
|
+
|
|
2343
|
+
class FechaHoraReporte(models.Model):
|
|
2344
|
+
"""
|
|
2345
|
+
Modelo para fechas y horas de reportes.
|
|
2346
|
+
|
|
2347
|
+
Attributes:
|
|
2348
|
+
id_fecha_hora: Identificador único UUID.
|
|
2349
|
+
es_inicio: Indicador si es fecha/hora de inicio.
|
|
2350
|
+
fecha: Fecha del reporte.
|
|
2351
|
+
hora: Hora del reporte.
|
|
2352
|
+
reporte: Relación con el reporte.
|
|
2353
|
+
"""
|
|
2354
|
+
id_fecha_hora = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2355
|
+
es_inicio = models.BooleanField(default=True)
|
|
2356
|
+
fecha = models.DateField(default=timezone.now)
|
|
2357
|
+
hora = models.TimeField(default=timezone.now)
|
|
2358
|
+
reporte = models.ForeignKey(Reporte, to_field='id_reporte', on_delete=models.CASCADE, null=True, blank=True)
|
|
2359
|
+
|
|
2360
|
+
class Meta:
|
|
2361
|
+
db_table = 'eco_sis_fechahorareporte'
|
|
2362
|
+
verbose_name_plural = 'Fechas y horas de reporte'
|
|
2363
|
+
|
|
2364
|
+
def __str__(self):
|
|
2365
|
+
return str(self.id_fecha_hora)
|
|
2366
|
+
|
|
2367
|
+
class UsuarioReporte(models.Model):
|
|
2368
|
+
"""
|
|
2369
|
+
Modelo para usuarios asociados a reportes.
|
|
2370
|
+
|
|
2371
|
+
Attributes:
|
|
2372
|
+
id_usuario_reporte: Identificador único UUID.
|
|
2373
|
+
usuario: Datos básicos del usuario.
|
|
2374
|
+
reporte: Relación con el reporte.
|
|
2375
|
+
acepta_reporte: Indicador si acepta el reporte.
|
|
2376
|
+
genera_reporte: Indicador si genera el reporte.
|
|
2377
|
+
geom: Ubicación geográfica del usuario (SRID 4326).
|
|
2378
|
+
"""
|
|
2379
|
+
id_usuario_reporte = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2380
|
+
usuario = models.ForeignKey(DatosBasicosUsuario, to_field='id_busuario', on_delete=models.CASCADE, null=True, blank=True)
|
|
2381
|
+
reporte = models.ForeignKey(Reporte, to_field='id_reporte', on_delete=models.CASCADE, null=True, blank=True)
|
|
2382
|
+
acepta_reporte = models.BooleanField(default=False)
|
|
2383
|
+
genera_reporte = models.BooleanField(default=True)
|
|
2384
|
+
geom = geo_models.PointField(srid=4326, blank=True, null=True)
|
|
2385
|
+
|
|
2386
|
+
class Meta:
|
|
2387
|
+
db_table = 'eco_sis_usuarioreporte'
|
|
2388
|
+
verbose_name_plural = 'Usuarios de reporte'
|
|
2389
|
+
|
|
2390
|
+
def __str__(self):
|
|
2391
|
+
return str(self.id_usuario_reporte)
|
|
2392
|
+
|
|
2393
|
+
class ObservacionReporte(models.Model):
|
|
2394
|
+
"""
|
|
2395
|
+
Modelo para observaciones de reportes.
|
|
2396
|
+
|
|
2397
|
+
Attributes:
|
|
2398
|
+
id_observacion: Identificador único UUID.
|
|
2399
|
+
observacion: Texto de la observación (hasta 500 caracteres).
|
|
2400
|
+
usuario: Usuario que realiza la observación.
|
|
2401
|
+
reporte: Relación con el reporte.
|
|
2402
|
+
"""
|
|
2403
|
+
id_observacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2404
|
+
observacion = models.CharField(max_length=500, null=True, blank=True)
|
|
2405
|
+
usuario = models.ForeignKey(DatosBasicosUsuario, to_field='id_busuario', on_delete=models.CASCADE, null=True, blank=True)
|
|
2406
|
+
reporte = models.ForeignKey(Reporte, to_field='id_reporte', on_delete=models.CASCADE, null=True, blank=True)
|
|
2407
|
+
|
|
2408
|
+
class Meta:
|
|
2409
|
+
db_table = 'eco_sis_observacionreporte'
|
|
2410
|
+
verbose_name_plural = 'Observaciones de reporte'
|
|
2411
|
+
|
|
2412
|
+
def __str__(self):
|
|
2413
|
+
return str(self.id_observacion)
|
|
2414
|
+
|
|
2415
|
+
|
|
2416
|
+
###### modelos solicitudes del sistema ######
|
|
2417
|
+
class RegistroSolicitud(models.Model):
|
|
2418
|
+
"""
|
|
2419
|
+
Modelo para solicitudes de registro en el sistema.
|
|
2420
|
+
|
|
2421
|
+
Usa Django ContentTypes para relaciones genéricas.
|
|
2422
|
+
|
|
2423
|
+
Attributes:
|
|
2424
|
+
id_solicitud: Identificador único UUID.
|
|
2425
|
+
objects_id: ID del objeto relacionado.
|
|
2426
|
+
content_type: Tipo de contenido (generic relation).
|
|
2427
|
+
tipo_solicitud: Tipo de solicitud.
|
|
2428
|
+
"""
|
|
2429
|
+
id_solicitud = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2430
|
+
objects_id = models.CharField(blank=True, null=True, max_length=50)
|
|
2431
|
+
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE, blank=True, null=True)
|
|
2432
|
+
tipo_solicitud = models.ForeignKey(TipoSolicitud,to_field="id_tiposolicitud", on_delete=models.CASCADE, blank=True, null=True)
|
|
2433
|
+
|
|
2434
|
+
class Meta:
|
|
2435
|
+
db_table = 'eco_sis_registrosolicitud'
|
|
2436
|
+
verbose_name_plural = 'Solicitudes de registros'
|
|
2437
|
+
|
|
2438
|
+
def __str__(self):
|
|
2439
|
+
return str(self.id_solicitud)
|
|
2440
|
+
|
|
2441
|
+
|
|
2442
|
+
class LapsoTiempoSolicitud(models.Model):
|
|
2443
|
+
"""
|
|
2444
|
+
Modelo para lapso de tiempo de las solicitudes.
|
|
2445
|
+
|
|
2446
|
+
Attributes:
|
|
2447
|
+
id_lapso: Identificador único UUID.
|
|
2448
|
+
fecha_inicio: Fecha de inicio del lapso.
|
|
2449
|
+
fecha_fin: Fecha de fin del lapso.
|
|
2450
|
+
solicitud: Relación con la solicitud.
|
|
2451
|
+
"""
|
|
2452
|
+
id_lapso = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2453
|
+
fecha_inicio = models.DateField(null=True, blank=True)
|
|
2454
|
+
fecha_fin = models.DateField(null=True, blank=True)
|
|
2455
|
+
solicitud = models.ForeignKey(RegistroSolicitud, to_field='id_solicitud', on_delete=models.CASCADE)
|
|
2456
|
+
|
|
2457
|
+
class Meta:
|
|
2458
|
+
db_table = 'eco_sis_lapsotiemposolicitud'
|
|
2459
|
+
verbose_name_plural = 'Lapso de tiempo de la solicitud'
|
|
2460
|
+
|
|
2461
|
+
def __str__(self):
|
|
2462
|
+
return str(self.id_lapso)
|
|
2463
|
+
|
|
2464
|
+
class EstadoRegistroSolicitud(models.Model):
|
|
2465
|
+
"""
|
|
2466
|
+
Modelo para estados de las solicitudes de registro.
|
|
2467
|
+
|
|
2468
|
+
Attributes:
|
|
2469
|
+
id_estadosolicitud: Identificador único UUID.
|
|
2470
|
+
estado: Estado específico de la solicitud.
|
|
2471
|
+
fecha_cambio: Fecha y hora del cambio de estado (auto-generada).
|
|
2472
|
+
solicitud: Relación con la solicitud.
|
|
2473
|
+
"""
|
|
2474
|
+
id_estadosolicitud = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2475
|
+
estado = models.ForeignKey(EstadoEspecificoSolicitud, to_field='id_testado', on_delete=models.CASCADE, null=True)
|
|
2476
|
+
fecha_cambio = models.DateTimeField(auto_now_add=True)
|
|
2477
|
+
solicitud = models.ForeignKey(RegistroSolicitud, to_field='id_solicitud', on_delete=models.CASCADE)
|
|
2478
|
+
|
|
2479
|
+
|
|
2480
|
+
class Meta:
|
|
2481
|
+
db_table = 'eco_sis_estadoregistrosolicitud'
|
|
2482
|
+
verbose_name_plural = 'Estados de la solicitud'
|
|
2483
|
+
|
|
2484
|
+
def __str__(self):
|
|
2485
|
+
return str(self.id_estadosolicitud)
|
|
2486
|
+
|
|
2487
|
+
|
|
2488
|
+
class TrazabilidadSolicitud(models.Model):
|
|
2489
|
+
id_traza = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
2490
|
+
registro_solicitud = models.ForeignKey(RegistroSolicitud, to_field='id_solicitud', on_delete=models.CASCADE,null=True,blank=True)
|
|
2491
|
+
estado_registro = models.ForeignKey(EstadoEspecificoSolicitud, to_field='id_testado', on_delete=models.CASCADE,null=True,blank=True)
|
|
2492
|
+
fecha_inicio_trazabilidad = models.DateField(null=True, blank=True)
|
|
2493
|
+
fecha_fin_trazabilidad = models.DateField(null=True, blank=True)
|
|
2494
|
+
observacion = models.CharField(max_length=500, null=True, blank=True)
|
|
2495
|
+
estado = models.BooleanField(default=True)
|
|
2496
|
+
|
|
2497
|
+
class Meta:
|
|
2498
|
+
db_table = 'eco_sis_trazabilidadsolicitud'
|
|
2499
|
+
verbose_name_plural = 'Trazabilidad de la solicitud'
|
|
2500
|
+
ordering = ['fecha_inicio_trazabilidad']
|
|
2501
|
+
|
|
2502
|
+
def __str__(self):
|
|
2503
|
+
return str(self.id_traza)
|