From 1ce1801429b34cee01925a1da7e676c853c4c4c2 Mon Sep 17 00:00:00 2001 From: Mathias Chouet <mathias.chouet@irstea.fr> Date: Thu, 7 May 2020 15:49:16 +0200 Subject: [PATCH] Verificateur: manage variating passes --- .../verificateur-results.component.ts | 9 ++++++--- .../definition/form-verificateur.ts | 19 +++++++++++++------ src/app/results/verificateur-results.ts | 5 +++++ src/locale/messages.en.json | 2 ++ src/locale/messages.fr.json | 4 ++++ 5 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/app/components/verificateur-results/verificateur-results.component.ts b/src/app/components/verificateur-results/verificateur-results.component.ts index 08c3ef53c..2222240c5 100644 --- a/src/app/components/verificateur-results/verificateur-results.component.ts +++ b/src/app/components/verificateur-results/verificateur-results.component.ts @@ -101,8 +101,6 @@ export class VerificateurResultsComponent extends ResultsComponentDirective impl if (this._verificateurResults) { // = 0 lorsque rien ne varie const vi = this._verificateurResults.variableIndex; - // log du Verificateur pour l'itération en cours - const element = { message: Message, subLog: cLog }; if ( this._verificateurResults.result && this._verificateurResults.result.hasResultElements() @@ -123,7 +121,12 @@ export class VerificateurResultsComponent extends ResultsComponentDirective impl if (l.length === this._verificateurResults.especeResults.length) { for (let i = 0; i < this._verificateurResults.especeResults.length; i++) { const er = this._verificateurResults.especeResults[i]; - if (er && er.hasResultElements() && er.resultElements[vi].hasLog()) { + if ( + er + && er.hasResultElements() + && er.resultElements[vi] + && er.resultElements[vi].hasLog()) + { l[i].subLog.addLog(er.resultElements[vi].log); } } diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts index 3059f51c5..ad7f3fffc 100644 --- a/src/app/formulaire/definition/form-verificateur.ts +++ b/src/app/formulaire/definition/form-verificateur.ts @@ -4,6 +4,8 @@ import { SelectFieldCustom } from "../elements/select-field-custom"; import { FormulaireFixedVar } from "./form-fixedvar"; import { VerificateurResults } from "../../results/verificateur-results"; import { CalculatorResults } from "../../results/calculator-results"; +import { NgParameter } from "../elements/ngparam"; +import { ServiceFactory } from "../../services/service-factory"; /** * Formulaire pour les Vérificateurs @@ -34,18 +36,23 @@ export class FormulaireVerificateur extends FormulaireFixedVar { this.reaffectResultComponents(); } + protected findPassVariatedParameters(): NgParameter[] { + let pvp = [] + const passUid = this.verificateurNub.nubToVerify.uid; + const passForm = ServiceFactory.instance.formulaireService.getFormulaireFromNubId(passUid); + pvp = passForm.getVariatedParameters(); + return pvp; + } + protected reaffectResultComponents() { const ver: Verificateur = (this.currentNub as Verificateur); - // const varParams: NgParameter[] = this.getVariatedParameters(); // résultat de calcul de la passe à macrorugo complexe const vr = this.verificateurResults; - // vr.calculatedParameter = computedParam; vr.result = ver.result; - /* if (varParams) { - vr.variatedParameters = varParams; - } */ - vr.variatedParameters = []; + + // paramètres qui varient, pour le sélecteur d'itération + vr.variatedParameters = this.findPassVariatedParameters(); // résultat de chaque Espece const er: Result[] = []; diff --git a/src/app/results/verificateur-results.ts b/src/app/results/verificateur-results.ts index 304785720..59b1cdd26 100644 --- a/src/app/results/verificateur-results.ts +++ b/src/app/results/verificateur-results.ts @@ -7,6 +7,11 @@ export class VerificateurResults extends MultiDimensionResults { /** résultats des modules Espece */ public especeResults: Result[]; + public constructor() { + super(); + this.reset(); + } + public reset() { super.reset(); this.especeResults = []; diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json index 8f6a2e6fa..728fc8d75 100644 --- a/src/locale/messages.en.json +++ b/src/locale/messages.en.json @@ -555,6 +555,7 @@ "INFO_TRIGO_TITRE": "Trigonometric function", "INFO_TRIGO_TITRE_COURT": "Trigo. f.", "INFO_VERIF_OK": "Crossing criteria are met for all species", + "INFO_VERIF_VARYING_OK": "Crossing criteria are met for all species and all pass modalities", "WARNING_VERIF_OK_BUT": "Crossing criteria are met for all species, but there are warnings", "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Custom species: %s", "INFO_VERIFICATEUR_SPECIES_GROUP": "Species group", @@ -641,6 +642,7 @@ "ERROR_VERIF_PAR_DH": "Downstream pass fall prevents crossability", "ERROR_VERIF_PAR_YMIN": "Water level %h% too low (minimum: %minY%)", "ERROR_VERIF_KO": "Crossability criteria are not met for at least one species group", + "ERROR_VERIF_VARYING_KO": "Crossability criteria are not met for at least one species group, for all pass modalities", "ERROR_VERIF_SPECIES_GROUP_KO": "Crossability criteria are not met for species group ENUM_%speciesGroup%", "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "Crossability criteria are met for species group ENUM_%speciesGroup%, but there are warnings", "INFO_VERIF_SPECIES_GROUP_OK": "Crossability criteria are met for species group ENUM_%speciesGroup%", diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json index 14a4a2934..9a77d60bd 100644 --- a/src/locale/messages.fr.json +++ b/src/locale/messages.fr.json @@ -556,7 +556,9 @@ "INFO_TRIGO_TITRE": "Fonction trigonométrique", "INFO_TRIGO_TITRE_COURT": "F. trigo.", "INFO_VERIF_OK": "Les critères de franchissement sont remplis pour toutes les espèces", + "INFO_VERIF_VARYING_OK": "Les critères de franchissement sont remplis pour toutes les espèces et toutes les modalités de la passe", "WARNING_VERIF_OK_BUT": "Les critères de franchissement sont remplis pour toutes les espèces, mais il y a des avertissements", + "WARNING_VERIF_VARYING_OK_BUT": "Seules certaines modalités de la passe sont franchissables", "INFO_VERIFICATEUR_CUSTOM_SPECIES": "Espèce personnalisée : %s", "INFO_VERIFICATEUR_SPECIES_GROUP": "Groupe d'espèces", "INFO_VERIFICATEUR_TITRE": "Vérification d'une passe", @@ -607,6 +609,7 @@ "INFO_PARENT_PREFIX": "%name% n°%position% : ", "INFO_PARENT_PREFIX_DOWNWALL": "cloison aval : ", "ERROR_VERIF_ERRORS_IN_PASS": "La passe à vérifier contient des erreurs", + "ERROR_VERIF_VARYING_ERRORS_IN_PASS": "La passe à vérifier contient des erreurs à l'itération %i%", "ERROR_VERIF_MR_VMAX": "Vitesse maximale %V% trop élevée (maximum : %maxV%)", "ERROR_VERIF_MR_YMIN": "Tirant d'eau %Y% insuffisant (minimum : %minY%)", "ERROR_VERIF_MRC_AT_LEAST_ONE_APRON": "Aucun des radiers n'est franchissable", @@ -642,6 +645,7 @@ "ERROR_VERIF_PAR_DH": "La chute en pied de passe empêche le franchissement", "ERROR_VERIF_PAR_YMIN": "Tirant d'eau %h% insuffisant (minimum : %minY%)", "ERROR_VERIF_KO": "Le franchissement est impossible pour au moins un groupe d'espèces", + "ERROR_VERIF_VARYING_KO": "Le franchissement est impossible pour au moins un groupe d'espèces, pour toutes les modalités de la passe", "ERROR_VERIF_SPECIES_GROUP_KO": "ENUM_%speciesGroup% : franchissement impossible", "WARNING_VERIF_SPECIES_GROUP_OK_BUT": "ENUM_%speciesGroup% : OK, avec des avertissements", "INFO_VERIF_SPECIES_GROUP_OK": "ENUM_%speciesGroup% : OK", -- GitLab