From a3473fe49b230404501846d6323667ac5ee7899c Mon Sep 17 00:00:00 2001
From: EVEN Axel <axel.even@student-cs.fr>
Date: Thu, 21 Nov 2024 09:28:45 +0100
Subject: [PATCH] correction de bugs (ss-com et members)

---
 Communities/forms.py                          | 17 +++++++++++
 .../templates/Communities/admin_board.html    | 17 ++++-------
 .../templates/Communities/administrate.html   | 29 -------------------
 .../Communities/create_subcommunity.html      | 10 +++++++
 .../Communities/list_member_admin.html        |  9 +++++-
 Communities/views.py                          | 15 +++++-----
 6 files changed, 48 insertions(+), 49 deletions(-)
 delete mode 100644 Communities/templates/Communities/administrate.html
 create mode 100644 Communities/templates/Communities/create_subcommunity.html

diff --git a/Communities/forms.py b/Communities/forms.py
index 867e830..ffbd867 100644
--- a/Communities/forms.py
+++ b/Communities/forms.py
@@ -5,6 +5,23 @@ class CommunityForm(forms.ModelForm):
     class Meta:
         model = Community
         fields = ['name', 'description', 'postal_code']
+        labels = {
+            'name' : 'Nom',
+            'description' : 'Description',
+            'postal_code' : 'Code postal',
+        }
+
+class SubCommunityForm(forms.ModelForm):
+    class Meta:
+        model = Community
+        fields = ['name', 'description', 'postal_code']
+        widgets = {
+            'postal_code' : forms.HiddenInput(),
+        }
+        labels = {
+            'name' : 'Nom',
+            'description' : 'Description',
+        }
 
 class MembershipForm(forms.ModelForm):
     class Meta:
diff --git a/Communities/templates/Communities/admin_board.html b/Communities/templates/Communities/admin_board.html
index 0cb4ac2..4e86469 100644
--- a/Communities/templates/Communities/admin_board.html
+++ b/Communities/templates/Communities/admin_board.html
@@ -36,19 +36,12 @@
 
 <a href="{% url 'create_subcommunity' community.id %}" class="btn btn-primary">Créer une sous-communauté</a>
 
+
+<!--Bouton de la liste des membres-->
 <h2>Membres</h2>
-<ul>
-    {% for member in members %}
-    <li>
-        {{ member.user.username }}
-        <form method="POST" action="{% url 'remove_member' community.id %}">
-            {% csrf_token %}
-            <input type="hidden" name="member_id" value="{{ member.user.id }}">
-            <button type="submit" class="btn btn-danger">Supprimer</button>
-        </form>
-    </li>
-    {% endfor %}
-</ul>
+
+<a href="{% url 'list_member_admin' community.id %}" class = "btn btn-primary">Gérer les membres</a>
+
 
 <!-- Bouton de suppression de la communauté -->
 <h2>Supprimer la communauté</h2>
diff --git a/Communities/templates/Communities/administrate.html b/Communities/templates/Communities/administrate.html
deleted file mode 100644
index af9f965..0000000
--- a/Communities/templates/Communities/administrate.html
+++ /dev/null
@@ -1,29 +0,0 @@
-{% extends "base.html" %}
-{% block title %}Administrer% endblock %}
-{% block content %}
-<h1>Tableau de Bord</h1>
-<h2>Rechercher une communauté</h2>
-<form method="GET" action="{% url 'search_community' %}">
-    <input type="number" step = "1" name="q" placeholder="Code postal de la communauté" required>
-    <button type="submit">Rechercher</button>
-</form>
-<a href="{% url 'create_community' %}" class="btn btn-primary">Créer une communauté</a>
-
-<h2>Mes communautés</h2>
-<ul>
-    {% for community in communities %}
-    
-    <li>
-        {{ community.name }}
-        <a href="{% url 'list_object_community' community.id %}">Voir les objets</a>
-        {% if community.administrator == user %}
-        <a href="{% url 'admin_board' community.id %}">Administrer</a>
-        {% endif %}
-    </li>
-    {% empty %}
-    <p>Vous n'êtes membre d'aucune communauté.</p>
-    {% endfor %}
-</ul>
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/Communities/templates/Communities/create_subcommunity.html b/Communities/templates/Communities/create_subcommunity.html
new file mode 100644
index 0000000..00aba50
--- /dev/null
+++ b/Communities/templates/Communities/create_subcommunity.html
@@ -0,0 +1,10 @@
+{% extends "base.html" %}
+{% block title %}Créer une communauté{% endblock %}
+{% block content %}
+<h1>Créer une sous-communauté de la communauté <strong>{{parent}}</strong></h1>
+<form method="POST">
+    {% csrf_token %}
+    {{ form.as_p }}
+    <button type="submit" class="btn btn-primary">Créer</button>
+</form>
+{% endblock %}
\ No newline at end of file
diff --git a/Communities/templates/Communities/list_member_admin.html b/Communities/templates/Communities/list_member_admin.html
index 1eefbd1..3ab4f07 100644
--- a/Communities/templates/Communities/list_member_admin.html
+++ b/Communities/templates/Communities/list_member_admin.html
@@ -6,9 +6,16 @@
 
 <ul>
     {% for member in members %}
+    {% if member.role != 'admin'%}
     <li>
-        {{member}}
+        {{ member.user.username }}
+        <form method="POST" action="{% url 'remove_member' community.id %}">
+            {% csrf_token %}
+            <input type="hidden" name="member_id" value="{{ member.user.id }}">
+            <button type="submit" class="btn btn-danger">Supprimer</button>
+        </form>
     </li>
+    {%endif%}
     {% endfor %}
 </ul>
 
diff --git a/Communities/views.py b/Communities/views.py
index f1690b9..e18bdf1 100644
--- a/Communities/views.py
+++ b/Communities/views.py
@@ -3,7 +3,7 @@ from django.contrib.auth.decorators import login_required
 from django.contrib import messages
 from django.http import HttpResponseForbidden, HttpResponse
 from .models import Community, CommunityMembership, Request
-from .forms import CommunityForm, MembershipForm
+from .forms import CommunityForm, MembershipForm, SubCommunityForm
 from django.contrib.auth.models import User
 
 
@@ -184,16 +184,15 @@ def create_subcommunity(request, community_id):
     ''' Seul l'admin peut crée une sous communauté jusqu'ici'''
     ''' Ainsi le parent n'est pas dans le formulaire : c'est la communauté de l'administrateur'''
     if request.method == 'POST':
-        form = CommunityForm(request.POST)
+        parent = Community.objects.filter(id=community_id)
+        form = SubCommunityForm(request.POST, initial={'postal_code' : parent.first().postal_code})
         if form.is_valid():
             community = form.save(commit=False)
-            parent = Community.objects.filter(id=community_id)
             if not parent:
                 messages.error(request, "La communauté parent spécifiée est introuvable.")
                 return redirect('user_board')  # Redirection vers une autre page
             community.parent = parent.first()
             community.administrator = request.user
-            community.postal_code = parent.postal_code 
             community.save()
             CommunityMembership.objects.create(
                 user=request.user,
@@ -203,9 +202,10 @@ def create_subcommunity(request, community_id):
 
             return redirect('admin_board', community_id=community.id)
     else:
-        form = CommunityForm()
+        parent = Community.objects.filter(id=community_id)
+        form = SubCommunityForm(initial={'postal_code':parent.first().postal_code})
     
-    return render(request, 'Communities/create_community.html', {'form': form})
+    return render(request, 'Communities/create_subcommunity.html', {'form': form, 'parent': parent.first()})
 
 
 @login_required
@@ -230,6 +230,7 @@ def list_member_admin(request, community_id):
         member = get_object_or_404(User, id=member_id)
         CommunityMembership.objects.filter(user=member, community=community).delete()
 
+
     return render(request, 'Communities/list_member_admin.html', {
         'community': community,
         'members': members,
@@ -318,7 +319,7 @@ def view_requests(request, community_id):
         'community': community,
         'pending_requests': pending_requests,
     })
-
+# à supprimer
 @login_required
 def community_list(request):
     """Cette vue permet de retourner la liste de toutes les communautées"""
-- 
GitLab