Compare commits

..

No commits in common. "78e5be580b296bc1daee707297552d165df04f69" and "6ada3290c846cb72dedd173507fe863b273afe54" have entirely different histories.

6 changed files with 60 additions and 89 deletions

View file

@ -19,21 +19,3 @@ i.owner {
.template { .template {
display: none; display: none;
} }
a.group {
text-decoration: none;
}
.group-owner, .group i {
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;
}

View file

@ -2,12 +2,7 @@
{% load form %} {% load form %}
{% block content %} {% block content %}
<h1> <h1>
{% if group.owner == user %} <i class="ri-group-2-fill"></i> {{ group.name }}
<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>
@ -26,11 +21,9 @@
<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 %}
@ -39,11 +32,9 @@
<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>
@ -52,6 +43,11 @@
<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>
@ -62,11 +58,9 @@
<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>
@ -76,39 +70,35 @@
<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>
{% if group.owner == user %}<td></td>{% endif %} <td></td>
</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"> <input type="string"
<input type="string" name="username"
name="username" id="username"
id="username" placeholder="Membre"
placeholder="Membre" required>
required> <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 <span class="music-count">{{ musics.count }}</span> <i class="ri-music-2-fill"></i> Mes musiques ({{ musics.count }})
</h2> </h2>
<details> <details>
<summary role="button"> <summary role="button">

View file

@ -7,18 +7,16 @@
{% endif %} {% endif %}
</p> </p>
{% if user.owned_group_set.exists or user.group_set.exists %} {% if user.owned_group_set.exists or user.group_set.exists %}
{% for group in user.owned_group_set.all %} <ul>
<a class="group" href="{{ group.get_absolute_url }}"> {% for group in user.owned_group_set.all %}
<article> <li>
{{ group.name }} <i class="ri-vip-crown-fill owner"></i> <a href="{{ group.get_absolute_url }}">{{ group.name }}</a> <i class="ri-vip-crown-fill owner"></i>
</article> </li>
</a> {% endfor %}
{% endfor %} {% for group in user.group_set.all %}
{% for group in user.group_set.all %} <li>
<a class="group" href="{{ group.get_absolute_url }}"> <a href="{{ group.get_absolute_url }}">{{ group.name }}</a>
<article> </li>
{{ group.name }} <span class="group-owner">{{ group.owner }}</span> {% endfor %}
</article> </ul>
</a>
{% endfor %}
{% endif %} {% endif %}

View file

@ -13,7 +13,9 @@
<h2> <h2>
<i class="ri-group-2-fill"></i> Joueurs <i class="ri-group-2-fill"></i> Joueurs
</h2> </h2>
<p>{{ musikgame.players.all|join:", " }}</p> <ul>
{% 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>

View file

@ -10,6 +10,11 @@ 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/",

View file

@ -70,6 +70,11 @@ 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
@ -113,12 +118,8 @@ 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, models.Group.members.through, group_id=pk, user_id=user_pk
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)
@ -219,14 +220,7 @@ class GameDetailView(LoginRequiredMixin, DetailView):
model = models.MusikGame model = models.MusikGame
def get_queryset(self): def get_queryset(self):
return ( return super().get_queryset().filter(group__owner=self.request.user)
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):