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,1127 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Modelos estáticos para datos predeterminados del sistema eco-back.
|
|
3
|
+
|
|
4
|
+
Este módulo contiene los modelos de Django para tablas de referencia con datos
|
|
5
|
+
predefinidos que son utilizados por toda la aplicación. Incluye información
|
|
6
|
+
geográfica, tipos de datos, catálogos y configuraciones del sistema.
|
|
7
|
+
"""
|
|
8
|
+
from django.db import models
|
|
9
|
+
import uuid
|
|
10
|
+
|
|
11
|
+
##### MODELOS GEOGRÁFICOS #######
|
|
12
|
+
|
|
13
|
+
class Pais(models.Model):
|
|
14
|
+
"""
|
|
15
|
+
Modelo para almacenar países.
|
|
16
|
+
|
|
17
|
+
Contiene el catálogo de países utilizado para referencias geográficas.
|
|
18
|
+
Incluye un campo especial para identificar a Colombia.
|
|
19
|
+
|
|
20
|
+
Attributes:
|
|
21
|
+
id_pais: Identificador único del país.
|
|
22
|
+
nombre_pais: Nombre completo del país.
|
|
23
|
+
es_colombia: Indicador booleano que identifica si el país es Colombia.
|
|
24
|
+
"""
|
|
25
|
+
id_pais = models.AutoField(primary_key=True)
|
|
26
|
+
nombre_pais = models.CharField(max_length=170, null=False, blank=False)
|
|
27
|
+
es_colombia = models.BooleanField(default=False)
|
|
28
|
+
|
|
29
|
+
class Meta:
|
|
30
|
+
db_table = 'eco_ext_pais'
|
|
31
|
+
verbose_name_plural = 'Países'
|
|
32
|
+
|
|
33
|
+
def __str__(self):
|
|
34
|
+
return str(self.id_pais)
|
|
35
|
+
|
|
36
|
+
class Departamento(models.Model):
|
|
37
|
+
"""
|
|
38
|
+
Modelo para almacenar departamentos o estados.
|
|
39
|
+
|
|
40
|
+
Contiene la división administrativa de primer nivel de cada país.
|
|
41
|
+
Relacionado con el país al que pertenece.
|
|
42
|
+
|
|
43
|
+
Attributes:
|
|
44
|
+
id_departamento: Código único del departamento (generalmente código DANE).
|
|
45
|
+
nombre_departamento: Nombre completo del departamento.
|
|
46
|
+
pais: Relación con el país al que pertenece el departamento.
|
|
47
|
+
"""
|
|
48
|
+
id_departamento = models.IntegerField(primary_key=True)
|
|
49
|
+
nombre_departamento = models.CharField(max_length=85, null=False, blank=False)
|
|
50
|
+
pais = models.ForeignKey(Pais, to_field='id_pais', on_delete=models.CASCADE)
|
|
51
|
+
|
|
52
|
+
class Meta:
|
|
53
|
+
db_table = 'eco_ext_departamento'
|
|
54
|
+
verbose_name_plural = 'Departamentos'
|
|
55
|
+
|
|
56
|
+
def __str__(self):
|
|
57
|
+
return str(self.id_departamento)
|
|
58
|
+
|
|
59
|
+
class Municipio(models.Model):
|
|
60
|
+
"""
|
|
61
|
+
Modelo para almacenar municipios o ciudades.
|
|
62
|
+
|
|
63
|
+
Contiene la división administrativa de segundo nivel, perteneciente a un departamento.
|
|
64
|
+
|
|
65
|
+
Attributes:
|
|
66
|
+
id_municipio: Código único del municipio (generalmente código DANE).
|
|
67
|
+
nombre_municipio: Nombre completo del municipio.
|
|
68
|
+
departamento: Relación con el departamento al que pertenece el municipio.
|
|
69
|
+
"""
|
|
70
|
+
id_municipio = models.IntegerField(primary_key=True)
|
|
71
|
+
nombre_municipio = models.CharField(max_length=85, null=False, blank=False)
|
|
72
|
+
departamento = models.ForeignKey(Departamento, to_field='id_departamento', on_delete=models.CASCADE)
|
|
73
|
+
|
|
74
|
+
class Meta:
|
|
75
|
+
db_table = 'eco_ext_municipio'
|
|
76
|
+
verbose_name_plural = 'Municipios'
|
|
77
|
+
|
|
78
|
+
def __str__(self):
|
|
79
|
+
return str(self.id_municipio)
|
|
80
|
+
|
|
81
|
+
class ZonaUbicacion(models.Model):
|
|
82
|
+
"""
|
|
83
|
+
Modelo para tipos de zona de ubicación.
|
|
84
|
+
|
|
85
|
+
Define las zonas donde puede ubicarse una persona o entidad (Ej: Urbana, Rural).
|
|
86
|
+
|
|
87
|
+
Attributes:
|
|
88
|
+
id_zubicacion: Identificador único de la zona.
|
|
89
|
+
nombre_zubicacion: Nombre de la zona (Urbana/Rural).
|
|
90
|
+
"""
|
|
91
|
+
id_zubicacion = models.SmallAutoField(primary_key=True)
|
|
92
|
+
nombre_zubicacion = models.CharField(max_length=10)
|
|
93
|
+
|
|
94
|
+
class Meta:
|
|
95
|
+
db_table = 'eco_bas_zonaubicacion'
|
|
96
|
+
verbose_name_plural = 'Zona de ubicación'
|
|
97
|
+
|
|
98
|
+
def __str__(self):
|
|
99
|
+
return str(self.nombre_zubicacion)
|
|
100
|
+
|
|
101
|
+
class TipoIdentificacion(models.Model):
|
|
102
|
+
"""
|
|
103
|
+
Modelo para tipos de documento de identificación.
|
|
104
|
+
|
|
105
|
+
Catálogo de tipos de documentos válidos (CC, TI, CE, Pasaporte, etc.).
|
|
106
|
+
|
|
107
|
+
Attributes:
|
|
108
|
+
id_tidentificacion: Identificador único del tipo de documento.
|
|
109
|
+
nombre_tidentificacion: Nombre del tipo de documento.
|
|
110
|
+
"""
|
|
111
|
+
id_tidentificacion = models.SmallAutoField(primary_key=True)
|
|
112
|
+
nombre_tidentificacion = models.CharField(max_length=30)
|
|
113
|
+
|
|
114
|
+
class Meta:
|
|
115
|
+
db_table = 'eco_bas_tipoidentificacion'
|
|
116
|
+
verbose_name_plural = 'Tipo de identificación'
|
|
117
|
+
|
|
118
|
+
def __str__(self):
|
|
119
|
+
return str(self.nombre_tidentificacion)
|
|
120
|
+
|
|
121
|
+
class TipoRuta(models.Model):
|
|
122
|
+
"""
|
|
123
|
+
Modelo para tipos de ruta de atención.
|
|
124
|
+
|
|
125
|
+
Define las diferentes rutas de atención disponibles en el sistema.
|
|
126
|
+
|
|
127
|
+
Attributes:
|
|
128
|
+
id_truta: Identificador único del tipo de ruta.
|
|
129
|
+
nombre_truta: Nombre descriptivo del tipo de ruta.
|
|
130
|
+
"""
|
|
131
|
+
id_truta = models.AutoField(primary_key=True)
|
|
132
|
+
nombre_truta = models.CharField(max_length=20, null=True, blank=True)
|
|
133
|
+
|
|
134
|
+
class Meta:
|
|
135
|
+
db_table = 'eco_bas_ruta'
|
|
136
|
+
verbose_name_plural = 'Tipo de ruta'
|
|
137
|
+
|
|
138
|
+
def __str__(self):
|
|
139
|
+
return str(self.id_truta)
|
|
140
|
+
|
|
141
|
+
class TipoGenero(models.Model):
|
|
142
|
+
"""
|
|
143
|
+
Modelo para tipos de género.
|
|
144
|
+
|
|
145
|
+
Catálogo de identidades de género reconocidas en el sistema.
|
|
146
|
+
|
|
147
|
+
Attributes:
|
|
148
|
+
id_tgenero: Identificador único del tipo de género.
|
|
149
|
+
nombre_tgenero: Nombre del tipo de género.
|
|
150
|
+
"""
|
|
151
|
+
id_tgenero = models.SmallAutoField(primary_key=True)
|
|
152
|
+
nombre_tgenero = models.CharField(max_length=30)
|
|
153
|
+
|
|
154
|
+
class Meta:
|
|
155
|
+
db_table = 'eco_bas_tipogenero'
|
|
156
|
+
verbose_name_plural = 'Tipo de género'
|
|
157
|
+
|
|
158
|
+
def __str__(self):
|
|
159
|
+
return str(self.nombre_tgenero)
|
|
160
|
+
|
|
161
|
+
class EstadoCivil(models.Model):
|
|
162
|
+
"""
|
|
163
|
+
Modelo para estados civiles.
|
|
164
|
+
|
|
165
|
+
Catálogo de estados civiles (Soltero, Casado, Unión libre, etc.).
|
|
166
|
+
|
|
167
|
+
Attributes:
|
|
168
|
+
id_ecivil: Identificador único del estado civil.
|
|
169
|
+
nombre_ecivil: Nombre del estado civil.
|
|
170
|
+
"""
|
|
171
|
+
id_ecivil = models.SmallAutoField(primary_key=True)
|
|
172
|
+
nombre_ecivil = models.CharField(max_length=30)
|
|
173
|
+
|
|
174
|
+
class Meta:
|
|
175
|
+
db_table = 'eco_bas_estadocivil'
|
|
176
|
+
verbose_name_plural = 'Estado civil'
|
|
177
|
+
|
|
178
|
+
def __str__(self):
|
|
179
|
+
return str(self.nombre_ecivil)
|
|
180
|
+
|
|
181
|
+
class GpRh(models.Model):
|
|
182
|
+
"""
|
|
183
|
+
Modelo para grupos sanguíneos RH.
|
|
184
|
+
|
|
185
|
+
Catálogo de grupos sanguíneos y factor RH (A+, O-, AB+, etc.).
|
|
186
|
+
|
|
187
|
+
Attributes:
|
|
188
|
+
id_grh: Identificador único del grupo RH.
|
|
189
|
+
nombre_grh: Nombre del grupo sanguíneo y factor RH.
|
|
190
|
+
"""
|
|
191
|
+
id_grh = models.SmallAutoField(primary_key=True)
|
|
192
|
+
nombre_grh = models.CharField(max_length=30)
|
|
193
|
+
|
|
194
|
+
class Meta:
|
|
195
|
+
db_table = 'eco_bas_gruporh'
|
|
196
|
+
verbose_name_plural = 'Grupo rh'
|
|
197
|
+
|
|
198
|
+
def __str__(self):
|
|
199
|
+
return str(self.nombre_grh)
|
|
200
|
+
|
|
201
|
+
class FondoPensiones(models.Model):
|
|
202
|
+
"""
|
|
203
|
+
Modelo para fondos de pensiones.
|
|
204
|
+
|
|
205
|
+
Catálogo de fondos de pensiones disponibles en Colombia.
|
|
206
|
+
|
|
207
|
+
Attributes:
|
|
208
|
+
id_fpensiones: Identificador único del fondo.
|
|
209
|
+
nombre_fpensiones: Nombre del fondo de pensiones.
|
|
210
|
+
"""
|
|
211
|
+
id_fpensiones = models.SmallAutoField(primary_key=True)
|
|
212
|
+
nombre_fpensiones = models.CharField(max_length=30)
|
|
213
|
+
|
|
214
|
+
class Meta:
|
|
215
|
+
db_table = 'eco_bas_fpensiones'
|
|
216
|
+
verbose_name_plural = 'Fondo de pensiones'
|
|
217
|
+
|
|
218
|
+
def __str__(self):
|
|
219
|
+
return str(self.nombre_fpensiones)
|
|
220
|
+
|
|
221
|
+
class Eps(models.Model):
|
|
222
|
+
"""
|
|
223
|
+
Modelo para Entidades Promotoras de Salud (EPS).
|
|
224
|
+
|
|
225
|
+
Catálogo de EPS disponibles en Colombia.
|
|
226
|
+
|
|
227
|
+
Attributes:
|
|
228
|
+
id_eps: Identificador único de la EPS.
|
|
229
|
+
nombre_eps: Nombre de la EPS.
|
|
230
|
+
"""
|
|
231
|
+
id_eps = models.SmallAutoField(primary_key=True)
|
|
232
|
+
nombre_eps = models.CharField(max_length=100)
|
|
233
|
+
|
|
234
|
+
class Meta:
|
|
235
|
+
db_table = 'eco_bas_eps'
|
|
236
|
+
verbose_name_plural = 'Eps'
|
|
237
|
+
|
|
238
|
+
def __str__(self):
|
|
239
|
+
return str(self.nombre_eps)
|
|
240
|
+
|
|
241
|
+
class TipoSexo(models.Model):
|
|
242
|
+
"""
|
|
243
|
+
Modelo para tipos de sexo biológico.
|
|
244
|
+
|
|
245
|
+
Catálogo de sexos biológicos (Masculino, Femenino, Intersexual).
|
|
246
|
+
|
|
247
|
+
Attributes:
|
|
248
|
+
id_tsexo: Identificador único del tipo de sexo.
|
|
249
|
+
nombre_tsexo: Nombre del tipo de sexo.
|
|
250
|
+
"""
|
|
251
|
+
id_tsexo = models.SmallAutoField(primary_key=True)
|
|
252
|
+
nombre_tsexo = models.CharField(max_length=30)
|
|
253
|
+
|
|
254
|
+
class Meta:
|
|
255
|
+
db_table = 'eco_bas_tiposexo'
|
|
256
|
+
verbose_name_plural = 'Tipo de sexo'
|
|
257
|
+
|
|
258
|
+
def __str__(self):
|
|
259
|
+
return str(self.nombre_tsexo)
|
|
260
|
+
|
|
261
|
+
class TipoOrientacionSexual(models.Model):
|
|
262
|
+
"""
|
|
263
|
+
Modelo para tipos de orientación sexual.
|
|
264
|
+
|
|
265
|
+
Catálogo de orientaciones sexuales reconocidas.
|
|
266
|
+
|
|
267
|
+
Attributes:
|
|
268
|
+
id_torientacion: Identificador único de la orientación sexual.
|
|
269
|
+
nombre_torientacion: Nombre de la orientación sexual.
|
|
270
|
+
"""
|
|
271
|
+
id_torientacion = models.SmallAutoField(primary_key=True)
|
|
272
|
+
nombre_torientacion = models.CharField(max_length=30)
|
|
273
|
+
|
|
274
|
+
class Meta:
|
|
275
|
+
db_table = 'eco_bas_tipoorientacion'
|
|
276
|
+
verbose_name_plural = 'Tipo de orientación sexual'
|
|
277
|
+
|
|
278
|
+
def __str__(self):
|
|
279
|
+
return str(self.nombre_torientacion)
|
|
280
|
+
|
|
281
|
+
class TipoRangoEtario(models.Model):
|
|
282
|
+
"""
|
|
283
|
+
Modelo para rangos etarios (grupos de edad).
|
|
284
|
+
|
|
285
|
+
Catálogo de rangos de edad utilizados para clasificación demográfica.
|
|
286
|
+
|
|
287
|
+
Attributes:
|
|
288
|
+
id_tretario: Identificador único del rango etario.
|
|
289
|
+
nombre_tretario: Nombre descriptivo del rango de edad.
|
|
290
|
+
"""
|
|
291
|
+
id_tretario = models.SmallAutoField(primary_key=True)
|
|
292
|
+
nombre_tretario = models.CharField(max_length=30)
|
|
293
|
+
|
|
294
|
+
class Meta:
|
|
295
|
+
db_table = 'eco_bas_tiporetario'
|
|
296
|
+
verbose_name_plural = 'Tipos de rangos etarios'
|
|
297
|
+
|
|
298
|
+
def __str__(self):
|
|
299
|
+
return str(self.nombre_tretario)
|
|
300
|
+
|
|
301
|
+
class TipoFactorDiferencial(models.Model):
|
|
302
|
+
"""
|
|
303
|
+
Modelo para factores diferenciales de población.
|
|
304
|
+
|
|
305
|
+
Catálogo de factores que identifican características especiales de las personas.
|
|
306
|
+
|
|
307
|
+
Attributes:
|
|
308
|
+
id_tfdiferencial: Identificador único del factor diferencial.
|
|
309
|
+
nombre_tfdiferencial: Nombre del factor diferencial.
|
|
310
|
+
"""
|
|
311
|
+
id_tfdiferencial = models.SmallAutoField(primary_key=True)
|
|
312
|
+
nombre_tfdiferencial = models.CharField(max_length=30)
|
|
313
|
+
|
|
314
|
+
class Meta:
|
|
315
|
+
db_table = 'eco_bas_tipofdiferencial'
|
|
316
|
+
verbose_name_plural = 'Tipo de factor diferencial'
|
|
317
|
+
|
|
318
|
+
def __str__(self):
|
|
319
|
+
return str(self.nombre_tfdiferencial)
|
|
320
|
+
|
|
321
|
+
class TipoIdentificacionColectivo(models.Model):
|
|
322
|
+
"""
|
|
323
|
+
Modelo para tipos de identificación de colectivos.
|
|
324
|
+
|
|
325
|
+
Catálogo de documentos válidos para organizaciones y colectivos.
|
|
326
|
+
|
|
327
|
+
Attributes:
|
|
328
|
+
id_ticolectivo: Identificador único del tipo de identificación.
|
|
329
|
+
nombre_ticolectivo: Nombre del tipo de identificación de colectivo.
|
|
330
|
+
"""
|
|
331
|
+
id_ticolectivo = models.SmallAutoField(primary_key=True)
|
|
332
|
+
nombre_ticolectivo = models.CharField(max_length=100)
|
|
333
|
+
|
|
334
|
+
class Meta:
|
|
335
|
+
db_table = 'eco_bas_ticolectivo'
|
|
336
|
+
verbose_name_plural = 'Tipo de identificacion de colectivos'
|
|
337
|
+
|
|
338
|
+
def __str__(self):
|
|
339
|
+
return str(self.id_ticolectivo)
|
|
340
|
+
|
|
341
|
+
class TipoDiscapacidad(models.Model):
|
|
342
|
+
"""
|
|
343
|
+
Modelo para tipos de discapacidad.
|
|
344
|
+
|
|
345
|
+
Catálogo de tipos de discapacidades reconocidas.
|
|
346
|
+
|
|
347
|
+
Attributes:
|
|
348
|
+
id_tdiscapacidad: Identificador único del tipo de discapacidad.
|
|
349
|
+
nombre_tdiscapacidad: Nombre del tipo de discapacidad.
|
|
350
|
+
"""
|
|
351
|
+
id_tdiscapacidad = models.SmallAutoField(primary_key=True)
|
|
352
|
+
nombre_tdiscapacidad = models.CharField(max_length=30)
|
|
353
|
+
|
|
354
|
+
class Meta:
|
|
355
|
+
db_table = 'eco_bas_tipodiscapacidad'
|
|
356
|
+
verbose_name_plural = 'Tipo de discapacidad'
|
|
357
|
+
|
|
358
|
+
def __str__(self):
|
|
359
|
+
return str(self.nombre_tdiscapacidad)
|
|
360
|
+
|
|
361
|
+
class TipoGrupoEtnico(models.Model):
|
|
362
|
+
"""
|
|
363
|
+
Modelo para tipos de grupos étnicos.
|
|
364
|
+
|
|
365
|
+
Catálogo de grupos étnicos reconocidos en Colombia.
|
|
366
|
+
|
|
367
|
+
Attributes:
|
|
368
|
+
id_tetnico: Identificador único del grupo étnico.
|
|
369
|
+
nombre_tetnico: Nombre del grupo étnico.
|
|
370
|
+
"""
|
|
371
|
+
id_tetnico = models.SmallAutoField(primary_key=True)
|
|
372
|
+
nombre_tetnico = models.CharField(max_length=30)
|
|
373
|
+
|
|
374
|
+
class Meta:
|
|
375
|
+
db_table = 'eco_bas_tipoetnico'
|
|
376
|
+
verbose_name_plural = 'Tipo de grupo étnico'
|
|
377
|
+
|
|
378
|
+
def __str__(self):
|
|
379
|
+
return str(self.nombre_tetnico)
|
|
380
|
+
|
|
381
|
+
class TipoOrganizacionPersona(models.Model):
|
|
382
|
+
"""
|
|
383
|
+
Modelo para tipos de organizaciones de personas.
|
|
384
|
+
|
|
385
|
+
Catálogo de tipos de organizaciones a las que puede pertenecer una persona.
|
|
386
|
+
|
|
387
|
+
Attributes:
|
|
388
|
+
id_torganizacion: Identificador único del tipo de organización.
|
|
389
|
+
nombre_torganizacion: Nombre del tipo de organización.
|
|
390
|
+
"""
|
|
391
|
+
id_torganizacion = models.SmallAutoField(primary_key=True)
|
|
392
|
+
nombre_torganizacion = models.CharField(max_length=30)
|
|
393
|
+
|
|
394
|
+
class Meta:
|
|
395
|
+
db_table = 'eco_bas_tipoorganizacion'
|
|
396
|
+
verbose_name_plural = 'Tipo de organizaciones'
|
|
397
|
+
|
|
398
|
+
def __str__(self):
|
|
399
|
+
return str(self.nombre_torganizacion)
|
|
400
|
+
|
|
401
|
+
class TipoMedidaCautelar(models.Model):
|
|
402
|
+
"""
|
|
403
|
+
Modelo para tipos de medidas cautelares.
|
|
404
|
+
|
|
405
|
+
Catálogo de medidas cautelares que pueden aplicarse a una persona.
|
|
406
|
+
|
|
407
|
+
Attributes:
|
|
408
|
+
id_tmcautelar: Identificador único de la medida cautelar.
|
|
409
|
+
nombre_tmcautelar: Nombre descriptivo de la medida cautelar.
|
|
410
|
+
"""
|
|
411
|
+
id_tmcautelar = models.SmallAutoField(primary_key=True)
|
|
412
|
+
nombre_tmcautelar = models.CharField(max_length=150)
|
|
413
|
+
|
|
414
|
+
class Meta:
|
|
415
|
+
db_table = 'eco_bas_tipomcautelar'
|
|
416
|
+
verbose_name_plural = 'Tipo de medida cautelar de la persona'
|
|
417
|
+
|
|
418
|
+
def __str__(self):
|
|
419
|
+
return str(self.nombre_tmcautelar)
|
|
420
|
+
|
|
421
|
+
class TipoSituacionesRiesgo(models.Model):
|
|
422
|
+
"""
|
|
423
|
+
Modelo para tipos de situaciones de riesgo.
|
|
424
|
+
|
|
425
|
+
Catálogo de situaciones de riesgo que pueden afectar a una persona.
|
|
426
|
+
|
|
427
|
+
Attributes:
|
|
428
|
+
id_tiporiesgo: Identificador único del tipo de riesgo.
|
|
429
|
+
nombre_sriesgo: Nombre de la situación de riesgo.
|
|
430
|
+
"""
|
|
431
|
+
id_tiporiesgo = models.AutoField(primary_key=True)
|
|
432
|
+
nombre_sriesgo = models.CharField(max_length=50, null=True, blank=True)
|
|
433
|
+
|
|
434
|
+
class Meta:
|
|
435
|
+
db_table = 'eco_bas_tiporiesgo'
|
|
436
|
+
verbose_name_plural = 'Tipos de situaciones de riesgo'
|
|
437
|
+
def __str__(self):
|
|
438
|
+
return str(self.nombre_sriesgo)
|
|
439
|
+
|
|
440
|
+
class TipoMediosSituacion(models.Model):
|
|
441
|
+
"""
|
|
442
|
+
Modelo para tipos de medios por los que se presenta una situación.
|
|
443
|
+
|
|
444
|
+
Catálogo de medios o canales a través de los cuales se reporta una situación.
|
|
445
|
+
|
|
446
|
+
Attributes:
|
|
447
|
+
id_msituacion: Identificador único del medio.
|
|
448
|
+
nombre_msituacion: Nombre del medio de reporte.
|
|
449
|
+
"""
|
|
450
|
+
id_msituacion = models.AutoField(primary_key=True)
|
|
451
|
+
nombre_msituacion = models.CharField(max_length=50, null=True, blank=True)
|
|
452
|
+
|
|
453
|
+
class Meta:
|
|
454
|
+
db_table = 'eco_bas_mediosituacion'
|
|
455
|
+
verbose_name_plural = 'Tipos de medios por el que se presento la situación'
|
|
456
|
+
|
|
457
|
+
def __str__(self):
|
|
458
|
+
return str(self.nombre_msituacion)
|
|
459
|
+
|
|
460
|
+
class TipoCategoriaOrganizacion(models.Model):
|
|
461
|
+
"""
|
|
462
|
+
Modelo para categorías de organizaciones.
|
|
463
|
+
|
|
464
|
+
Catálogo de categorías que clasifican a las organizaciones.
|
|
465
|
+
|
|
466
|
+
Attributes:
|
|
467
|
+
id_catorganizacion: Identificador único de la categoría.
|
|
468
|
+
nombre_catorganizacion: Nombre de la categoría de organización.
|
|
469
|
+
"""
|
|
470
|
+
id_catorganizacion = models.AutoField(primary_key=True)
|
|
471
|
+
nombre_catorganizacion = models.CharField(max_length=200, null=True, blank=True)
|
|
472
|
+
|
|
473
|
+
class Meta:
|
|
474
|
+
db_table = 'eco_bas_catorganizacion'
|
|
475
|
+
verbose_name_plural = 'Categorias de organizaciones'
|
|
476
|
+
|
|
477
|
+
def __str__(self):
|
|
478
|
+
return str(self.id_catorganizacion)
|
|
479
|
+
|
|
480
|
+
class CategoriaPnis(models.Model):
|
|
481
|
+
"""
|
|
482
|
+
Modelo para categorías del PNIS.
|
|
483
|
+
|
|
484
|
+
Catálogo de categorías utilizadas en el Programa Nacional Integral
|
|
485
|
+
de Sustitución de Cultivos Ilícitos (PNIS).
|
|
486
|
+
|
|
487
|
+
Attributes:
|
|
488
|
+
id_categoriapnis: Identificador único de la categoría.
|
|
489
|
+
nombre_categoriapnis: Nombre de la categoría PNIS.
|
|
490
|
+
"""
|
|
491
|
+
id_categoriapnis = models.AutoField(primary_key=True)
|
|
492
|
+
nombre_categoriapnis = models.CharField(max_length=200, null=True, blank=True)
|
|
493
|
+
|
|
494
|
+
class Meta:
|
|
495
|
+
db_table = 'eco_bas_categoriapnis'
|
|
496
|
+
verbose_name_plural = 'Categorias para el pnis'
|
|
497
|
+
|
|
498
|
+
def __str__(self):
|
|
499
|
+
return str(self.id_categoriapnis)
|
|
500
|
+
|
|
501
|
+
class tipoEntidadAcreditadora(models.Model):
|
|
502
|
+
"""
|
|
503
|
+
Modelo para tipos de entidades acreditadoras de colectivos.
|
|
504
|
+
|
|
505
|
+
Catálogo de entidades que pueden acreditar o certificar a un colectivo.
|
|
506
|
+
|
|
507
|
+
Attributes:
|
|
508
|
+
id_teacreditadora: Identificador único de la entidad acreditadora.
|
|
509
|
+
nombre_teacreditadora: Nombre de la entidad acreditadora.
|
|
510
|
+
"""
|
|
511
|
+
id_teacreditadora = models.AutoField(primary_key=True)
|
|
512
|
+
nombre_teacreditadora = models.CharField(max_length=40, null=True,blank=True)
|
|
513
|
+
|
|
514
|
+
class Meta:
|
|
515
|
+
db_table = 'eco_bas_teacolectivo'
|
|
516
|
+
verbose_name_plural = 'Entidades acreditadoras del colectivo'
|
|
517
|
+
|
|
518
|
+
def __str__(self):
|
|
519
|
+
return str(self.id_teacreditadora)
|
|
520
|
+
|
|
521
|
+
class TipoPoblacion(models.Model):
|
|
522
|
+
"""
|
|
523
|
+
Modelo para tipos de población objeto.
|
|
524
|
+
|
|
525
|
+
Clasificación general de los tipos de poblaciones que atiende la UNP.
|
|
526
|
+
|
|
527
|
+
Attributes:
|
|
528
|
+
id_tipopoblacion: Identificador único del tipo de población.
|
|
529
|
+
nombre_tpoblacion: Nombre del tipo de población.
|
|
530
|
+
descripcion: Descripción detallada del tipo de población.
|
|
531
|
+
"""
|
|
532
|
+
id_tipopoblacion = models.AutoField(primary_key=True)
|
|
533
|
+
nombre_tpoblacion = models.CharField(max_length=170, null=True, blank=True)
|
|
534
|
+
descripcion = models.CharField(max_length=500, null=True, blank=True)
|
|
535
|
+
|
|
536
|
+
class Meta:
|
|
537
|
+
db_table = 'eco_bas_tipopoblacion'
|
|
538
|
+
verbose_name_plural = 'Tipo de población objeto'
|
|
539
|
+
|
|
540
|
+
def __str__(self):
|
|
541
|
+
return str(self.id_tipopoblacion)
|
|
542
|
+
|
|
543
|
+
class PoblacionObjeto(models.Model):
|
|
544
|
+
"""
|
|
545
|
+
Modelo para poblaciones objeto de protección.
|
|
546
|
+
|
|
547
|
+
Listado específico de poblaciones que son objeto de protección según decretos.
|
|
548
|
+
|
|
549
|
+
Attributes:
|
|
550
|
+
id_poblacionobjeto: Identificador único UUID de la población.
|
|
551
|
+
nombre_pobjeto: Nombre de la población objeto.
|
|
552
|
+
tipo_poblacion: Relación con el tipo de población.
|
|
553
|
+
consecutivo_decreto: Número consecutivo del decreto que la establece.
|
|
554
|
+
resumen: Resumen descriptivo de la población.
|
|
555
|
+
estado: Indicador de si la población está activa.
|
|
556
|
+
"""
|
|
557
|
+
id_poblacionobjeto = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
558
|
+
nombre_pobjeto = models.CharField(max_length=700, null=True, blank=True)
|
|
559
|
+
tipo_poblacion = models.ForeignKey(TipoPoblacion, to_field='id_tipopoblacion', on_delete=models.CASCADE)
|
|
560
|
+
consecutivo_decreto = models.IntegerField(null=True, blank=True)
|
|
561
|
+
resumen = models.CharField(max_length=500, null=True, blank=True)
|
|
562
|
+
estado = models.BooleanField(default=True)
|
|
563
|
+
|
|
564
|
+
class Meta:
|
|
565
|
+
db_table = 'eco_bas_poblacionobjeto'
|
|
566
|
+
verbose_name_plural = 'Listado de las poblaciones objeto'
|
|
567
|
+
|
|
568
|
+
def __str__(self):
|
|
569
|
+
return str(self.id_poblacionobjeto)
|
|
570
|
+
|
|
571
|
+
class SubPoblacionObjeto(models.Model):
|
|
572
|
+
"""
|
|
573
|
+
Modelo para subpoblaciones objeto.
|
|
574
|
+
|
|
575
|
+
Subdivisión más específica de las poblaciones objeto de protección.
|
|
576
|
+
|
|
577
|
+
Attributes:
|
|
578
|
+
id_subpoblacion: Identificador único UUID de la subpoblación.
|
|
579
|
+
nombre_subpobjeto: Nombre de la subpoblación.
|
|
580
|
+
poblacion: Relación con la población objeto padre.
|
|
581
|
+
consecutivo: Número consecutivo dentro de la población.
|
|
582
|
+
resumen: Resumen descriptivo de la subpoblación.
|
|
583
|
+
estado: Indicador de si la subpoblación está activa.
|
|
584
|
+
"""
|
|
585
|
+
id_subpoblacion = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
586
|
+
nombre_subpobjeto = models.CharField(max_length=700, null=True, blank=True)
|
|
587
|
+
poblacion = models.ForeignKey(PoblacionObjeto, to_field='id_poblacionobjeto', on_delete=models.CASCADE)
|
|
588
|
+
consecutivo = models.IntegerField(null=True, blank=True)
|
|
589
|
+
resumen = models.CharField(max_length=500, null=True, blank=True)
|
|
590
|
+
estado = models.BooleanField(default=True)
|
|
591
|
+
|
|
592
|
+
class Meta:
|
|
593
|
+
db_table = 'eco_bas_subpoblacionobjeto'
|
|
594
|
+
verbose_name_plural = 'Listado de las subpoblaciones objeto'
|
|
595
|
+
|
|
596
|
+
def __str__(self):
|
|
597
|
+
return str(self.id_subpoblacion)
|
|
598
|
+
|
|
599
|
+
class PoblacionSesp(models.Model):
|
|
600
|
+
"""
|
|
601
|
+
Modelo para poblaciones del Sistema Especial de Seguridad y Protección (SESP).
|
|
602
|
+
|
|
603
|
+
Listado de poblaciones atendidas específicamente por el SESP con rutas de atención.
|
|
604
|
+
|
|
605
|
+
Attributes:
|
|
606
|
+
id_poblacionsesp: Identificador único UUID de la población SESP.
|
|
607
|
+
nombre_pobjetosesp: Nombre de la población SESP.
|
|
608
|
+
tipo_poblacion: Relación con el tipo de población.
|
|
609
|
+
consecutivo_decreto: Número del decreto que la establece.
|
|
610
|
+
resumen: Resumen descriptivo.
|
|
611
|
+
estado: Indicador de si está activa.
|
|
612
|
+
ruta: Tipo de ruta de atención asignada.
|
|
613
|
+
"""
|
|
614
|
+
id_poblacionsesp = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
615
|
+
nombre_pobjetosesp = models.CharField(max_length=700, null=True, blank=True)
|
|
616
|
+
tipo_poblacion = models.ForeignKey(TipoPoblacion, to_field='id_tipopoblacion', on_delete=models.CASCADE)
|
|
617
|
+
consecutivo_decreto = models.IntegerField(null=True, blank=True)
|
|
618
|
+
resumen = models.CharField(max_length=500, null=True, blank=True)
|
|
619
|
+
estado = models.BooleanField(default=True)
|
|
620
|
+
ruta = models.ForeignKey(TipoRuta, to_field='id_truta', on_delete=models.CASCADE, null=True, blank=True)
|
|
621
|
+
|
|
622
|
+
class Meta:
|
|
623
|
+
db_table = 'eco_bas_poblacionsesp'
|
|
624
|
+
verbose_name_plural = 'Tipo de poblacion de la sesp'
|
|
625
|
+
|
|
626
|
+
def __str__(self):
|
|
627
|
+
return str(self.id_poblacionsesp)
|
|
628
|
+
|
|
629
|
+
class SubPoblacionObjetoSesp(models.Model):
|
|
630
|
+
"""
|
|
631
|
+
Modelo para subpoblaciones del SESP.
|
|
632
|
+
|
|
633
|
+
Subdivisión específica de las poblaciones del SESP.
|
|
634
|
+
|
|
635
|
+
Attributes:
|
|
636
|
+
id_subpoblacionsesp: Identificador único UUID.
|
|
637
|
+
nombre_subpobjeto: Nombre de la subpoblación.
|
|
638
|
+
poblacion: Relación con la población SESP padre.
|
|
639
|
+
consecutivo: Número consecutivo.
|
|
640
|
+
resumen: Resumen descriptivo.
|
|
641
|
+
estado: Indicador de si está activa.
|
|
642
|
+
"""
|
|
643
|
+
id_subpoblacionsesp = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
|
644
|
+
nombre_subpobjeto = models.CharField(max_length=700, null=True, blank=True)
|
|
645
|
+
poblacion = models.ForeignKey(PoblacionSesp, to_field='id_poblacionsesp', on_delete=models.CASCADE)
|
|
646
|
+
consecutivo = models.IntegerField(null=True, blank=True)
|
|
647
|
+
resumen = models.CharField(max_length=500, null=True, blank=True)
|
|
648
|
+
estado = models.BooleanField(default=True)
|
|
649
|
+
|
|
650
|
+
class Meta:
|
|
651
|
+
db_table = 'eco_bas_subpoblacionsesp'
|
|
652
|
+
verbose_name_plural = 'Listado de las poblaciones objeto'
|
|
653
|
+
|
|
654
|
+
def __str__(self):
|
|
655
|
+
return str(self.id_subpoblacionsesp)
|
|
656
|
+
|
|
657
|
+
|
|
658
|
+
##### MODELOS DE REPORTES Y SOLICITUDES #######
|
|
659
|
+
|
|
660
|
+
class TipoReporteGeneral(models.Model):
|
|
661
|
+
"""
|
|
662
|
+
Modelo para tipos generales de reporte.
|
|
663
|
+
|
|
664
|
+
Clasificación de alto nivel para los tipos de reportes en el sistema.
|
|
665
|
+
|
|
666
|
+
Attributes:
|
|
667
|
+
id_tgeneral: Identificador único del tipo general.
|
|
668
|
+
nombre_tgeneral: Nombre del tipo general de reporte.
|
|
669
|
+
"""
|
|
670
|
+
id_tgeneral = models.AutoField(primary_key=True)
|
|
671
|
+
nombre_tgeneral = models.CharField(max_length=50, null=True, blank=True)
|
|
672
|
+
|
|
673
|
+
class Meta:
|
|
674
|
+
db_table = 'eco_bas_tgeneral'
|
|
675
|
+
verbose_name_plural = 'Tipos generales de reporte'
|
|
676
|
+
|
|
677
|
+
def __str__(self):
|
|
678
|
+
return str(self.id_tgeneral)
|
|
679
|
+
|
|
680
|
+
class TipoReporte(models.Model):
|
|
681
|
+
"""
|
|
682
|
+
Modelo para tipos específicos de reporte.
|
|
683
|
+
|
|
684
|
+
Tipos detallados de reportes, relacionados con una clasificación general.
|
|
685
|
+
|
|
686
|
+
Attributes:
|
|
687
|
+
id_treporte: Identificador único del tipo de reporte.
|
|
688
|
+
nombre_treporte: Nombre del tipo de reporte.
|
|
689
|
+
reporte_general: Relación con el tipo general de reporte.
|
|
690
|
+
"""
|
|
691
|
+
id_treporte = models.AutoField(primary_key=True)
|
|
692
|
+
nombre_treporte = models.CharField(max_length=50, null=True, blank=True)
|
|
693
|
+
reporte_general = models.ForeignKey(TipoReporteGeneral, to_field='id_tgeneral', on_delete=models.CASCADE, null=True, blank=True)
|
|
694
|
+
|
|
695
|
+
class Meta:
|
|
696
|
+
db_table = 'eco_bas_treporte'
|
|
697
|
+
verbose_name_plural = 'Tipos de reporte'
|
|
698
|
+
|
|
699
|
+
def __str__(self):
|
|
700
|
+
return str(self.id_treporte)
|
|
701
|
+
|
|
702
|
+
class TipoSolicitud(models.Model):
|
|
703
|
+
"""
|
|
704
|
+
Modelo para tipos de solicitud general.
|
|
705
|
+
|
|
706
|
+
Clasificación general de los tipos de solicitudes que se pueden realizar.
|
|
707
|
+
|
|
708
|
+
Attributes:
|
|
709
|
+
id_tiposolicitud: Identificador único del tipo de solicitud.
|
|
710
|
+
nombre_tiposolicitud: Nombre del tipo de solicitud.
|
|
711
|
+
"""
|
|
712
|
+
id_tiposolicitud = models.AutoField(primary_key=True)
|
|
713
|
+
nombre_tiposolicitud = models.CharField(max_length=50, null=True, blank=True)
|
|
714
|
+
|
|
715
|
+
|
|
716
|
+
class Meta:
|
|
717
|
+
db_table = 'eco_bas_tiposolicitudgeneral'
|
|
718
|
+
verbose_name_plural = 'Tipos de solicitud'
|
|
719
|
+
|
|
720
|
+
def __str__(self):
|
|
721
|
+
return str(self.id_tiposolicitud)
|
|
722
|
+
|
|
723
|
+
class EstadoGeneralSolicitud(models.Model):
|
|
724
|
+
"""
|
|
725
|
+
Modelo para estados generales de solicitudes.
|
|
726
|
+
|
|
727
|
+
Clasificación general del estado en que se encuentra una solicitud.
|
|
728
|
+
|
|
729
|
+
Attributes:
|
|
730
|
+
id_testadogeneral: Identificador único del estado general.
|
|
731
|
+
nombre_egeneral: Nombre del estado general.
|
|
732
|
+
"""
|
|
733
|
+
id_testadogeneral = models.AutoField(primary_key=True)
|
|
734
|
+
nombre_egeneral = models.CharField(max_length=100, null=True, blank=True)
|
|
735
|
+
|
|
736
|
+
class Meta:
|
|
737
|
+
db_table = 'eco_bas_tipoestadogeneral'
|
|
738
|
+
verbose_name_plural = 'Tipo de estado general'
|
|
739
|
+
|
|
740
|
+
def __str__(self):
|
|
741
|
+
return str(self.id_testadogeneral)
|
|
742
|
+
|
|
743
|
+
class EstadoEspecificoSolicitud(models.Model):
|
|
744
|
+
"""
|
|
745
|
+
Modelo para estados específicos de solicitudes.
|
|
746
|
+
|
|
747
|
+
Estados detallados de una solicitud, relacionados con un estado general.
|
|
748
|
+
|
|
749
|
+
Attributes:
|
|
750
|
+
id_testado: Identificador único del estado específico.
|
|
751
|
+
nombre_eespecifico: Nombre del estado específico.
|
|
752
|
+
estado_general: Relación con el estado general al que pertenece.
|
|
753
|
+
"""
|
|
754
|
+
id_testado = models.AutoField(primary_key=True)
|
|
755
|
+
nombre_eespecifico = models.CharField(max_length=100, null=True, blank=True)
|
|
756
|
+
estado_general = models.ForeignKey(EstadoGeneralSolicitud, to_field='id_testadogeneral', null=True, blank=True, on_delete=models.CASCADE)
|
|
757
|
+
|
|
758
|
+
class Meta:
|
|
759
|
+
db_table = 'eco_bas_estadoespecificosolicitud'
|
|
760
|
+
verbose_name_plural = 'Tipo de estado'
|
|
761
|
+
|
|
762
|
+
def __str__(self):
|
|
763
|
+
return str(self.id_testado)
|
|
764
|
+
|
|
765
|
+
|
|
766
|
+
##### MODELOS DE ESTADOS Y GESTIÓN #######
|
|
767
|
+
|
|
768
|
+
class EstadoGeneral(models.Model):
|
|
769
|
+
"""
|
|
770
|
+
Modelo para estados generales del sistema.
|
|
771
|
+
|
|
772
|
+
Estados de alto nivel utilizados para clasificar el estado de registros.
|
|
773
|
+
|
|
774
|
+
Attributes:
|
|
775
|
+
id_egeneral: Identificador único del estado general.
|
|
776
|
+
nombre_egeneral: Nombre del estado general.
|
|
777
|
+
"""
|
|
778
|
+
id_egeneral = models.AutoField(primary_key=True)
|
|
779
|
+
nombre_egeneral = models.CharField(max_length=100, null=True, blank=True)
|
|
780
|
+
|
|
781
|
+
class Meta:
|
|
782
|
+
db_table = 'eco_bas_egeneral'
|
|
783
|
+
verbose_name_plural = 'Estados generales'
|
|
784
|
+
|
|
785
|
+
def __str__(self):
|
|
786
|
+
return str(self.id_egeneral)
|
|
787
|
+
|
|
788
|
+
class EstadoEspecifico(models.Model):
|
|
789
|
+
"""
|
|
790
|
+
Modelo para estados específicos del sistema.
|
|
791
|
+
|
|
792
|
+
Estados detallados relacionados con un estado general.
|
|
793
|
+
|
|
794
|
+
Attributes:
|
|
795
|
+
id_eespecifico: Identificador único del estado específico.
|
|
796
|
+
nombre_eespecifico: Nombre del estado específico.
|
|
797
|
+
estado_general: Relación con el estado general padre.
|
|
798
|
+
"""
|
|
799
|
+
id_eespecifico = models.AutoField(primary_key=True)
|
|
800
|
+
nombre_eespecifico = models.CharField(max_length=100, null=True, blank=True)
|
|
801
|
+
estado_general = models.ForeignKey(EstadoGeneral, to_field='id_egeneral', null=True, blank=True, on_delete=models.CASCADE)
|
|
802
|
+
|
|
803
|
+
class Meta:
|
|
804
|
+
db_table = 'eco_bas_especifico'
|
|
805
|
+
verbose_name_plural = 'Estados específicos'
|
|
806
|
+
|
|
807
|
+
def __str__(self):
|
|
808
|
+
return str(self.id_eespecifico)
|
|
809
|
+
|
|
810
|
+
class CanalSolicitud(models.Model):
|
|
811
|
+
"""
|
|
812
|
+
Modelo para canales de solicitud.
|
|
813
|
+
|
|
814
|
+
Catálogo de medios o canales a través de los cuales se puede realizar una solicitud.
|
|
815
|
+
|
|
816
|
+
Attributes:
|
|
817
|
+
id_csolicitud: Identificador único del canal.
|
|
818
|
+
nombre_csolicitud: Nombre del canal de solicitud.
|
|
819
|
+
"""
|
|
820
|
+
id_csolicitud = models.AutoField(primary_key=True)
|
|
821
|
+
nombre_csolicitud = models.CharField(max_length=40, null=True, blank=True)
|
|
822
|
+
|
|
823
|
+
class Meta:
|
|
824
|
+
db_table = 'eco_bas_canalsolicitud'
|
|
825
|
+
verbose_name_plural = 'Tipo de medio o canal donde se realiza la solicitud'
|
|
826
|
+
|
|
827
|
+
def __str__(self):
|
|
828
|
+
return str(self.id_csolicitud)
|
|
829
|
+
|
|
830
|
+
class TipoResultadoLlamada(models.Model):
|
|
831
|
+
"""
|
|
832
|
+
Modelo para tipos de resultado de llamadas.
|
|
833
|
+
|
|
834
|
+
Catálogo de resultados posibles de una llamada telefónica.
|
|
835
|
+
|
|
836
|
+
Attributes:
|
|
837
|
+
id_trllamada: Identificador único del tipo de resultado.
|
|
838
|
+
nombre_trllamada: Nombre del tipo de resultado de llamada.
|
|
839
|
+
"""
|
|
840
|
+
id_trllamada = models.AutoField(primary_key=True)
|
|
841
|
+
nombre_trllamada = models.CharField(max_length=30, null=True, blank=True)
|
|
842
|
+
|
|
843
|
+
class Meta:
|
|
844
|
+
db_table = 'eco_bas_trllamadas'
|
|
845
|
+
verbose_name_plural = 'Tipos de resultados de la llamadas'
|
|
846
|
+
|
|
847
|
+
def __str__(self):
|
|
848
|
+
return str(self.id_trllamada)
|
|
849
|
+
|
|
850
|
+
class TipoSolicitud(models.Model):
|
|
851
|
+
"""
|
|
852
|
+
Modelo para tipos de solicitud de registro.
|
|
853
|
+
|
|
854
|
+
Catálogo de tipos específicos de solicitudes del área de registro.
|
|
855
|
+
|
|
856
|
+
Attributes:
|
|
857
|
+
id_tsolicitud: Identificador único del tipo de solicitud.
|
|
858
|
+
nombre_tsolicitud: Nombre del tipo de solicitud.
|
|
859
|
+
"""
|
|
860
|
+
id_tsolicitud = models.AutoField(primary_key=True)
|
|
861
|
+
nombre_tsolicitud = models.CharField(max_length=80, null=False, blank=True)
|
|
862
|
+
|
|
863
|
+
class Meta:
|
|
864
|
+
db_table = 'eco_bas_tiposolicitud'
|
|
865
|
+
verbose_name_plural = 'Tipo de solicitud'
|
|
866
|
+
|
|
867
|
+
def __str__(self):
|
|
868
|
+
return str(self.id_tsolicitud)
|
|
869
|
+
|
|
870
|
+
class FuenteSolicitud(models.Model):
|
|
871
|
+
"""
|
|
872
|
+
Modelo para fuentes de solicitud.
|
|
873
|
+
|
|
874
|
+
Catálogo de orígenes o fuentes de donde proviene una solicitud.
|
|
875
|
+
|
|
876
|
+
Attributes:
|
|
877
|
+
id_fsolicitud: Identificador único de la fuente.
|
|
878
|
+
nombre_fsolicitud: Nombre de la fuente de solicitud.
|
|
879
|
+
"""
|
|
880
|
+
id_fsolicitud = models.AutoField(primary_key=True)
|
|
881
|
+
nombre_fsolicitud = models.CharField(max_length=80, null=False, blank=True)
|
|
882
|
+
|
|
883
|
+
class Meta:
|
|
884
|
+
db_table = 'eco_bas_fuentesolicitud'
|
|
885
|
+
verbose_name_plural = 'Fuente de solicitud'
|
|
886
|
+
|
|
887
|
+
def __str__(self):
|
|
888
|
+
return str(self.id_fsolicitud)
|
|
889
|
+
|
|
890
|
+
class TipoMedioContacto(models.Model):
|
|
891
|
+
"""
|
|
892
|
+
Modelo para tipos de medio de contacto.
|
|
893
|
+
|
|
894
|
+
Catálogo de medios por los cuales se puede contactar (teléfono, email, etc.).
|
|
895
|
+
|
|
896
|
+
Attributes:
|
|
897
|
+
id_mcontacto: Identificador único del medio.
|
|
898
|
+
nombre_mcontacto: Nombre del medio de contacto.
|
|
899
|
+
"""
|
|
900
|
+
id_mcontacto = models.AutoField(primary_key=True)
|
|
901
|
+
nombre_mcontacto = models.CharField(max_length=80, null=False, blank=True)
|
|
902
|
+
|
|
903
|
+
class Meta:
|
|
904
|
+
db_table = 'eco_bas_mediocontacto'
|
|
905
|
+
verbose_name_plural = 'Medio de contacto'
|
|
906
|
+
|
|
907
|
+
def __str__(self):
|
|
908
|
+
return str(self.id_mcontacto)
|
|
909
|
+
|
|
910
|
+
class TipoRespondeLlamada(models.Model):
|
|
911
|
+
"""
|
|
912
|
+
Modelo para tipos de quién responde el contacto.
|
|
913
|
+
|
|
914
|
+
Catálogo de personas que pueden responder una llamada de contacto.
|
|
915
|
+
|
|
916
|
+
Attributes:
|
|
917
|
+
id_rllamada: Identificador único del tipo.
|
|
918
|
+
nombre_rllamada: Nombre de quién responde.
|
|
919
|
+
"""
|
|
920
|
+
id_rllamada = models.AutoField(primary_key=True)
|
|
921
|
+
nombre_rllamada = models.CharField(max_length=80, null=False, blank=True)
|
|
922
|
+
|
|
923
|
+
class Meta:
|
|
924
|
+
db_table = 'eco_bas_respondecontacto'
|
|
925
|
+
verbose_name_plural = 'Quien responde el contacto'
|
|
926
|
+
|
|
927
|
+
def __str__(self):
|
|
928
|
+
return str(self.id_rllamada)
|
|
929
|
+
|
|
930
|
+
class TipoCorreccion(models.Model):
|
|
931
|
+
"""
|
|
932
|
+
Modelo para tipos de corrección.
|
|
933
|
+
|
|
934
|
+
Catálogo de tipos de correcciones que se pueden aplicar a registros.
|
|
935
|
+
|
|
936
|
+
Attributes:
|
|
937
|
+
id_tcorreccion: Identificador único del tipo de corrección.
|
|
938
|
+
nombre_tcorreccion: Nombre del tipo de corrección.
|
|
939
|
+
"""
|
|
940
|
+
id_tcorreccion = models.AutoField(primary_key=True)
|
|
941
|
+
nombre_tcorreccion = models.CharField(max_length=80, null=False, blank=True)
|
|
942
|
+
|
|
943
|
+
class Meta:
|
|
944
|
+
db_table = 'eco_bas_tipocorreccion'
|
|
945
|
+
verbose_name_plural = 'Tipo de corrección'
|
|
946
|
+
|
|
947
|
+
def __str__(self):
|
|
948
|
+
return str(self.id_tcorreccion)
|
|
949
|
+
|
|
950
|
+
|
|
951
|
+
class TipoEstudio(models.Model):
|
|
952
|
+
"""
|
|
953
|
+
Modelo para tipos de estudio.
|
|
954
|
+
|
|
955
|
+
Catálogo de tipos de estudios académicos o de investigación.
|
|
956
|
+
|
|
957
|
+
Attributes:
|
|
958
|
+
id_estudio: Identificador único del tipo de estudio.
|
|
959
|
+
nombre_estudio: Nombre del tipo de estudio.
|
|
960
|
+
"""
|
|
961
|
+
id_estudio = models.AutoField(primary_key=True)
|
|
962
|
+
nombre_estudio = models.CharField(max_length=80, null=False, blank=True)
|
|
963
|
+
|
|
964
|
+
class Meta:
|
|
965
|
+
db_table = 'eco_bas_tipoestudio'
|
|
966
|
+
verbose_name_plural = 'Tipo de estudio'
|
|
967
|
+
|
|
968
|
+
def __str__(self):
|
|
969
|
+
return str(self.id_estudio)
|
|
970
|
+
|
|
971
|
+
class TipoConsulta(models.Model):
|
|
972
|
+
"""
|
|
973
|
+
Modelo para tipos de consulta.
|
|
974
|
+
|
|
975
|
+
Catálogo de tipos de consultas que se pueden realizar en el sistema.
|
|
976
|
+
|
|
977
|
+
Attributes:
|
|
978
|
+
id_tconsulta: Identificador único del tipo de consulta.
|
|
979
|
+
nombre_tconsulta: Nombre del tipo de consulta.
|
|
980
|
+
"""
|
|
981
|
+
id_tconsulta = models.AutoField(primary_key=True)
|
|
982
|
+
nombre_tconsulta = models.CharField(max_length=80, null=False, blank=True)
|
|
983
|
+
|
|
984
|
+
class Meta:
|
|
985
|
+
db_table = 'eco_bas_tipoconsulta'
|
|
986
|
+
verbose_name_plural = 'Tipo de consulta'
|
|
987
|
+
|
|
988
|
+
def __str__(self):
|
|
989
|
+
return str(self.id_tconsulta)
|
|
990
|
+
|
|
991
|
+
class TipoCuentaBancaria(models.Model):
|
|
992
|
+
"""
|
|
993
|
+
Modelo para tipos de cuenta bancaria.
|
|
994
|
+
|
|
995
|
+
Catálogo de tipos de cuentas bancarias (Ahorro, Corriente, etc.).
|
|
996
|
+
|
|
997
|
+
Attributes:
|
|
998
|
+
id_tcbancaria: Identificador único del tipo de cuenta.
|
|
999
|
+
nombre_tcbancaria: Nombre del tipo de cuenta bancaria.
|
|
1000
|
+
"""
|
|
1001
|
+
id_tcbancaria = models.AutoField(primary_key=True)
|
|
1002
|
+
nombre_tcbancaria = models.CharField(max_length=80, null=False, blank=True)
|
|
1003
|
+
|
|
1004
|
+
class Meta:
|
|
1005
|
+
db_table = 'eco_bas_tcbancaria'
|
|
1006
|
+
verbose_name_plural = 'Tipo de cuenta bancaria'
|
|
1007
|
+
|
|
1008
|
+
def __str__(self):
|
|
1009
|
+
return str(self.id_tcbancaria)
|
|
1010
|
+
|
|
1011
|
+
class EntidadBancaria(models.Model):
|
|
1012
|
+
"""
|
|
1013
|
+
Modelo para entidades bancarias.
|
|
1014
|
+
|
|
1015
|
+
Catálogo de bancos y entidades financieras.
|
|
1016
|
+
|
|
1017
|
+
Attributes:
|
|
1018
|
+
id_entidadbancaria: Identificador único de la entidad.
|
|
1019
|
+
nombre_entidadbancaria: Nombre de la entidad bancaria.
|
|
1020
|
+
nit_entidadbancaria: Número de identificación tributaria del banco.
|
|
1021
|
+
"""
|
|
1022
|
+
id_entidadbancaria = models.AutoField(primary_key=True)
|
|
1023
|
+
nombre_entidadbancaria = models.CharField(max_length=80, null=False, blank=True)
|
|
1024
|
+
nit_entidadbancaria = models.CharField(max_length=80, null=False, blank=True)
|
|
1025
|
+
|
|
1026
|
+
class Meta:
|
|
1027
|
+
db_table = 'eco_bas_estidadbancaria'
|
|
1028
|
+
verbose_name_plural = 'Entidades bancarias'
|
|
1029
|
+
|
|
1030
|
+
def __str__(self):
|
|
1031
|
+
return str(self.id_entidadbancaria)
|
|
1032
|
+
|
|
1033
|
+
##### MODELOS ORGANIZACIONALES DE LA UNP #######
|
|
1034
|
+
|
|
1035
|
+
class TipoVinculacion(models.Model):
|
|
1036
|
+
"""
|
|
1037
|
+
Modelo para tipos de vinculación a la UNP.
|
|
1038
|
+
|
|
1039
|
+
Catálogo de tipos de vínculos laborales con la Unidad Nacional de Protección.
|
|
1040
|
+
|
|
1041
|
+
Attributes:
|
|
1042
|
+
id_tvinculacion: Identificador único del tipo de vinculación.
|
|
1043
|
+
nombre_tvinculacion: Nombre del tipo de vinculación.
|
|
1044
|
+
"""
|
|
1045
|
+
id_tvinculacion = models.AutoField(primary_key=True)
|
|
1046
|
+
nombre_tvinculacion = models.CharField(max_length=30, null=True, blank=True)
|
|
1047
|
+
|
|
1048
|
+
class Meta:
|
|
1049
|
+
db_table = 'eco_bas_tipovinculacion'
|
|
1050
|
+
verbose_name_plural = 'Tipo de vinculación a la UNP'
|
|
1051
|
+
|
|
1052
|
+
def __str__(self):
|
|
1053
|
+
return str(self.id_tvinculacion)
|
|
1054
|
+
|
|
1055
|
+
class Dependencia(models.Model):
|
|
1056
|
+
"""
|
|
1057
|
+
Modelo para dependencias de la UNP.
|
|
1058
|
+
|
|
1059
|
+
Estructura organizacional de primer nivel (dependencias) de la UNP.
|
|
1060
|
+
|
|
1061
|
+
Attributes:
|
|
1062
|
+
id_dependencia: Identificador único de la dependencia.
|
|
1063
|
+
nombre_dependencia: Nombre completo de la dependencia.
|
|
1064
|
+
siglas: Siglas de la dependencia.
|
|
1065
|
+
url: Identificador de ruta o URL de la dependencia.
|
|
1066
|
+
"""
|
|
1067
|
+
id_dependencia = models.SmallAutoField(primary_key=True)
|
|
1068
|
+
nombre_dependencia = models.CharField(max_length=70)
|
|
1069
|
+
siglas = models.CharField(max_length=10)
|
|
1070
|
+
url = models.CharField(max_length=10)
|
|
1071
|
+
|
|
1072
|
+
class Meta:
|
|
1073
|
+
db_table = 'eco_bas_dependencia'
|
|
1074
|
+
verbose_name_plural = 'Dependencia'
|
|
1075
|
+
|
|
1076
|
+
def __str__(self):
|
|
1077
|
+
return str(self.nombre_dependencia)
|
|
1078
|
+
|
|
1079
|
+
class Grupo(models.Model):
|
|
1080
|
+
"""
|
|
1081
|
+
Modelo para grupos de trabajo de la UNP.
|
|
1082
|
+
|
|
1083
|
+
Estructura organizacional de segundo nivel (grupos) dentro de las dependencias.
|
|
1084
|
+
|
|
1085
|
+
Attributes:
|
|
1086
|
+
id_grupo: Identificador único del grupo.
|
|
1087
|
+
nombre_grupo: Nombre completo del grupo.
|
|
1088
|
+
dependencia: Relación con la dependencia a la que pertenece el grupo.
|
|
1089
|
+
siglas: Siglas del grupo.
|
|
1090
|
+
url: Identificador de ruta o URL del grupo.
|
|
1091
|
+
"""
|
|
1092
|
+
id_grupo = models.SmallAutoField(primary_key=True)
|
|
1093
|
+
nombre_grupo = models.CharField(max_length=200)
|
|
1094
|
+
dependencia = models.ForeignKey(Dependencia, to_field='id_dependencia', on_delete=models.CASCADE, null=True, blank=True)
|
|
1095
|
+
siglas = models.CharField(max_length=10)
|
|
1096
|
+
url = models.CharField(max_length=10)
|
|
1097
|
+
|
|
1098
|
+
class Meta:
|
|
1099
|
+
db_table = 'eco_bas_grupo'
|
|
1100
|
+
verbose_name_plural = 'Grupo'
|
|
1101
|
+
|
|
1102
|
+
def __str__(self):
|
|
1103
|
+
return str(self.nombre_grupo)
|
|
1104
|
+
|
|
1105
|
+
class Rol(models.Model):
|
|
1106
|
+
"""
|
|
1107
|
+
Modelo para roles del sistema.
|
|
1108
|
+
|
|
1109
|
+
Roles de usuarios que definen permisos y accesos dentro del sistema.
|
|
1110
|
+
|
|
1111
|
+
Attributes:
|
|
1112
|
+
id_rol: Identificador único del rol.
|
|
1113
|
+
nombre_rol: Nombre del rol.
|
|
1114
|
+
Grupo: Relación con el grupo al que pertenece el rol.
|
|
1115
|
+
url: Identificador de ruta o URL del rol.
|
|
1116
|
+
"""
|
|
1117
|
+
id_rol = models.SmallAutoField(primary_key=True)
|
|
1118
|
+
nombre_rol = models.CharField(max_length=30)
|
|
1119
|
+
Grupo = models.ForeignKey(Grupo, to_field='id_grupo', on_delete=models.CASCADE, null=True, blank=True)
|
|
1120
|
+
url = models.CharField(max_length=50)
|
|
1121
|
+
|
|
1122
|
+
class Meta:
|
|
1123
|
+
db_table = 'eco_bas_rol'
|
|
1124
|
+
verbose_name_plural = 'Rol'
|
|
1125
|
+
|
|
1126
|
+
def __str__(self):
|
|
1127
|
+
return str(self.nombre_rol)
|