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