Refactor group detail and musikgame detail templates for improved owner visibility and styling; update CSS for music count display
This commit is contained in:
parent
43ba52f31e
commit
78e5be580b
5 changed files with 64 additions and 49 deletions
|
@ -25,9 +25,15 @@ a.group {
|
||||||
}
|
}
|
||||||
|
|
||||||
.group-owner, .group i {
|
.group-owner, .group i {
|
||||||
margin-left: .5rem;
|
margin-left: .5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.group-owner {
|
.group-owner {
|
||||||
color: var(--pico-color-zinc-500);
|
color: var(--pico-color-zinc-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.music-count {
|
||||||
|
font-weight: 900;
|
||||||
|
color: var(--pico-color-zinc-500);
|
||||||
|
margin-left: .5em;
|
||||||
|
}
|
||||||
|
|
|
@ -2,7 +2,12 @@
|
||||||
{% load form %}
|
{% load form %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>
|
<h1>
|
||||||
<i class="ri-group-2-fill"></i> {{ group.name }}
|
{% if group.owner == user %}
|
||||||
|
<i class="ri-vip-crown-fill owner"></i>
|
||||||
|
{% else %}
|
||||||
|
<i class="ri-group-2-fill"></i>
|
||||||
|
{% endif %}
|
||||||
|
{{ group.name }}
|
||||||
</h1>
|
</h1>
|
||||||
{% if group.owner == user %}
|
{% if group.owner == user %}
|
||||||
<p>
|
<p>
|
||||||
|
@ -21,9 +26,11 @@
|
||||||
<thead>
|
<thead>
|
||||||
<th>Date</th>
|
<th>Date</th>
|
||||||
<th>Joueurs</th>
|
<th>Joueurs</th>
|
||||||
|
{% if group.owner == user %}
|
||||||
<th>
|
<th>
|
||||||
<i class="ri-delete-bin-fill"></i>
|
<i class="ri-delete-bin-fill"></i>
|
||||||
</th>
|
</th>
|
||||||
|
{% endif %}
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for game in group.musikgame_set.all %}
|
{% for game in group.musikgame_set.all %}
|
||||||
|
@ -32,9 +39,11 @@
|
||||||
<a href="{% url "game_detail" pk=game.pk %}">{{ game.date }}</a>
|
<a href="{% url "game_detail" pk=game.pk %}">{{ game.date }}</a>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ game.players.all|join:", " }}</td>
|
<td>{{ game.players.all|join:", " }}</td>
|
||||||
|
{% if group.owner == user %}
|
||||||
<td>
|
<td>
|
||||||
<a href="{% url "group_remove_game" pk=game.pk %}"><i class="ri-close-fill" alt="Supprimer"></i></a>
|
<a href="{% url "group_remove_game" pk=game.pk %}"><i class="ri-close-fill" alt="Supprimer"></i></a>
|
||||||
</td>
|
</td>
|
||||||
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -43,11 +52,6 @@
|
||||||
<h2>
|
<h2>
|
||||||
<i class="ri-group-2-fill"></i> Membres
|
<i class="ri-group-2-fill"></i> Membres
|
||||||
</h2>
|
</h2>
|
||||||
{% if group.owner == user %}
|
|
||||||
<p>
|
|
||||||
<a href="{% url "group_edit_members" pk=group.pk %}" role="button"><i class="ri-user-add-fill"></i> Modifier les membres</a>
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -58,9 +62,11 @@
|
||||||
<th>
|
<th>
|
||||||
<i class="ri-mv-line"></i>
|
<i class="ri-mv-line"></i>
|
||||||
</th>
|
</th>
|
||||||
|
{% if group.owner == user %}
|
||||||
<th>
|
<th>
|
||||||
<i class="ri-delete-bin-fill"></i>
|
<i class="ri-delete-bin-fill"></i>
|
||||||
</th>
|
</th>
|
||||||
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -70,22 +76,25 @@
|
||||||
<i class="ri-vip-crown-fill owner"></i>
|
<i class="ri-vip-crown-fill owner"></i>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ owner_count }}</td>
|
<td>{{ owner_count }}</td>
|
||||||
<td></td>
|
{% if group.owner == user %}<td></td>{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
{% for member in members.all %}
|
{% for member in members.all %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ member }}</td>
|
<td>{{ member }}</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>{{ member.count }}</td>
|
<td>{{ member.count }}</td>
|
||||||
|
{% if group.owner == user %}
|
||||||
<td>
|
<td>
|
||||||
<a href="{% url "group_remove_member" pk=group.pk user_pk=member.pk %}">
|
<a href="{% url "group_remove_member" pk=group.pk user_pk=member.pk %}">
|
||||||
<i class="ri-close-fill" alt="Supprimer"></i>
|
<i class="ri-close-fill" alt="Supprimer"></i>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
{% if group.owner == user %}
|
||||||
<form method="post" action="{% url "group_add_member" pk=group.pk %}">
|
<form method="post" action="{% url "group_add_member" pk=group.pk %}">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<fieldset role="group">
|
<fieldset role="group">
|
||||||
|
@ -97,8 +106,9 @@
|
||||||
<button type="submit">Ajouter</button>
|
<button type="submit">Ajouter</button>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
{% endif %}
|
||||||
<h2>
|
<h2>
|
||||||
<i class="ri-music-2-fill"></i> Mes musiques ({{ musics.count }})
|
<i class="ri-music-2-fill"></i> Mes musiques <span class="music-count">{{ musics.count }}</span>
|
||||||
</h2>
|
</h2>
|
||||||
<details>
|
<details>
|
||||||
<summary role="button">
|
<summary role="button">
|
||||||
|
|
|
@ -13,9 +13,7 @@
|
||||||
<h2>
|
<h2>
|
||||||
<i class="ri-group-2-fill"></i> Joueurs
|
<i class="ri-group-2-fill"></i> Joueurs
|
||||||
</h2>
|
</h2>
|
||||||
<ul>
|
<p>{{ musikgame.players.all|join:", " }}</p>
|
||||||
{% for member in musikgame.players.all %}<li>{{ member }}</li>{% endfor %}
|
|
||||||
</ul>
|
|
||||||
<h2>
|
<h2>
|
||||||
<i class="ri-music-2-fill"></i> Musiques
|
<i class="ri-music-2-fill"></i> Musiques
|
||||||
</h2>
|
</h2>
|
||||||
|
|
|
@ -10,11 +10,6 @@ urlpatterns = [
|
||||||
path(
|
path(
|
||||||
"group/<int:pk>/delete/", views.GroupDeleteView.as_view(), name="group_delete"
|
"group/<int:pk>/delete/", views.GroupDeleteView.as_view(), name="group_delete"
|
||||||
),
|
),
|
||||||
path(
|
|
||||||
"group/<int:pk>/edit_members/",
|
|
||||||
views.GroupAddMembersView.as_view(),
|
|
||||||
name="group_edit_members",
|
|
||||||
),
|
|
||||||
path("group/<int:pk>/", views.GroupDetailView.as_view(), name="group_detail"),
|
path("group/<int:pk>/", views.GroupDetailView.as_view(), name="group_detail"),
|
||||||
path(
|
path(
|
||||||
"group/<int:pk>/add_music/",
|
"group/<int:pk>/add_music/",
|
||||||
|
|
|
@ -70,11 +70,6 @@ class GroupDetailView(MemberFilterMixin, GroupMixin, DetailView):
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
class GroupAddMembersView(OwnerFilterMixin, GroupMixin, UpdateView):
|
|
||||||
fields = None
|
|
||||||
form_class = forms.GroupAddMembersForm
|
|
||||||
|
|
||||||
|
|
||||||
class GroupAddMusicView(MemberFilterMixin, SingleObjectMixin, View):
|
class GroupAddMusicView(MemberFilterMixin, SingleObjectMixin, View):
|
||||||
model = models.Group
|
model = models.Group
|
||||||
|
|
||||||
|
@ -118,8 +113,12 @@ class GroupRemoveMusicView(OwnerFilterMixin, SingleObjectMixin, View):
|
||||||
class GroupRemoveMemberView(View):
|
class GroupRemoveMemberView(View):
|
||||||
def get(self, request, pk, user_pk):
|
def get(self, request, pk, user_pk):
|
||||||
relation = get_object_or_404(
|
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
|
group = relation.group
|
||||||
relation.delete()
|
relation.delete()
|
||||||
return redirect(group)
|
return redirect(group)
|
||||||
|
@ -220,7 +219,14 @@ class GameDetailView(LoginRequiredMixin, DetailView):
|
||||||
model = models.MusikGame
|
model = models.MusikGame
|
||||||
|
|
||||||
def get_queryset(self):
|
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):
|
class YoutubeLoginView(LoginRequiredMixin, View):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue