Add group leader functionality and update group member management
- Create GroupLeader model and migration - Alter GroupLeader member field to include related_name - Implement is_leader and is_owner methods in Group model - Update GroupDetailView to pass leader and owner status to template - Refactor group buttons and members display into separate templates - Add view and URL for setting group leaders - Update permissions for adding/removing members and clearing blacklist - Bump version to 0.1.1 in uv.lock
This commit is contained in:
parent
6cd9c0c841
commit
7409b4cd8f
10 changed files with 244 additions and 101 deletions
79
game/templates/game/include/group_members.html
Normal file
79
game/templates/game/include/group_members.html
Normal file
|
@ -0,0 +1,79 @@
|
|||
<h2>
|
||||
<i class="ri-group-2-fill"></i> Membres
|
||||
</h2>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
{% if is_leader %}<th></th>{% endif %}
|
||||
<th>Membre</th>
|
||||
<th class="c">
|
||||
<i class="ri-vip-crown-fill"></i>
|
||||
</th>
|
||||
<th>
|
||||
<i class="ri-mv-line"></i>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
{% if is_leader %}<td></td>{% endif %}
|
||||
<td>{{ group.owner }}</td>
|
||||
<td class="c">
|
||||
<i class="ri-vip-crown-fill owner"></i>
|
||||
</td>
|
||||
<td>{{ owner_count }}</td>
|
||||
</tr>
|
||||
{% for member in members.all %}
|
||||
<tr>
|
||||
{% if is_leader %}
|
||||
<td>
|
||||
<input type="checkbox" name="member" value="{{ member.pk }}">
|
||||
</td>
|
||||
{% endif %}
|
||||
<td>{{ member.user }}</td>
|
||||
<td class="c">
|
||||
{% if is_owner %}
|
||||
<input type="checkbox"
|
||||
name="leader"
|
||||
value="{{ member.pk }}"
|
||||
role="switch"
|
||||
{% if member.lead.is_leader %}checked{% endif %}>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ member.count }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% if is_leader %}
|
||||
<div role="group">
|
||||
{% if is_owner %}
|
||||
<button type="submit"
|
||||
class="secondary"
|
||||
formaction="{% url "group_set_leader" pk=group.pk %}">
|
||||
<i class="ri-vip-crown-fill"></i> Mettre à jour meneurs
|
||||
</button>
|
||||
{% endif %}
|
||||
<button type="submit"
|
||||
class="secondary"
|
||||
formaction="{% url "group_remove_member" pk=group.pk %}">
|
||||
<i class="ri-delete-bin-fill"></i> Supprimer
|
||||
</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
</form>
|
||||
{% if is_leader %}
|
||||
<form method="post" action="{% url "group_add_member" pk=group.pk %}">
|
||||
{% csrf_token %}
|
||||
<fieldset role="group">
|
||||
<input type="string"
|
||||
name="username"
|
||||
id="username"
|
||||
placeholder="Membre"
|
||||
required>
|
||||
<button type="submit">Ajouter</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
{% endif %}
|
Loading…
Add table
Add a link
Reference in a new issue