From 78e5be580b296bc1daee707297552d165df04f69 Mon Sep 17 00:00:00 2001 From: "Edgar P. Burkhart" Date: Sat, 14 Jun 2025 00:11:39 +0200 Subject: [PATCH] Refactor group detail and musikgame detail templates for improved owner visibility and styling; update CSS for music count display --- base/static/css/main.css | 8 ++- game/templates/game/group_detail.html | 76 +++++++++++++---------- game/templates/game/musikgame_detail.html | 4 +- game/urls.py | 5 -- game/views.py | 20 +++--- 5 files changed, 64 insertions(+), 49 deletions(-) diff --git a/base/static/css/main.css b/base/static/css/main.css index 372715c..1fb8b6e 100644 --- a/base/static/css/main.css +++ b/base/static/css/main.css @@ -25,9 +25,15 @@ a.group { } .group-owner, .group i { - margin-left: .5rem; + margin-left: .5em; } .group-owner { color: var(--pico-color-zinc-500); } + +.music-count { + font-weight: 900; + color: var(--pico-color-zinc-500); + margin-left: .5em; +} diff --git a/game/templates/game/group_detail.html b/game/templates/game/group_detail.html index d305efa..19b4121 100644 --- a/game/templates/game/group_detail.html +++ b/game/templates/game/group_detail.html @@ -2,7 +2,12 @@ {% load form %} {% block content %}

- {{ group.name }} + {% if group.owner == user %} + + {% else %} + + {% endif %} + {{ group.name }}

{% if group.owner == user %}

@@ -21,9 +26,11 @@ Date Joueurs - - - + {% if group.owner == user %} + + + + {% endif %} {% for game in group.musikgame_set.all %} @@ -32,9 +39,11 @@ {{ game.date }} {{ game.players.all|join:", " }} - - - + {% if group.owner == user %} + + + + {% endif %} {% endfor %} @@ -43,11 +52,6 @@

Membres

- {% if group.owner == user %} -

- Modifier les membres -

- {% endif %} @@ -58,9 +62,11 @@ - + {% if group.owner == user %} + + {% endif %} @@ -70,35 +76,39 @@ - + {% if group.owner == user %}{% endif %} {% for member in members.all %} - + {% if group.owner == user %} + + {% endif %} {% endfor %}
- - + +
{{ owner_count }}
{{ member }} {{ member.count }} - - - - + + + +
-
- {% csrf_token %} -
- - -
-
+ {% if group.owner == user %} +
+ {% csrf_token %} +
+ + +
+
+ {% endif %}

- Mes musiques ({{ musics.count }}) + Mes musiques {{ musics.count }}

diff --git a/game/templates/game/musikgame_detail.html b/game/templates/game/musikgame_detail.html index 4d08293..91674ef 100644 --- a/game/templates/game/musikgame_detail.html +++ b/game/templates/game/musikgame_detail.html @@ -13,9 +13,7 @@

Joueurs

-
    - {% for member in musikgame.players.all %}
  • {{ member }}
  • {% endfor %} -
+

{{ musikgame.players.all|join:", " }}

Musiques

diff --git a/game/urls.py b/game/urls.py index d55639b..04c64e6 100644 --- a/game/urls.py +++ b/game/urls.py @@ -10,11 +10,6 @@ urlpatterns = [ path( "group//delete/", views.GroupDeleteView.as_view(), name="group_delete" ), - path( - "group//edit_members/", - views.GroupAddMembersView.as_view(), - name="group_edit_members", - ), path("group//", views.GroupDetailView.as_view(), name="group_detail"), path( "group//add_music/", diff --git a/game/views.py b/game/views.py index 7713d26..84b99cd 100644 --- a/game/views.py +++ b/game/views.py @@ -70,11 +70,6 @@ class GroupDetailView(MemberFilterMixin, GroupMixin, DetailView): return data -class GroupAddMembersView(OwnerFilterMixin, GroupMixin, UpdateView): - fields = None - form_class = forms.GroupAddMembersForm - - class GroupAddMusicView(MemberFilterMixin, SingleObjectMixin, View): model = models.Group @@ -118,8 +113,12 @@ class GroupRemoveMusicView(OwnerFilterMixin, SingleObjectMixin, View): class GroupRemoveMemberView(View): def get(self, request, pk, user_pk): relation = get_object_or_404( - models.Group.members.through, group_id=pk, user_id=user_pk + models.Group.members.through, + group_id=pk, + user_id=user_pk, + group__owner=request.user, ) + group = relation.group relation.delete() return redirect(group) @@ -220,7 +219,14 @@ class GameDetailView(LoginRequiredMixin, DetailView): model = models.MusikGame def get_queryset(self): - return super().get_queryset().filter(group__owner=self.request.user) + return ( + super() + .get_queryset() + .filter( + Q(group__members=self.request.user) | Q(group__owner=self.request.user) + ) + .distinct() + ) class YoutubeLoginView(LoginRequiredMixin, View):