nowe funkcje (zrealizowane) i poprawki w detekcji ip

This commit is contained in:
Mateusz Gruszczyński
2025-03-26 11:04:21 +01:00
parent 60754ec23b
commit b3c9aa1586
8 changed files with 151 additions and 35 deletions

View File

@ -2,13 +2,66 @@
{% block title %}Panel Admina{% endblock %}
{% block content %}
<div class="container my-4">
<h3 class="mb-4">Panel Admina</h3>
<h2 class="mb-4">Panel Admina</h2>
<div class="mb-3">
<div class="mb-3">
<a href="{{ url_for('dodaj_zbiorka') }}" class="btn btn-success">Dodaj zbiórkę</a>
<a href="{{ url_for('admin_settings') }}" class="btn btn-primary">Ustawienia globalne</a>
</div>
<a href="{{ url_for('dodaj_zbiorka') }}" class="btn btn-success">Dodaj zbiórkę</a>
<a href="{{ url_for('admin_settings') }}" class="btn btn-primary">Ustawienia</a>
</div>
<!-- Tabela zbiórek aktywnych -->
<h4>Aktywne zbiórki</h4>
<div class="table-responsive mb-5">
<table class="table table-dark table-striped table-hover">
<thead>
<tr>
<th>ID</th>
<th>Nazwa</th>
<th>Widoczność</th>
<th>Opcje</th>
</tr>
</thead>
<tbody>
{% for z in active_zbiorki %}
<tr>
<td>{{ z.id }}</td>
<td>{{ z.nazwa }}</td>
<td>
{% if z.ukryta %}
<span class="badge bg-secondary">Ukryta</span>
{% else %}
<span class="badge bg-success">Widoczna</span>
{% endif %}
</td>
<td>
<a href="{{ url_for('edytuj_zbiorka', zbiorka_id=z.id) }}" class="btn btn-primary btn-sm">Edytuj</a>
<a href="{{ url_for('admin_dodaj_wplate', zbiorka_id=z.id) }}" class="btn btn-warning btn-sm">Dodaj wpłatę</a>
<a href="{{ url_for('edytuj_stan', zbiorka_id=z.id) }}" class="btn btn-info btn-sm">Edytuj stan</a>
<!-- Przycisk do oznaczenia jako zrealizowana -->
<form action="{{ url_for('oznacz_zbiorka', zbiorka_id=z.id) }}" method="post" style="display: inline;">
<button type="submit" class="btn btn-warning btn-sm">Oznacz jako zrealizowana</button>
</form>
<form action="{{ url_for('toggle_visibility', zbiorka_id=z.id) }}" method="post" style="display: inline;">
<button type="submit" class="btn btn-secondary btn-sm">
{% if z.ukryta %} Pokaż {% else %} Ukryj {% endif %}
</button>
</form>
<form action="{{ url_for('usun_zbiorka', zbiorka_id=z.id) }}" method="post" style="display: inline;">
<button type="submit" class="btn btn-danger btn-sm" onclick="return confirm('Czy na pewno chcesz usunąć tę zbiórkę?');">Usuń</button>
</form>
</td>
</tr>
{% else %}
<tr>
<td colspan="4" class="text-center">Brak aktywnych zbiórek</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<!-- Tabela zbiórek zrealizowanych -->
<h4>Zrealizowane zbiórki</h4>
<div class="table-responsive">
<table class="table table-dark table-striped table-hover">
<thead>
@ -20,7 +73,7 @@
</tr>
</thead>
<tbody>
{% for z in zbiorki %}
{% for z in completed_zbiorki %}
<tr>
<td>{{ z.id }}</td>
<td>{{ z.nazwa }}</td>
@ -47,7 +100,7 @@
</tr>
{% else %}
<tr>
<td colspan="4" class="text-center">Brak zbiórek</td>
<td colspan="4" class="text-center">Brak zbiórek zrealizowanych</td>
</tr>
{% endfor %}
</tbody>

View File

@ -34,8 +34,15 @@
<input type="checkbox" class="form-check-input" id="ukryj_kwote" name="ukryj_kwote" {% if zbiorka.ukryj_kwote %}checked{% endif %}>
<label class="form-check-label" for="ukryj_kwote">Ukryj kwoty (cel i stan)</label>
</div>
<button type="submit" class="btn btn-primary">Zaktualizuj zbiórkę</button>
<button type="button" class="btn btn-primary" id="ustaw-globalne">Ustaw globalne</button>
<form action="{{ url_for('oznacz_zbiorka', zbiorka_id=zbiorka.id) }}" method="post" style="display:inline;">
<button type="submit" class="btn btn-warning">Oznacz jako zrealizowana</button>
</form>
</form>
</div>
</div>

View File

@ -2,28 +2,39 @@
{% block title %}Ustawienia globalne{% endblock %}
{% block content %}
<div class="container my-4">
<div class="card shadow-sm">
<div class="card-header bg-primary text-white">
<h3 class="card-title mb-0">Ustawienia globalne</h3>
<form method="post">
<!-- Blok ustawień konta -->
<div class="card shadow-sm mb-4">
<div class="card-header bg-primary text-white">
<h3 class="card-title mb-0">Ustawienia konta</h3>
</div>
<div class="card-body">
<div class="mb-3">
<label for="numer_konta" class="form-label">Globalny numer konta</label>
<input type="text" class="form-control" id="numer_konta" name="numer_konta" value="{{ settings.numer_konta if settings else '' }}" required>
</div>
<div class="mb-3">
<label for="numer_telefonu_blik" class="form-label">Globalny numer telefonu BLIK</label>
<input type="text" class="form-control" id="numer_telefonu_blik" name="numer_telefonu_blik" value="{{ settings.numer_telefonu_blik if settings else '' }}" required>
</div>
</div>
</div>
<div class="card-body">
<form method="post">
<div class="mb-3">
<label for="numer_konta" class="form-label">Globalny numer konta</label>
<input type="text" class="form-control" id="numer_konta" name="numer_konta" value="{{ settings.numer_konta if settings else '' }}" required>
</div>
<div class="mb-3">
<label for="numer_telefonu_blik" class="form-label">Globalny numer telefonu BLIK</label>
<input type="text" class="form-control" id="numer_telefonu_blik" name="numer_telefonu_blik" value="{{ settings.numer_telefonu_blik if settings else '' }}" required>
</div>
<div class="mb-3">
<label for="allowed_login_hosts" class="form-label">Dozwolone hosty logowania</label>
<textarea class="form-control" id="allowed_login_hosts" name="allowed_login_hosts" rows="4" placeholder="Podaj adresy IP lub nazwy domen oddzielone przecinkami lub nowymi liniami">{{ settings.allowed_login_hosts if settings and settings.allowed_login_hosts else '' }}</textarea>
</div>
<button type="submit" class="btn btn-primary">Zapisz ustawienia</button>
<a href="{{ url_for('admin_dashboard') }}" class="btn btn-secondary">Powrót</a>
</form>
<!-- Blok dozwolonych adresów IP -->
<div class="card shadow-sm mb-4">
<div class="card-header bg-secondary text-white">
<h3 class="card-title mb-0">Dozwolone adresy IP</h3>
</div>
<div class="card-body">
<div class="mb-3">
<label for="allowed_login_hosts" class="form-label">Dozwolone hosty logowania</label>
<textarea class="form-control" id="allowed_login_hosts" name="allowed_login_hosts" rows="4" placeholder="Podaj adresy IP lub nazwy domen oddzielone przecinkami lub nowymi liniami">{{ settings.allowed_login_hosts if settings and settings.allowed_login_hosts else '' }}</textarea>
</div>
</div>
</div>
</div>
<div class="d-flex justify-content-between">
<button type="submit" class="btn btn-primary">Zapisz ustawienia</button>
<a href="{{ url_for('admin_dashboard') }}" class="btn btn-secondary">Powrót</a>
</div>
</form>
</div>
{% endblock %}

View File

@ -15,6 +15,8 @@
<a class="navbar-brand" href="{{ url_for('index') }}">Zbiórki unitraklub.pl</a>
<div class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="{{ url_for('index') }}">Aktualne zbiórki</a></li>
<li class="nav-item"><a class="nav-link" href="{{ url_for('zbiorki_zrealizowane') }}">Zrealizowane zbiórki</a></li>
{% if current_user.is_authenticated %}
<li class="nav-item"><a class="nav-link" href="{{ url_for('admin_dashboard') }}">Panel Admina</a></li>
<li class="nav-item"><a class="nav-link" href="{{ url_for('logout') }}">Wyloguj</a></li>

View File

@ -1,7 +1,11 @@
{% extends 'base.html' %}
{% block title %}Aktywne zbiórki{% endblock %}
{% block title %}{% if request.path == url_for('zbiorki_zrealizowane') %}Zrealizowane zbiórki{% else %}Aktualnie aktywne zbiórki{% endif %}{% endblock %}
{% block content %}
<h2 class="mb-4">Aktualnie aktywne zbiórki</h2>
{% if request.path == url_for('zbiorki_zrealizowane') %}
<h2 class="mb-4">Zrealizowane zbiórki</h2>
{% else %}
<h2 class="mb-4">Aktualnie aktywne zbiórki</h2>
{% endif %}
<div class="row">
{% for z in zbiorki %}
<div class="col-sm-12 col-md-6 col-lg-4 mb-4">