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 %}