From e4bd4d181901090aea7c880e738604c67ea3401c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Sun, 7 Dec 2025 14:40:35 +0100 Subject: [PATCH] poprwka sql --- app.py | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/app.py b/app.py index 308e07e..fbf3085 100644 --- a/app.py +++ b/app.py @@ -493,7 +493,7 @@ def formularz_zbiorek(zbiorka_id=None): except InvalidOperation: return None - # Zapis + # zapis if is_edit: zb.nazwa = nazwa zb.opis = opis @@ -509,11 +509,7 @@ def formularz_zbiorek(zbiorka_id=None): zb.pokaz_postep_pozycje = pokaz_postep_pozycje zb.pokaz_postep_kwotowo = pokaz_postep_kwotowo - db.session.commit() - - db.session.execute( - Przedmiot.__table__.delete().where(Przedmiot.zbiorka_id == zb.id) - ) + istniejace = list(zb.przedmioty) for i, raw_name in enumerate(names): name = (raw_name or "").strip() @@ -523,13 +519,25 @@ def formularz_zbiorek(zbiorka_id=None): cena_val = _read_price(prices[i] if i < len(prices) else "") kupione_val = request.form.get(f"item_kupione_val_{i}") == "1" - przedmiot = Przedmiot( - nazwa=name, - link=link, - cena=cena_val, - kupione=kupione_val - ) - zb.przedmioty.append(przedmiot) + if i < len(istniejace): + p = istniejace[i] + p.nazwa = name + p.link = link + p.cena = cena_val + p.kupione = kupione_val + else: + p = Przedmiot( + zbiorka_id=zb.id, + nazwa=name, + link=link, + cena=cena_val, + kupione=kupione_val + ) + db.session.add(p) + zb.przedmioty.append(p) + + for i in range(len(names), len(istniejace)): + db.session.delete(istniejace[i]) db.session.commit() flash("Zbiórka została zaktualizowana", "success") @@ -572,6 +580,7 @@ def formularz_zbiorek(zbiorka_id=None): return redirect(url_for("admin_dashboard")) + # GET return render_template( "admin/formularz_zbiorek.html",