From 4c4a6cfa4d461c94ccbbd6fd7cbbaf7ef57ab625 Mon Sep 17 00:00:00 2001 From: jenkinsEdificePublic Date: Tue, 8 Sep 2026 10:00:29 +0200 Subject: [PATCH 1/3] chore: prepare next development iteration --- package.json | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a10ca4b8f..5fc9817ae 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "**/node-releases": "2.0.14" }, "dependencies": { - "entcore": "dev", + "entcore": "develop-orga", "@screeb/sdk-browser": "0.7.0", "awesome-typescript-loader": "3.2.1", "core-js": "2.4.1", diff --git a/pom.xml b/pom.xml index 10db5f0c3..eb1b74d7e 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ statistics-presences - 2.2-SNAPSHOT + 2.2-develop-orga-SNAPSHOT 2.0.0-final 5.1.0 3.0-SNAPSHOT From f85f949fbc288ed33290bda6007d14c83b807c7e Mon Sep 17 00:00:00 2001 From: jenkinsEdificePublic Date: Tue, 29 Sep 2026 10:37:46 +0200 Subject: [PATCH 2/3] chore: prepare next development iteration --- package.json | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 5fc9817ae..a10ca4b8f 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "**/node-releases": "2.0.14" }, "dependencies": { - "entcore": "develop-orga", + "entcore": "dev", "@screeb/sdk-browser": "0.7.0", "awesome-typescript-loader": "3.2.1", "core-js": "2.4.1", diff --git a/pom.xml b/pom.xml index eb1b74d7e..8ce1be10c 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ statistics-presences - 2.2-develop-orga-SNAPSHOT + 2.2.0-develop-orga-SNAPSHOT 2.0.0-final 5.1.0 3.0-SNAPSHOT From 6c1be8952017d3022ff2f9cc9d984828ea572d2e Mon Sep 17 00:00:00 2001 From: Damien Romito Castro Date: Wed, 7 Oct 2026 13:47:09 +0200 Subject: [PATCH 3/3] docs: #ORGA-652 ajoute le CLAUDE.md du bundle presences MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Décrit l'architecture multi-modules (Maven, fronts AngularJS), les commandes réelles de build et de dev, et les garde-fous pour la refonte React de la prise d'appel (epic ORGA-493). Co-Authored-By: Claude Sonnet 5.5 --- CLAUDE.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 000000000..3a81ecbc7 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,58 @@ +# Présences — bundle multi-modules (Maven + fronts AngularJS) + +Module « vie scolaire » d'Edifice : gestion des absences et des appels, des présences, des incidents / punitions / sanctions, et publipostage. Backend **Java/Vert.x (ent-core)** ; fronts **AngularJS legacy** (webpack + gulp + yarn). Une application **React** de prise d'appel (epic Jira ORGA-493, spec `FS-01`) est en cours de création dans ce même dépôt : elle n'existe pas encore. + +## Architecture + +Maven multi-projet : `pom.xml` racine (parent `io.edifice:app-parent`, repo `OPEN-ENT-NG/presences`) + un `pom.xml` par module. Chaque module est un module Vert.x avec son `mod.json`. + +| Module | Rôle | Port (`mod.json`) | +| --- | --- | --- | +| `common` | Code partagé (Java + TS `@common`) | — | +| `presences` | Absences, appels, présences | 8062 | +| `incidents` | Incidents, punitions, sanctions | 8063 | +| `massmailing` | Publipostage | 8065 | +| `statistics-presences` | Statistiques | 8066 | + +- Java : `/src/main/java/fr/openent//` (controller, service, model, cron, worker, event, security…). SQL dans `src/main/resources/sql`, i18n dans `src/main/resources/i18n`, vues dans `view` / `view-src`. +- Front AngularJS : `/src/main/resources/public/ts/` (+ `sass/` pour `presences`). Alias TS : `@common`, `@presences`, `@incidents`, `@massmailing`, `@statistics`. +- `presences/specs/` : spécifications fonctionnelles (ex. `FS-ORGA-448-prise-appel-1d.md`). +- `build.sh` mélange des cibles Maven et des cibles Gradle historiques (`*:buildGradle`) ; la chaîne actuelle est **Maven** (cf. `pom.xml`). + +## Commandes + +Gestionnaire front : **yarn** (`yarn.lock`). Le build « officiel » passe par Docker via `build.sh`. + +| But | Commande | +| --- | --- | +| Dev local d'un module (watcher + proxy recette) | `yarn dev:presences` · `dev:incidents` · `dev:massmailing` · `dev:statistics` (http://localhost:3000/presences) | +| Tests front (Jest + couverture) | `yarn test` (= `yarn coverage`) ; en watch : `yarn test:dev` | +| Build Sass | `yarn build:sass` | +| Build d'un module (front + Maven) | `./build.sh presences` (idem `incidents`, `massmailing`, `statistics`) | +| Build Maven seul | `./build.sh buildMaven` ou `./build.sh presences:buildMaven` | +| Build front seul | `./build.sh buildGulp buildCss` | +| Tests | `./build.sh test` (front + Maven) · `testNode` · `testMaven` | +| Install local | `./build.sh install` (Maven, `-DskipTests`) | + +Dev local : voir le `README.md` (`cp .env.template .env`, `dev-auth-fetcher connect` ou skill `auth-user-frontend`, puis `yarn dev:`). Seul le module lancé est servi depuis le disque ; le reste vient de la recette. + +## Travailler dans UN module + +1. Identifier le module concerné et rester **circonscrit** à lui (le code partagé va dans `common`). +2. Builder le module ciblé (`./build.sh `) plutôt que tout le bundle. +3. Les modifications de `view-src/` ou de l'i18n ne sont pas visibles en dev local (proxy recette). + +## Conventions + +- Branche courante de travail : `develop-orga` ; branche principale pour les PR : `dev`. +- Commits : Conventional Commits avec la clé Jira (`#ORGA-XXX`) ; branches `--` (skills `shared-conventions`). +- Le CSS compilé (`*.css`, `dist/`, `public/js/`) n'est pas versionné : c'est un artefact de build. +- Droits d'accès : `rights.ts` côté front, `security/` côté Java ; ne pas contourner. + +## À faire / à éviter + +- ✅ Maintenance du front AngularJS sans le moderniser, sauf demande explicite. +- ✅ Retrouver dans le code (controller / service / SQL) ce que le back sait faire avant de supposer une capacité. +- ❌ Ne pas unifier les chaînes de build front (webpack legacy vs future app Vite/React). +- ❌ Ne pas modifier l'API Présences pour la refonte React de la prise d'appel : le périmètre de l'epic ORGA-493 est front uniquement. +- ❌ Ne pas présumer qu'un module ressemble à un autre : les fronts et configs diffèrent.