Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

30 changed files:

Changes:

  • core/api/dto-decoration/src/main/i18n/getters/labels.getter
    ... ... @@ -289,6 +289,7 @@ observe.Common.relatedObservedActivity
    289 289
     observe.Common.reportsUrl
    
    290 290
     observe.Common.root.list.message.none
    
    291 291
     observe.Common.sampleQuality
    
    292
    +observe.Common.sampleReferences
    
    292 293
     observe.Common.sampleSpeciesMeasure
    
    293 294
     observe.Common.sampleType
    
    294 295
     observe.Common.saveFile.overwrite
    

  • core/api/dto-decoration/src/main/resources/META-INF/i18n/Observe-labels.properties
    ... ... @@ -20,7 +20,7 @@
    20 20
     # #L%
    
    21 21
     ###
    
    22 22
     #Generated by org.nuiton.i18n.plugin.GenerateI18nLabelsMojo
    
    23
    -#Tue Aug 27 18:04:46 CEST 2024
    
    23
    +#Wed Sep 11 18:08:07 CEST 2024
    
    24 24
     observe.Business.createDate=observe.Common.createDate
    
    25 25
     observe.Business.homeId=observe.Common.homeId
    
    26 26
     observe.Business.id=observe.Common.id
    
    ... ... @@ -783,6 +783,7 @@ observe.data.ll.observation.Catch.photoReferences=observe.Common.photoReferences
    783 783
     observe.data.ll.observation.Catch.predator=observe.Common.predator
    
    784 784
     observe.data.ll.observation.Catch.predator.available=observe.Common.predator.available
    
    785 785
     observe.data.ll.observation.Catch.predator.selected=observe.Common.predator.selected
    
    786
    +observe.data.ll.observation.Catch.sampleReferences=observe.Common.sampleReferences
    
    786 787
     observe.data.ll.observation.Catch.section=observe.Common.section
    
    787 788
     observe.data.ll.observation.Catch.section.short=observe.Common.section.short
    
    788 789
     observe.data.ll.observation.Catch.sex=observe.Common.sex
    

  • core/api/dto/src/main/java/fr/ird/observe/dto/ObserveI18nLabelsBuilder.java
    ... ... @@ -112,7 +112,7 @@ import static io.ultreia.java4all.i18n.I18n.n;
    112 112
                     "objectOperation", "observationsComment", "observationsDataEntryOperator", "observationsDataQuality", "observedSystem",
    
    113 113
                     "observedSystem.available", "observedSystem.selected", "observedSystemDistance",
    
    114 114
                     "observer", "ocean", "ocean.available", "ocean.selected",
    
    115
    -                "onBoardProcessing", "origin", "otherTab", "packaging", "packaging.short", "photoReferences", "predator", "predator.available", "predator.selected", "processingCompany",
    
    115
    +                "onBoardProcessing", "origin", "otherTab", "packaging", "packaging.short", "photoReferences", "sampleReferences", "predator", "predator.available", "predator.selected", "processingCompany",
    
    116 116
                     "program", "proportion", "proportion.short", "proportionSum", "psSampler.available", "psSampler.selected", "quadrant", "quadrantOriginal", "reasonForNoFishing", "reasonForNullSet", "relatedObservedActivity", "reportsUrl", "root.list.message.none", "sampleQuality", "sampleSpeciesMeasure", "sampleType", "saveFile.overwrite",
    
    117 117
                     "saveFile.overwrite.cancel", "saveFile.overwrite.ok", "saveFile.overwrite.title", "schoolType", "seaSurfaceTemperature", "second.buoy", "section", "section.short",
    
    118 118
                     "sensorBrand", "sensorBrand.short", "sensorDataFormat", "sensorDataFormat.short", "sensorSerialNo", "sensorSerialNo.short", "sensorType", "sensorType.short", "serialNo", "serialNo.short", "settingEndLatitude", "settingEndLongitude", "settingEndQuadrant",
    

  • core/api/validation/src/main/filtered-resources/META-INF/validation/model-default.json
    ... ... @@ -2856,6 +2856,10 @@
    2856 2856
           "predator": [
    
    2857 2857
             "check if referential predator is disabled (only if validation is strong)"
    
    2858 2858
           ],
    
    2859
    +      "sampleReferences": [
    
    2860
    +        "sampleReferences (if not null) is not a blank string",
    
    2861
    +        "sampleReferences length <= 255"
    
    2862
    +      ],
    
    2859 2863
           "sex": [
    
    2860 2864
             "check if referential sex is disabled (only if validation is strong)"
    
    2861 2865
           ],
    
    ... ... @@ -2966,6 +2970,10 @@
    2966 2970
           "predator": [
    
    2967 2971
             "check if referential predator is disabled (only if validation is strong)"
    
    2968 2972
           ],
    
    2973
    +      "sampleReferences": [
    
    2974
    +        "sampleReferences (if not null) is not a blank string",
    
    2975
    +        "sampleReferences length <= 255"
    
    2976
    +      ],
    
    2969 2977
           "sex": [
    
    2970 2978
             "check if referential sex is disabled (only if validation is strong)"
    
    2971 2979
           ],
    

  • core/api/validation/src/main/filtered-resources/META-INF/validation/model-xwork2.json
    ... ... @@ -2856,6 +2856,10 @@
    2856 2856
           "predator": [
    
    2857 2857
             "check if referential predator is disabled (only if validation is strong)"
    
    2858 2858
           ],
    
    2859
    +      "sampleReferences": [
    
    2860
    +        "sampleReferences (if not null) is not a blank string",
    
    2861
    +        "sampleReferences length <= 255"
    
    2862
    +      ],
    
    2859 2863
           "sex": [
    
    2860 2864
             "check if referential sex is disabled (only if validation is strong)"
    
    2861 2865
           ],
    
    ... ... @@ -2966,6 +2970,10 @@
    2966 2970
           "predator": [
    
    2967 2971
             "check if referential predator is disabled (only if validation is strong)"
    
    2968 2972
           ],
    
    2973
    +      "sampleReferences": [
    
    2974
    +        "sampleReferences (if not null) is not a blank string",
    
    2975
    +        "sampleReferences length <= 255"
    
    2976
    +      ],
    
    2969 2977
           "sex": [
    
    2970 2978
             "check if referential sex is disabled (only if validation is strong)"
    
    2971 2979
           ],
    

  • core/api/validation/src/main/i18n/getters/eugene.getter
    ... ... @@ -144,6 +144,7 @@ observe.Common.reasonForNullSet
    144 144
     observe.Common.relatedObservedActivity
    
    145 145
     observe.Common.reportsUrl
    
    146 146
     observe.Common.sampleQuality
    
    147
    +observe.Common.sampleReferences
    
    147 148
     observe.Common.sampleSpeciesMeasure
    
    148 149
     observe.Common.sampleType
    
    149 150
     observe.Common.schoolType
    

  • core/api/validation/src/main/resources/fr/ird/observe/dto/data/ll/observation/CatchDto-create-error-validation.json
    ... ... @@ -107,6 +107,19 @@
    107 107
           "comment": "check if referential predator is disabled (only if validation is strong)"
    
    108 108
         }
    
    109 109
       ],
    
    110
    +  "sampleReferences": [
    
    111
    +    {
    
    112
    +      "validator": "io.ultreia.java4all.validation.impl.java.validator.string.NotBlankStringFieldValidator",
    
    113
    +      "comment": "sampleReferences (if not null) is not a blank string"
    
    114
    +    },
    
    115
    +    {
    
    116
    +      "validator": "io.ultreia.java4all.validation.impl.java.validator.string.StringMaxLength",
    
    117
    +      "comment": "sampleReferences length <= 255",
    
    118
    +      "parameters": {
    
    119
    +        "maxLength": "255"
    
    120
    +      }
    
    121
    +    }
    
    122
    +  ],
    
    110 123
       "sex": [
    
    111 124
         {
    
    112 125
           "validator": "fr.ird.observe.validation.validator.referential.CheckReferentialIsEnabledOnErrorScope",
    

  • core/api/validation/src/main/resources/fr/ird/observe/dto/data/ll/observation/CatchDto-create-error-validation.xml
    ... ... @@ -144,6 +144,19 @@
    144 144
         </field-validator>
    
    145 145
       </field>
    
    146 146
     
    
    147
    +  <field name="sampleReferences">
    
    148
    +    <!-- sampleReferences (if not null) is not a blank string -->
    
    149
    +    <field-validator type="notBlankString">
    
    150
    +      <message/>
    
    151
    +    </field-validator>
    
    152
    +
    
    153
    +    <!-- sampleReferences length <= 255 -->
    
    154
    +    <field-validator type="stringMaxLength">
    
    155
    +      <param name="maxLength">255</param>
    
    156
    +      <message/>
    
    157
    +    </field-validator>
    
    158
    +  </field>
    
    159
    +
    
    147 160
       <field name="sex">
    
    148 161
         <!-- check if referential sex is disabled (only if validation is strong) -->
    
    149 162
         <field-validator type="checkDisabledReferentialOnErrorScope">
    

  • core/api/validation/src/main/resources/fr/ird/observe/dto/data/ll/observation/CatchDto-update-error-validation.json
    ... ... @@ -107,6 +107,19 @@
    107 107
           "comment": "check if referential predator is disabled (only if validation is strong)"
    
    108 108
         }
    
    109 109
       ],
    
    110
    +  "sampleReferences": [
    
    111
    +    {
    
    112
    +      "validator": "io.ultreia.java4all.validation.impl.java.validator.string.NotBlankStringFieldValidator",
    
    113
    +      "comment": "sampleReferences (if not null) is not a blank string"
    
    114
    +    },
    
    115
    +    {
    
    116
    +      "validator": "io.ultreia.java4all.validation.impl.java.validator.string.StringMaxLength",
    
    117
    +      "comment": "sampleReferences length <= 255",
    
    118
    +      "parameters": {
    
    119
    +        "maxLength": "255"
    
    120
    +      }
    
    121
    +    }
    
    122
    +  ],
    
    110 123
       "sex": [
    
    111 124
         {
    
    112 125
           "validator": "fr.ird.observe.validation.validator.referential.CheckReferentialIsEnabledOnErrorScope",
    

  • core/api/validation/src/main/resources/fr/ird/observe/dto/data/ll/observation/CatchDto-update-error-validation.xml
    ... ... @@ -144,6 +144,19 @@
    144 144
         </field-validator>
    
    145 145
       </field>
    
    146 146
     
    
    147
    +  <field name="sampleReferences">
    
    148
    +    <!-- sampleReferences (if not null) is not a blank string -->
    
    149
    +    <field-validator type="notBlankString">
    
    150
    +      <message/>
    
    151
    +    </field-validator>
    
    152
    +
    
    153
    +    <!-- sampleReferences length <= 255 -->
    
    154
    +    <field-validator type="stringMaxLength">
    
    155
    +      <param name="maxLength">255</param>
    
    156
    +      <message/>
    
    157
    +    </field-validator>
    
    158
    +  </field>
    
    159
    +
    
    147 160
       <field name="sex">
    
    148 161
         <!-- check if referential sex is disabled (only if validation is strong) -->
    
    149 162
         <field-validator type="checkDisabledReferentialOnErrorScope">
    

  • core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaEntitySqlCopyPlanModel.json
    ... ... @@ -272,7 +272,7 @@
    272 272
           {
    
    273 273
             "gav": "ll_observation.catch",
    
    274 274
             "from": "INNER JOIN ll_observation.set set ON set.topiaId = catch.set INNER JOIN ll_observation.activity activity ON activity.topiaId = set.activity WHERE activity.trip %s",
    
    275
    -        "columnNames": "topiaId,topiaCreateDate,topiaVersion,set_idx,lastUpdateDate,homeId,comment,count,totalWeight,hookWhenDiscarded,depredated,beatDiameter,gonadeWeight,photoReferences,number,acquisitionMode,tagNumber,section,basket,branchline,catchFate,discardHealthStatus,species,maturityStatus,stomachFullness,hookPosition,catchHealthStatus,sex,weightMeasureMethod,set",
    
    275
    +        "columnNames": "topiaId,topiaCreateDate,topiaVersion,set_idx,lastUpdateDate,homeId,comment,count,totalWeight,hookWhenDiscarded,depredated,beatDiameter,gonadeWeight,photoReferences,sampleReferences,number,acquisitionMode,tagNumber,section,basket,branchline,catchFate,discardHealthStatus,species,maturityStatus,stomachFullness,hookPosition,catchHealthStatus,sex,weightMeasureMethod,set",
    
    276 276
             "extra-referentialShell": {
    
    277 277
               "fr.ird.observe.entities.referential.ll.observation.StomachFullness": "stomachFullness",
    
    278 278
               "fr.ird.observe.entities.referential.common.Species": "species",
    

  • core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaEntitySqlModel.json
    ... ... @@ -769,7 +769,7 @@
    769 769
         "fr.ird.observe.entities.data.ll.observation.Catch": {
    
    770 770
           "table": {
    
    771 771
             "gav": "fr.ird.observe.entities.data.ll.observation.Catch~ll_observation~catch",
    
    772
    -        "authorizedColumnNames": "topiaId,topiaCreateDate,topiaVersion,set_idx,lastUpdateDate,homeId,comment,count,totalWeight,hookWhenDiscarded,depredated,beatDiameter,gonadeWeight,photoReferences,number,acquisitionMode,tagNumber,section,basket,branchline,catchFate,discardHealthStatus,species,maturityStatus,stomachFullness,hookPosition,catchHealthStatus,sex,weightMeasureMethod,set",
    
    772
    +        "authorizedColumnNames": "topiaId,topiaCreateDate,topiaVersion,set_idx,lastUpdateDate,homeId,comment,count,totalWeight,hookWhenDiscarded,depredated,beatDiameter,gonadeWeight,photoReferences,sampleReferences,number,acquisitionMode,tagNumber,section,basket,branchline,catchFate,discardHealthStatus,species,maturityStatus,stomachFullness,hookPosition,catchHealthStatus,sex,weightMeasureMethod,set",
    
    773 773
             "selectors": [
    
    774 774
               "ll_observation.catch catch~INNER JOIN ll_observation.set set ON set.topiaId = catch.set INNER JOIN ll_observation.activity activity ON activity.topiaId = set.activity~activity.trip"
    
    775 775
             ],
    
    ... ... @@ -785,6 +785,7 @@
    785 785
               "lastUpdateDate": "java.sql.Timestamp",
    
    786 786
               "number": "java.lang.Integer",
    
    787 787
               "photoReferences": "java.lang.String",
    
    788
    +          "sampleReferences": "java.lang.String",
    
    788 789
               "tagNumber": "java.lang.String",
    
    789 790
               "totalWeight": "java.lang.Float"
    
    790 791
             },
    

  • core/persistence/java/src/main/resources/META-INF/persistence/Observe/TopiaEntitySqlReplicatePlanModel.json
    ... ... @@ -338,7 +338,7 @@
    338 338
             "gav": "ll_observation.catch",
    
    339 339
             "from": "INNER JOIN ll_observation.set set ON set.topiaId = catch.set WHERE set.activity %s",
    
    340 340
             "parentColumnName": "set",
    
    341
    -        "columnNames": "topiaId,topiaCreateDate,topiaVersion,set_idx,lastUpdateDate,homeId,comment,count,totalWeight,hookWhenDiscarded,depredated,beatDiameter,gonadeWeight,photoReferences,number,acquisitionMode,tagNumber,section,basket,branchline,catchFate,discardHealthStatus,species,maturityStatus,stomachFullness,hookPosition,catchHealthStatus,sex,weightMeasureMethod,set",
    
    341
    +        "columnNames": "topiaId,topiaCreateDate,topiaVersion,set_idx,lastUpdateDate,homeId,comment,count,totalWeight,hookWhenDiscarded,depredated,beatDiameter,gonadeWeight,photoReferences,sampleReferences,number,acquisitionMode,tagNumber,section,basket,branchline,catchFate,discardHealthStatus,species,maturityStatus,stomachFullness,hookPosition,catchHealthStatus,sex,weightMeasureMethod,set",
    
    342 342
             "columnsToReplace": "section,basket,branchline"
    
    343 343
           },
    
    344 344
           {
    
    ... ... @@ -422,7 +422,7 @@
    422 422
             "gav": "ll_observation.catch",
    
    423 423
             "from": "WHERE catch.topiaId %s",
    
    424 424
             "parentColumnName": "set",
    
    425
    -        "columnNames": "topiaId,topiaCreateDate,topiaVersion,set_idx,lastUpdateDate,homeId,comment,count,totalWeight,hookWhenDiscarded,depredated,beatDiameter,gonadeWeight,photoReferences,number,acquisitionMode,tagNumber,section,basket,branchline,catchFate,discardHealthStatus,species,maturityStatus,stomachFullness,hookPosition,catchHealthStatus,sex,weightMeasureMethod,set",
    
    425
    +        "columnNames": "topiaId,topiaCreateDate,topiaVersion,set_idx,lastUpdateDate,homeId,comment,count,totalWeight,hookWhenDiscarded,depredated,beatDiameter,gonadeWeight,photoReferences,sampleReferences,number,acquisitionMode,tagNumber,section,basket,branchline,catchFate,discardHealthStatus,species,maturityStatus,stomachFullness,hookPosition,catchHealthStatus,sex,weightMeasureMethod,set",
    
    426 426
             "columnsToDetach": "section~ll_observation.section,basket~ll_observation.basket,branchline~ll_observation.branchline",
    
    427 427
             "entryPoint": true
    
    428 428
           },
    
    ... ... @@ -566,7 +566,7 @@
    566 566
             "gav": "ll_observation.catch",
    
    567 567
             "from": "WHERE catch.set %s",
    
    568 568
             "parentColumnName": "set",
    
    569
    -        "columnNames": "topiaId,topiaCreateDate,topiaVersion,set_idx,lastUpdateDate,homeId,comment,count,totalWeight,hookWhenDiscarded,depredated,beatDiameter,gonadeWeight,photoReferences,number,acquisitionMode,tagNumber,section,basket,branchline,catchFate,discardHealthStatus,species,maturityStatus,stomachFullness,hookPosition,catchHealthStatus,sex,weightMeasureMethod,set",
    
    569
    +        "columnNames": "topiaId,topiaCreateDate,topiaVersion,set_idx,lastUpdateDate,homeId,comment,count,totalWeight,hookWhenDiscarded,depredated,beatDiameter,gonadeWeight,photoReferences,sampleReferences,number,acquisitionMode,tagNumber,section,basket,branchline,catchFate,discardHealthStatus,species,maturityStatus,stomachFullness,hookPosition,catchHealthStatus,sex,weightMeasureMethod,set",
    
    570 570
             "columnsToReplace": "section,basket,branchline"
    
    571 571
           },
    
    572 572
           {
    

  • core/persistence/java/src/main/resources/fr/ird/observe/entities/data/ll/observation/CatchImpl.hbm.xml
    ... ... @@ -53,6 +53,9 @@
    53 53
                 <column name="gonadeWeight" precision="6" scale="3" sql-type="numeric"/>
    
    54 54
             </property>
    
    55 55
             <property name="photoReferences" access="field" type="java.lang.String" column="photoReferences"/>
    
    56
    +        <property name="sampleReferences" access="field" type="java.lang.String" length="255">
    
    57
    +            <column length="255" name="sampleReferences"/>
    
    58
    +        </property>
    
    56 59
             <property name="number" access="field" type="java.lang.Integer" column="number"/>
    
    57 60
             <property name="acquisitionMode" access="field" type="int" column="acquisitionMode"/>
    
    58 61
             <property name="tagNumber" access="field" type="java.lang.String" column="tagNumber"/>
    

  • core/persistence/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_4.java
    ... ... @@ -60,6 +60,8 @@ public class DataSourceMigrationForVersion_9_4 extends ByMajorMigrationVersionRe
    60 60
                 issue2914(executor);
    
    61 61
                 // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2931
    
    62 62
                 executor.addScript("01", "issue-2931");
    
    63
    +            // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2909
    
    64
    +            executor.addScript("02", "issue-2909");
    
    63 65
             }
    
    64 66
         }
    
    65 67
     
    

  • core/persistence/migration/src/main/resources/db/migration/v9/9.4/02_issue-2909-common.sql
    1
    +---
    
    2
    +-- #%L
    
    3
    +-- ObServe Core :: Persistence :: Migration
    
    4
    +-- %%
    
    5
    +-- Copyright (C) 2008 - 2024 IRD, Ultreia.io
    
    6
    +-- %%
    
    7
    +-- This program is free software: you can redistribute it and/or modify
    
    8
    +-- it under the terms of the GNU General Public License as
    
    9
    +-- published by the Free Software Foundation, either version 3 of the
    
    10
    +-- License, or (at your option) any later version.
    
    11
    +--
    
    12
    +-- This program is distributed in the hope that it will be useful,
    
    13
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    
    14
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    
    15
    +-- GNU General Public License for more details.
    
    16
    +--
    
    17
    +-- You should have received a copy of the GNU General Public
    
    18
    +-- License along with this program.  If not, see
    
    19
    +-- <http://www.gnu.org/licenses/gpl-3.0.html>.
    
    20
    +-- #L%
    
    21
    +---
    
    22
    +ALTER TABLE ll_observation.Catch ADD COLUMN sampleReferences VARCHAR(255);

  • core/persistence/migration/src/main/resources/db/migration/v9/9.4/empty-schema-H2.sql
    ... ... @@ -104,7 +104,7 @@ create table ll_observation.baitsComposition (topiaId varchar(255) not null, top
    104 104
     create table ll_observation.basket (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, homeId varchar(255), settingIdentifier integer not null, haulingIdentifier integer, floatline1Length numeric, floatline2Length numeric, section varchar(255) not null, primary key (topiaId));
    
    105 105
     create table ll_observation.branchline (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, homeId varchar(255), comment varchar(8192), settingIdentifier integer not null, haulingIdentifier integer, depthRecorder boolean default false not null, timer boolean default false not null, timeSinceContact integer, hookOffset integer, branchlineLength numeric, weightedSwivel boolean default false not null, timerTimeOnBoard timestamp, weightedSnap boolean default false not null, swivelWeight numeric, snapWeight numeric, tracelineLength numeric, hookLost boolean default false not null, traceCutOff boolean default false not null, hookType varchar(255), baitType varchar(255), topType varchar(255), tracelineType varchar(255), baitSettingStatus varchar(255), baitHaulingStatus varchar(255), hookSize varchar(255), basket varchar(255) not null, primary key (topiaId));
    
    106 106
     create table ll_observation.branchlinesComposition (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, homeId varchar(255), length numeric not null, proportion integer not null, tracelineLength numeric, topType varchar(255) not null, tracelineType varchar(255) not null, set varchar(255) not null, primary key (topiaId));
    
    107
    -create table ll_observation.catch (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, homeId varchar(255), comment varchar(8192), count integer not null, totalWeight numeric, hookWhenDiscarded boolean, depredated boolean default false not null, beatDiameter numeric, gonadeWeight numeric, photoReferences varchar(255), number integer, acquisitionMode integer, tagNumber varchar(255), section varchar(255), basket varchar(255), branchline varchar(255), catchFate varchar(255) not null, discardHealthStatus varchar(255), species varchar(255) not null, maturityStatus varchar(255), stomachFullness varchar(255), hookPosition varchar(255), catchHealthStatus varchar(255), sex varchar(255), weightMeasureMethod varchar(255), set varchar(255) not null, set_idx integer, primary key (topiaId));
    
    107
    +create table ll_observation.catch (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, homeId varchar(255), comment varchar(8192), count integer not null, totalWeight numeric, hookWhenDiscarded boolean, depredated boolean default false not null, beatDiameter numeric, gonadeWeight numeric, photoReferences varchar(255), sampleReferences varchar(255), number integer, acquisitionMode integer, tagNumber varchar(255), section varchar(255), basket varchar(255), branchline varchar(255), catchFate varchar(255) not null, discardHealthStatus varchar(255), species varchar(255) not null, maturityStatus varchar(255), stomachFullness varchar(255), hookPosition varchar(255), catchHealthStatus varchar(255), sex varchar(255), weightMeasureMethod varchar(255), set varchar(255) not null, set_idx integer, primary key (topiaId));
    
    108 108
     create table ll_observation.catch_predator (catch varchar(255) not null, species varchar(255) not null, primary key (catch, species));
    
    109 109
     create table ll_observation.encounter (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, homeId varchar(255), distance numeric, count integer, encounterType varchar(255) not null, species varchar(255), activity varchar(255) not null, primary key (topiaId));
    
    110 110
     create table ll_observation.encounterType (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, code varchar(255) not null, uri varchar(255), homeId varchar(255), needComment boolean default false not null, status integer not null, label1 varchar(255) not null, label2 varchar(255) not null, label3 varchar(255) not null, label4 varchar(255), label5 varchar(255), label6 varchar(255), label7 varchar(255), label8 varchar(255), primary key (topiaId));
    

  • core/persistence/migration/src/main/resources/db/migration/v9/9.4/empty-schema-PG.sql
    ... ... @@ -104,7 +104,7 @@ create table ll_observation.baitsComposition (topiaId varchar(255) not null, top
    104 104
     create table ll_observation.basket (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, homeId varchar(255), settingIdentifier integer not null, haulingIdentifier integer, floatline1Length numeric, floatline2Length numeric, section varchar(255) not null, primary key (topiaId));
    
    105 105
     create table ll_observation.branchline (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, homeId varchar(255), comment varchar(8192), settingIdentifier integer not null, haulingIdentifier integer, depthRecorder boolean default false not null, timer boolean default false not null, timeSinceContact integer, hookOffset integer, branchlineLength numeric, weightedSwivel boolean default false not null, timerTimeOnBoard timestamp, weightedSnap boolean default false not null, swivelWeight numeric, snapWeight numeric, tracelineLength numeric, hookLost boolean default false not null, traceCutOff boolean default false not null, hookType varchar(255), baitType varchar(255), topType varchar(255), tracelineType varchar(255), baitSettingStatus varchar(255), baitHaulingStatus varchar(255), hookSize varchar(255), basket varchar(255) not null, primary key (topiaId));
    
    106 106
     create table ll_observation.branchlinesComposition (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, homeId varchar(255), length numeric not null, proportion integer not null, tracelineLength numeric, topType varchar(255) not null, tracelineType varchar(255) not null, set varchar(255) not null, primary key (topiaId));
    
    107
    -create table ll_observation.catch (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, homeId varchar(255), comment varchar(8192), count integer not null, totalWeight numeric, hookWhenDiscarded boolean, depredated boolean default false not null, beatDiameter numeric, gonadeWeight numeric, photoReferences varchar(255), number integer, acquisitionMode integer, tagNumber varchar(255), section varchar(255), basket varchar(255), branchline varchar(255), catchFate varchar(255) not null, discardHealthStatus varchar(255), species varchar(255) not null, maturityStatus varchar(255), stomachFullness varchar(255), hookPosition varchar(255), catchHealthStatus varchar(255), sex varchar(255), weightMeasureMethod varchar(255), set varchar(255) not null, set_idx integer, primary key (topiaId));
    
    107
    +create table ll_observation.catch (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, homeId varchar(255), comment varchar(8192), count integer not null, totalWeight numeric, hookWhenDiscarded boolean, depredated boolean default false not null, beatDiameter numeric, gonadeWeight numeric, photoReferences varchar(255), sampleReferences varchar(255), number integer, acquisitionMode integer, tagNumber varchar(255), section varchar(255), basket varchar(255), branchline varchar(255), catchFate varchar(255) not null, discardHealthStatus varchar(255), species varchar(255) not null, maturityStatus varchar(255), stomachFullness varchar(255), hookPosition varchar(255), catchHealthStatus varchar(255), sex varchar(255), weightMeasureMethod varchar(255), set varchar(255) not null, set_idx integer, primary key (topiaId));
    
    108 108
     create table ll_observation.catch_predator (catch varchar(255) not null, species varchar(255) not null, primary key (catch, species));
    
    109 109
     create table ll_observation.encounter (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, homeId varchar(255), distance numeric, count integer, encounterType varchar(255) not null, species varchar(255), activity varchar(255) not null, primary key (topiaId));
    
    110 110
     create table ll_observation.encounterType (topiaId varchar(255) not null, topiaVersion bigint not null, topiaCreateDate timestamp not null, lastUpdateDate timestamp default CURRENT_TIMESTAMP not null, code varchar(255) not null, uri varchar(255), homeId varchar(255), needComment boolean default false not null, status integer not null, label1 varchar(255) not null, label2 varchar(255) not null, label3 varchar(255) not null, label4 varchar(255), label5 varchar(255), label6 varchar(255), label7 varchar(255), label8 varchar(255), primary key (topiaId));
    

  • core/persistence/resources/src/main/resources/fr/ird/observe/entities/data/ll/observation/Catch/definition.json
    ... ... @@ -8,6 +8,7 @@
    8 8
       "beatDiameter": "Float",
    
    9 9
       "gonadeWeight": "Float",
    
    10 10
       "photoReferences": "String",
    
    11
    +  "sampleReferences": "String",
    
    11 12
       "number": "Integer",
    
    12 13
       "acquisitionMode": "int",
    
    13 14
       "tagNumber": "String",
    

  • core/persistence/resources/src/main/resources/fr/ird/observe/entities/data/ll/observation/Catch/validation-create.json
    ... ... @@ -97,6 +97,12 @@
    97 97
           "check if referential predator is disabled (only if validation is not strong)"
    
    98 98
         ]
    
    99 99
       },
    
    100
    +  "sampleReferences": {
    
    101
    +    "errors": [
    
    102
    +      "sampleReferences (if not null) is not a blank string",
    
    103
    +      "sampleReferences length <= 255"
    
    104
    +    ]
    
    105
    +  },
    
    100 106
       "section": {
    
    101 107
         "warnings": [
    
    102 108
           "mandatory except if acquisitionMode != 0"
    

  • core/persistence/resources/src/main/resources/fr/ird/observe/entities/data/ll/observation/Catch/validation-update.json
    ... ... @@ -97,6 +97,12 @@
    97 97
           "check if referential predator is disabled (only if validation is not strong)"
    
    98 98
         ]
    
    99 99
       },
    
    100
    +  "sampleReferences": {
    
    101
    +    "errors": [
    
    102
    +      "sampleReferences (if not null) is not a blank string",
    
    103
    +      "sampleReferences length <= 255"
    
    104
    +    ]
    
    105
    +  },
    
    100 106
       "section": {
    
    101 107
         "warnings": [
    
    102 108
           "mandatory except if acquisitionMode != 0"
    

  • core/services/i18n/src/main/i18n/translations/services_en_GB.properties
    ... ... @@ -289,6 +289,7 @@ observe.Common.reportsUrl=Reports url
    289 289
     observe.Common.root.list.message.none=<html><body>No data of type <i>%s</i> for group by <i>%s</i> saved.</body></html>
    
    290 290
     observe.Common.sample=Sample
    
    291 291
     observe.Common.sampleQuality=Sample quality
    
    292
    +observe.Common.sampleReferences=Sample references
    
    292 293
     observe.Common.sampleSpeciesMeasure=Frequencies
    
    293 294
     observe.Common.sampleSpeciesMeasure.validation.uniqueKey=Size class must be unique, value at index %s is duplicated.
    
    294 295
     observe.Common.sampleType=Sample type
    

  • core/services/i18n/src/main/i18n/translations/services_es_ES.properties
    ... ... @@ -289,6 +289,7 @@ observe.Common.reportsUrl=URL del informe
    289 289
     observe.Common.root.list.message.none=<html><body>No data of type <i>%s</i> for group by <i>%s</i> saved.</body></html>
    
    290 290
     observe.Common.sample=Sample \#TODO
    
    291 291
     observe.Common.sampleQuality=Sample quality \#TODO
    
    292
    +observe.Common.sampleReferences=Sample references \#TODO
    
    292 293
     observe.Common.sampleSpeciesMeasure=TODO
    
    293 294
     observe.Common.sampleSpeciesMeasure.validation.uniqueKey=TODO
    
    294 295
     observe.Common.sampleType=Sample type \#TODO
    

  • core/services/i18n/src/main/i18n/translations/services_fr_FR.properties
    ... ... @@ -289,6 +289,7 @@ observe.Common.reportsUrl=URL de rapport
    289 289
     observe.Common.root.list.message.none=<html><body>Aucune donnée du type <i>%s</i> pour le groupement <i>%s</i> enregistrée.</body></html>
    
    290 290
     observe.Common.sample=Échantillon
    
    291 291
     observe.Common.sampleQuality=Qualité de l'échantillon
    
    292
    +observe.Common.sampleReferences=Références échantillon
    
    292 293
     observe.Common.sampleSpeciesMeasure=Fréquences
    
    293 294
     observe.Common.sampleSpeciesMeasure.validation.uniqueKey=La classe de taille doit être unique, la donnée de rang %s est invalide.
    
    294 295
     observe.Common.sampleType=Type d'échantillon
    

  • model/src/main/models/Observe/dto/30-data-ll-observation.model
    ... ... @@ -89,6 +89,7 @@ depredated boolean
    89 89
     beatDiameter Float
    
    90 90
     gonadeWeight Float
    
    91 91
     photoReferences String
    
    92
    +sampleReferences String
    
    92 93
     number Integer
    
    93 94
     acquisitionMode int
    
    94 95
     tagNumber String
    

  • model/src/main/models/Observe/dto/attribute/notBlank.properties
    ... ... @@ -43,6 +43,7 @@ data.ll.observation.Activity.attribute.comment=true
    43 43
     data.ll.observation.Branchline.attribute.comment=true
    
    44 44
     data.ll.observation.Catch.attribute.comment=true
    
    45 45
     data.ll.observation.Catch.attribute.photoReferences=true
    
    46
    +data.ll.observation.Catch.attribute.sampleReferences=true
    
    46 47
     data.ll.observation.Catch.attribute.tagNumber=true
    
    47 48
     data.ll.observation.SectionTemplate.attribute.floatlineLengths=true
    
    48 49
     data.ll.observation.SectionTemplate.attribute.id=true
    

  • model/src/main/models/Observe/dto/attribute/stringMaxLength.properties
    ... ... @@ -34,6 +34,7 @@ data.ll.logbook.Sample.attribute.comment=8192
    34 34
     data.ll.observation.Activity.attribute.comment=8192
    
    35 35
     data.ll.observation.Branchline.attribute.comment=8192
    
    36 36
     data.ll.observation.Catch.attribute.comment=8192
    
    37
    +data.ll.observation.Catch.attribute.sampleReferences=255
    
    37 38
     data.ps.common.GearUseFeatures.attribute.comment=8192
    
    38 39
     data.ps.common.Trip.attribute.generalComment=8192
    
    39 40
     data.ps.common.Trip.attribute.logbookComment=8192
    

  • model/src/main/models/Observe/dto/class/i18nLabels.properties
    ... ... @@ -41,7 +41,7 @@ data.ll.observation.BaitsComposition=baitSettingStatus,baitType,individualSize,i
    41 41
     data.ll.observation.Basket=floatline1Length,floatline1Length.short,floatline2Length,floatline2Length.short,branchline,haulingIdentifier,settingIdentifier
    
    42 42
     data.ll.observation.Branchline=branchlineLength.short,tracelineLength.short,depthRecorder,timer,timeSinceContact,hookOffset,branchlineLength,weightedSwivel,timerTimeOnBoard,weightedSnap,swivelWeight,snapWeight,tracelineLength,hookLost,traceCutOff,baitSettingStatus,hookSize,baitHaulingStatus,hookType,tracelineType,topType,baitType,comment,action.save,action.save.tip,haulingIdentifier,message.modified,message.modified.but.invalid,setDefaultTimerTimeOnBoard.tip,settingIdentifier
    
    43 43
     data.ll.observation.BranchlinesComposition=length,topType,tracelineLength,tracelineType,branchlinesCompositionProportionSum
    
    44
    -data.ll.observation.Catch=baitHaulingStatus,acquisitionMode,basket,beatDiameter,branchline,catchFate,catchHealthStatus,comment,count,depredated,depthRecorder,discardHealthStatus,gonadeWeight,hookLost,hookPosition,hookWhenDiscarded,maturityStatus,number,photoReferences,predator,section,sex,species,stomachFullness,tagNumber,timer,timerTimeOnBoard,totalWeight,traceCutOff,weightMeasureMethod,depredatedProportion,branchlineTab,caracteristicTab,depredatedTab,foodAndSexualTab,noBranchlineSelected,sizeMeasuresTab,timeSinceContact,weightMeasuresTab,action.reset.branchline,action.reset.branchline.tip,predator.available,predator.selected
    
    44
    +data.ll.observation.Catch=baitHaulingStatus,acquisitionMode,basket,beatDiameter,branchline,catchFate,catchHealthStatus,comment,count,depredated,depthRecorder,discardHealthStatus,gonadeWeight,hookLost,hookPosition,hookWhenDiscarded,maturityStatus,number,photoReferences,predator,sampleReferences,section,sex,species,stomachFullness,tagNumber,timer,timerTimeOnBoard,totalWeight,traceCutOff,weightMeasureMethod,depredatedProportion,branchlineTab,caracteristicTab,depredatedTab,foodAndSexualTab,noBranchlineSelected,sizeMeasuresTab,timeSinceContact,weightMeasuresTab,action.reset.branchline,action.reset.branchline.tip,predator.available,predator.selected
    
    45 45
     data.ll.observation.Encounter=count,distance,encounterType,species
    
    46 46
     data.ll.observation.FloatlinesComposition=length,lineType,floatlinesCompositionProportionSum
    
    47 47
     data.ll.observation.HooksComposition=hookOffset,hookSize,hookType,hooksCompositionProportionSum
    

  • model/src/main/models/Observe/persistence/30-data-ll-observation.model
    ... ... @@ -68,6 +68,7 @@ depredated boolean
    68 68
     beatDiameter Float
    
    69 69
     gonadeWeight Float
    
    70 70
     photoReferences String
    
    71
    +sampleReferences String
    
    71 72
     number Integer
    
    72 73
     acquisitionMode int
    
    73 74
     tagNumber String
    

  • model/src/main/models/Observe/persistence/attribute/length.properties
    ... ... @@ -31,6 +31,7 @@ data.ll.logbook.Set.attribute.comment=8192
    31 31
     data.ll.observation.Activity.attribute.comment=8192
    
    32 32
     data.ll.observation.Branchline.attribute.comment=8192
    
    33 33
     data.ll.observation.Catch.attribute.comment=8192
    
    34
    +data.ll.observation.Catch.attribute.sampleReferences=255
    
    34 35
     data.ll.observation.Set.attribute.comment=8192
    
    35 36
     data.ps.common.GearUseFeatures.attribute.comment=8192
    
    36 37
     data.ps.common.Trip.attribute.generalComment=8192