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:
Edgar P. Burkhart 2025-06-14 21:58:33 +02:00
parent 6cd9c0c841
commit 7409b4cd8f
Signed by: edpibu
GPG key ID: 9833D3C5A25BD227
10 changed files with 244 additions and 101 deletions

View 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 %}