108 lines
6.4 KiB
HTML
108 lines
6.4 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}{% if user %}{% trans %}Edit User{% endtrans %}: {{ user.name }}{% else %}{% trans %}New User{% endtrans %}{% endif %} - Edu-Space Admin{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container-fluid pt-5 mt-4">
|
|
<!-- Header -->
|
|
<div class="d-flex justify-content-between align-items-center mb-4">
|
|
<div>
|
|
<h1 class="h3 mb-1">
|
|
<i class="bi bi-person-gear text-primary me-2"></i>
|
|
{% if user %}{% trans %}Edit User Account{% endtrans %}{% else %}{% trans %}Create User Account{% endtrans %}{% endif %}
|
|
</h1>
|
|
<p class="text-muted small mb-0">{% trans %}Configure user credentials, profile information, and role assignment.{% endtrans %}</p>
|
|
</div>
|
|
<div>
|
|
<a href="{{ url_for('admin.users_list') }}" class="btn btn-outline-secondary">
|
|
<i class="bi bi-arrow-left me-1"></i>{% trans %}Back to Users{% endtrans %}
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-lg-6 mx-auto">
|
|
<div class="card border-0 shadow-sm">
|
|
<div class="card-header bg-body-tertiary py-3">
|
|
<h5 class="card-title h6 mb-0">
|
|
<i class="bi bi-person-vcard text-primary me-2"></i>{% trans %}Account Details{% endtrans %}
|
|
</h5>
|
|
</div>
|
|
<div class="card-body p-4">
|
|
<form method="POST">
|
|
<div class="mb-3">
|
|
<label for="name" class="form-label fw-semibold">{% trans %}Full Name{% endtrans %} <span class="text-danger">*</span></label>
|
|
<input type="text" class="form-control" id="name" name="name"
|
|
value="{{ user.name if user else '' }}" required
|
|
placeholder="{% trans %}e.g. María González{% endtrans %}">
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="email" class="form-label fw-semibold">{% trans %}Email Address{% endtrans %} <span class="text-danger">*</span></label>
|
|
<input type="email" class="form-control" id="email" name="email"
|
|
value="{{ user.email if user else '' }}" required
|
|
placeholder="{% trans %}e.g. mgonzalez@edu-space.com{% endtrans %}">
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="password" class="form-label fw-semibold">
|
|
{% trans %}Password{% endtrans %} {% if not user %}<span class="text-danger">*</span>{% endif %}
|
|
</label>
|
|
<input type="password" class="form-control" id="password" name="password"
|
|
{% if not user %}required{% endif %}
|
|
placeholder="{% if user %}{% trans %}Leave empty to keep current password{% endtrans %}{% else %}{% trans %}At least 6 characters{% endtrans %}{% endif %}">
|
|
{% if user %}
|
|
<small class="text-muted d-block mt-1">
|
|
{% trans %}Only fill this in if you want to reset this user's password.{% endtrans %}
|
|
</small>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="role_id" class="form-label fw-semibold">{% trans %}Role / Access Group{% endtrans %} <span class="text-danger">*</span></label>
|
|
<select class="form-select" id="role_id" name="role_id" required>
|
|
<option value="" disabled {% if not user or not user.role_id %}selected{% endif %}>{% trans %}Select a role...{% endtrans %}</option>
|
|
{% for r in roles %}
|
|
<option value="{{ r.id }}" {% if user and user.role_id == r.id %}selected{% endif %}>
|
|
{{ r.name }} - {{ r.description or '' }}
|
|
</option>
|
|
{% endfor %}
|
|
</select>
|
|
<small class="text-muted d-block mt-1">
|
|
<a href="{{ url_for('admin.roles_list') }}" target="_blank" class="text-decoration-none">
|
|
<i class="bi bi-box-arrow-up-right me-1"></i>{% trans %}View or manage roles and permissions{% endtrans %}
|
|
</a>
|
|
</small>
|
|
</div>
|
|
|
|
<div class="mb-4 form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" role="switch" id="is_active" name="is_active"
|
|
{% if not user or user.is_active %}checked{% endif %}
|
|
{% if user and user.id == current_user.id %}disabled{% endif %}>
|
|
<label class="form-check-label fw-semibold" for="is_active">
|
|
{% trans %}Active Account{% endtrans %}
|
|
</label>
|
|
<small class="text-muted d-block">
|
|
{% trans %}Inactive users are prevented from signing in to the platform.{% endtrans %}
|
|
</small>
|
|
{% if user and user.id == current_user.id %}
|
|
<input type="hidden" name="is_active" value="on">
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="d-flex justify-content-between align-items-center pt-2">
|
|
<a href="{{ url_for('admin.users_list') }}" class="btn btn-outline-secondary">
|
|
{% trans %}Cancel{% endtrans %}
|
|
</a>
|
|
<button type="submit" class="btn btn-primary px-4 fw-semibold">
|
|
<i class="bi bi-check-lg me-1"></i>{% trans %}Save User{% endtrans %}
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|