poprawki
This commit is contained in:
27
app.py
27
app.py
@@ -1745,15 +1745,14 @@ def edit_my_list(list_id):
|
||||
grant_username = (request.form.get("grant_username") or "").strip().lower()
|
||||
revoke_user_id = request.form.get("revoke_user_id")
|
||||
|
||||
# ——— SZYBKIE AKCJE UPRAWNIEŃ ———
|
||||
if grant_username:
|
||||
u = User.query.filter(func.lower(User.username) == grant_username).first()
|
||||
if not u:
|
||||
flash("Użytkownik nie istnieje.", "danger")
|
||||
return redirect(request.url)
|
||||
return redirect(next_page or request.url)
|
||||
if u.id == current_user.id:
|
||||
flash("Jesteś właścicielem tej listy.", "info")
|
||||
return redirect(request.url)
|
||||
return redirect(next_page or request.url)
|
||||
|
||||
exists = (
|
||||
db.session.query(ListPermission.id)
|
||||
@@ -1769,28 +1768,26 @@ def edit_my_list(list_id):
|
||||
flash(f"Nadano dostęp użytkownikowi „{u.username}”.", "success")
|
||||
else:
|
||||
flash("Ten użytkownik już ma dostęp.", "info")
|
||||
return redirect(request.url)
|
||||
return redirect(next_page or request.url)
|
||||
|
||||
if revoke_user_id:
|
||||
try:
|
||||
uid = int(revoke_user_id)
|
||||
except ValueError:
|
||||
flash("Błędny identyfikator użytkownika.", "danger")
|
||||
return redirect(request.url)
|
||||
return redirect(next_page or request.url)
|
||||
|
||||
ListPermission.query.filter_by(list_id=l.id, user_id=uid).delete()
|
||||
db.session.commit()
|
||||
flash("Odebrano dostęp użytkownikowi.", "success")
|
||||
return redirect(request.url)
|
||||
# ——— KONIEC AKCJI UPRAWNIEŃ ———
|
||||
return redirect(next_page or request.url)
|
||||
|
||||
if "unarchive" in request.form:
|
||||
l.is_archived = False
|
||||
db.session.commit()
|
||||
flash(f"Lista „{l.title}” została przywrócona.", "success")
|
||||
return redirect(next_page or url_for("main_page"))
|
||||
return redirect(next_page or request.url)
|
||||
|
||||
# Pełna edycja formularza
|
||||
move_to_month = request.form.get("move_to_month")
|
||||
if move_to_month:
|
||||
try:
|
||||
@@ -1802,10 +1799,10 @@ def edit_my_list(list_id):
|
||||
f"Zmieniono datę utworzenia listy na {new_created_at.strftime('%Y-%m-%d')}",
|
||||
"success",
|
||||
)
|
||||
return redirect(next_page or url_for("main_page"))
|
||||
return redirect(next_page or request.url)
|
||||
except ValueError:
|
||||
flash("Nieprawidłowy format miesiąca", "danger")
|
||||
return redirect(next_page or url_for("main_page"))
|
||||
return redirect(next_page or request.url)
|
||||
|
||||
new_title = (request.form.get("title") or "").strip()
|
||||
is_public = "is_public" in request.form
|
||||
@@ -1816,7 +1813,7 @@ def edit_my_list(list_id):
|
||||
|
||||
if not new_title:
|
||||
flash("Podaj poprawny tytuł", "danger")
|
||||
return redirect(next_page or url_for("main_page"))
|
||||
return redirect(next_page or request.url)
|
||||
|
||||
l.title = new_title
|
||||
l.is_public = is_public
|
||||
@@ -1830,16 +1827,15 @@ def edit_my_list(list_id):
|
||||
l.expires_at = expires_dt.replace(tzinfo=timezone.utc)
|
||||
except ValueError:
|
||||
flash("Błędna data lub godzina wygasania", "danger")
|
||||
return redirect(next_page or url_for("main_page"))
|
||||
return redirect(next_page or request.url)
|
||||
else:
|
||||
l.expires_at = None
|
||||
|
||||
update_list_categories_from_form(l, request.form)
|
||||
db.session.commit()
|
||||
flash("Zaktualizowano dane listy", "success")
|
||||
return redirect(next_page or url_for("main_page"))
|
||||
return redirect(next_page or request.url)
|
||||
|
||||
# Użytkownicy z dostępem (do wyświetlenia w szablonie)
|
||||
permitted_users = (
|
||||
db.session.query(User)
|
||||
.join(ListPermission, ListPermission.user_id == User.id)
|
||||
@@ -3525,7 +3521,6 @@ def add_suggestion():
|
||||
@login_required
|
||||
@admin_required
|
||||
def admin_lists_access():
|
||||
|
||||
try:
|
||||
page = int(request.args.get("page", 1))
|
||||
except ValueError:
|
||||
|
@@ -170,8 +170,4 @@
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
{# Opcjonalnie: skrypty sortowania/UX jeśli już je masz #}
|
||||
{% endblock %}
|
@@ -90,31 +90,34 @@
|
||||
<button type="submit" class="btn btn-sm btn-outline-light">💾 Zapisz</button>
|
||||
<a href="{{ url_for('main_page') }}" class="btn btn-sm btn-outline-light">❌ Anuluj</a>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- DOSTĘP DO LISTY -->
|
||||
<div class="border-top border-secondary pt-4 mt-4">
|
||||
<div class="card bg-secondary bg-opacity-10 text-white mb-5">
|
||||
<h5 class="mb-3">🔐 Dostęp do listy</h5>
|
||||
|
||||
<!-- Link udostępniania -->
|
||||
<div class="mb-4">
|
||||
<label class="form-label">🔗 Link udostępniania (wejście przez link daje dostęp; zalogowani dostają
|
||||
uprawnienia na stałę po kliknięciu w link)</label>
|
||||
{% if list.share_token %}
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control bg-dark text-white border-secondary" readonly
|
||||
value="{{ url_for('shared_list', token=list.share_token, _external=True) }}">
|
||||
<a class="btn btn-outline-light" href="{{ url_for('shared_list', token=list.share_token) }}"
|
||||
target="_blank">Otwórz</a>
|
||||
</div>
|
||||
|
||||
{% if list.share_token %}
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" class="form-control bg-dark text-white border-secondary"
|
||||
readonly value="{{ url_for('shared_list', token=list.share_token, _external=True) }}"
|
||||
id="sharedListUrl" aria-label="Udostępniony link">
|
||||
<a class="btn btn-outline-light" href="{{ url_for('shared_list', token=list.share_token) }}" target="_blank"
|
||||
title="Otwórz">
|
||||
</a>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="text-warning small">Brak tokenu udostępniania.</div>
|
||||
<div class="text-warning small">Brak tokenu udostępniania.</div>
|
||||
{% endif %}
|
||||
<div class="text-info small">Ustawienie „🌐 Publiczna” nie jest wymagane dla dostępu z linku.</div>
|
||||
</div>
|
||||
|
||||
<form method="post" class="m-0">
|
||||
<div class="row g-3 align-items-end mb-4">
|
||||
<div class="col-md-6">
|
||||
@@ -131,6 +134,7 @@
|
||||
<input type="hidden" name="next" value="{{ request.path }}">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<!-- Lista uprawnionych -->
|
||||
<div class="mb-3">
|
||||
<label class="form-label">👥 Użytkownicy z dostępem</label>
|
||||
@@ -154,7 +158,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{% if receipts %}
|
||||
<hr class="my-4">
|
||||
<h5>Paragony przypisane do tej listy</h5>
|
||||
|
Reference in New Issue
Block a user