<divclass="col-md-3"><labelclass="form-label">Numéro</label><inputclass="form-control"name="num_tache"value="{{ task.num_tache or '' }}"></div>
<divclass="col-md-9"><labelclass="form-label">Tâche *</label><inputclass="form-control"name="tache"requiredvalue="{{ task.tache or '' }}"></div>
<divclass="col-12"><labelclass="form-label">Périodicité lisible</label><inputclass="form-control"name="periodicite"value="{{ task.periodicite or '' }}"placeholder="Ex. tous les ans pendant les vacances d'été"></div>
<divclass="col-md-4"><labelclass="form-label">Intervalle (jours)</label><inputclass="form-control"type="number"min="1"name="jours_entre_interventions"value="{{ task.jours_entre_interventions or '' }}"></div>
<divclass="col-md-4"><labelclass="form-label">Anticipation (jours)</label><inputclass="form-control"type="number"min="0"name="advance_days"value="{{ task.advance_days or 0 }}"></div>
<divclass="col-md-4"><labelclass="form-label">Durée par cible (minutes)</label><inputclass="form-control"type="number"min="1"name="duree_minutes"value="{{ task.duree_minutes or '' }}"></div>
<divclass="col-md-4"><labelclass="form-label">Type de durée</label><selectclass="form-select"name="duration_mode"><optionvalue="unit"{%iftask.duration_mode =='unit'%}selected{%endif%}>Par élément (× quantité)</option><optionvalue="fixed"{%iftask.duration_mode =='fixed'%}selected{%endif%}>Forfait par cible</option><optionvalue="zone"{%iftask.duration_mode =='zone'%}selected{%endif%}>Durée définie par la zone</option></select><divclass="form-text">Sans durée, la tâche reste à renseigner et n'est pas planifiée.</div></div>
<divclass="col-md-4"><labelclass="form-label">Événement</label><inputclass="form-control"name="trigger_event"value="{{ task.trigger_event or '' }}"placeholder="orage, gel…"></div>
<divclass="col-md-4"><labelclass="form-label">Seuil compteur</label><inputclass="form-control"type="number"step="0.01"name="meter_threshold"value="{{ task.meter_threshold or '' }}"></div>
<divclass="col-md-3"><labelclass="form-label">Début de saison</label><inputclass="form-control"type="number"min="1"max="12"name="season_start_month"value="{{ task.season_start_month or '' }}"></div>
<divclass="col-md-3"><labelclass="form-label">Fin de saison</label><inputclass="form-control"type="number"min="1"max="12"name="season_end_month"value="{{ task.season_end_month or '' }}"></div>
<divclass="col-md-6"><labelclass="form-label">Portée</label><selectclass="form-select"name="application_scope"><optionvalue="auto"{%iftask.application_scope =='auto'%}selected{%endif%}>Automatique selon le type d’équipement</option><optionvalue="group"{%iftask.application_scope =='group'%}selected{%endif%}>Une tâche par groupe/localisation</option><optionvalue="unit"{%iftask.application_scope =='unit'%}selected{%endif%}>Une tâche par unité individualisée</option></select><divclass="form-text">Pour 30 chaises, « groupe » crée une seule tâche dans la salle.</div></div>
<divclass="col-md-6"><labelclass="form-label">Périmètre des équipements</label><selectclass="form-select"name="scope_mode"><optionvalue="dynamic"{%iftask.scope_mode!='manual'%}selected{%endif%}>Dynamique : équipements actifs de ce lot</option><optionvalue="manual"{%iftask.scope_mode =='manual'%}selected{%endif%}>Manuel : uniquement la sélection ci-dessous</option></select></div>
<divclass="col-12"><labelclass="form-label"for="equipment-filter">Équipements concernés (périmètre manuel)</label><inputid="equipment-filter"class="form-control mb-2"type="search"placeholder="Filtrer par équipement, salle, zone ou bâtiment"oninput="filterEquipmentScope(this.value)"><divclass="d-flex gap-2 mb-2"><buttontype="button"class="btn btn-sm btn-outline-secondary"onclick="selectVisibleEquipment(true)">Tout sélectionner</button><buttontype="button"class="btn btn-sm btn-outline-secondary"onclick="selectVisibleEquipment(false)">Tout désélectionner</button></div><selectid="equipment-scope"class="form-select"name="equipment_ids"multiplesize="6"aria-describedby="scope-help">{% for equipment in equipments %}<optionvalue="{{ equipment.id }}"data-search="{{ equipment.name }} {{ equipment.room.name if equipment.room else '' }} {{ equipment.room.zone.name if equipment.room and equipment.room.zone else '' }} {{ equipment.room.building.name if equipment.room and equipment.room.building else '' }}"{%ifequipmentintask.equipment_scope%}selected{%endif%}>{{ equipment.name }}{% if equipment.room %} — {{ equipment.room.name }}{% endif %}</option>{% endfor %}</select><divid="scope-help"class="form-text">La sélection s'applique aux équipements filtrés. Les nouveaux équipements du lot sont inclus automatiquement en mode dynamique.</div></div>
<divclass="col-md-6"><labelclass="form-label">Si l’équipement est indisponible</label><selectclass="form-select"name="unavailable_policy"><optionvalue="suspend"{%iftask.unavailable_policy =='suspend'%}selected{%endif%}>Suspendre et reprendre après réparation</option><optionvalue="keep"{%iftask.unavailable_policy =='keep'%}selected{%endif%}>Maintenir la tâche</option><optionvalue="postpone"{%iftask.unavailable_policy =='postpone'%}selected{%endif%}>Ne pas générer avant remise en service</option></select></div>
<divclass="col-md-6"><labelclass="form-label">Après réparation</label><selectclass="form-select"name="after_repair_policy"><optionvalue="preserve"{%iftask.after_repair_policy =='preserve'%}selected{%endif%}>Conserver l’échéance d’origine</option><optionvalue="reset"{%iftask.after_repair_policy =='reset'%}selected{%endif%}>Repartir de la date de réparation</option></select></div>
<divclass="col-md-6"><labelclass="form-label">Entreprise exécutante</label><selectclass="form-select"name="company_id"><optionvalue="">Interne / non définie</option>{% for company in companies %}<optionvalue="{{ company.id }}"{%iftask.company_id ==company.id%}selected{%endif%}>{{ company.name }}</option>{% endfor %}</select></div>
<divclass="col-md-6"><labelclass="form-label">Contrat associé</label><selectclass="form-select"name="contract_id"><optionvalue="">Aucun contrat</option>{% for contract in contracts %}<optionvalue="{{ contract.id }}"{%iftask.contract_id ==contract.id%}selected{%endif%}>{{ contract.name }}{% if contract.contract_number %} — {{ contract.contract_number }}{% endif %}</option>{% endfor %}</select></div>