Composer les règles de semaines fériées et de repos #72

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

Blocked by: #71

What to build

L’utilisateur crée et règle les préférences « Compléter les semaines avec un jour férié » et « Profiter des week-ends et jours fériés », puis choisit laquelle prime dans le planning et dans ses explications.

Tranche de calendrier de l’ADR 0008, sur la branche d’intégration commune. Elle utilise l’édition, la persistance, le transport et l’ordre actif introduits au ticket #71. Elle peut avancer indépendamment du ticket #73 ; la mise en service reste conditionnée au ticket #75.

Acceptance criteria

  • Permettre de composer, enregistrer et modifier les règles sur les semaines fériées et les périodes de repos avec les conditions, mesures et agrégations compatibles du contrat commun. Les deux préréglages sont des configurations du même modèle que les règles personnelles.
  • Le préréglage des semaines fériées maximise la somme des valeurs des semaines complètes. Compter chaque férié du lundi au vendredi selon sa distance au week-end le plus proche ; additionner les contributions de plusieurs fériés dans une semaine sans compter la semaine deux fois.
  • Le préréglage du gain maximise les dates distinctes de week-end et de jour férié contenues dans les périodes de repos. Les jours de congé posés ne constituent pas eux-mêmes ce gain.
  • Conserver les contributions des jours déclarés et les règles d’adjacence aux limites de l’horizon. Les placements restent dans l’horizon et sur des dates éligibles ; une semaine ordinaire entièrement déclarée ne devient pas une semaine fériée.
  • Les règles s’arbitrent selon leur position parmi toutes les préférences actives. Un scénario où la meilleure semaine fériée concurrence un gain de jours non ouvrés plus élevé démontre les deux ordres possibles.
  • Une préférence de calendrier peut être placée avant ou après Samedi Malin et les autres préférences. Aucun ancien garde-fou ne rétablit automatiquement la priorité d’une semaine fériée ou d’une prévention des pertes désactivée.
  • La recherche peut utiliser des placements d’appoint admissibles lorsque l’objectif actif les justifie et que les préférences supérieures et obligations sont préservées. Leur classification est conservée pour le ticket #74.
  • La configuration éditée et sauvegardée est celle utilisée par le calcul direct, le worker, les explications, la trace et les comparaisons de dates. Les libellés et commandes sont traduits et accessibles.
  • Adapter les scénarios de comportement existants sur les semaines fériées, le gain, les jours déclarés et les placements d’appoint : férié du mercredi, plusieurs fériés, horizon partiel, concurrence entre objectifs et désactivation équivalente à absence. Les requêtes de référence fournissent explicitement leurs règles.

Vérification de bout en bout : Créer les deux règles, inverser leur ordre sur un cas concurrent, recalculer et constater la modification du planning et du premier objectif décisif dans l’explication ; recharger et retrouver la configuration.

Blocked by

  • #71 — Piloter la prévention des pertes depuis les règles
Blocked by: #71 ## What to build L’utilisateur crée et règle les préférences « Compléter les semaines avec un jour férié » et « Profiter des week-ends et jours fériés », puis choisit laquelle prime dans le planning et dans ses explications. Tranche de calendrier de l’ADR 0008, sur la branche d’intégration commune. Elle utilise l’édition, la persistance, le transport et l’ordre actif introduits au ticket #71. Elle peut avancer indépendamment du ticket #73 ; la mise en service reste conditionnée au ticket #75. ## Acceptance criteria - [ ] Permettre de composer, enregistrer et modifier les règles sur les semaines fériées et les périodes de repos avec les conditions, mesures et agrégations compatibles du contrat commun. Les deux préréglages sont des configurations du même modèle que les règles personnelles. - [ ] Le préréglage des semaines fériées maximise la somme des valeurs des semaines complètes. Compter chaque férié du lundi au vendredi selon sa distance au week-end le plus proche ; additionner les contributions de plusieurs fériés dans une semaine sans compter la semaine deux fois. - [ ] Le préréglage du gain maximise les dates distinctes de week-end et de jour férié contenues dans les périodes de repos. Les jours de congé posés ne constituent pas eux-mêmes ce gain. - [ ] Conserver les contributions des jours déclarés et les règles d’adjacence aux limites de l’horizon. Les placements restent dans l’horizon et sur des dates éligibles ; une semaine ordinaire entièrement déclarée ne devient pas une semaine fériée. - [ ] Les règles s’arbitrent selon leur position parmi toutes les préférences actives. Un scénario où la meilleure semaine fériée concurrence un gain de jours non ouvrés plus élevé démontre les deux ordres possibles. - [ ] Une préférence de calendrier peut être placée avant ou après Samedi Malin et les autres préférences. Aucun ancien garde-fou ne rétablit automatiquement la priorité d’une semaine fériée ou d’une prévention des pertes désactivée. - [ ] La recherche peut utiliser des placements d’appoint admissibles lorsque l’objectif actif les justifie et que les préférences supérieures et obligations sont préservées. Leur classification est conservée pour le ticket #74. - [ ] La configuration éditée et sauvegardée est celle utilisée par le calcul direct, le worker, les explications, la trace et les comparaisons de dates. Les libellés et commandes sont traduits et accessibles. - [ ] Adapter les scénarios de comportement existants sur les semaines fériées, le gain, les jours déclarés et les placements d’appoint : férié du mercredi, plusieurs fériés, horizon partiel, concurrence entre objectifs et désactivation équivalente à absence. Les requêtes de référence fournissent explicitement leurs règles. **Vérification de bout en bout :** Créer les deux règles, inverser leur ordre sur un cas concurrent, recalculer et constater la modification du planning et du premier objectif décisif dans l’explication ; recharger et retrouver la configuration. ## 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)

changed the description

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

mentioned in issue #73

mentioned in issue #73
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:51 +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 #72 history: source attribution, exact timestamps, discussion grouping and review positions. Historical diff snapshots: 0; visible source notes: 8.

gitlab-35-issue-72.md (SHA-256 e2a308a75b4906d5100110f9afaee85108e9e41c65957911f58214d9939f449b)

gitlab-35-issue-72.json (SHA-256 aef9e68b3d71487db318d97c944919297d589f2659e60cbf9d5590f8163deaf8)

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

<!-- gitlab-to-gitea-history:35:Issue:72 --> Preserved GitLab #72 history: source attribution, exact timestamps, discussion grouping and review positions. Historical diff snapshots: 0; visible source notes: 8. [gitlab-35-issue-72.md](https://gitea.nessar.fr/attachments/5ddaae75-5eda-4fa2-9793-d8660543438c) (SHA-256 `e2a308a75b4906d5100110f9afaee85108e9e41c65957911f58214d9939f449b`) [gitlab-35-issue-72.json](https://gitea.nessar.fr/attachments/261bfb5d-b347-4e30-b6c5-fb020c8c214f) (SHA-256 `aef9e68b3d71487db318d97c944919297d589f2659e60cbf9d5590f8163deaf8`) 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#72