From 14bf893cb030d5ecc8c03bd56568af1ffe1b77db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Mon, 17 Mar 2025 09:35:14 +0100 Subject: [PATCH] drone zmiany --- app.py | 47 +++++++++++++++++++++++++------ static/css/custom.css | 8 +++--- templates/admin/add_zbiorka.html | 6 ++-- templates/admin/dashboard.html | 5 +++- templates/admin/edit_zbiorka.html | 15 ++++++++-- templates/admin/settings.html | 25 ++++++++++++++++ templates/zbiorka.html | 2 +- 7 files changed, 90 insertions(+), 18 deletions(-) create mode 100644 templates/admin/settings.html diff --git a/app.py b/app.py index e02ba05..f2b788f 100644 --- a/app.py +++ b/app.py @@ -39,7 +39,7 @@ class Zbiorka(db.Model): stan = db.Column(db.Float, default=0.0) ukryta = db.Column(db.Boolean, default=False) ukryj_kwote = db.Column(db.Boolean, default=False) - wplaty = db.relationship('Wplata', backref='zbiorka', lazy=True) + wplaty = db.relationship('Wplata', backref='zbiorka', lazy=True, order_by='Wplata.data.desc()') class Wplata(db.Model): id = db.Column(db.Integer, primary_key=True) @@ -48,6 +48,11 @@ class Wplata(db.Model): data = db.Column(db.DateTime, default=datetime.utcnow) opis = db.Column(db.Text, nullable=True) # Opis wpłaty +class GlobalSettings(db.Model): + id = db.Column(db.Integer, primary_key=True) + numer_konta = db.Column(db.String(50), nullable=False) + numer_telefonu_blik = db.Column(db.String(50), nullable=False) + @login_manager.user_loader def load_user(user_id): return User.query.get(int(user_id)) @@ -138,14 +143,18 @@ def dodaj_zbiorka(): if not current_user.is_admin: flash('Brak uprawnień', 'danger') return redirect(url_for('index')) + + global_settings = GlobalSettings.query.first() # Pobieramy globalne ustawienia + if request.method == 'POST': nazwa = request.form['nazwa'] opis = request.form['opis'] + # Pozyskujemy numer konta i telefon z formularza (mogą być nadpisane ręcznie) numer_konta = request.form['numer_konta'] numer_telefonu_blik = request.form['numer_telefonu_blik'] cel = float(request.form['cel']) - # Jeśli checkbox jest zaznaczony, wartość będzie obecna w formularzu ukryj_kwote = 'ukryj_kwote' in request.form + nowa_zbiorka = Zbiorka( nazwa=nazwa, opis=opis, @@ -159,8 +168,7 @@ def dodaj_zbiorka(): flash('Zbiórka została dodana', 'success') return redirect(url_for('admin_dashboard')) - # Zwracamy szablon dla żądania GET - return render_template('admin/add_zbiorka.html') + return render_template('admin/add_zbiorka.html', global_settings=global_settings) @app.route('/admin/zbiorka/edytuj/', methods=['GET', 'POST']) @login_required @@ -169,6 +177,7 @@ def edytuj_zbiorka(zbiorka_id): flash('Brak uprawnień', 'danger') return redirect(url_for('index')) zb = Zbiorka.query.get_or_404(zbiorka_id) + global_settings = GlobalSettings.query.first() # Pobieramy globalne ustawienia if request.method == 'POST': zb.nazwa = request.form['nazwa'] zb.opis = request.form['opis'] @@ -178,14 +187,12 @@ def edytuj_zbiorka(zbiorka_id): zb.cel = float(request.form['cel']) except ValueError: flash('Podano nieprawidłową wartość dla celu zbiórki', 'danger') - return render_template('admin/edit_zbiorka.html', zbiorka=zb) - # Ustawienie opcji ukrywania kwot, jeśli checkbox jest zaznaczony + return render_template('admin/edit_zbiorka.html', zbiorka=zb, global_settings=global_settings) zb.ukryj_kwote = 'ukryj_kwote' in request.form db.session.commit() flash('Zbiórka została zaktualizowana', 'success') return redirect(url_for('admin_dashboard')) - # Dla żądania GET zwracamy formularz edycji - return render_template('admin/edit_zbiorka.html', zbiorka=zb) + return render_template('admin/edit_zbiorka.html', zbiorka=zb, global_settings=global_settings) # TRASA DODAWANIA WPŁATY Z OPISEM # TRASA DODAWANIA WPŁATY W PANELU ADMINA @@ -272,6 +279,30 @@ def add_security_headers(response): response.headers["X-Robots-Tag"] = app.config.get("ROBOTS_TAG", "noindex, nofollow, nosnippet, noarchive") return response +@app.route('/admin/settings', methods=['GET', 'POST']) +@login_required +def admin_settings(): + if not current_user.is_admin: + flash('Brak uprawnień do panelu administracyjnego', 'danger') + return redirect(url_for('index')) + + settings = GlobalSettings.query.first() + if request.method == 'POST': + numer_konta = request.form.get('numer_konta') + numer_telefonu_blik = request.form.get('numer_telefonu_blik') + + if settings is None: + settings = GlobalSettings(numer_konta=numer_konta, numer_telefonu_blik=numer_telefonu_blik) + db.session.add(settings) + else: + settings.numer_konta = numer_konta + settings.numer_telefonu_blik = numer_telefonu_blik + + db.session.commit() + flash('Ustawienia globalne zostały zaktualizowane', 'success') + return redirect(url_for('admin_dashboard')) + + return render_template('admin/settings.html', settings=settings) @app.route('/robots.txt') def robots(): diff --git a/static/css/custom.css b/static/css/custom.css index 9e8a77d..5f626d5 100644 --- a/static/css/custom.css +++ b/static/css/custom.css @@ -69,14 +69,14 @@ body { } .btn-primary { - background-color: #333333; - border-color: #444444; + background-color: #2d2c2c; + border-color: #ffeb3b; color: #ffffff; } .btn-primary:hover { - background-color: #444444; - border-color: #555555; + background-color: #1e1e1e; + border-color: #ffc107; } /* Linki */ diff --git a/templates/admin/add_zbiorka.html b/templates/admin/add_zbiorka.html index 7ff317c..00f7ae5 100644 --- a/templates/admin/add_zbiorka.html +++ b/templates/admin/add_zbiorka.html @@ -18,11 +18,11 @@
- +
- +
@@ -33,6 +33,7 @@
+ @@ -46,4 +47,5 @@ forceSync: true }); + {% endblock %} diff --git a/templates/admin/dashboard.html b/templates/admin/dashboard.html index ee5f228..6747d73 100644 --- a/templates/admin/dashboard.html +++ b/templates/admin/dashboard.html @@ -4,7 +4,10 @@

Panel Admina

diff --git a/templates/admin/edit_zbiorka.html b/templates/admin/edit_zbiorka.html index e2ac143..d2b6ea6 100644 --- a/templates/admin/edit_zbiorka.html +++ b/templates/admin/edit_zbiorka.html @@ -18,11 +18,13 @@
- +
- +
@@ -33,6 +35,7 @@
+ @@ -46,4 +49,12 @@ forceSync: true }); + {% endblock %} diff --git a/templates/admin/settings.html b/templates/admin/settings.html new file mode 100644 index 0000000..e01eb6e --- /dev/null +++ b/templates/admin/settings.html @@ -0,0 +1,25 @@ +{% extends 'base.html' %} +{% block title %}Ustawienia globalne{% endblock %} +{% block content %} +
+
+
+

Ustawienia globalne

+
+
+
+
+ + +
+
+ + +
+ + Powrót + +
+
+
+{% endblock %} diff --git a/templates/zbiorka.html b/templates/zbiorka.html index a931663..88ecd5f 100644 --- a/templates/zbiorka.html +++ b/templates/zbiorka.html @@ -63,7 +63,7 @@ {% if current_user.is_authenticated and current_user.is_admin %} Dodaj wpłatę {% endif %} - Powrót do listy + Powrót do listy