Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 118a55d7 by Tony Chemit at 2024-02-15T07:04:08+01:00 En 9.2.2, impossible de créer une marée en mode serveur - Closes #2838 - - - - - 7073ca15 by Tony Chemit at 2024-02-15T09:09:20+01:00 Fix DtoFormValidatorTransformer on timeStampAfter validation - See #2837 - - - - - b41a9d7b by Tony Chemit at 2024-02-15T09:31:17+01:00 Sur PS / Observations / Calée, les contrôles sur les dates/heures ne fonctionnent plus correctement - Closes #2837 - - - - - 18 changed files: - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/common/TripUIHandler.java - core/api/validation/src/main/filtered-resources/META-INF/validators/validation.json - core/api/validation/src/main/i18n/getters/eugene.getter - core/api/validation/src/main/i18n/getters/validation-messages.getter - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SetDto-create-error-validation.xml - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SetDto-create-warning-validation.xml - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SetDto-update-error-validation.xml - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SetDto-update-warning-validation.xml - core/persistence/resources/src/main/resources/fr/ird/observe/entities/data/ps/observation/Set/validation-create.json - core/persistence/resources/src/main/resources/fr/ird/observe/entities/data/ps/observation/Set/validation-update.json - core/services/i18n/src/main/i18n/translations/services_en_GB.properties - core/services/i18n/src/main/i18n/translations/services_es_ES.properties - core/services/i18n/src/main/i18n/translations/services_fr_FR.properties - model/src/main/models/Observe/dto/attribute/timeAfter.properties - model/src/main/models/Observe/dto/attribute/timestampAfter.properties - model/src/main/models/Observe/dto/attribute/timeAfterWarning.properties → model/src/main/models/Observe/dto/attribute/timestampAfterWarning.properties - toolkit/templates/src/main/java/fr/ird/observe/toolkit/templates/validation/DtoFormValidatorTransformer.java - toolkit/templates/src/main/java/fr/ird/observe/toolkit/templates/validation/ValidationTagValues.java Changes: ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/common/TripUIHandler.java ===================================== @@ -38,7 +38,7 @@ class TripUIHandler extends GeneratedTripUIHandler { public void startEditUI() { TripDto bean = getModel().getStates().getBean(); // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2729#note_1472547867 - if (bean.getActivitiesAcquisitionModeByTimeEnabled() == null) { + if (bean.isPersisted() && bean.getActivitiesAcquisitionModeByTimeEnabled() == null) { // compute it boolean activitiesAcquisitionModeByTimeEnabled = getPsCommonTripService().isActivitiesAcquisitionModeByTimeEnabled(bean.getId()); // set it to bean (will be used then by validation on field activitiesAcquisitionMode) ===================================== core/api/validation/src/main/filtered-resources/META-INF/validators/validation.json ===================================== @@ -14657,10 +14657,10 @@ ] }, { - "name": "endTime", + "name": "endTimeStamp", "comments": [ - "endTime >= haulingEndTime and max delay is 45 minutes", - "endTime >= startTime" + "endTimeStamp >= haulingEndTimeStamp and min delay is 45 minutes", + "endTimeStamp >= startTime" ] }, { @@ -14670,9 +14670,9 @@ ] }, { - "name": "haulingEndTime", + "name": "haulingEndTimeStamp", "comments": [ - "haulingEndTime >= startTime" + "haulingEndTimeStamp >= startTime" ] }, { @@ -14754,9 +14754,9 @@ ] }, { - "name": "endTime", + "name": "endTimeStamp", "comments": [ - "endTime >= startTime and max delay is 300 minutes" + "endTimeStamp >= startTime and max delay is 300 minutes" ] }, { @@ -14813,10 +14813,10 @@ ] }, { - "name": "endTime", + "name": "endTimeStamp", "comments": [ - "endTime >= haulingEndTime and max delay is 45 minutes", - "endTime >= startTime" + "endTimeStamp >= haulingEndTimeStamp and min delay is 45 minutes", + "endTimeStamp >= startTime" ] }, { @@ -14826,9 +14826,9 @@ ] }, { - "name": "haulingEndTime", + "name": "haulingEndTimeStamp", "comments": [ - "haulingEndTime >= startTime" + "haulingEndTimeStamp >= startTime" ] }, { @@ -14910,9 +14910,9 @@ ] }, { - "name": "endTime", + "name": "endTimeStamp", "comments": [ - "endTime >= startTime and max delay is 300 minutes" + "endTimeStamp >= startTime and max delay is 300 minutes" ] }, { ===================================== core/api/validation/src/main/i18n/getters/eugene.getter ===================================== @@ -359,8 +359,10 @@ observe.data.ps.observation.SchoolEstimate.meanWeight observe.data.ps.observation.SchoolEstimate.species observe.data.ps.observation.SchoolEstimate.totalWeight observe.data.ps.observation.Set.currentMeasureDepth +observe.data.ps.observation.Set.endTimeStamp observe.data.ps.observation.Set.haulingEndDate observe.data.ps.observation.Set.haulingEndTime +observe.data.ps.observation.Set.haulingEndTimeStamp observe.data.ps.observation.Set.haulingStartTimeStamp observe.data.ps.observation.Set.maxGearDepth observe.data.ps.observation.Set.schoolMeanDepth ===================================== core/api/validation/src/main/i18n/getters/validation-messages.getter ===================================== @@ -111,12 +111,12 @@ observe.data.ps.observation.SampleMeasure.weight.validation.required observe.data.ps.observation.SchoolEstimate.meanWeight.validation.required observe.data.ps.observation.SchoolEstimate.totalWeight.validation.required observe.data.ps.observation.Set.validation.endDate.after.haulingEndDate -observe.data.ps.observation.Set.validation.endTime.after.haulingEndTime -observe.data.ps.observation.Set.validation.endTime.after.startTime -observe.data.ps.observation.Set.validation.endTime.delay.too.long -observe.data.ps.observation.Set.validation.endTime.delay.too.short +observe.data.ps.observation.Set.validation.endTimeStamp.after.haulingEndTimeStamp +observe.data.ps.observation.Set.validation.endTimeStamp.after.startTime +observe.data.ps.observation.Set.validation.endTimeStamp.delay.too.long +observe.data.ps.observation.Set.validation.endTimeStamp.delay.too.short observe.data.ps.observation.Set.validation.haulingEndDate.after.currentPsObservationRoute.date -observe.data.ps.observation.Set.validation.haulingEndTime.after.startTime +observe.data.ps.observation.Set.validation.haulingEndTimeStamp.after.startTime observe.data.ps.observation.Set.validation.haulingStartTimeStamp.after.startTime observe.data.ps.observation.Set.validation.startTime.after.currentPsObservationActivity.time observe.referential.Referential.validation.disabled ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SetDto-create-error-validation.xml ===================================== @@ -86,18 +86,18 @@ </field-validator> </field> - <field name="endTime"> - <!-- endTime >= startTime --> - <field-validator type="timeAfter"> + <field name="endTimeStamp"> + <!-- endTimeStamp >= startTime --> + <field-validator type="timestampAfter"> <param name="otherDateProperty">startTime</param> - <message>observe.data.ps.observation.Set.validation.endTime.after.startTime##${startDate}##${endDate}</message> + <message>observe.data.ps.observation.Set.validation.endTimeStamp.after.startTime##${startDate}##${endDate}</message> </field-validator> - <!-- endTime >= haulingEndTime and max delay is 45 minutes --> - <field-validator type="timeAfter"> - <param name="otherDateProperty">haulingEndTime</param> + <!-- endTimeStamp >= haulingEndTimeStamp and min delay is 45 minutes --> + <field-validator type="timestampAfter"> + <param name="otherDateProperty">haulingEndTimeStamp</param> <param name="minDelayInMinutes">45</param> - <param name="delayErrorMessage">observe.data.ps.observation.Set.validation.endTime.delay.too.short##${delayInMinutes}##${minDelayInMinutes}</param> - <message>observe.data.ps.observation.Set.validation.endTime.after.haulingEndTime##${startDate}##${endDate}</message> + <param name="delayErrorMessage">observe.data.ps.observation.Set.validation.endTimeStamp.delay.too.short##${delayInMinutes}##${minDelayInMinutes}</param> + <message>observe.data.ps.observation.Set.validation.endTimeStamp.after.haulingEndTimeStamp##${startDate}##${endDate}</message> </field-validator> </field> @@ -109,11 +109,11 @@ </field-validator> </field> - <field name="haulingEndTime"> - <!-- haulingEndTime >= startTime --> - <field-validator type="timeAfter"> + <field name="haulingEndTimeStamp"> + <!-- haulingEndTimeStamp >= startTime --> + <field-validator type="timestampAfter"> <param name="otherDateProperty">startTime</param> - <message>observe.data.ps.observation.Set.validation.haulingEndTime.after.startTime##${startDate}##${endDate}</message> + <message>observe.data.ps.observation.Set.validation.haulingEndTimeStamp.after.startTime##${startDate}##${endDate}</message> </field-validator> </field> ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SetDto-create-warning-validation.xml ===================================== @@ -31,13 +31,13 @@ </field-validator> </field> - <field name="endTime"> - <!-- endTime >= startTime and max delay is 300 minutes --> - <field-validator type="timeAfter"> + <field name="endTimeStamp"> + <!-- endTimeStamp >= startTime and max delay is 300 minutes --> + <field-validator type="timestampAfter"> <param name="otherDateProperty">startTime</param> <param name="maxDelayInMinutes">300</param> - <param name="delayErrorMessage">observe.data.ps.observation.Set.validation.endTime.delay.too.long##${delayInMinutes}##${maxDelayInMinutes}</param> - <message>observe.data.ps.observation.Set.validation.endTime.after.startTime##${startDate}##${endDate}</message> + <param name="delayErrorMessage">observe.data.ps.observation.Set.validation.endTimeStamp.delay.too.long##${delayInMinutes}##${maxDelayInMinutes}</param> + <message>observe.data.ps.observation.Set.validation.endTimeStamp.after.startTime##${startDate}##${endDate}</message> </field-validator> </field> ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SetDto-update-error-validation.xml ===================================== @@ -86,18 +86,18 @@ </field-validator> </field> - <field name="endTime"> - <!-- endTime >= startTime --> - <field-validator type="timeAfter"> + <field name="endTimeStamp"> + <!-- endTimeStamp >= startTime --> + <field-validator type="timestampAfter"> <param name="otherDateProperty">startTime</param> - <message>observe.data.ps.observation.Set.validation.endTime.after.startTime##${startDate}##${endDate}</message> + <message>observe.data.ps.observation.Set.validation.endTimeStamp.after.startTime##${startDate}##${endDate}</message> </field-validator> - <!-- endTime >= haulingEndTime and max delay is 45 minutes --> - <field-validator type="timeAfter"> - <param name="otherDateProperty">haulingEndTime</param> + <!-- endTimeStamp >= haulingEndTimeStamp and min delay is 45 minutes --> + <field-validator type="timestampAfter"> + <param name="otherDateProperty">haulingEndTimeStamp</param> <param name="minDelayInMinutes">45</param> - <param name="delayErrorMessage">observe.data.ps.observation.Set.validation.endTime.delay.too.short##${delayInMinutes}##${minDelayInMinutes}</param> - <message>observe.data.ps.observation.Set.validation.endTime.after.haulingEndTime##${startDate}##${endDate}</message> + <param name="delayErrorMessage">observe.data.ps.observation.Set.validation.endTimeStamp.delay.too.short##${delayInMinutes}##${minDelayInMinutes}</param> + <message>observe.data.ps.observation.Set.validation.endTimeStamp.after.haulingEndTimeStamp##${startDate}##${endDate}</message> </field-validator> </field> @@ -109,11 +109,11 @@ </field-validator> </field> - <field name="haulingEndTime"> - <!-- haulingEndTime >= startTime --> - <field-validator type="timeAfter"> + <field name="haulingEndTimeStamp"> + <!-- haulingEndTimeStamp >= startTime --> + <field-validator type="timestampAfter"> <param name="otherDateProperty">startTime</param> - <message>observe.data.ps.observation.Set.validation.haulingEndTime.after.startTime##${startDate}##${endDate}</message> + <message>observe.data.ps.observation.Set.validation.haulingEndTimeStamp.after.startTime##${startDate}##${endDate}</message> </field-validator> </field> ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SetDto-update-warning-validation.xml ===================================== @@ -31,13 +31,13 @@ </field-validator> </field> - <field name="endTime"> - <!-- endTime >= startTime and max delay is 300 minutes --> - <field-validator type="timeAfter"> + <field name="endTimeStamp"> + <!-- endTimeStamp >= startTime and max delay is 300 minutes --> + <field-validator type="timestampAfter"> <param name="otherDateProperty">startTime</param> <param name="maxDelayInMinutes">300</param> - <param name="delayErrorMessage">observe.data.ps.observation.Set.validation.endTime.delay.too.long##${delayInMinutes}##${maxDelayInMinutes}</param> - <message>observe.data.ps.observation.Set.validation.endTime.after.startTime##${startDate}##${endDate}</message> + <param name="delayErrorMessage">observe.data.ps.observation.Set.validation.endTimeStamp.delay.too.long##${delayInMinutes}##${maxDelayInMinutes}</param> + <message>observe.data.ps.observation.Set.validation.endTimeStamp.after.startTime##${startDate}##${endDate}</message> </field-validator> </field> ===================================== core/persistence/resources/src/main/resources/fr/ird/observe/entities/data/ps/observation/Set/validation-create.json ===================================== @@ -31,13 +31,13 @@ "endDate >= haulingEndDate" ] }, - "endTime": { + "endTimeStamp": { "errors": [ - "endTime >= haulingEndTime and max delay is 45 minutes", - "endTime >= startTime" + "endTimeStamp >= haulingEndTimeStamp and min delay is 45 minutes", + "endTimeStamp >= startTime" ], "warnings": [ - "endTime >= startTime and max delay is 300 minutes" + "endTimeStamp >= startTime and max delay is 300 minutes" ] }, "haulingEndDate": { @@ -45,9 +45,9 @@ "haulingEndDate >= currentPsObservationRoute.date" ] }, - "haulingEndTime": { + "haulingEndTimeStamp": { "errors": [ - "haulingEndTime >= startTime" + "haulingEndTimeStamp >= startTime" ] }, "haulingStartTimeStamp": { ===================================== core/persistence/resources/src/main/resources/fr/ird/observe/entities/data/ps/observation/Set/validation-update.json ===================================== @@ -31,13 +31,13 @@ "endDate >= haulingEndDate" ] }, - "endTime": { + "endTimeStamp": { "errors": [ - "endTime >= haulingEndTime and max delay is 45 minutes", - "endTime >= startTime" + "endTimeStamp >= haulingEndTimeStamp and min delay is 45 minutes", + "endTimeStamp >= startTime" ], "warnings": [ - "endTime >= startTime and max delay is 300 minutes" + "endTimeStamp >= startTime and max delay is 300 minutes" ] }, "haulingEndDate": { @@ -45,9 +45,9 @@ "haulingEndDate >= currentPsObservationRoute.date" ] }, - "haulingEndTime": { + "haulingEndTimeStamp": { "errors": [ - "haulingEndTime >= startTime" + "haulingEndTimeStamp >= startTime" ] }, "haulingStartTimeStamp": { ===================================== core/services/i18n/src/main/i18n/translations/services_en_GB.properties ===================================== @@ -1488,8 +1488,13 @@ observe.data.ps.observation.Set.validation.endTime.after.haulingEndTime=End time observe.data.ps.observation.Set.validation.endTime.after.startTime=End time (%2$s) must be after start time (%1$s). observe.data.ps.observation.Set.validation.endTime.delay.too.long=Delay of set (%1$s minutes) is too long (maximum of %2$s minutes). observe.data.ps.observation.Set.validation.endTime.delay.too.short=Delay between start of set and end of pursing time (%1$s minutes) is too short (minimum of %2$s minutes). +observe.data.ps.observation.Set.validation.endTimeStamp.after.haulingEndTimeStamp=End time (%2$s) must be after end pursing time (%1$s). +observe.data.ps.observation.Set.validation.endTimeStamp.after.startTime=End time (%2$s) must be after start time (%1$s). +observe.data.ps.observation.Set.validation.endTimeStamp.delay.too.long=Delay of set (%1$s minutes) is too long (maximum of %2$s minutes). +observe.data.ps.observation.Set.validation.endTimeStamp.delay.too.short=Delay between start of set and end of pursing time (%1$s minutes) is too short (minimum of %2$s minutes). observe.data.ps.observation.Set.validation.haulingEndDate.after.currentPsObservationRoute.date=End pursing date (%2$s) must be after observation date (%1$s). observe.data.ps.observation.Set.validation.haulingEndTime.after.startTime=Pursing time (%2$s) must be after starting time (%1$s). +observe.data.ps.observation.Set.validation.haulingEndTimeStamp.after.startTime=End time (%2$s) must be after start time (%1$s). observe.data.ps.observation.Set.validation.haulingStartTimeStamp.after.startTime=Hauling start time (%2$s) must be after starting time (%1). observe.data.ps.observation.Set.validation.startTime.after.currentPsObservationActivity.time=Start time (%2$s) must be before end time (%1$s). observe.data.ps.observation.SetCatch.catches=Catches ===================================== core/services/i18n/src/main/i18n/translations/services_es_ES.properties ===================================== @@ -1488,8 +1488,13 @@ observe.data.ps.observation.Set.validation.endTime.after.haulingEndTime=La hora observe.data.ps.observation.Set.validation.endTime.after.startTime=End time (%2$s) must be after start time (%1$s). \#TODO observe.data.ps.observation.Set.validation.endTime.delay.too.long=La duración del lance (%1$s minutes) es elevada (máximo %2$s minutos). \#TODO observe.data.ps.observation.Set.validation.endTime.delay.too.short=La duración entre la hora final del lance y la de fin de recogida de la jareta debe (%1$s minutos) ser al menos de %1$s minutos. \#TODO +observe.data.ps.observation.Set.validation.endTimeStamp.after.haulingEndTimeStamp=La hora de fin (%2$s) debe ser superior o igual a la hora de fin de recogida de la jareta (%1$s). +observe.data.ps.observation.Set.validation.endTimeStamp.after.startTime=End time (%2$s) must be after start time (%1$s). \#TODO +observe.data.ps.observation.Set.validation.endTimeStamp.delay.too.long=La duración del lance (%1$s minutes) es elevada (máximo %2$s minutos). \#TODO +observe.data.ps.observation.Set.validation.endTimeStamp.delay.too.short=La duración entre la hora final del lance y la de fin de recogida de la jareta debe (%1$s minutos) ser al menos de %1$s minutos. \#TODO observe.data.ps.observation.Set.validation.haulingEndDate.after.currentPsObservationRoute.date=El día de final de recogida de la jareta (%2$s) debe ser superior o igual a la día de observación (%1$s). observe.data.ps.observation.Set.validation.haulingEndTime.after.startTime=La hora final de recogida de la jareta (%2$s) debe ser superior o igual a la hora de comienzo (%1$s). +observe.data.ps.observation.Set.validation.haulingEndTimeStamp.after.startTime=La hora final de recogida de la jareta (%2$s) debe ser superior o igual a la hora de comienzo (%1$s). observe.data.ps.observation.Set.validation.haulingStartTimeStamp.after.startTime=Hauling start time (%2$s) must be after starting time (%1$s). \#TODO observe.data.ps.observation.Set.validation.startTime.after.currentPsObservationActivity.time=La hora de inicio (%2$s) debe ser superior o igual a la hora de observación de la actividad (%1$s). observe.data.ps.observation.SetCatch.catches=Captura ===================================== core/services/i18n/src/main/i18n/translations/services_fr_FR.properties ===================================== @@ -1488,8 +1488,13 @@ observe.data.ps.observation.Set.validation.endTime.after.haulingEndTime=L'heure observe.data.ps.observation.Set.validation.endTime.after.startTime=L'heure de fin (%2$s) doit être supérieure ou égal à l'heure de de début (%1$s). observe.data.ps.observation.Set.validation.endTime.delay.too.long=La durée de la calée (%1$s minutes) est trop longue (maximum de %2$s minutes). observe.data.ps.observation.Set.validation.endTime.delay.too.short=La durée entre l'heure de fin de calée et l'heure de fin de coulissage (%1$s minutes) est trop courte (minimum de %2$s minutes). +observe.data.ps.observation.Set.validation.endTimeStamp.after.haulingEndTimeStamp=L'heure de fin (%2$s) doit être supérieure ou égal à l'heure de fin de coulissage (%1$s). +observe.data.ps.observation.Set.validation.endTimeStamp.after.startTime=L'heure de fin (%2$s) doit être supérieure ou égal à l'heure de de début (%1$s). +observe.data.ps.observation.Set.validation.endTimeStamp.delay.too.long=La durée de la calée (%1$s minutes) est trop longue (maximum de %2$s minutes). +observe.data.ps.observation.Set.validation.endTimeStamp.delay.too.short=La durée entre l'heure de fin de calée et l'heure de fin de coulissage (%1$s minutes) est trop courte (minimum de %2$s minutes). observe.data.ps.observation.Set.validation.haulingEndDate.after.currentPsObservationRoute.date=La date de fin de coulissage (%2$s) doit être supérieure ou égal à la date du jour d'observation (%1$s). observe.data.ps.observation.Set.validation.haulingEndTime.after.startTime=L'heure de fin de coulissage (%2$s) doit être supérieure ou égal à l'heure de début (%1$s). +observe.data.ps.observation.Set.validation.haulingEndTimeStamp.after.startTime=L'heure de fin de coulissage (%2$s) doit être supérieure ou égal à l'heure de début (%1$s). observe.data.ps.observation.Set.validation.haulingStartTimeStamp.after.startTime=L'heure de début de virage (%2$s) doit être supérieure ou égal à celle de début (%1$s). observe.data.ps.observation.Set.validation.startTime.after.currentPsObservationActivity.time=L'heure de début (%2$s) doit être supérieure ou égal à l'heure d'observation de l'activité (%1$s). observe.data.ps.observation.SetCatch.catches=Captures ===================================== model/src/main/models/Observe/dto/attribute/timeAfter.properties ===================================== @@ -21,6 +21,4 @@ ### data.ll.logbook.Activity.attribute.endTimeStamp=startTime data.ps.logbook.SampleSpecies.attribute.endTime=startTime -data.ps.observation.Set.attribute.endTimeStamp=startTime,haulingEndTimeStamp:-45 -data.ps.observation.Set.attribute.haulingEndTimeStamp=startTime data.ps.observation.Set.attribute.startTime=currentPsObservationActivity.time ===================================== model/src/main/models/Observe/dto/attribute/timestampAfter.properties ===================================== @@ -26,4 +26,6 @@ data.ll.observation.Set.attribute.settingEndTimeStamp=!settingStartTimeStamp data.ll.observation.Tdr.attribute.deploymentEnd=!fishingEnd data.ll.observation.Tdr.attribute.fishingEnd=!fishingStart data.ll.observation.Tdr.attribute.fishingStart=!deploymentStart +data.ps.observation.Set.attribute.endTimeStamp=startTime,haulingEndTimeStamp:-45 +data.ps.observation.Set.attribute.haulingEndTimeStamp=startTime data.ps.observation.Set.attribute.haulingStartTimeStamp=startTime ===================================== model/src/main/models/Observe/dto/attribute/timeAfterWarning.properties → model/src/main/models/Observe/dto/attribute/timestampAfterWarning.properties ===================================== ===================================== toolkit/templates/src/main/java/fr/ird/observe/toolkit/templates/validation/DtoFormValidatorTransformer.java ===================================== @@ -393,7 +393,7 @@ public class DtoFormValidatorTransformer extends ObjectModelTransformerToJava { " <message>%3$s##${startDate}##${endDate}</message>\n" + " </field-validator>\n"; private static final String TIME_AFTER_WITH_MIN_DELAY_FIELD_TEMPLATE = - " <!-- %1$s >= %2$s and max delay is %4$s minutes -->\n" + + " <!-- %1$s >= %2$s and min delay is %4$s minutes -->\n" + " <field-validator type=\"timeAfter\">\n" + " <param name=\"otherDateProperty\">%2$s</param>\n" + " <param name=\"minDelayInMinutes\">%4$s</param>\n" + @@ -409,7 +409,7 @@ public class DtoFormValidatorTransformer extends ObjectModelTransformerToJava { " <message>%3$s##${startDate}##${endDate}</message>\n" + " </field-validator>\n"; private static final String TIMESTAMP_AFTER_WITH_MIN_DELAY_FIELD_TEMPLATE = - " <!-- %1$s >= %2$s and max delay is %4$s minutes -->\n" + + " <!-- %1$s >= %2$s and min delay is %4$s minutes -->\n" + " <field-validator type=\"timestampAfter\">\n" + " <param name=\"otherDateProperty\">%2$s</param>\n" + " <param name=\"minDelayInMinutes\">%4$s</param>\n" + @@ -622,8 +622,8 @@ public class DtoFormValidatorTransformer extends ObjectModelTransformerToJava { Map<String, String> dayAfter = getStringProperties(beanClass, attributes, (c, a) -> validationTagValues.getDayAfter(tagValuesStore, c, a)); Map<String, String> dayAfterWarning = getStringProperties(beanClass, attributes, (c, a) -> validationTagValues.getDayAfterWarning(tagValuesStore, c, a)); Map<String, String> timeAfter = getStringProperties(beanClass, attributes, (c, a) -> validationTagValues.getTimeAfter(tagValuesStore, c, a)); - Map<String, String> timeAfterWarning = getStringProperties(beanClass, attributes, (c, a) -> validationTagValues.getTimeAfterWarning(tagValuesStore, c, a)); Map<String, String> timestampAfter = getStringProperties(beanClass, attributes, (c, a) -> validationTagValues.getTimestampAfter(tagValuesStore, c, a)); + Map<String, String> timestampAfterWarning = getStringProperties(beanClass, attributes, (c, a) -> validationTagValues.getTimestampAfterWarning(tagValuesStore, c, a)); List<String> mandatory = TemplateContract.getProperties(beanClass, attributes, (c, a) -> validationTagValues.isNotNull(tagValuesStore, c, a) && !"String".equals(GeneratorUtil.getSimpleName(a.getType()))); List<String> mandatoryString = TemplateContract.getProperties(beanClass, attributes, (c, a) -> validationTagValues.isNotNull(tagValuesStore, c, a) && "String".equals(GeneratorUtil.getSimpleName(a.getType()))); List<String> mandatoryCollection = TemplateContract.getProperties(beanClass, attributes, (c, a) -> validationTagValues.isNotNull(tagValuesStore, c, a) && GeneratorUtil.isNMultiplicity(a)); @@ -690,7 +690,7 @@ public class DtoFormValidatorTransformer extends ObjectModelTransformerToJava { return String.format(MANDATORY_IF_STRING_FIELD_TEMPLATE, f, value, i18n); }); - addTemporalValidators(dayBefore, dayAfter, dayAfterWarning, timeAfter, timeAfterWarning, timestampAfter); + addTemporalValidators(dayBefore, dayAfter, dayAfterWarning, timeAfter, timestampAfter, timestampAfterWarning); addErrorValidators(positiveNumber, POSITIVE_NUMBER_FIELD_TEMPLATE); addErrorValidators(strictlyPositiveNumber, STRICTLY_POSITIVE_NUMBER_FIELD_TEMPLATE); @@ -802,7 +802,7 @@ public class DtoFormValidatorTransformer extends ObjectModelTransformerToJava { addUserValidators(userValidators, dtoClazz); } - private void addTemporalValidators(Map<String, String> dayBefore, Map<String, String> dayAfter, Map<String, String> dayAfterWarning, Map<String, String> timeAfter, Map<String, String> timeAfterWarning, Map<String, String> timestampAfter) { + private void addTemporalValidators(Map<String, String> dayBefore, Map<String, String> dayAfter, Map<String, String> dayAfterWarning, Map<String, String> timeAfter, Map<String, String> timestampAfter, Map<String, String> timestampAfterWarning) { addErrorValidators(dayBefore, (f, v) -> { String values = (String) v; StringBuilder result = new StringBuilder(); @@ -923,10 +923,10 @@ public class DtoFormValidatorTransformer extends ObjectModelTransformerToJava { if (delay.startsWith("-")) { delay = delay.substring(1); template = TIMESTAMP_AFTER_WITH_MIN_DELAY_FIELD_TEMPLATE; - i18n2 = labelsBuilder.getI18nPropertyKey(dtoClazz, String.format("validation.%s.delay.too.long", f)); + i18n2 = labelsBuilder.getI18nPropertyKey(dtoClazz, String.format("validation.%s.delay.too.short", f)); } else { template = TIMESTAMP_AFTER_WITH_MAX_DELAY_FIELD_TEMPLATE; - i18n2 = labelsBuilder.getI18nPropertyKey(dtoClazz, String.format("validation.%s.delay.too.short", f)); + i18n2 = labelsBuilder.getI18nPropertyKey(dtoClazz, String.format("validation.%s.delay.too.long", f)); } value = value.substring(0, index); String i18n = labelsBuilder.getI18nPropertyKey(dtoClazz, String.format("validation.%s.after.%s", f, value)); @@ -948,7 +948,7 @@ public class DtoFormValidatorTransformer extends ObjectModelTransformerToJava { } return result.toString(); }); - addWarningValidators(timeAfterWarning, (f, v) -> { + addWarningValidators(timestampAfterWarning, (f, v) -> { String values = (String) v; StringBuilder result = new StringBuilder(); for (String value : values.split("\\s*,\\s*")) { @@ -960,11 +960,11 @@ public class DtoFormValidatorTransformer extends ObjectModelTransformerToJava { String i18n2; if (delay.startsWith("-")) { delay = delay.substring(1); - template = TIME_AFTER_WITH_MIN_DELAY_FIELD_TEMPLATE; + template = TIMESTAMP_AFTER_WITH_MIN_DELAY_FIELD_TEMPLATE; i18n2 = labelsBuilder.getI18nPropertyKey(dtoClazz, String.format("validation.%s.delay.too.short", f)); } else { i18n2 = labelsBuilder.getI18nPropertyKey(dtoClazz, String.format("validation.%s.delay.too.long", f)); - template = TIME_AFTER_WITH_MAX_DELAY_FIELD_TEMPLATE; + template = TIMESTAMP_AFTER_WITH_MAX_DELAY_FIELD_TEMPLATE; } value = value.substring(0, index); String i18n = labelsBuilder.getI18nPropertyKey(dtoClazz, String.format("validation.%s.after.%s", f, value)); @@ -976,7 +976,7 @@ public class DtoFormValidatorTransformer extends ObjectModelTransformerToJava { } } return result.toString(); - }, timeFunction); + }); } private void addBoundTemperature(Map<String, String> boundTemperature) { ===================================== toolkit/templates/src/main/java/fr/ird/observe/toolkit/templates/validation/ValidationTagValues.java ===================================== @@ -269,8 +269,8 @@ public class ValidationTagValues extends DefaultTagValueMetadatasProvider { public String getTimeAfter(ObjectModelTagValuesStore store, ObjectModelClass clazz, ObjectModelAttribute attribute) { return store.findAttributeTagValue(Store.timeAfter, clazz, attribute); } - public String getTimeAfterWarning(ObjectModelTagValuesStore store, ObjectModelClass clazz, ObjectModelAttribute attribute) { - return store.findAttributeTagValue(Store.timeAfterWarning, clazz, attribute); + public String getTimestampAfterWarning(ObjectModelTagValuesStore store, ObjectModelClass clazz, ObjectModelAttribute attribute) { + return store.findAttributeTagValue(Store.timestampAfterWarning, clazz, attribute); } public String getTimestampAfter(ObjectModelTagValuesStore store, ObjectModelClass clazz, ObjectModelAttribute attribute) { @@ -343,7 +343,7 @@ public class ValidationTagValues extends DefaultTagValueMetadatasProvider { dayAfterWarning("Pour qualifier un attribut date avec validation warning", String.class, null, ObjectModelAttribute.class), dayBefore("Pour qualifier un attribut date avec validation", String.class, null, ObjectModelAttribute.class), timeAfter("Pour qualifier un attribut time avec validation", String.class, null, ObjectModelAttribute.class), - timeAfterWarning("Pour qualifier un attribut time avec validation warning", String.class, null, ObjectModelAttribute.class), + timestampAfterWarning("Pour qualifier un attribut time avec validation warning", String.class, null, ObjectModelAttribute.class), timestampAfter("Pour qualifier un attribut timestamp avec validation", String.class, null, ObjectModelAttribute.class), notNullIf("Pour qualifier un attribut non null avec une condition pour ne pas traiter la validation", boolean.class, null, ObjectModelAttribute.class), unique("Pour qualifier un attribut qui doit être unique", boolean.class, null, ObjectModelAttribute.class), View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/d2703ffc05f261b886bf3a8d4... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/d2703ffc05f261b886bf3a8d4... You're receiving this email because of your account on gitlab.com.