diff --git a/Communities/forms.py b/Communities/forms.py index 867e8308bd9ea5b274775584d27f5790ff78d51e..ffbd86736b6bee14badc5d079e76634fb8d28259 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 0cb4ac23947bf22e704d1b956255921f6eeb7419..4e864692646006e95645bf16fba74316c17e4fee 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 af9f965e0688411da667ded24f35f3cfbb0c4f30..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..00aba5089fe195d181cb8c31514c5160ec8d3fc8 --- /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 1eefbd174a233656396dd4a6f6830079bf116dfc..3ab4f0792d3dc03b4c761443f8f06555ef7419a0 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 f1690b9f5ffb9ea04f06549de0974ce6e5ff3782..e18bdf18808b69d116511897f733760044506ad0 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"""