feat: implementar ABM completo de comisiones, carreras y asignaturas con proteccion de integridad y corregir edificios y campus virtual

This commit is contained in:
2026-09-23 19:53:27 -03:00
parent 195bfd915e
commit 165a0b65b8
13 changed files with 1033 additions and 154 deletions
+82 -1
View File
@@ -49,7 +49,7 @@
<!-- Commission Card -->
<div class="card shadow-sm border-0 mb-4">
<div class="card-header border-0 bg-primary text-white rounded-top py-3">
<div class="card-header border-0 bg-primary text-white rounded-top py-3 d-flex justify-content-between align-items-center">
<div class="d-flex align-items-center gap-2">
<i class="bi bi-diagram-3 fs-4"></i>
<div>
@@ -57,6 +57,11 @@
<small class="opacity-75">{{ commission.semester }} {{ commission.year }}</small>
</div>
</div>
{% if can_edit %}
<button type="button" class="btn btn-sm btn-light py-1 px-2 fw-semibold text-primary" data-bs-toggle="modal" data-bs-target="#modalEditCommissionDetail">
<i class="bi bi-pencil me-1"></i>Editar
</button>
{% endif %}
</div>
<div class="card-body">
<h5 class="fw-bold mb-1">{{ commission.subject.name }}</h5>
@@ -389,4 +394,80 @@
</div>
</div>
</div>
<!-- Modal: Editar Datos de la Comisión -->
{% if can_edit %}
<div class="modal fade" id="modalEditCommissionDetail" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content border-0 shadow">
<form action="/admin/commission_edit" method="POST">
<input type="hidden" name="id" value="{{ commission.id }}">
<div class="modal-header bg-body-tertiary border-bottom py-3">
<h5 class="modal-title fw-bold">
<i class="bi bi-pencil-square text-primary me-2"></i>Editar Datos de la Comisión
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body p-4">
<div class="row g-3 mb-3">
<div class="col-md-6">
<label class="form-label fw-semibold small">Identificador / Código</label>
<input type="text" class="form-control form-control-sm font-monospace" name="code" value="{{ commission.code }}" required>
</div>
<div class="col-md-3">
<label class="form-label fw-semibold small">Cuatrimestre</label>
<select class="form-select form-select-sm" name="semester">
<option value="1C" {% if commission.semester == '1C' %}selected{% endif %}>1C (Primer Cuatrimestre)</option>
<option value="2C" {% if commission.semester == '2C' %}selected{% endif %}>2C (Segundo Cuatrimestre)</option>
<option value="Anual" {% if commission.semester == 'Anual' %}selected{% endif %}>Anual</option>
</select>
</div>
<div class="col-md-3">
<label class="form-label fw-semibold small">Año</label>
<input type="number" class="form-control form-control-sm" name="year" value="{{ commission.year }}" min="2020" max="2035">
</div>
</div>
<div class="row g-3 mb-3">
<div class="col-md-6">
<label class="form-label fw-semibold small">Turno</label>
<select class="form-select form-select-sm" name="shift">
<option value="Mañana" {% if commission.shift == 'Mañana' %}selected{% endif %}>Mañana (08:00 - 12:00)</option>
<option value="Tarde" {% if commission.shift == 'Tarde' %}selected{% endif %}>Tarde (17:30 - 21:30)</option>
<option value="Vespertino" {% if commission.shift == 'Vespertino' %}selected{% endif %}>Vespertino</option>
<option value="Noche" {% if commission.shift == 'Noche' %}selected{% endif %}>Noche (19:00 - 23:00)</option>
</select>
</div>
<div class="col-md-6">
<label class="form-label fw-semibold small">Cupo Máximo de Alumnos</label>
<input type="number" class="form-control form-control-sm" name="max_students" value="{{ commission.max_students }}" min="1" max="300">
</div>
</div>
<div class="mb-3">
<label class="form-label fw-semibold small">Días y Horarios</label>
<input type="text" class="form-control form-control-sm" name="schedule" value="{{ commission.schedule or '' }}" placeholder="Ej: Lun y Mié 17:30 a 21:30 hs">
</div>
<div class="mb-3">
<label class="form-label fw-semibold small">Enlace Aula Virtual (Meet, Teams, Zoom)</label>
<input type="url" class="form-control form-control-sm" name="virtual_link" value="{{ commission.virtual_link or '' }}">
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" name="active" id="detail_edit_active" value="on" {% if commission.active %}checked{% endif %}>
<label class="form-check-label small fw-semibold" for="detail_edit_active">
Comisión Activa
</label>
</div>
</div>
<div class="modal-footer bg-body-tertiary border-top py-2">
<button type="button" class="btn btn-outline-secondary btn-sm" data-bs-dismiss="modal">Cancelar</button>
<button type="submit" class="btn btn-primary btn-sm px-4">Guardar Cambios</button>
</div>
</form>
</div>
</div>
</div>
{% endif %}
{% endblock %}