Composer les règles de séquences de travail #73

Closed
opened 2026-10-08 22:59:06 +02:00 by nessar · 9 comments
nessar commented 2026-10-08 22:59:06 +02:00 (Migrated from 172.24.0.1:8928)

Blocked by: #71

What to build

L’utilisateur compose des préférences sur ses séquences de travail : réduire la plus longue séquence ou limiter le déficit des reprises courtes, avec un seuil configurable. Leur position parmi les autres préférences influence le planning.

Tranche de séquences de travail de l’ADR 0008, sur la branche d’intégration commune. Elle utilise le contrat minimal et les fonctions de gestion du ticket #71 et peut avancer indépendamment du ticket #72. Le seuil initial de cinq jours reproduit le comportement existant.

Acceptance criteria

  • Permettre de créer, éditer, sauvegarder et réordonner une règle sur la longueur maximale des séquences de travail et une règle sur le déficit des séquences internes, à partir du même modèle composable.
  • Le préréglage de la séquence maximale minimise son nombre de jours travaillés, en incluant les séquences situées aux deux bords de l’horizon. Les week-ends et jours fériés ne comptent pas et ne coupent pas une séquence.
  • Le préréglage des reprises courtes minimise la somme des déficits pour les séquences internes non vides : avec le seuil initial de cinq jours, une reprise d’un jour contribue quatre et une reprise de quatre jours contribue un. Les séquences aux bords de l’horizon sont exclues de cette mesure.
  • Le seuil de la mesure de déficit est un entier strictement positif, initialement cinq. Une règle personnelle utilisant un autre seuil, par exemple trois, calcule son propre déficit et peut produire un autre arbitrage ; il ne s’agit pas d’un seuil impératif de validité.
  • Les conditions de sélection, mesures, unités et paramètres compatibles sont contrôlés à l’édition et à l’entrée du calcul. Une collection vide ou des séquences internes vides respectent la valeur zéro définie au ticket #70.
  • Deux règles portant sur la même famille mais ayant des paramètres distincts sont évaluées séparément selon leur position. L’évaluation et les caches éventuels ne confondent pas les configurations sur la seule base du type de mesure.
  • Les placements choisis respectent les obligations, les préférences supérieures et les jours déclarés. Désactiver une règle retire son influence, y compris lors de la recherche de placements d’appoint, sans conserver une protection fixe de la longueur maximale ou du déficit.
  • L’interface, la restauration, le worker, l’explication, la trace et les comparaisons contrefactuelles utilisent la même configuration capturée. Les libellés distinguent jours travaillés, seuil de préférence et unité de la mesure.
  • Les tests prolongent les suites de statistiques et de planification : bords de l’horizon, séquences vides, jours déclarés, seuil initial, autre seuil, deux règles paramétrées, priorité face à une règle personnelle et désactivation. Les vérifications portent sur les placements et valeurs observables, y compris après rechargement.

Vérification de bout en bout : Créer une préférence de reprise courte à cinq jours, constater sa mesure et le plan, puis la modifier à trois jours et recalculer un cas discriminant ; retrouver le seuil et son effet après rechargement.

Blocked by

  • #71 — Piloter la prévention des pertes depuis les règles
Blocked by: #71 ## What to build L’utilisateur compose des préférences sur ses séquences de travail : réduire la plus longue séquence ou limiter le déficit des reprises courtes, avec un seuil configurable. Leur position parmi les autres préférences influence le planning. Tranche de séquences de travail de l’ADR 0008, sur la branche d’intégration commune. Elle utilise le contrat minimal et les fonctions de gestion du ticket #71 et peut avancer indépendamment du ticket #72. Le seuil initial de cinq jours reproduit le comportement existant. ## Acceptance criteria - [ ] Permettre de créer, éditer, sauvegarder et réordonner une règle sur la longueur maximale des séquences de travail et une règle sur le déficit des séquences internes, à partir du même modèle composable. - [ ] Le préréglage de la séquence maximale minimise son nombre de jours travaillés, en incluant les séquences situées aux deux bords de l’horizon. Les week-ends et jours fériés ne comptent pas et ne coupent pas une séquence. - [ ] Le préréglage des reprises courtes minimise la somme des déficits pour les séquences internes non vides : avec le seuil initial de cinq jours, une reprise d’un jour contribue quatre et une reprise de quatre jours contribue un. Les séquences aux bords de l’horizon sont exclues de cette mesure. - [ ] Le seuil de la mesure de déficit est un entier strictement positif, initialement cinq. Une règle personnelle utilisant un autre seuil, par exemple trois, calcule son propre déficit et peut produire un autre arbitrage ; il ne s’agit pas d’un seuil impératif de validité. - [ ] Les conditions de sélection, mesures, unités et paramètres compatibles sont contrôlés à l’édition et à l’entrée du calcul. Une collection vide ou des séquences internes vides respectent la valeur zéro définie au ticket #70. - [ ] Deux règles portant sur la même famille mais ayant des paramètres distincts sont évaluées séparément selon leur position. L’évaluation et les caches éventuels ne confondent pas les configurations sur la seule base du type de mesure. - [ ] Les placements choisis respectent les obligations, les préférences supérieures et les jours déclarés. Désactiver une règle retire son influence, y compris lors de la recherche de placements d’appoint, sans conserver une protection fixe de la longueur maximale ou du déficit. - [ ] L’interface, la restauration, le worker, l’explication, la trace et les comparaisons contrefactuelles utilisent la même configuration capturée. Les libellés distinguent jours travaillés, seuil de préférence et unité de la mesure. - [ ] Les tests prolongent les suites de statistiques et de planification : bords de l’horizon, séquences vides, jours déclarés, seuil initial, autre seuil, deux règles paramétrées, priorité face à une règle personnelle et désactivation. Les vérifications portent sur les placements et valeurs observables, y compris après rechargement. **Vérification de bout en bout :** Créer une préférence de reprise courte à cinq jours, constater sa mesure et le plan, puis la modifier à trois jours et recalculer un cas discriminant ; retrouver le seuil et son effet après rechargement. ## Blocked by - #71 — Piloter la prévention des pertes depuis les règles
nessar commented 2026-10-08 22:59:06 +02:00 (Migrated from 172.24.0.1:8928)

mentioned in issue #74

mentioned in issue #74
nessar commented 2026-10-08 23:01:06 +02:00 (Migrated from 172.24.0.1:8928)

mentioned in issue #71

mentioned in issue #71
nessar commented 2026-10-08 23:01:07 +02:00 (Migrated from 172.24.0.1:8928)

mentioned in issue #72

mentioned in issue #72
nessar commented 2026-10-08 23:01:08 +02:00 (Migrated from 172.24.0.1:8928)

changed the description

changed the description
nessar commented 2026-10-08 23:01:10 +02:00 (Migrated from 172.24.0.1:8928)

mentioned in issue #75

mentioned in issue #75
nessar commented 2026-10-10 16:08:37 +02:00 (Migrated from 172.24.0.1:8928)

mentioned in commit 6811142299

mentioned in commit 6811142299b21124af146ac7f8cf02a96c4d91c7
nessar commented 2026-10-10 16:08:54 +02:00 (Migrated from 172.24.0.1:8928)

mentioned in merge request !189

mentioned in merge request [!189](https://gitea.nessar.fr/nessar/vac-optimizer/pulls/267)
nessar commented 2026-10-10 16:56:50 +02:00 (Migrated from 172.24.0.1:8928)

mentioned in commit 0d900fd72d

mentioned in commit 0d900fd72d1a405d257f5a566c55cc0cb3d2bc61
nessar (Migrated from 172.24.0.1:8928) closed this issue 2026-10-10 16:56:50 +02:00

Preserved GitLab #73 history: source attribution, exact timestamps, discussion grouping and review positions. Historical diff snapshots: 0; visible source notes: 8.

gitlab-35-issue-73.md (SHA-256 91a56cf1eadf9aaf51402b6816df20e82a47c33c82b0b85388ec021515b2c777)

gitlab-35-issue-73.json (SHA-256 7dccec486bef2f1a20dce37d89e7f5e5fe5c4c8a7d1f88771d69c91a0287e1a0)

Old CI job execution and reports are omitted. Original source files and rollback backups remain protected.

<!-- gitlab-to-gitea-history:35:Issue:73 --> Preserved GitLab #73 history: source attribution, exact timestamps, discussion grouping and review positions. Historical diff snapshots: 0; visible source notes: 8. [gitlab-35-issue-73.md](https://gitea.nessar.fr/attachments/4192704f-9c6a-4875-ba93-2e0765912040) (SHA-256 `91a56cf1eadf9aaf51402b6816df20e82a47c33c82b0b85388ec021515b2c777`) [gitlab-35-issue-73.json](https://gitea.nessar.fr/attachments/9e986898-8e30-4185-b373-3d692e68c86d) (SHA-256 `7dccec486bef2f1a20dce37d89e7f5e5fe5c4c8a7d1f88771d69c91a0287e1a0`) Old CI job execution and reports are omitted. Original source files and rollback backups remain protected.
gitea-emergency added this to the Development project 2026-10-11 22:14:33 +02:00
gitea-emergency moved this to Closed in Development on 2026-10-11 22:14:33 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: nessar/vac-optimizer#73