86 lines
3.7 KiB
HTML
86 lines
3.7 KiB
HTML
{% extends 'base.html' %}
|
|
{% block title %}Dodaj wpłatę{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container my-4">
|
|
|
|
<div class="d-flex align-items-center gap-2 mb-3">
|
|
<a href="{{ url_for('zbiorka', zbiorka_id=zbiorka.id) }}" class="btn btn-sm btn-outline-light border">← Powrót do
|
|
zbiórki</a>
|
|
</div>
|
|
|
|
<div class="card shadow-sm">
|
|
<div class="card-header bg-secondary text-white d-flex flex-wrap align-items-center justify-content-between gap-2">
|
|
<h3 class="card-title mb-0">Dodaj wpłatę: <span class="fw-semibold">{{ zbiorka.nazwa }}</span></h3>
|
|
<div class="d-flex align-items-center gap-2">
|
|
{% if zbiorka.cel %}
|
|
<span class="badge bg-dark border" style="border-color: var(--border);">Cel: {{ zbiorka.cel|round(2) }}
|
|
PLN</span>
|
|
{% endif %}
|
|
<span class="badge bg-dark border" style="border-color: var(--border);">Stan: {{ zbiorka.stan|round(2) }}
|
|
PLN</span>
|
|
</div>
|
|
</div>
|
|
|
|
{% set progress = (zbiorka.stan / zbiorka.cel * 100) if zbiorka.cel and zbiorka.cel > 0 else 0 %}
|
|
|
|
{% set progress_clamped = 100 if progress > 100 else (0 if progress < 0 else progress) %} <div class="px-3 pt-3">
|
|
<div class="progress" role="progressbar" aria-valuenow="{{ progress_clamped|round(2) }}" aria-valuemin="0"
|
|
aria-valuemax="100" aria-label="Postęp zbiórki {{ progress_clamped|round(0) }} procent">
|
|
<div class="progress-bar" style="width: {{ progress_clamped }}%;"></div>
|
|
</div>
|
|
<small class="text-muted d-block mt-1 mb-2">{{ progress|round(1) }}%</small>
|
|
</div>
|
|
|
|
<div class="card-body pt-0">
|
|
<form method="post" novalidate>
|
|
|
|
<div class="mb-3">
|
|
<label for="kwota" class="form-label">Kwota wpłaty</label>
|
|
<div class="input-group">
|
|
<span class="input-group-text">PLN</span>
|
|
<input type="number" step="0.01" min="0.01" inputmode="decimal" class="form-control" id="kwota" name="kwota"
|
|
placeholder="0,00" required aria-describedby="kwotaHelp">
|
|
</div>
|
|
<div id="kwotaHelp" class="form-text">Podaj kwotę w złotówkach (min. 0,01).</div>
|
|
|
|
<div class="d-flex flex-wrap gap-2 mt-2">
|
|
{% for preset in [10,25,50,100,200] %}
|
|
<button type="button" class="btn btn-sm btn-outline-light border btn-kwota" data-amount="{{ preset }}">
|
|
{{ preset }} PLN
|
|
</button>
|
|
{% endfor %}
|
|
{% if zbiorka.cel and zbiorka.cel > 0 %}
|
|
{% set brakujace = (zbiorka.cel - zbiorka.stan) if (zbiorka.cel - zbiorka.stan) > 0 else 0 %}
|
|
<button type="button" class="btn btn-sm btn-outline-light border btn-kwota"
|
|
data-amount="{{ brakujace|round(2) }}">
|
|
Do celu: {{ brakujace|round(2) }} PLN
|
|
</button>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="opis" class="form-label">Opis (opcjonalnie)</label>
|
|
<textarea class="form-control" id="opis" name="opis" rows="3" maxlength="300"
|
|
aria-describedby="opisHelp"></textarea>
|
|
<div class="d-flex justify-content-between">
|
|
<small id="opisHelp" class="form-text text-muted">Krótka notatka do wpłaty (widoczna w systemie).</small>
|
|
<small class="text-muted"><span id="opisCount">0</span>/300</small>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="d-flex flex-wrap gap-2">
|
|
<button type="submit" class="btn btn-success">Dodaj wpłatę</button>
|
|
<a href="{{ url_for('zbiorka', zbiorka_id=zbiorka.id) }}" class="btn btn-outline-light border">Anuluj</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %}
|
|
{% block extra_scripts %}
|
|
{{ super() }}
|
|
<script src="{{ url_for('static', filename='js/dodaj_wplate.js') }}"></script>
|
|
{% endblock %} |