From 7ed5cfcb8330287a9f40e436eb33a954604bd213 Mon Sep 17 00:00:00 2001 From: "Edgar P. Burkhart" Date: Sat, 14 Jun 2025 12:09:07 +0200 Subject: [PATCH] Refactor group music management: update removal logic and enhance user feedback in group views --- game/templates/game/group_detail.html | 66 +++++++++++++++------------ game/urls.py | 2 +- game/views.py | 31 ++++++++++--- 3 files changed, 62 insertions(+), 37 deletions(-) diff --git a/game/templates/game/group_detail.html b/game/templates/game/group_detail.html index 529a236..a3458e6 100644 --- a/game/templates/game/group_detail.html +++ b/game/templates/game/group_detail.html @@ -114,31 +114,31 @@ Liste des musiques - - - - - - - - - - - {% for music in musics %} + + {% csrf_token %} +
MusiqueID - - - -
+ - - - + + + + + + {% for music in musics %} + + + + {% empty %} @@ -148,12 +148,18 @@ {% endfor %}
{{ music.title }} - {{ music.yt_id }} - - + MusiqueID + +
+ + {{ music.title }} + {{ music.yt_id }} - +
- - - {% csrf_token %} -
- - -
+ {% if musics %} + + {% endif %} - {% endblock content %} + +
+ {% csrf_token %} +
+ + +
+
+{% endblock content %} diff --git a/game/urls.py b/game/urls.py index 04c64e6..3d8d8ca 100644 --- a/game/urls.py +++ b/game/urls.py @@ -27,7 +27,7 @@ urlpatterns = [ name="group_remove_music", ), path( - "group/remove_game//", + "group//remove_game/", views.GroupRemoveGameView.as_view(), name="group_remove_game", ), diff --git a/game/views.py b/game/views.py index 141b03b..f70831d 100644 --- a/game/views.py +++ b/game/views.py @@ -131,13 +131,32 @@ class GroupAddMemberView(OwnerFilterMixin, SingleObjectMixin, View): return redirect(group) -class GroupRemoveMusicView(OwnerFilterMixin, SingleObjectMixin, View): - model = models.MusicVideo +class GroupRemoveMusicView(MemberFilterMixin, SingleObjectMixin, View): + model = models.Group - def get(self, request, pk): - music = self.get_object() - group = music.group - music.delete() + def post(self, request, pk): + group = self.get_object() + musics = group.musicvideo_set.filter( + owner=request.user, pk__in=request.POST.getlist("musics") + ) + + if musics.count() == 0: + messages.add_message(request, messages.INFO, "Aucune musique supprimée.") + return redirect(group) + if musics.count() != len(request.POST.getlist("musics")): + messages.add_message( + request, + messages.WARNING, + "Certaines musiques n'ont pas pu être supprimées.", + ) + musics.delete() + else: + musics.delete() + messages.add_message( + request, + messages.SUCCESS, + "Les musiques sélectionnées ont été supprimées.", + ) return redirect(group)