|
|
@@ -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
|