feat: gestion RBAC granular, importacion sheets, filtrado de aulas virtuales y pisos, capacidad infinita y traduccion

This commit is contained in:
Carlos Tello
2026-09-03 03:08:49 -03:00
parent d1d4be0428
commit 5cc33cc7a0
138 changed files with 14419 additions and 1490 deletions
+41 -14
View File
@@ -76,17 +76,19 @@
<hr class="my-4">
<!-- Language Preference Section -->
<!-- Preferences Section -->
<form method="POST" action="{{ url_for('auth.profile') }}">
<label class="form-label fw-bold mb-2">
<i class="bi bi-translate text-primary me-2"></i>{% trans %}Language Preference{% endtrans %}
</label>
<p class="text-muted small mb-3">
{% trans %}If set, this language overrides the browser configuration for all your sessions.{% endtrans %}
</p>
<div class="row g-2 align-items-center">
<div class="col-sm-8">
<select class="form-select" name="preferred_language">
<h5 class="fw-bold mb-3">
<i class="bi bi-sliders text-primary me-2"></i>{% trans %}User Preferences{% endtrans %}
</h5>
<div class="row g-3">
<!-- Preferred Language -->
<div class="col-md-6 mb-3">
<label for="preferred_language" class="form-label fw-semibold">
<i class="bi bi-translate text-primary me-1"></i>{% trans %}Interface Language{% endtrans %}
</label>
<select class="form-select" id="preferred_language" name="preferred_language">
<option value="" {% if not current_user.preferred_language %}selected{% endif %}>
{% trans %}Auto-detect from browser (Default){% endtrans %}
</option>
@@ -97,13 +99,38 @@
English
</option>
</select>
<small class="text-muted d-block mt-1">
{% trans %}If set, this language overrides the browser configuration for all your sessions.{% endtrans %}
</small>
</div>
<div class="col-sm-4">
<button type="submit" class="btn btn-outline-primary w-100">
<i class="bi bi-check2 me-1"></i>{% trans %}Save Preference{% endtrans %}
</button>
<!-- Theme Preference -->
<div class="col-md-6 mb-3">
<label for="theme_preference" class="form-label fw-semibold">
<i class="bi bi-palette text-primary me-1"></i>{% trans %}Visual Theme{% endtrans %}
</label>
<select class="form-select" id="theme_preference" name="theme_preference">
<option value="auto" {% if current_user.theme_preference == 'auto' or not current_user.theme_preference %}selected{% endif %}>
{% trans %}Automatic (follow system){% endtrans %}
</option>
<option value="light" {% if current_user.theme_preference == 'light' %}selected{% endif %}>
{% trans %}Light Mode{% endtrans %}
</option>
<option value="dark" {% if current_user.theme_preference == 'dark' %}selected{% endif %}>
{% trans %}Dark Mode{% endtrans %}
</option>
</select>
<small class="text-muted d-block mt-1">
{% trans %}Choose your preferred visual theme.{% endtrans %}
</small>
</div>
</div>
<div class="text-end mt-2">
<button type="submit" class="btn btn-primary">
<i class="bi bi-check-lg me-1"></i>{% trans %}Save Preferences{% endtrans %}
</button>
</div>
</form>
</div>
<div class="card-footer bg-body-tertiary px-4 py-3 d-flex justify-content-between align-items-center">