From 8ed39c78b8061497420925cb34fe5d750820332b Mon Sep 17 00:00:00 2001
From: "Edgar P. Burkhart"
Date: Fri, 13 Jun 2025 17:32:17 +0200
Subject: [PATCH] Add GroupAddMembersForm and view for editing group members
---
.pre-commit-config.yaml | 5 +++++
base/templates/base.html | 6 +++++-
base/templates/registration/login.html | 2 +-
game/forms.py | 15 +++++++++++++++
game/templates/game/group_confirm_delete.html | 1 -
game/templates/game/group_detail.html | 3 +++
game/templates/game/group_form.html | 2 +-
game/urls.py | 5 +++++
game/views.py | 7 ++++++-
9 files changed, 41 insertions(+), 5 deletions(-)
create mode 100644 game/forms.py
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 4220f94..fa834b3 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -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"]
diff --git a/base/templates/base.html b/base/templates/base.html
index 49f52bf..d4ea3bb 100644
--- a/base/templates/base.html
+++ b/base/templates/base.html
@@ -4,8 +4,12 @@
+
+
- {% block title %}Musik{% endblock %}
+ {% block title %}
+ Musik
+ {% endblock title %}
Connexion
{% form form submit="Se connecter" %}
-{% endblock content %}
+ {% endblock content %}
diff --git a/game/forms.py b/game/forms.py
new file mode 100644
index 0000000..f305315
--- /dev/null
+++ b/game/forms.py
@@ -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"]
diff --git a/game/templates/game/group_confirm_delete.html b/game/templates/game/group_confirm_delete.html
index 696227f..f8d7e5e 100644
--- a/game/templates/game/group_confirm_delete.html
+++ b/game/templates/game/group_confirm_delete.html
@@ -1,7 +1,6 @@
{% extends "base.html" %}
{% load form %}
{% block content %}
-
Membres
+
+ Modifier les membres
+
-
{{ group.owner }}
diff --git a/game/templates/game/group_form.html b/game/templates/game/group_form.html
index 67f1f05..72ae8d9 100644
--- a/game/templates/game/group_form.html
+++ b/game/templates/game/group_form.html
@@ -12,4 +12,4 @@
Créer un groupe
{% endif %}
{% form form %}
-{% endblock content %}
+ {% endblock content %}
diff --git a/game/urls.py b/game/urls.py
index 28bc1d6..5b176f5 100644
--- a/game/urls.py
+++ b/game/urls.py
@@ -10,5 +10,10 @@ urlpatterns = [
path(
"group//delete/", views.GroupDeleteView.as_view(), name="group_delete"
),
+ path(
+ "group//edit_members/",
+ views.GroupAddMembersView.as_view(),
+ name="group_edit_members",
+ ),
path("group//", views.GroupDetailView.as_view(), name="group_detail"),
]
diff --git a/game/views.py b/game/views.py
index 05fdfe7..8a36bbd 100644
--- a/game/views.py
+++ b/game/views.py
@@ -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