86 lines
No EOL
3.9 KiB
HTML
86 lines
No EOL
3.9 KiB
HTML
{% 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 %} |