From e40a344e2b102aee430fe70d2bce0c8393352c14 Mon Sep 17 00:00:00 2001 From: augustin64 Date: Tue, 30 Aug 2022 19:47:29 +0200 Subject: [PATCH] Ajout d'une option permettant de quitter un album --- partitioncloud/albums.py | 24 ++++++++++++++++++++-- partitioncloud/templates/albums/album.html | 15 +++++++++++--- partitioncloud/utils.py | 17 +++++++++++++-- 3 files changed, 49 insertions(+), 7 deletions(-) diff --git a/partitioncloud/albums.py b/partitioncloud/albums.py index a4686c1..2e7174e 100644 --- a/partitioncloud/albums.py +++ b/partitioncloud/albums.py @@ -70,7 +70,8 @@ def album(uuid): "albums/album.html", album=album, partitions=partitions, - not_participant=not_participant + not_participant=not_participant, + user=user ) except LookupError: @@ -160,6 +161,25 @@ def join_album(uuid): return redirect(f"/albums/{uuid}") +@bp.route("//quit") +@login_required +def quit_album(uuid): + user = User(session.get("user_id")) + album = Album(uuid=uuid) + users = album.get_users() + if user.id not in [u["id"] for u in users]: + flash("Vous ne faites pas partie de cet album") + return redirect(f"/albums/{uuid}") + + if len(users) == 1: + flash("Vous êtes seul dans cet album, le quitter entraînera sa suppression.") + return redirect(f"/albums/{uuid}/delete") + + user.quit_album(uuid) + flash("Album quitté.") + return redirect(f"/albums") + + @bp.route("//delete", methods=["GET", "POST"]) @login_required def delete_album(uuid): @@ -298,7 +318,7 @@ def add_partition_from_search(): error = "Il est nécessaire de sélectionner une partition." elif "partition-type" not in request.form: error = "Il est nécessaire de spécifier un type de partition." - elif not user.is_participant(request.form["album-uuid"]): + elif (not user.is_participant(request.form["album-uuid"])) and (user.access_level != 1): error = "Vous ne participez pas à cet album." if error is not None: diff --git a/partitioncloud/templates/albums/album.html b/partitioncloud/templates/albums/album.html index 4c82547..1ce6a65 100644 --- a/partitioncloud/templates/albums/album.html +++ b/partitioncloud/templates/albums/album.html @@ -6,16 +6,25 @@ {% block header_actions %}