Просмотр исходного кода

Quito la función de que cada usuario ve lo suyo. Ahora todos ven todo

Tino 3 месяцев назад
Родитель
Сommit
cc3a842fe0

+ 0 - 1
src/finanzas/management/commands/importar_datos_json.py

@@ -33,7 +33,6 @@ class Command(BaseCommand):
         for c in datos.get("cuentas", []):
             obj, _ = Cuenta.objects.get_or_create(
                 nombre=c["nombre"],
-                usuario=usuario,
                 defaults={
                     "tipo": c["tipo"],
                     "saldo": c["saldo"],

+ 2 - 2
src/finanzas/management/commands/importar_movimientos_externos.py

@@ -61,8 +61,8 @@ class Command(BaseCommand):
                 logger.info(f"Movimiento con cuentas iguales omitido: {nombre_origen}")
                 continue
 
-            cuenta_origen, _ = Cuenta.objects.get_or_create(nombre=nombre_origen, usuario=user, defaults={'saldo': Decimal('0.00'), 'tipo': 'ingreso'})
-            cuenta_destino, _ = Cuenta.objects.get_or_create(nombre=nombre_destino, usuario=user, defaults={'saldo': Decimal('0.00'), 'tipo': 'gasto'})
+            cuenta_origen, _ = Cuenta.objects.get_or_create(nombre=nombre_origen, defaults={'saldo': Decimal('0.00'), 'tipo': 'ingreso'})
+            cuenta_destino, _ = Cuenta.objects.get_or_create(nombre=nombre_destino, defaults={'saldo': Decimal('0.00'), 'tipo': 'gasto'})
 
             fecha = make_aware(datetime.fromisoformat(registro['date'][:19]))
             descripcion = registro.get('description', '')

+ 0 - 1
src/finanzas/models.py

@@ -11,7 +11,6 @@ class Cuenta(models.Model):
     nombre = models.CharField(max_length=100)
     tipo = models.CharField(max_length=10, choices=TIPO_CUENTA_CHOICES)
     saldo = models.DecimalField(max_digits=10, decimal_places=2, default=0.0)
-    usuario = models.ForeignKey(ReyMotaUser, on_delete=models.CASCADE)
     favorita = models.BooleanField(default=False)
 
     saldo_inicial = models.DecimalField(

+ 2 - 2
src/finanzas/tests.py

@@ -19,8 +19,8 @@ class FinanzasViewsTestCase(TestCase):
         self.client.login(email='testuser@test.com', password='testpass')
 
         # Crear dos cuentas de prueba
-        self.cuenta_origen = Cuenta.objects.create(nombre='Cuenta de Prueba origen', usuario=self.user, saldo_inicial=1000)
-        self.cuenta_destino = Cuenta.objects.create(nombre='Cuenta de Prueba destino', usuario=self.user, saldo_inicial=1000)        
+        self.cuenta_origen = Cuenta.objects.create(nombre='Cuenta de Prueba origen', saldo_inicial=1000)
+        self.cuenta_destino = Cuenta.objects.create(nombre='Cuenta de Prueba destino', saldo_inicial=1000)        
 
         # Crear una categoría de prueba
         self.categoria = Categoria.objects.create(nombre='Categoría de Prueba')

+ 20 - 20
src/finanzas/views.py

@@ -54,11 +54,11 @@ def dashboard(request):
 
     logger.info("Inicio mes %s. Último día: %s. Fin_mes: %s", inicio_mes,ultimo_dia,fin_mes)
 
-    movimientos = Movimiento.objects.filter(usuario=request.user, fecha__range=(inicio_mes, fin_mes)).order_by('-fecha')
+    movimientos = Movimiento.objects.filter(fecha__range=(inicio_mes, fin_mes)).order_by('-fecha')
 
     favoritas = Cuenta.objects.filter(favorita='True').order_by('nombre')
 
-    frecuentes = MovimientoFrecuente.objects.filter(usuario=request.user).order_by('cuenta_destino')
+    frecuentes = MovimientoFrecuente.objects.all().order_by('cuenta_destino')
     
     logger.info("Mostrando la vista dashboard con %d movimientos y %d favoritas", movimientos.count(), favoritas.count())   
     logger.info("El usuario '%s' accedió a la vista principal", request.user.nombre if request.user.is_authenticated else "Anónimo") 
@@ -92,7 +92,7 @@ def buscatotal(request):
     # Copiamos GET para poder modificarlo
     request.GET = request.GET.copy()
 
-    movimientos = Movimiento.objects.filter(usuario=request.user).order_by('-fecha')
+    movimientos = Movimiento.objects.all().order_by('-fecha')
 
     form_filtro = FiltroForm(request.GET or None)
 
@@ -122,7 +122,7 @@ def buscatotal(request):
 def agregar_movimiento(request):
     if request.method == 'POST':
         form = MovimientoForm(request.POST)
-        cuentas = Cuenta.objects.filter(usuario=request.user).order_by('nombre')
+        cuentas = Cuenta.objects.all().order_by('nombre')
 
         form.fields['cuenta_origen'].queryset = cuentas
         form.fields['cuenta_destino'].queryset = cuentas
@@ -155,9 +155,9 @@ def agregar_movimiento(request):
 
         try:
             if origen:
-                datos_iniciales['cuenta_origen'] = Cuenta.objects.get(nombre=request.GET['origen'], usuario=request.user)
+                datos_iniciales['cuenta_origen'] = Cuenta.objects.get(nombre=request.GET['origen'])
             if destino:
-                datos_iniciales['cuenta_destino'] = Cuenta.objects.get(nombre=request.GET['destino'], usuario=request.user)
+                datos_iniciales['cuenta_destino'] = Cuenta.objects.get(nombre=request.GET['destino'])
             if categoria:
                 datos_iniciales['categoria'] = Categoria.objects.get(nombre=request.GET['categoria'])
             if descripcion:
@@ -175,7 +175,7 @@ def agregar_movimiento(request):
 
         # logger.warning(f"agregar_movimiento: datos iniciales: {datos_iniciales}")
 
-        cuentas = Cuenta.objects.filter(usuario=request.user).order_by('nombre')
+        cuentas = Cuenta.objects.all().order_by('nombre')
 
         form = MovimientoForm(initial=datos_iniciales)
         form.fields['cuenta_origen'].queryset = cuentas
@@ -185,7 +185,7 @@ def agregar_movimiento(request):
 
 @login_required
 def editar_movimiento(request, movimiento_id):
-    movimiento = get_object_or_404(Movimiento, id=movimiento_id, usuario=request.user)
+    movimiento = get_object_or_404(Movimiento, id=movimiento_id)
 
     cuenta_original_origen = movimiento.cuenta_origen
     cuenta_original_destino = movimiento.cuenta_destino
@@ -194,7 +194,7 @@ def editar_movimiento(request, movimiento_id):
     if request.method == 'POST':
         form = MovimientoForm(request.POST, instance=movimiento)
 
-        cuentas = Cuenta.objects.filter(usuario=request.user).order_by('nombre')
+        cuentas = Cuenta.objects.all().order_by('nombre')
         form.fields['cuenta_origen'].queryset = cuentas
         form.fields['cuenta_destino'].queryset = cuentas
 
@@ -231,7 +231,7 @@ def editar_movimiento(request, movimiento_id):
     else:
         form = MovimientoForm(instance=movimiento)
 
-        cuentas = Cuenta.objects.filter(usuario=request.user).order_by('nombre')
+        cuentas = Cuenta.objects.all().order_by('nombre')
         form.fields['cuenta_origen'].queryset = cuentas
         form.fields['cuenta_destino'].queryset = cuentas
 
@@ -240,7 +240,7 @@ def editar_movimiento(request, movimiento_id):
 
 @login_required
 def eliminar_movimiento(request, movimiento_id):
-    movimiento = get_object_or_404(Movimiento, id=movimiento_id, usuario=request.user)
+    movimiento = get_object_or_404(Movimiento, id=movimiento_id)
     if request.method == 'POST':
         # Revertir efecto del movimiento antes de borrarlo
         movimiento.cuenta_origen.saldo += movimiento.monto
@@ -255,7 +255,7 @@ def eliminar_movimiento(request, movimiento_id):
 
 @login_required
 def duplicar_movimiento(request, movimiento_id):
-    original = get_object_or_404(Movimiento, id=movimiento_id, usuario=request.user)
+    original = get_object_or_404(Movimiento, id=movimiento_id)
 
     # Crear una copia del movimiento sin guardar
     movimiento_nuevo = Movimiento(
@@ -270,7 +270,7 @@ def duplicar_movimiento(request, movimiento_id):
 
     if request.method == 'POST':
         form = MovimientoForm(request.POST, instance=movimiento_nuevo)
-        cuentas = Cuenta.objects.filter(usuario=request.user).order_by('nombre')
+        cuentas = Cuenta.objects.all().order_by('nombre')
         form.fields['cuenta_origen'].queryset = cuentas
         form.fields['cuenta_destino'].queryset = cuentas
         if form.is_valid():
@@ -286,7 +286,7 @@ def duplicar_movimiento(request, movimiento_id):
             return redirect('dashboard')
     else:
         form = MovimientoForm(instance=movimiento_nuevo)
-        cuentas = Cuenta.objects.filter(usuario=request.user).order_by('nombre')
+        cuentas = Cuenta.objects.all().order_by('nombre')
         form.fields['cuenta_origen'].queryset = cuentas
         form.fields['cuenta_destino'].queryset = cuentas
 
@@ -297,7 +297,7 @@ def duplicar_movimiento(request, movimiento_id):
 
 @login_required
 def listar_cuentas(request):
-    cuentas = Cuenta.objects.filter(usuario=request.user).order_by('nombre')
+    cuentas = Cuenta.objects.all().order_by('nombre')
 
     # desde aquí....
     form_filtro = FiltroForm(request.GET or None)
@@ -349,7 +349,7 @@ def listar_categorias(request):
 
 
 def api_datos_completos(request):
-    cuentas = list(Cuenta.objects.values('id', 'nombre', 'tipo', 'saldo', 'usuario__nombre', 'favorita', 'saldo_inicial'))
+    cuentas = list(Cuenta.objects.values('id', 'nombre', 'tipo', 'saldo', 'favorita', 'saldo_inicial'))
     categorias = list(Categoria.objects.values('id', 'nombre'))
 
     movimientos = [
@@ -429,8 +429,8 @@ def api_ejecutar_recurrentes(request):
 
 @login_required
 def resumen_saldos_mensuales(request):
-    cuentas = Cuenta.objects.filter(usuario=request.user).order_by('nombre')
-    movimientos = Movimiento.objects.filter(usuario=request.user).order_by('fecha')
+    cuentas = Cuenta.objects.all().order_by('nombre')
+    movimientos = Movimiento.objects.all().order_by('fecha')
 
     # Diccionario: {(cuenta_id, año, mes): saldo}
     saldos_mensuales = defaultdict(lambda: 0)
@@ -473,7 +473,7 @@ def resumen_saldos_mensuales(request):
 def informe_cuenta(request):
     cuenta_id = request.GET.get('cuenta_id')
 
-    cuenta = get_object_or_404(Cuenta, id=cuenta_id, usuario=request.user)
+    cuenta = get_object_or_404(Cuenta, id=cuenta_id)
 
     logger.info('api_informe_cuenta: petición aceptada: %s', cuenta_id)
 
@@ -558,7 +558,7 @@ def informe_cuenta(request):
 def informe_cuenta_pdf(request):
     cuenta_id = request.GET.get('cuenta_id')
 
-    cuenta = get_object_or_404(Cuenta, id=cuenta_id, usuario=request.user)
+    cuenta = get_object_or_404(Cuenta, id=cuenta_id)
 
     # obtener fechas desde GET o establecer por defecto (mes actual)
     hoy = timezone.localtime()