From c7fb784752fdcb0fca6d6191f43a17f6e5c74422 Mon Sep 17 00:00:00 2001 From: RafaUC Date: Wed, 10 Jul 2024 21:22:15 -0600 Subject: [PATCH 1/2] creacion del modelo solicitante --- .../0002_creacion_modelo_solicitud.py | 31 +++++++++++++++++ cosiap_api/solicitudes/models.py | 34 ++++++++++++++++++- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 cosiap_api/solicitudes/migrations/0002_creacion_modelo_solicitud.py diff --git a/cosiap_api/solicitudes/migrations/0002_creacion_modelo_solicitud.py b/cosiap_api/solicitudes/migrations/0002_creacion_modelo_solicitud.py new file mode 100644 index 0000000..d73871c --- /dev/null +++ b/cosiap_api/solicitudes/migrations/0002_creacion_modelo_solicitud.py @@ -0,0 +1,31 @@ +# Generated by Django 5.0.6 on 2024-07-11 03:20 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('modalidades', '0001_creacion_inicial_modulos_dynamic_formats__modalidades__solicitudes'), + ('solicitudes', '0001_creacion_inicial_modulos_dynamic_formats__modalidades__solicitudes'), + ('users', '0010_creacion_modulos_admin_formats_forms_tables_modalidades_solicitudes'), + ] + + operations = [ + migrations.CreateModel( + name='Solicitud', + fields=[ + ('status', models.CharField(max_length=255)), + ('solicitud_n', models.AutoField(primary_key=True, serialize=False)), + ('monto_solicitado', models.FloatField(default=0.0)), + ('monto_aprobado', models.FloatField(default=0.0)), + ('timestamp', models.DateTimeField(auto_now_add=True)), + ('observacion', models.TextField(blank=True, null=True)), + ('convenio', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='solicitudes.convenio')), + ('minuta', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='solicitudes.minuta')), + ('modalidad', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='modalidades.modalidad')), + ('solicitante', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.solicitante')), + ], + ), + ] diff --git a/cosiap_api/solicitudes/models.py b/cosiap_api/solicitudes/models.py index 10c6637..1a65c58 100644 --- a/cosiap_api/solicitudes/models.py +++ b/cosiap_api/solicitudes/models.py @@ -2,6 +2,8 @@ from django.db import models from common.nombres_archivos import nombre_archivo_minuta, nombre_archivo_convenio from common.validadores_campos import validador_archivo_1MB, validador_pdf from dynamic_formats.models import DynamicFormat +from users.models import Solicitante +from modalidades.models import Modalidad class Minuta(models.Model): ''' @@ -44,6 +46,7 @@ class Minuta(models.Model): verbose_name_plural = "Minutas" ordering = ['pk'] + class Convenio(models.Model): ''' Modelo que contiene la información de los Convenios. @@ -83,4 +86,33 @@ class Convenio(models.Model): class Meta: verbose_name = "Minuta" verbose_name_plural = "Minutas" - ordering = ['pk'] \ No newline at end of file + ordering = ['pk'] + + +class Solicitud(models.Model): + """ + Modelo que contiene la información de referencia de una solicitud. + + Campos: + - status (Estado de la solicitud.) + - solicitud_n (Campo autoincremental que identifica la solicitud.) + - minuta (Relación opcional a un modelo Minuta, puede ser nulo, por defecto es nulo.) + - convenio (Relación one-to-one con un modelo Convenio, puede ser nulo, por defecto es nulo.) + - monto_solicitado (Monto solicitado, por defecto es 0.0.) + - monto_aprobado (Monto aprobado, por defecto es 0.0.) + - modalidad (Relación con un modelo Modalidad, requerido. Al eliminar, se establece como nulo.) + - timestamp (Marca de tiempo de la solicitud.) + - observacion (Observaciones adicionales, puede ser nulo.) + - solicitante (Relación con un modelo Solicitante, requerido. Al eliminar, se establece como nulo.) + """ + + status = models.CharField(max_length=255) + solicitud_n = models.AutoField(primary_key=True) + minuta = models.ForeignKey(Minuta, on_delete=models.SET_NULL, null=True, blank=True) + convenio = models.OneToOneField(Convenio, on_delete=models.SET_NULL, null=True, blank=True) + monto_solicitado = models.FloatField(default=0.0) + monto_aprobado = models.FloatField(default=0.0) + modalidad = models.ForeignKey(Modalidad, on_delete=models.SET_NULL, null=True, blank=True) + timestamp = models.DateTimeField(auto_now_add=True) + observacion = models.TextField(null=True, blank=True) + solicitante = models.ForeignKey(Solicitante, on_delete=models.SET_NULL, null=True, blank=True) -- GitLab From 0bfa6a3cf6a83de153447be8f03e833f6730103f Mon Sep 17 00:00:00 2001 From: RafaUC Date: Wed, 10 Jul 2024 21:45:13 -0600 Subject: [PATCH 2/2] Agregado el registro al sitio de admin de los modelos de los modulos --- cosiap_api/dynamic_formats/admin.py | 2 ++ cosiap_api/modalidades/admin.py | 3 +++ cosiap_api/notificaciones/admin.py | 3 +++ cosiap_api/solicitudes/admin.py | 5 +++++ cosiap_api/solicitudes/models.py | 20 ++++++++++---------- 5 files changed, 23 insertions(+), 10 deletions(-) diff --git a/cosiap_api/dynamic_formats/admin.py b/cosiap_api/dynamic_formats/admin.py index 8c38f3f..4fbffd9 100644 --- a/cosiap_api/dynamic_formats/admin.py +++ b/cosiap_api/dynamic_formats/admin.py @@ -1,3 +1,5 @@ from django.contrib import admin +from .models import DynamicFormat # Register your models here. +admin.site.register(DynamicFormat) \ No newline at end of file diff --git a/cosiap_api/modalidades/admin.py b/cosiap_api/modalidades/admin.py index 8c38f3f..d967b01 100644 --- a/cosiap_api/modalidades/admin.py +++ b/cosiap_api/modalidades/admin.py @@ -1,3 +1,6 @@ from django.contrib import admin +from .models import Modalidad, MontoModalidad # Register your models here. +admin.site.register(Modalidad) +admin.site.register(MontoModalidad) \ No newline at end of file diff --git a/cosiap_api/notificaciones/admin.py b/cosiap_api/notificaciones/admin.py index 8c38f3f..84e79bd 100644 --- a/cosiap_api/notificaciones/admin.py +++ b/cosiap_api/notificaciones/admin.py @@ -1,3 +1,6 @@ from django.contrib import admin +from .models import Notificacion, NotifInboxLastOpened # Register your models here. +admin.site.register(Notificacion) +admin.site.register(NotifInboxLastOpened) \ No newline at end of file diff --git a/cosiap_api/solicitudes/admin.py b/cosiap_api/solicitudes/admin.py index 8c38f3f..65dd704 100644 --- a/cosiap_api/solicitudes/admin.py +++ b/cosiap_api/solicitudes/admin.py @@ -1,3 +1,8 @@ from django.contrib import admin +from .models import Solicitud, Minuta, Convenio # Register your models here. + +admin.site.register(Solicitud) +admin.site.register(Minuta) +admin.site.register(Convenio) \ No newline at end of file diff --git a/cosiap_api/solicitudes/models.py b/cosiap_api/solicitudes/models.py index 1a65c58..aed171f 100644 --- a/cosiap_api/solicitudes/models.py +++ b/cosiap_api/solicitudes/models.py @@ -106,13 +106,13 @@ class Solicitud(models.Model): - solicitante (Relación con un modelo Solicitante, requerido. Al eliminar, se establece como nulo.) """ - status = models.CharField(max_length=255) - solicitud_n = models.AutoField(primary_key=True) - minuta = models.ForeignKey(Minuta, on_delete=models.SET_NULL, null=True, blank=True) - convenio = models.OneToOneField(Convenio, on_delete=models.SET_NULL, null=True, blank=True) - monto_solicitado = models.FloatField(default=0.0) - monto_aprobado = models.FloatField(default=0.0) - modalidad = models.ForeignKey(Modalidad, on_delete=models.SET_NULL, null=True, blank=True) - timestamp = models.DateTimeField(auto_now_add=True) - observacion = models.TextField(null=True, blank=True) - solicitante = models.ForeignKey(Solicitante, on_delete=models.SET_NULL, null=True, blank=True) + status = models.CharField(verbose_name='Status', max_length=255) + solicitud_n = models.AutoField(verbose_name='Num. Solicitud', primary_key=True) + minuta = models.ForeignKey(Minuta, verbose_name='Minuta', on_delete=models.SET_NULL, null=True, blank=True) + convenio = models.OneToOneField(Convenio, verbose_name='Convenio', on_delete=models.SET_NULL, null=True, blank=True) + monto_solicitado = models.FloatField(verbose_name='Monto Solicitado', default=0.0) + monto_aprobado = models.FloatField(verbose_name='Monto Aprobado', default=0.0) + modalidad = models.ForeignKey(Modalidad, verbose_name='Modalidad', on_delete=models.SET_NULL, null=True, blank=True) + timestamp = models.DateTimeField(verbose_name='Timestamp', auto_now_add=True) + observacion = models.TextField(verbose_name='Observación', null=True, blank=True) + solicitante = models.ForeignKey(Solicitante, verbose_name='Solicitante', on_delete=models.SET_NULL, null=True, blank=True) -- GitLab