gmao/app_new/templates/equipments/equipment_form.html

86 lines
3.9 KiB
HTML
Raw Normal View History

2026-08-14 18:02:25 +02:00
{% extends "base.html" %}
{% block title %}{{ title }} — GMAO Collège{% endblock %}
{% block content %}
<h1 class="mb-4">{{ title }}</h1>
<div class="card"><div class="card-body">
<form method="POST" id="equipmentForm">
{{ form.hidden_tag() }}
<div class="row">
<div class="col-md-4 mb-3">{{ form.name.label(class="form-label") }}{{ form.name(class="form-control") }}</div>
<div class="col-md-4 mb-3">{{ form.code.label(class="form-label") }}{{ form.code(class="form-control") }}</div>
<div class="col-md-4 mb-3">{{ form.status.label(class="form-label") }}{{ form.status(class="form-select") }}</div>
</div>
<div class="row">
<div class="col-md-4 mb-3">{{ form.category_id.label(class="form-label") }}{{ form.category_id(class="form-select") }}</div>
<div class="col-md-4 mb-3">{{ form.room_id.label(class="form-label") }}{{ form.room_id(class="form-select") }}</div>
<div class="col-md-4 mb-3">{{ form.parent_id.label(class="form-label") }}{{ form.parent_id(class="form-select") }}</div>
</div>
{# Gestion des groupes d'équipements #}
<div class="card mb-3">
<div class="card-header">
<div class="form-check">
{{ form.is_group(class="form-check-input") }}
{{ form.is_group.label(class="form-check-label") }}
</div>
</div>
<div class="card-body" id="groupOptions" style="display: none;">
<div class="row">
<div class="col-md-6 mb-3">
{{ form.quantity.label(class="form-label") }}
{{ form.quantity(class="form-control", min=1) }}
<small class="text-muted">Nombre d'unités dans ce groupe</small>
</div>
<div class="col-md-6 mb-3">
<div class="form-check mt-4">
{{ form.tracked_individually(class="form-check-input") }}
{{ form.tracked_individually.label(class="form-check-label") }}
</div>
<small class="text-muted">Chaque unité sera suivie individuellement avec un numéro unique</small>
</div>
</div>
</div>
</div>
{% if equipment and equipment.is_individual %}
{# Position uniquement pour les éléments individuels #}
<div class="mb-3">
{{ form.position.label(class="form-label") }}
{{ form.position(class="form-control", placeholder="Ex: Rang 1, Place 3") }}
<small class="text-muted">Position de cet élément dans la salle</small>
</div>
{% endif %}
<div class="row">
<div class="col-md-6 mb-3">{{ form.install_date.label(class="form-label") }}{{ form.install_date(class="form-control", type="date") }}</div>
<div class="col-md-6 mb-3">{{ form.warranty_end.label(class="form-label") }}{{ form.warranty_end(class="form-control", type="date") }}</div>
</div>
<div class="mb-3">{{ form.description.label(class="form-label") }}{{ form.description(class="form-control", rows=3) }}</div>
<div class="mt-3">
<button type="submit" class="btn btn-primary"><i class="bi bi-check-lg"></i> Enregistrer</button>
<a href="{{ url_for('equipments.index') }}" class="btn btn-outline-secondary">Annuler</a>
</div>
</form>
</div></div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const isGroupCheckbox = document.getElementById('is_group');
const groupOptions = document.getElementById('groupOptions');
const quantityField = document.getElementById('quantity');
function toggleGroupOptions() {
if (isGroupCheckbox.checked) {
groupOptions.style.display = 'block';
quantityField.value = quantityField.value || 1;
} else {
groupOptions.style.display = 'none';
}
}
isGroupCheckbox.addEventListener('change', toggleGroupOptions);
toggleGroupOptions(); // Initial state
});
</script>
{% endblock %}