Sfoglia il codice sorgente

Actualizo exportación de datos

Celestino Rey 1 anno fa
parent
commit
3c1f476e36
1 ha cambiato i file con 39 aggiunte e 8 eliminazioni
  1. 39 8
      src/finanzas/views.py

+ 39 - 8
src/finanzas/views.py

@@ -273,15 +273,46 @@ def eliminar_cuenta(request, cuenta_id):
     })
 
 
-@login_required
 def api_datos_completos(request):
-    data = {
-        'cuentas': list(Cuenta.objects.filter(usuario=request.user).values()),
-        'movimientos': list(Movimiento.objects.filter(usuario=request.user).values()),
-        'categorias': list(Categoria.objects.all().values()),
-        'favoritos': list(MovimientoFrecuente.objects.filter(usuario=request.user).values()),
-    }
-    return JsonResponse(data, safe=False, json_dumps_params={'ensure_ascii': False, 'indent': 2})
+    cuentas = list(Cuenta.objects.values('id', 'nombre', 'tipo', 'saldo', 'usuario__nombre', 'favorita'))
+    categorias = list(Categoria.objects.values('id', 'nombre'))
+    
+    movimientos = [
+        {
+            'id': m.id,
+            'usuario': m.usuario.nombre,
+            'cuenta_origen': m.cuenta_origen.nombre,
+            'cuenta_destino': m.cuenta_destino.nombre,
+            'monto': float(m.monto),
+            'fecha': m.fecha.isoformat(),
+            'descripcion': m.descripcion,
+            'categoria': m.categoria.nombre if m.categoria else None,
+        }
+        for m in Movimiento.objects.select_related('cuenta_origen', 'cuenta_destino', 'usuario', 'categoria')
+    ]
+
+    movs_frecuentes = [
+        {
+            'id': m.id,
+            'nombre': m.nombre,
+            'cuenta_origen': m.cuenta_origen.nombre,
+            'cuenta_destino': m.cuenta_destino.nombre,
+            'monto': float(m.monto),
+            'categoria': m.categoria.nombre if m.categoria else None,
+            'descripcion': m.descripcion,
+            'frecuencia': m.frecuencia,
+            'dia': m.dia,
+            'usuario': m.usuario.nombre,
+        }
+        for m in MovimientoFrecuente.objects.select_related('cuenta_origen', 'cuenta_destino', 'usuario', 'categoria')
+    ]
+
+    return JsonResponse({
+        'cuentas': cuentas,
+        'categorias': categorias,
+        'movimientos': movimientos,
+        'movimientos_frecuentes': movs_frecuentes,
+    }, safe=False)
 
 
 @login_required