Browse Source

Arreglo búsquedas en movimientos y cuentas. En el resto no aparece.

Celestino Rey 1 year ago
parent
commit
48684c3087
3 changed files with 31 additions and 13 deletions
  1. 25 8
      finanzas/views.py
  2. 5 5
      templates/_navigation.html
  3. 1 0
      templates/listar_cuentas.html

+ 25 - 8
finanzas/views.py

@@ -15,15 +15,22 @@ logger = logging.getLogger(__name__)
 
 @login_required
 def dashboard(request):
+        # Copiamos GET para poder modificarlo
+    request.GET = request.GET.copy()
+    
+    # Si se solicitó limpiar la búsqueda, la eliminamos de los datos
+    if 'limpiar_busqueda' in request.GET:
+        request.GET['buscar'] = ''
+
     movimientos = Movimiento.objects.filter(usuario=request.user).order_by('-fecha')
 
     favoritas = Cuenta.objects.filter(favorita='True')
 
     frecuentes = MovimientoFrecuente.objects.filter(usuario=request.user)
 
-    form = FiltroForm(request.GET or None)
+    form_filtro = FiltroForm(request.GET or None)
     
-    if form.is_valid():
+    if form_filtro.is_valid():
 #        if form.cleaned_data['fecha_inicio']:
 #            movimientos = movimientos.filter(fecha__gte=form.cleaned_data['fecha_inicio'])
 #        if form.cleaned_data['fecha_fin']:
@@ -31,21 +38,21 @@ def dashboard(request):
 #        if form.cleaned_data['cuenta']:
 #            cuenta = form.cleaned_data['cuenta']
 #            movimientos = movimientos.filter(models.Q(cuenta_origen=cuenta) | models.Q(cuenta_destino=cuenta))
-        busqueda = form.cleaned_data.get('buscar')
+        busqueda = form_filtro.cleaned_data.get('buscar')
         if busqueda:
             movimientos = movimientos.filter(
                 db_models.Q(descripcion__icontains=busqueda) |
                 db_models.Q(cuenta_origen__nombre__icontains=busqueda) |
                 db_models.Q(cuenta_destino__nombre__icontains=busqueda)
             )
-    logger.warning(f"Frecuentes: {frecuentes}")
-    logger.warning(f"Monto: {frecuentes[0].monto}")
-    # Aplicar filtros si se han proporcionado
+
+#    logger.warning(f"Frecuentes: {frecuentes}")
+#    logger.warning(f"Monto: {frecuentes[0].monto}")
 
     return render(request, 'dashboard.html', {
         'movimientos': movimientos,
         'user': request.user,
-        'form': form,
+        'form_filtro': form_filtro,
         'favoritas': favoritas,
         'frecuentes': frecuentes,
     })
@@ -207,7 +214,17 @@ def agregar_cuenta(request):
 @login_required
 def listar_cuentas(request):
     cuentas = Cuenta.objects.filter(usuario=request.user)
-    return render(request, 'listar_cuentas.html', {'cuentas': cuentas})
+    form_filtro = FiltroForm(request.GET or None)
+
+    if form_filtro.is_valid():
+        busqueda = form_filtro.cleaned_data.get('buscar')
+        if busqueda:
+            cuentas = cuentas.filter(
+                db_models.Q(nombre__icontains=busqueda) 
+            )
+
+    return render(request, 'listar_cuentas.html', 
+                  {'cuentas': cuentas ,'form_filtro': form_filtro})
 
 
 @login_required

+ 5 - 5
templates/_navigation.html

@@ -2,15 +2,15 @@
 <div class="navigation">
     <div class="n1">
         <div>
-           <i id="menu-btn" class="bi bi-list""></i>               
+           <i id="menu-btn" class="bi bi-list"></i>               
         </div>
-
- <!--       <div class="search">
+        {% if form_filtro %}
+        <div class="form-group">
             <form method="get">
-                {{ form.as_p }}
+                {{ form_filtro.as_p }}
             </form>
         </div>
-        -->
+        {% endif %}
     </div>
 
     <div class="profile">

+ 1 - 0
templates/listar_cuentas.html

@@ -4,6 +4,7 @@
 
 <section id="interface">
     {% include "_navigation.html" %}
+    
     <h3 class="i-name">
         Mis Cuentas
     </h3>