Add GroupAddMembersForm and view for editing group members

This commit is contained in:
Edgar P. Burkhart 2025-06-13 17:32:17 +02:00
parent ba746c9cae
commit 8ed39c78b8
Signed by: edpibu
GPG key ID: 9833D3C5A25BD227
9 changed files with 41 additions and 5 deletions

View file

@ -15,3 +15,8 @@ repos:
hooks:
- id: ruff
- id: ruff-format
- repo: https://github.com/djlint/djLint
rev: v1.23.3
hooks:
- id: djlint-django
args: ["--reformat", "--lint", "--quiet"]

View file

@ -4,8 +4,12 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Le jeu de Musik">
<meta name="keywords" content="musik, jeu, musique">
<title>
{% block title %}Musik{% endblock %}
{% block title %}
Musik
{% endblock title %}
</title>
<link rel="stylesheet" href="{% static "css/main.css" %}">
<link rel="stylesheet"

View file

@ -3,4 +3,4 @@
{% block content %}
<h1>Connexion</h1>
{% form form submit="Se connecter" %}
{% endblock content %}
{% endblock content %}

15
game/forms.py Normal file
View file

@ -0,0 +1,15 @@
from django import forms
from . import models
class GroupAddMembersForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["members"].queryset = self.fields["members"].queryset.exclude(
id=self.instance.owner.id
)
class Meta:
model = models.Group
fields = ["members"]

View file

@ -1,7 +1,6 @@
{% extends "base.html" %}
{% load form %}
{% block content %}
<h1></h1>
<dialog open>
<article>
<header>

View file

@ -7,6 +7,9 @@
<a href="{% url "group_update" pk=group.pk %}"><i class="ri-edit-line"></i> Modifier le groupe</a>
</p>
<h2>Membres</h2>
<p>
<a href="{% url "group_edit_members" pk=group.pk %}" role="button"><i class="ri-user-add-fill"></i> Modifier les membres</a>
</p>
<ul>
<li>
{{ group.owner }} <i class="ri-vip-crown-fill"></i>

View file

@ -12,4 +12,4 @@
<h1>Créer un groupe</h1>
{% endif %}
{% form form %}
{% endblock content %}
{% endblock content %}

View file

@ -10,5 +10,10 @@ urlpatterns = [
path(
"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"),
]

View file

@ -2,7 +2,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView, DeleteView, UpdateView
from . import models
from . import forms, models
class OwnerFilterMixin(LoginRequiredMixin):
@ -31,3 +31,8 @@ class GroupDeleteView(OwnerFilterMixin, GroupMixin, DeleteView):
class GroupDetailView(OwnerFilterMixin, GroupMixin, DetailView):
pass
class GroupAddMembersView(OwnerFilterMixin, GroupMixin, UpdateView):
fields = None
form_class = forms.GroupAddMembersForm