gmao/app_new/equipments/templates/equipment_form.html
root b1dd90e226
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
Améliorer la création guidée des équipements
2026-08-16 23:08:02 +00:00

92 lines
4.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% extends "base.html" %}
{% block title %}{{ title }} — GMAO Collège{% endblock %}
{% block content %}
<div class="d-flex justify-content-between align-items-center mb-3">
<div><h1 class="mb-1">{{ title }}</h1><p class="text-muted mb-0">Fiche détaillée dun équipement unique ou dun groupe déquipements.</p></div>
<a href="{{ url_for('wizard.equipment_wizard') }}" class="btn btn-outline-primary"><i class="bi bi-magic"></i> Création guidée en série</a>
</div>
<div class="alert alert-info"><i class="bi bi-info-circle"></i> Utilisez cette fiche pour un équipement précis (luminaire, prise, fenêtre…). Pour créer le même équipement dans plusieurs salles, utilisez la création guidée.</div>
<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>
<h5 class="border-bottom pb-2">Organisation et quantité</h5>
{# 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 %}
<h5 class="border-bottom pb-2 mt-4">Dates et description</h5>
<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 %}