diff --git a/game/templates/game/group_detail.html b/game/templates/game/group_detail.html index 24f56e7..529a236 100644 --- a/game/templates/game/group_detail.html +++ b/game/templates/game/group_detail.html @@ -52,51 +52,48 @@

Membres

-
- {% csrf_token %} - - - - {% if group.owner == user %}{% endif %} - +
Membre
+ + + + + + {% if group.owner == user %} - - - - + {% endif %} + + + + + + + + {% if group.owner == user %}{% endif %} + + {% for member in members.all %} - {% if group.owner == user %}{% endif %} - - - + + + + {% if group.owner == user %} + + {% endif %} - {% for member in members.all %} - - {% if group.owner == user %} - - {% endif %} - - - - - {% endfor %} - -
Membre + + + + - + - -
{{ group.owner }} + + {{ owner_count }}
{{ group.owner }} - - {{ owner_count }}{{ member }}{{ member.count }} + + + +
- - {{ member }}{{ member.count }}
- {% if musics %} - - {% endif %} -
+ {% endfor %} + + {% if group.owner == user %}
{% csrf_token %} @@ -117,31 +114,31 @@ Liste des musiques - - {% csrf_token %} - - +
+ + + + + + + + + + {% for music in musics %} - - - - - - - - {% for music in musics %} - - - - + + {% empty %} @@ -151,18 +148,12 @@ {% endfor %}
MusiqueID + + + +
MusiqueID - -
- - {{ music.title }} - {{ music.yt_id }} + {{ music.title }} + {{ music.yt_id }} + + - +
- {% if musics %} - - {% endif %} + + + {% csrf_token %} +
+ + +
- -
- {% csrf_token %} -
- - -
-
-{% endblock content %} + {% endblock content %} diff --git a/game/urls.py b/game/urls.py index 9ee8dd6..04c64e6 100644 --- a/game/urls.py +++ b/game/urls.py @@ -27,12 +27,12 @@ urlpatterns = [ name="group_remove_music", ), path( - "group//remove_game/", + "group/remove_game//", views.GroupRemoveGameView.as_view(), name="group_remove_game", ), path( - "group//remove_membrer/", + "group//remove_membrer//", views.GroupRemoveMemberView.as_view(), name="group_remove_member", ), diff --git a/game/views.py b/game/views.py index ce9dc20..141b03b 100644 --- a/game/views.py +++ b/game/views.py @@ -131,60 +131,34 @@ class GroupAddMemberView(OwnerFilterMixin, SingleObjectMixin, View): return redirect(group) -class GroupRemoveMusicView(MemberFilterMixin, SingleObjectMixin, View): - model = models.Group +class GroupRemoveMusicView(OwnerFilterMixin, SingleObjectMixin, View): + model = models.MusicVideo - 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.", - ) + def get(self, request, pk): + music = self.get_object() + group = music.group + music.delete() return redirect(group) class GroupRemoveMemberView(OwnerFilterMixin, SingleObjectMixin, View): model = models.Group - def post(self, request, pk): + def get(self, request, pk, user_pk): group = self.get_object() + user = User.objects.get(pk=user_pk) - relations = models.Group.members.through.objects.filter( - group=group, user__id__in=request.POST.getlist("member") - ) - if relations.count() == 0: - messages.add_message(request, messages.INFO, "Aucun membre supprimé.") - if relations.count() != len(request.POST.getlist("member")): + relation = models.Group.members.through.objects.filter( + group=group, user=user + ).first() + if not relation: messages.add_message( request, - messages.WARNING, - "Certains membres n'ont pas pu être supprimées.", + messages.ERROR, + f"L'utilisateur {user} n'est pas membre du groupe.", ) - relations.delete() else: - relations.delete() - messages.add_message( - request, - messages.SUCCESS, - "Les membres sélectionnés ont été supprimées.", - ) + relation.delete() return redirect(group) @@ -328,5 +302,5 @@ class GroupClearBlacklistView(OwnerFilterMixin, SingleObjectMixin, View): def get(self, request, pk): group = self.get_object() group.musicvideo_set.filter(blacklisted=True).update(blacklisted=False) - messages.add_message(request, messages.SUCCESS, "La blacklist a été effacée.") + messages.add_message(request, messages.SUCCESS, "La blacklist a été vidée.") return redirect(group)