|
|
@@ -1,8 +1,8 @@
|
|
|
-from django.shortcuts import render, redirect
|
|
|
+from django.shortcuts import render, redirect, get_object_or_404
|
|
|
|
|
|
from accounts import models
|
|
|
from .models import Movimiento, Cuenta
|
|
|
-from .forms import MovimientoForm, FiltroForm
|
|
|
+from .forms import MovimientoForm, FiltroForm, CuentaForm
|
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
|
|
@login_required
|
|
|
@@ -54,3 +54,51 @@ def agregar_movimiento(request):
|
|
|
form.fields['cuenta_origen'].queryset = Cuenta.objects.filter(usuario=request.user)
|
|
|
form.fields['cuenta_destino'].queryset = Cuenta.objects.filter(usuario=request.user)
|
|
|
return render(request, 'agregar_movimiento.html', {'form': form})
|
|
|
+
|
|
|
+
|
|
|
+@login_required
|
|
|
+def agregar_cuenta(request):
|
|
|
+ if request.method == 'POST':
|
|
|
+ form = CuentaForm(request.POST)
|
|
|
+ if form.is_valid():
|
|
|
+ cuenta = form.save(commit=False)
|
|
|
+ cuenta.usuario = request.user
|
|
|
+ cuenta.save()
|
|
|
+ return redirect('dashboard')
|
|
|
+ else:
|
|
|
+ form = CuentaForm()
|
|
|
+ return render(request, 'agregar_cuenta.html', {'form': form})
|
|
|
+
|
|
|
+
|
|
|
+@login_required
|
|
|
+def listar_cuentas(request):
|
|
|
+ cuentas = Cuenta.objects.filter(usuario=request.user)
|
|
|
+ return render(request, 'listar_cuentas.html', {'cuentas': cuentas})
|
|
|
+
|
|
|
+
|
|
|
+@login_required
|
|
|
+def editar_cuenta(request, cuenta_id):
|
|
|
+ cuenta = get_object_or_404(Cuenta, id=cuenta_id, usuario=request.user)
|
|
|
+ if request.method == 'POST':
|
|
|
+ form = CuentaForm(request.POST, instance=cuenta)
|
|
|
+ if form.is_valid():
|
|
|
+ form.save()
|
|
|
+ return redirect('listar_cuentas')
|
|
|
+ else:
|
|
|
+ form = CuentaForm(instance=cuenta)
|
|
|
+ return render(request, 'editar_cuenta.html', {'form': form})
|
|
|
+
|
|
|
+
|
|
|
+@login_required
|
|
|
+def eliminar_cuenta(request, cuenta_id):
|
|
|
+ cuenta = get_object_or_404(Cuenta, id=cuenta_id, usuario=request.user)
|
|
|
+ tiene_movimientos = cuenta.movimientos_salida.exists() or cuenta.movimientos_entrada.exists()
|
|
|
+
|
|
|
+ if request.method == 'POST' and not tiene_movimientos:
|
|
|
+ cuenta.delete()
|
|
|
+ return redirect('listar_cuentas')
|
|
|
+
|
|
|
+ return render(request, 'eliminar_cuenta.html', {
|
|
|
+ 'cuenta': cuenta,
|
|
|
+ 'tiene_movimientos': tiene_movimientos,
|
|
|
+ })
|