diff --git a/app.py b/app.py index 75ca4a4..82bda3b 100644 --- a/app.py +++ b/app.py @@ -363,20 +363,21 @@ def zbiorka(zbiorka_id): is_admin = current_user.is_authenticated and current_user.czy_admin show_hidden = is_admin and (request.args.get("show_hidden") in ("1", "true", "yes")) - # wpłaty / wydatki z filtrem ukrycia + # Wpłaty wplaty = [ {"typ": "wpłata", "kwota": w.kwota, "opis": w.opis, "data": w.data, "ukryta": getattr(w, "ukryta", False)} for w in zb.wplaty if show_hidden or not getattr(w, "ukryta", False) ] + # Wydatki wydatki = [ {"typ": "wydatek", "kwota": x.kwota, "opis": x.opis, "data": x.data, "ukryta": getattr(x, "ukryta", False)} for x in zb.wydatki if show_hidden or not getattr(x, "ukryta", False) ] - # Przesunięcia przychodzące + # Przesunięcia przychodzące - TYLKO ogólne (bez konkretnej wpłaty) przesuniecia_przych = [ { "typ": "przesunięcie_przych", @@ -388,10 +389,10 @@ def zbiorka(zbiorka_id): "ukryta": getattr(p, "ukryta", False) } for p in zb.przesuniecia_przychodzace - if show_hidden or not getattr(p, "ukryta", False) + if (show_hidden or not getattr(p, "ukryta", False)) and p.wplata_id is None ] - # Przesunięcia wychodzące + # Przesunięcia wychodzące - TYLKO ogólne (bez konkretnej wpłaty) przesuniecia_wych = [ { "typ": "przesunięcie_wych", @@ -403,7 +404,7 @@ def zbiorka(zbiorka_id): "ukryta": getattr(p, "ukryta", False) } for p in zb.przesuniecia_wychodzace - if show_hidden or not getattr(p, "ukryta", False) + if (show_hidden or not getattr(p, "ukryta", False)) and p.wplata_id is None ] aktywnosci = wplaty + wydatki + przesuniecia_przych + przesuniecia_wych @@ -727,6 +728,7 @@ def dodaj_wplate(zbiorka_id): return redirect(next_url or url_for("transakcje_zbiorki", zbiorka_id=zb.id)) return render_template("admin/dodaj_wplate.html", zbiorka=zb) + @app.route("/admin/zbiorka//wplata//przesun", methods=["GET", "POST"]) @login_required def przesun_wplate(zbiorka_id, wplata_id): @@ -759,13 +761,11 @@ def przesun_wplate(zbiorka_id, wplata_id): opis_dodatkowy = request.form.get("opis", "").strip() - # Opis przesunięcia if opis_dodatkowy: opis_przesuniecia = f"Przesunięcie wpłaty: {wplata.opis or 'bez opisu'} - {opis_dodatkowy}" else: opis_przesuniecia = f"Przesunięcie wpłaty: {wplata.opis or 'bez opisu'}" - # Utwórz przesunięcie nowe_przesuniecie = Przesuniecie( zbiorka_zrodlo_id=zb_zrodlo.id, zbiorka_cel_id=zb_cel.id, @@ -774,13 +774,9 @@ def przesun_wplate(zbiorka_id, wplata_id): wplata_id=wplata.id ) - # Zaktualizuj stany zb_zrodlo.stan = (zb_zrodlo.stan or Decimal("0")) - wplata.kwota zb_cel.stan = (zb_cel.stan or Decimal("0")) + wplata.kwota - - # Przenieś wpłatę do nowej zbiórki wplata.zbiorka_id = zb_cel.id - db.session.add(nowe_przesuniecie) db.session.commit() @@ -789,7 +785,6 @@ def przesun_wplate(zbiorka_id, wplata_id): next_url = request.args.get("next") return redirect(next_url or url_for("transakcje_zbiorki", zbiorka_id=zb_zrodlo.id)) - # GET - wyświetl formularz dostepne_zbiorki = Zbiorka.query.filter(Zbiorka.id != zbiorka_id).all() return render_template("admin/przesun_wplate.html", zbiorka=zb_zrodlo, @@ -797,6 +792,7 @@ def przesun_wplate(zbiorka_id, wplata_id): dostepne_zbiorki=dostepne_zbiorki) + @app.route("/admin/zbiorka/usun/", methods=["POST"]) @login_required def usun_zbiorka(zbiorka_id):