Skip to content

Commit

Permalink
Rename all occurences of statutsCandidats to dossiersApprenants
Browse files Browse the repository at this point in the history
  • Loading branch information
stephane-ruhlmann committed May 17, 2022
1 parent 02812e3 commit 0acd56a
Show file tree
Hide file tree
Showing 32 changed files with 137 additions and 115 deletions.
40 changes: 17 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -285,10 +285,10 @@ Il est possible de supprimer les données en base de plusieurs manières :
docker exec -t -i flux_retour_cfas_server bash -c 'yarn clear:all'
```

- Pour supprimer uniquement les statuts des candidats en base :
- Pour supprimer uniquement les documents dossiersApprenants en base :

```bash
docker exec -t -i flux_retour_cfas_server bash -c 'yarn clear:statutsCandidats'
docker exec -t -i flux_retour_cfas_server bash -c 'yarn clear:dossiersApprenants'
```

- Pour supprimer uniquement les logs (+usersEvents) en base :
Expand All @@ -313,13 +313,13 @@ Il est possible d'alimenter la base de donneés avec des données de réferences
docker exec -t -i flux_retour_cfas_server bash -c 'yarn seed:users'
```

- Pour ajouter des statuts candidats de test en base :
- Pour ajouter des documents dossiersApprenants de test en base :

```bash
docker exec -t -i flux_retour_cfas_server bash -c 'yarn seed:sample'
```

- Pour ajouter des statuts candidats randomisés en base :
- Pour ajouter des dossiersApprenants randomisés en base :

```bash
docker exec -t -i flux_retour_cfas_server bash -c 'yarn seed:randomizedSample'
Expand All @@ -341,13 +341,13 @@ docker exec -t -i flux_retour_cfas_server bash -c 'yarn stats'

### Jobs de vérification et clean des données

- Pour valider et marquer les SIRET des statuts candidats en base :
- Pour valider et marquer les SIRET des dossiersApprenants en base :

```bash
docker exec -t -i flux_retour_cfas_server bash -c 'yarn siret:check-validity'
```

- Pour valider et marquer les UAI des statuts candidats en base :
- Pour valider et marquer les UAI des dossiersApprenants en base :

```bash
docker exec -t -i flux_retour_cfas_server bash -c 'yarn uai:check-validity'
Expand All @@ -365,7 +365,7 @@ docker exec -t -i flux_retour_cfas_server bash -c 'yarn siret:sanitize'
docker exec -t -i flux_retour_cfas_server bash -c 'yarn siret:retrieve-gesti'
```

- Pour tenter de retrouver les SIRET manquants sur les statuts candidats provenant de Ymag grâce aux UAI déjà présents en base :
- Pour tenter de retrouver les SIRET manquants sur les dossiersApprenants provenant de Ymag grâce aux UAI déjà présents en base :

```bash
docker exec -t -i flux_retour_cfas_server bash -c 'yarn siret:retrieve-ymag'
Expand All @@ -383,12 +383,6 @@ docker exec -t -i flux_retour_cfas_server bash -c 'yarn etablissements-location:
docker exec -t -i flux_retour_cfas_server bash -c 'yarn etablissements-networks:retrieve'
```

- Pour tenter de retrouver niveau des formations grâce au CFA via la collection referentiel des Formations :

```bash
docker exec -t -i flux_retour_cfas_server bash -c 'yarn statutsCandidats:update-niveaux'
```

### Procédure à suivre au premier déploiement

Dès le premier déploiement de l'application est recommandé de suivre la procédure suivante :
Expand Down Expand Up @@ -432,16 +426,16 @@ Dès le premier déploiement de l'application est recommandé de suivre la proc
docker exec -ti flux_retour_cfas_server bash -c 'yarn siret-uai:check-validity'
```

5.6 - Recherche des infos de localisation des établissements 'yarn statutsCandidats:retrieve-location'
5.6 - Recherche des infos de localisation des établissements 'yarn dossiersApprenants:retrieve-location'

```bash
docker exec -ti flux_retour_cfas_server bash -c 'yarn statutsCandidats:retrieve-location'
docker exec -ti flux_retour_cfas_server bash -c 'yarn dossiersApprenants:retrieve-location'
```

5.7 - Recherche des infos de réseaux des établissements 'yarn statutsCandidats:retrieve-networks'
5.7 - Recherche des infos de réseaux des établissements 'yarn dossiersApprenants:retrieve-networks'

```bash
docker exec -ti flux_retour_cfas_server bash -c 'yarn statutsCandidats:retrieve-networks'
docker exec -ti flux_retour_cfas_server bash -c 'yarn dossiersApprenants:retrieve-networks'
```

5.8 - Recherche des codes CFD des formations 'yarn formation:retrieve-from-cfd'
Expand All @@ -450,10 +444,10 @@ Dès le premier déploiement de l'application est recommandé de suivre la proc
docker exec -ti flux_retour_cfas_server bash -c 'yarn formation:retrieve-from-cfd'
```

5.9 - Mise à jour des niveau des statutsCandidats - dépend des codes CFD des formations (5.8) 'yarn statutsCandidats:retrieve-niveaux'
5.9 - Mise à jour des niveau des dossiersApprenants - dépend des codes CFD des formations (5.8) 'yarn dossiersApprenants:retrieve-niveaux'

```bash
docker exec -ti flux_retour_cfas_server bash -c 'yarn statutsCandidats:retrieve-niveaux'
docker exec -ti flux_retour_cfas_server bash -c 'yarn dossiersApprenants:retrieve-niveaux'
```

5.10 - Mise à jour des branchements des données des CFAs 'yarn cfas:retrieve-data-connection'
Expand All @@ -476,18 +470,18 @@ Ce script prend en arguments :
Exemple, identifier les doublons de type 1 (même combinaison prenom_apprenant/nom_apprenant/uai_etablissement/formation_cfd) sur toute la base :

```bash
docker exec -ti flux_retour_cfas_server bash -c 'yarn support:identify-statutsCandidats-duplicates --duplicatesTypeCode 1 --mode forAll'
docker exec -ti flux_retour_cfas_server bash -c 'yarn support:identify-dossiersApprenants-duplicates --duplicatesTypeCode 1 --mode forAll'
```

Exemple, identifier les doublons de type 2 (même combinaison prenom_apprenant/nom_apprenant/uai_etablissement mais formation_cfd différent) sur l'UAI 1234X avec l'utilisation d'allowDiskUse :

```bash
docker exec -ti flux_retour_cfas_server bash -c 'yarn support:identify-statutsCandidats-duplicates --duplicatesTypeCode 2 --mode forUai --uai 1234X --allowDiskUse'
docker exec -ti flux_retour_cfas_server bash -c 'yarn support:identify-dossiersApprenants-duplicates --duplicatesTypeCode 2 --mode forUai --uai 1234X --allowDiskUse'
```

### Script de suppression des doublons

Il est possible de lancer un script de suppression de différents types de doublons. Les statuts en doublons les moins récents seront supprimés et archivés dans la collection `statutsCandidatsDuplicatesRemoved`
Il est possible de lancer un script de suppression de différents types de doublons. Les dossiersApprenants en doublons les moins récents seront supprimés et archivés dans la collection `dossiersApprenantsDuplicatesRemoved`

Ce script prend les mêmes arguments que le script d'identification :

Expand All @@ -499,5 +493,5 @@ Ce script prend les mêmes arguments que le script d'identification :
Exemple, supprimer les doublons de type 1 (même combinaison prenom_apprenant/nom_apprenant/uai_etablissement/formation_cfd) sur toute la base :

```bash
docker exec -ti flux_retour_cfas_server bash -c 'yarn support:remove-statutsCandidats-duplicates --duplicatesTypeCode 1 --mode forAll'
docker exec -ti flux_retour_cfas_server bash -c 'yarn support:remove-dossiersApprenants-duplicates --duplicatesTypeCode 1 --mode forAll'
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module.exports = {
async up(db) {
await db.collection("statutsCandidatsDuplicatesRemoved").rename("dossiersApprenantsDuplicatesRemoved");
},

async down(db) {
await db.collection("dossiersApprenantsDuplicatesRemoved").rename("statutsCandidatsDuplicatesRemoved");
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module.exports = {
async up(db) {
await db.collection("statutsCandidatsDoublonsUais").rename("dossiersApprenantsDoublonsUais");
},

async down(db) {
await db.collection("dossiersApprenantsDoublonsUais").rename("statutsCandidatsDoublonsUais");
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module.exports = {
async up(db) {
await db.collection("statutsCandidatsDoublonsCfd").rename("dossiersApprenantsDoublonsCfd");
},

async down(db) {
await db.collection("dossiersApprenantsDoublonsCfd").rename("statutsCandidatsDoublonsCfd");
},
};
24 changes: 12 additions & 12 deletions server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,36 +30,36 @@
"users:create-erp-user": "node -r dotenv/config src/jobs/users/create-erp-user/index.js",
"users:generate-password-update-token": "node -r dotenv/config src/jobs/users/generate-password-update-token/index.js",
"clear:all": "node -r dotenv/config src/jobs/remove-data/clear/clearAll.js",
"clear:all-statutsCandidats": "node -r dotenv/config src/jobs/remove-data/clear/clearStatutsCandidats.js",
"clear:statutsCandidats-networks": "node -r dotenv/config src/jobs/remove-data/clear/clearStatutsCandidatsNetworks.js",
"clear:all-dossiersApprenants": "node -r dotenv/config src/jobs/remove-data/clear/clearDossiersApprenants.js",
"clear:dossiersApprenants-networks": "node -r dotenv/config src/jobs/remove-data/clear/clearDossiersApprenantsNetworks.js",
"clear:logs": "node -r dotenv/config src/jobs/remove-data/clear/clearLogs.js",
"clear:users": "node -r dotenv/config src/jobs/remove-data/clear/clearUsers.js",
"clear:cfas": "node -r dotenv/config src/jobs/remove-data/clear/clearCfas.js",
"remove:cfas-non-branches": "node -r dotenv/config src/jobs/remove-data/cfas-non-branches/index.js",
"remove:inscritsSansContrats-nonRecus-depuis": "node -r dotenv/config src/jobs/remove-data/statuts-inscritsSsContrats-nonRecus-depuis/index.js",
"remove:apprentis-nonRecus-depuis": "node -r dotenv/config src/jobs/remove-data/statuts-apprentis-nonRecus-depuis/index.js",
"remove:statutsCandidats-nonRecus-forUai": "node -r dotenv/config src/jobs/remove-data/statuts-nonRecus-forUai/index.js",
"remove:dossiersApprenants-nonRecus-forUai": "node -r dotenv/config src/jobs/remove-data/statuts-nonRecus-forUai/index.js",
"purge:events": "node -r dotenv/config src/jobs/remove-data/purgeEvents/index.js",
"formation:retrieve-from-cfd": "node -r dotenv/config src/jobs/formation-retrieve-from-cfd/index.js",
"create:effectifsApprenants-collection": "node -r dotenv/config src/jobs/create-effectifs-apprenants-collection/index.js",
"statutsCandidats:retrieve-formations-in-catalog": "node -r dotenv/config src/jobs/statutsCandidats-retrieve-formations-in-catalog/index.js",
"statutsCandidats:retrieve-networks": "node -r dotenv/config src/jobs/statutsCandidats-retrieve-networks/index.js",
"statutsCandidats:retrieve-niveaux": "node -r dotenv/config src/jobs/statutsCandidats-retrieve-niveaux/index.js",
"statutsCandidats:retrieve-sirets-catalogue": "node -r dotenv/config src/jobs/statutsCandidats-retrieve-sirets-catalogue/index.js",
"dossiersApprenants:retrieve-formations-in-catalog": "node -r dotenv/config src/jobs/dossiersApprenants-retrieve-formations-in-catalog/index.js",
"dossiersApprenants:retrieve-networks": "node -r dotenv/config src/jobs/dossiersApprenants-retrieve-networks/index.js",
"dossiersApprenants:retrieve-niveaux": "node -r dotenv/config src/jobs/dossiersApprenants-retrieve-niveaux/index.js",
"dossiersApprenants:retrieve-sirets-catalogue": "node -r dotenv/config src/jobs/dossiersApprenants-retrieve-sirets-catalogue/index.js",
"support:export-voeuxAffelnet": "node -r dotenv/config src/jobs/support/export-data-for-voeuxAffelnet/index.js",
"support:identify-network-duplicates": "node -r dotenv/config src/jobs/support/identify-network-duplicates/index.js",
"support:remove-statutsCandidats-duplicates": "node -r dotenv/config src/jobs/support/statutsCandidats-duplicates/remove-duplicates.js",
"support:remove-dossiersApprenants-duplicates": "node -r dotenv/config src/jobs/support/dossiersApprenants-duplicates/remove-duplicates.js",
"support:identify-uais-sirets-duplicates": "node -r dotenv/config src/jobs/support/identify-uais-sirets-duplicates/index.js",
"support:identify-uais-sirets-couples": "node -r dotenv/config src/jobs/support/identify-uais-sirets-couples/index.js",
"support:identify-uais-catalog": "node -r dotenv/config src/jobs/support/identify-uais-catalog/index.js",
"support:identify-uais-duplicates": "node -r dotenv/config src/jobs/support/statutsCandidats-duplicates-uais/identify.js",
"support:identify-cfd-duplicates": "node -r dotenv/config src/jobs/support/statutsCandidats-duplicates-cfd/identify.js",
"support:clean-uais-duplicates": "node -r dotenv/config src/jobs/support/statutsCandidats-duplicates-uais/clean.js",
"support:identify-uais-duplicates": "node -r dotenv/config src/jobs/support/dossiersApprenants-duplicates-uais/identify.js",
"support:identify-cfd-duplicates": "node -r dotenv/config src/jobs/support/dossiersApprenants-duplicates-cfd/identify.js",
"support:clean-uais-duplicates": "node -r dotenv/config src/jobs/support/dossiersApprenants-duplicates-uais/clean.js",
"retrieve-formation-rncp-in-tco": "node -r dotenv/config src/jobs/retrieve-formation-rncp-in-tco/index.js",
"retrieve-location-from-uai": "node -r dotenv/config src/jobs/retrieve-location-from-uai/index.js",
"cache:warmup": "node -r dotenv/config src/jobs/warm-effectifs-cache/index.js",
"indexes:create": "node -r dotenv/config src/jobs/create-indexes/index.js",
"repost:lastStatuts-to-env": "node -r dotenv/config src/jobs/repost-last-statuts-received-to-env/index.js",
"repost:latest-dossiersApprenants-to-env": "node -r dotenv/config src/jobs/repost-latest-dossiersApprenants-received-to-env/index.js",
"migration:create": "migrate-mongo create",
"migration:up": "migrate-mongo up",
"migration:down": "migrate-mongo down",
Expand Down
18 changes: 9 additions & 9 deletions server/src/common/constants/jobsConstants.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,22 @@ const JOB_NAMES = {
identifyUaisSiretsDuplicates: "identify-uais-sirets-duplicates",
identifyNetworkDuplicates: "identify-network-duplicates",
formationRetrieveFromCfd: "formation-retrieve-from-cfd",
dossiersApprenantsRetrieveNetworks: "statutsCandidats-retrieve-networks",
dossiersApprenantsRetrieveNiveaux: "statutsCandidats-retrieve-niveaux",
dossiersApprenantsRetrieveSiretCatalog: "statutsCandidats-retrieve-siret-catalog",
dossiersApprenantsRetrieveFormationsInCatalog: "statutsCandidats-retrieve-formation-in-catalog",
dossiersApprenantsBadHistoryIdentifyAntidated: "statutsCandidats-bad-history-identify-antidated",
dossiersApprenantsBadHistoryCleanAntidated: "statutsCandidats-bad-history-clean-antidated",
dossiersApprenantsRetrieveNetworks: "dossiersApprenants-retrieve-networks",
dossiersApprenantsRetrieveNiveaux: "dossiersApprenants-retrieve-niveaux",
dossiersApprenantsRetrieveSiretCatalog: "dossiersApprenants-retrieve-siret-catalog",
dossiersApprenantsRetrieveFormationsInCatalog: "dossiersApprenants-retrieve-formation-in-catalog",
dossiersApprenantsBadHistoryIdentifyAntidated: "dossiersApprenants-bad-history-identify-antidated",
dossiersApprenantsBadHistoryCleanAntidated: "dossiersApprenants-bad-history-clean-antidated",
createIndexes: "create-indexes",
createEffectifsApprenantsCollection: "create-effectifs-apprenants-collection",
clearUsers: "clear-users",
clearCfas: "clear-cfas",
clearDossiersApprenants: "clear-statuts-candidats",
clearDossiersApprenantsNetworks: "clear-statuts-candidats-networks",
clearDossiersApprenants: "clear-dossiersApprenants",
clearDossiersApprenantsNetworks: "clear-dossiersApprenants-networks",
clearLogs: "clear-logs",
clearAll: "clear-all",
exportDataForVoeuxAffelnet: "export-data-for-voeuxAffelnet",
repostLastStatutsReceived: "repost-last-statuts-received",
repostLatestDossiersApprenantsReceived: "repost-latest-dossiersApprenants-received",
warmUpCache: "warm-up-cache",
retrieveRncp: "retrieve-rncp-in-tco-for-cfds",
createErpUser: "users:create-erp-user",
Expand Down
2 changes: 1 addition & 1 deletion server/src/common/model/schema/croisementVoeuxAffelnet.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@ module.exports = new Schema({
},
annee_scolaire: {
type: String,
description: 'Année scolaire sur laquelle le statut candidat est enregistré (ex: "2020-2021")',
description: 'Année scolaire sur laquelle le dossierApprenant est enregistré (ex: "2020-2021")',
},
});
8 changes: 4 additions & 4 deletions server/src/common/model/schema/effectifsApprenants.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ module.exports = new Schema({
formation_cfd: {
type: String,
default: null,
description: "CFD de la formation du candidat",
description: "CFD de la formation du dossierApprenant",
index: true,
},
periode_formation: {
Expand All @@ -46,7 +46,7 @@ module.exports = new Schema({
},
annee_scolaire: {
type: String,
description: 'Année scolaire sur laquelle le statut candidat est enregistré (ex: "2020-2021")',
description: 'Année scolaire sur laquelle le dossierApprenant est enregistré (ex: "2020-2021")',
},
code_commune_insee_apprenant: {
type: String,
Expand Down Expand Up @@ -76,12 +76,12 @@ module.exports = new Schema({
formation_rncp: {
type: String,
default: null,
description: "Code RNCP de la formation du candidat",
description: "Code RNCP de la formation du dossierApprenant",
},
indicateur_effectif: {
type: String,
default: null,
description: "Indicateur lié au statut candidat",
description: "Indicateur lié au dossierApprenant",
},
updated_at: {
type: Date,
Expand Down
6 changes: 3 additions & 3 deletions server/src/http/routes/dossiers-apprenants.route.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const { findAndPaginate } = require("../../common/utils/dbUtils");
const { sendJsonStream } = require("../../common/utils/httpUtils");
const { oleoduc, transformIntoJSON } = require("oleoduc");

const POST_STATUTS_CANDIDATS_MAX_INPUT_LENGTH = 100;
const POST_DOSSIERS_APPRENANTS_MAX_INPUT_LENGTH = 100;

module.exports = ({ dossiersApprenants, userEvents, db }) => {
const router = express.Router();
Expand Down Expand Up @@ -79,7 +79,7 @@ module.exports = ({ dossiersApprenants, userEvents, db }) => {
*/
router.post(
"/",
validateRequestBody(Joi.array().max(POST_STATUTS_CANDIDATS_MAX_INPUT_LENGTH)),
validateRequestBody(Joi.array().max(POST_DOSSIERS_APPRENANTS_MAX_INPUT_LENGTH)),
tryCatch(async (req, res) => {
try {
let nbItemsValid = 0;
Expand Down Expand Up @@ -133,7 +133,7 @@ module.exports = ({ dossiersApprenants, userEvents, db }) => {
validationErrors,
});
} catch (err) {
logger.error("POST StatutCandidat error : " + err);
logger.error("POST /dossiers-apprenants error : " + err);
res.status(400).json({
status: "ERROR",
message: err.message,
Expand Down
7 changes: 2 additions & 5 deletions server/src/jobs/constants.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
const collectionNames = {
statutsAvecDatesInvalidesDansHistorique: "statutsAvecDatesInvalidesDansHistorique",
statutsAvecHistoriqueSansOrdreChronologique: "statutsAvecHistoriqueSansOrdreChronologique",
statutsAvecDerniersElementsHistoriqueDateIdentique: "statutsAvecDerniersElementsHistoriqueDateIdentique",
statutsCandidatsDoublonsUais: "statutsCandidatsDoublonsUais",
statutsCandidatsDoublonsCfd: "statutsCandidatsDoublonsCfd",
dossiersApprenantsDoublonsUais: "dossiersApprenantsDoublonsUais",
dossiersApprenantsDoublonsCfd: "dossiersApprenantsDoublonsCfd",
};

module.exports = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const { JOB_NAMES } = require("../../../common/constants/jobsConstants");
const { clearDossiersApprenants } = require("./utils/clearUtils");

runScript(async () => {
logger.info("Suppression de tous les DossierApprenant ....");
logger.info("Suppression de tous les documents de la collection dossiersApprenants ....");
await clearDossiersApprenants();
logger.info("DossiersApprenants supprimés avec succès !");
logger.info("Tous les documents de la collection dossiersApprenant ont été supprimés avec succès !");
}, JOB_NAMES.clearDossiersApprenants);
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ const { JOB_NAMES } = require("../../../common/constants/jobsConstants");
const { DossierApprenantModel } = require("../../../common/model");

runScript(async () => {
logger.info("Suppression de tous réseaux des statuts cfas ....");
logger.info("Suppression du champ etablissement_reseaux de tous les documents dossiersApprenants ....");
await DossierApprenantModel.updateMany({}, { $unset: { etablissement_reseaux: 1 } });
logger.info("Tous les réseaux des statuts cfas ont été supprimés avec succès !");
logger.info(
"Suppression du champ etablissement_reseaux de tous les documents dossiersApprenants terminée avec succès !"
);
}, JOB_NAMES.clearDossiersApprenantsNetworks);
Loading

0 comments on commit 0acd56a

Please sign in to comment.