File size: 5,919 Bytes
91073d4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
{% extends 'layout.html' %}
{% block title %}Modifier l'Utilisateur | Forum Communautaire{% endblock %}
{% block breadcrumb %}
<a href="{{ url_for('forum.index') }}" class="hover:text-blue-600">Accueil</a>
<span class="mx-2">/</span>
<a href="{{ url_for('admin.dashboard') }}" class="hover:text-blue-600">Administration</a>
<span class="mx-2">/</span>
<a href="{{ url_for('admin.manage_users') }}" class="hover:text-blue-600">Gérer les Utilisateurs</a>
<span class="mx-2">/</span>
<span class="text-gray-700">Modifier l'Utilisateur</span>
{% endblock %}
{% block content %}
<div class="bg-white rounded-lg shadow-sm p-6">
<div class="flex items-center mb-6">
<img src="{{ url_for('static', filename='uploads/avatars/' + user.avatar) if user.avatar else url_for('static', filename='uploads/avatars/default.png') }}"
alt="{{ user.username }}"
class="w-16 h-16 rounded-full mr-4 object-cover border border-gray-200">
<div>
<h1 class="text-2xl font-bold">Modifier l'Utilisateur : {{ user.username }}</h1>
<p class="text-gray-600">{{ user.email }}</p>
</div>
</div>
<form method="post" action="{{ url_for('admin.edit_user', id=user.id) }}" class="space-y-4">
{{ form.hidden_tag() }}
<div class="space-y-2">
<label for="{{ form.role.id }}" class="block text-sm font-medium text-gray-700">
Rôle <span class="text-red-600">*</span>
</label>
{{ form.role(class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring focus:ring-blue-200 focus:border-blue-500") }}
{% if form.role.errors %}
<div class="text-red-600 text-sm mt-1">
{% for error in form.role.errors %}
<p>{{ error }}</p>
{% endfor %}
</div>
{% endif %}
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div class="space-y-2">
<div class="flex items-center">
{{ form.is_active(class="h-4 w-4 text-blue-600 border-gray-300 rounded mr-2") }}
<label for="{{ form.is_active.id }}" class="block text-sm font-medium text-gray-700">
Compte Actif
</label>
</div>
{% if form.is_active.errors %}
<div class="text-red-600 text-sm mt-1">
{% for error in form.is_active.errors %}
<p>{{ error }}</p>
{% endfor %}
</div>
{% endif %}
</div>
<div class="space-y-2">
<div class="flex items-center">
{{ form.is_banned(class="h-4 w-4 text-red-600 border-gray-300 rounded mr-2") }}
<label for="{{ form.is_banned.id }}" class="block text-sm font-medium text-gray-700">
Compte Banni
</label>
</div>
{% if form.is_banned.errors %}
<div class="text-red-600 text-sm mt-1">
{% for error in form.is_banned.errors %}
<p>{{ error }}</p>
{% endfor %}
</div>
{% endif %}
</div>
</div>
<div class="space-y-2">
<label for="{{ form.ban_reason.id }}" class="block text-sm font-medium text-gray-700">
Raison du Bannissement
</label>
{{ form.ban_reason(class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring focus:ring-blue-200 focus:border-blue-500", rows=3) }}
{% if form.ban_reason.errors %}
<div class="text-red-600 text-sm mt-1">
{% for error in form.ban_reason.errors %}
<p>{{ error }}</p>
{% endfor %}
</div>
{% endif %}
<p class="text-sm text-gray-500">Indiquez la raison du bannissement si l'utilisateur est banni. Cette raison sera visible par l'utilisateur.</p>
</div>
<div class="flex justify-between pt-4">
<a href="{{ url_for('admin.manage_users') }}" class="px-4 py-2 bg-gray-200 text-gray-700 rounded-lg hover:bg-gray-300 focus:outline-none focus:ring">
Annuler
</a>
<button type="submit" class="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 focus:outline-none focus:ring">
Enregistrer les Modifications
</button>
</div>
</form>
</div>
<div class="bg-white rounded-lg shadow-sm p-6 mt-6">
<h2 class="text-xl font-bold mb-4">Informations Utilisateur</h2>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<h3 class="text-sm font-medium text-gray-500">Date d'inscription</h3>
<p class="text-gray-900">{{ user.created_at | format_datetime }}</p>
</div>
<div>
<h3 class="text-sm font-medium text-gray-500">Dernière connexion</h3>
<p class="text-gray-900">{{ user.last_seen | format_datetime }}</p>
</div>
<div>
<h3 class="text-sm font-medium text-gray-500">Sujets créés</h3>
<p class="text-gray-900">{{ user.topics.count() }}</p>
</div>
<div>
<h3 class="text-sm font-medium text-gray-500">Messages postés</h3>
<p class="text-gray-900">{{ user.posts.count() }}</p>
</div>
</div>
<div class="mt-4">
<a href="{{ url_for('user.profile', username=user.username) }}" class="text-blue-600 hover:text-blue-800 flex items-center">
<i data-feather="external-link" class="w-4 h-4 mr-1"></i>
Voir le profil public
</a>
</div>
</div>
{% endblock %} |