diff --git a/cosiap_api/dynamic_tables/views.py b/cosiap_api/dynamic_tables/views.py index d3bf64499c2e9e9ddf9411647dce0ca6119ca1d9..017b985b811ba29a18e4b3a22cac18ef2c892e3b 100644 --- a/cosiap_api/dynamic_tables/views.py +++ b/cosiap_api/dynamic_tables/views.py @@ -39,15 +39,6 @@ class DynamicTableAPIView(BasePermissionAPIView): dynamic_form_exist = False - def formdata_to_dict(self, formdata): - """ - Convierte un FormData recibido en un diccionario con el formato {"column1": "new_value", "column2": "new_value"}. - """ - data_dict = {} - for key, value in formdata.items(): - data_dict[key] = value - return data_dict - def check_user_permissions(self, user, pk): ''' Verificamos el acceso de un usuario a una instancia en específico @@ -207,7 +198,6 @@ class DynamicTableAPIView(BasePermissionAPIView): # Obtener datos de actualización del request field_updates = request.data.get('field_updates', {}) - formatted_field_updates = self.formdata_to_dict(field_updates) register_updates = request.data.get('register_updates', {}) # Extraer la configuración, o si no fue enviada asignamos la predeterminada @@ -235,7 +225,7 @@ class DynamicTableAPIView(BasePermissionAPIView): try: # Actualizar los valores de los campos del registro y guardar la instancia - success = serializer.update_fields(instance, formatted_field_updates) + success = serializer.update_fields(instance, field_updates) if success: Mensaje.success(response_data, 'Campos actualizados con éxito.') diff --git a/cosiap_api/solicitudes/urls.py b/cosiap_api/solicitudes/urls.py index 308d00fb7334c312761e6a595d86251f0dceae60..9af84e9a295d0152c1693bb2dfdd1dab5e80048b 100644 --- a/cosiap_api/solicitudes/urls.py +++ b/cosiap_api/solicitudes/urls.py @@ -17,5 +17,6 @@ urlpatterns = [ path('reportes/exportar//', views.ExportarReporteSolicitudes.as_view(), name='exportar_reportes_pk'), path('calificar//', views.CalificarDocumento.as_view(), name='calificar_documentos'), path('subir-convenio//', views.SubirConvenio.as_view(), name='subir_convenio_pk'), + path('subir-minuta//', views.SubirMinuta.as_view(), name='subir_minuta_pk'), path('subir-convenio/', views.SubirConvenio.as_view(), name='subir_convenio'), ] \ No newline at end of file diff --git a/cosiap_api/solicitudes/views.py b/cosiap_api/solicitudes/views.py index 005a71aedb881dec5d55c728408e73c849f6940c..7260613126072bcc4e8adb2a58cdb4dc9d511e80 100644 --- a/cosiap_api/solicitudes/views.py +++ b/cosiap_api/solicitudes/views.py @@ -10,7 +10,7 @@ from rest_framework.permissions import IsAuthenticated from datetime import timedelta, datetime from common.views import BasePermissionAPIView from users.models import Solicitante -from .models import Solicitud, Convenio +from .models import Solicitud, Convenio, Minuta from notificaciones.mensajes import Mensaje from rest_framework.response import Response from rest_framework import status @@ -269,6 +269,35 @@ class SubirConvenio(BasePermissionAPIView): return Response(data, status = status.HTTP_400_BAD_REQUEST) +class SubirMinuta(BasePermissionAPIView): + ''' + Clase para permitir la subida de una minuta a una solicitud + ''' + + permission_classes_update = [IsAuthenticated, es_admin] + + def put(self, request, *args, **kwargs): + ''' + Método put para la edción del campo minuta + ''' + data = {} + + try: + solicitud_id = kwargs['pk'] + solicitud = Solicitud.objects.get(id= solicitud_id) + + minuta_file = request.data.get('minuta', None) + minuta = Minuta.objects.create(archivo=minuta_file) + minuta.save() + solicitud.minuta = minuta + solicitud.save() + Mensaje.success(data, 'Minuta actualizada exitosamente.') + return Response(data, status= status.HTTP_200_OK) + except Exception as e: + Mensaje.error(data, str(e)) + return Response(data, status = status.HTTP_400_BAD_REQUEST) + + class HistorialAPIVIew(BasePermissionAPIView): ''' APIView con la funcionalidad para ver el historial de apoyos de un solicitante