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

Commits:

24 changed files:

Changes:

  • client/core/src/main/java/fr/ird/observe/client/datasource/api/action/FeedBackBuilderModel.java
    ... ... @@ -24,6 +24,8 @@ package fr.ird.observe.client.datasource.api.action;
    24 24
     
    
    25 25
     import fr.ird.observe.client.configuration.ClientConfig;
    
    26 26
     import fr.ird.observe.client.util.UIHelper;
    
    27
    +import fr.ird.observe.dto.ObserveUtil;
    
    28
    +import io.ultreia.java4all.http.HResponseErrorException;
    
    27 29
     import io.ultreia.java4all.i18n.I18n;
    
    28 30
     import org.nuiton.jaxx.runtime.context.JAXXContextEntryDef;
    
    29 31
     import org.nuiton.jaxx.runtime.context.JAXXInitialContext;
    
    ... ... @@ -149,8 +151,15 @@ public abstract class FeedBackBuilderModel {
    149 151
     
    
    150 152
         public String getErrorStack() {
    
    151 153
             StringWriter w = new StringWriter();
    
    154
    +        Exception error = getError();
    
    152 155
             try (PrintWriter writer = new PrintWriter(w)) {
    
    153
    -            getError().printStackTrace(writer);
    
    156
    +            error.printStackTrace(writer);
    
    157
    +        }
    
    158
    +        if (error instanceof HResponseErrorException) {
    
    159
    +            w.append("\n-------------------------------------------------------------------------------------------\n");
    
    160
    +            String prettyFormat = ObserveUtil.toPrettyFormat(((HResponseErrorException) error).getError().getMessage());
    
    161
    +            w.append(prettyFormat);
    
    162
    +            w.append("\n-------------------------------------------------------------------------------------------\n");
    
    154 163
             }
    
    155 164
             return w.toString();
    
    156 165
         }
    

  • client/core/src/main/java/fr/ird/observe/client/datasource/api/action/TechnicalErrorFeedBackBuilderModel.java
    ... ... @@ -23,8 +23,10 @@ package fr.ird.observe.client.datasource.api.action;
    23 23
      */
    
    24 24
     
    
    25 25
     import fr.ird.observe.client.configuration.ClientConfig;
    
    26
    +import fr.ird.observe.dto.ObserveUtil;
    
    26 27
     import fr.ird.observe.dto.ProgressionModel;
    
    27 28
     import io.ultreia.java4all.application.template.spi.GenerateTemplate;
    
    29
    +import io.ultreia.java4all.http.HResponseErrorException;
    
    28 30
     import io.ultreia.java4all.i18n.I18n;
    
    29 31
     import org.apache.logging.log4j.LogManager;
    
    30 32
     import org.apache.logging.log4j.Logger;
    
    ... ... @@ -71,7 +73,14 @@ public class TechnicalErrorFeedBackBuilderModel extends FeedBackBuilderModel {
    71 73
             ActionContext context = new ActionContext(new ProgressionModel(), config);
    
    72 74
             TechnicalActionStep step = new TechnicalActionStep(context, false, true);
    
    73 75
             step.setOutputError(error);
    
    74
    -        log.error("A technical error report", error);
    
    76
    +        StringBuilder message = new StringBuilder("A technical error report");
    
    77
    +        if (error instanceof HResponseErrorException) {
    
    78
    +            message.append("\n-------------------------------------------------------------------------------------------\n");
    
    79
    +            String prettyFormat = ObserveUtil.toPrettyFormat(((HResponseErrorException) error).getError().getMessage());
    
    80
    +            message.append(prettyFormat);
    
    81
    +            message.append("\n-------------------------------------------------------------------------------------------\n");
    
    82
    +        }
    
    83
    +        log.error(message.toString(), error);
    
    75 84
             step.setOutputState(ActionStepOutputState.FAILED);
    
    76 85
             return step;
    
    77 86
         }
    

  • client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/ContentReferentialUI.jcss
    ... ... @@ -98,10 +98,6 @@ JLabel {
    98 98
       enabled:{!states.isCreatingMode() && (states.isEditing() || states.isSelectedBean())};
    
    99 99
     }
    
    100 100
     
    
    101
    -#showUsages {
    
    102
    -  enabled:{showTechnicalInformations.isEnabled()};
    
    103
    -}
    
    104
    -
    
    105 101
     #showUniqueKeys {
    
    106 102
       enabled:{showTechnicalInformations.isEnabled()};
    
    107 103
     }
    

  • client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/actions/ShowUsagesReferential.java
    ... ... @@ -22,10 +22,12 @@ package fr.ird.observe.client.datasource.editor.api.content.referential.actions;
    22 22
      * #L%
    
    23 23
      */
    
    24 24
     
    
    25
    +import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
    
    25 26
     import fr.ird.observe.client.datasource.editor.api.ObserveKeyStrokesEditorApi;
    
    26 27
     import fr.ird.observe.client.datasource.editor.api.content.actions.ConfigureMenuAction;
    
    27 28
     import fr.ird.observe.client.datasource.editor.api.content.referential.ContentReferentialUI;
    
    28 29
     import fr.ird.observe.client.datasource.editor.api.content.referential.ContentReferentialUIModel;
    
    30
    +import fr.ird.observe.client.datasource.editor.api.content.referential.ContentReferentialUIModelStates;
    
    29 31
     import fr.ird.observe.client.datasource.usage.UsageForDisplayUI;
    
    30 32
     import fr.ird.observe.client.datasource.usage.UsagesGetter;
    
    31 33
     import fr.ird.observe.decoration.DecoratorService;
    
    ... ... @@ -57,6 +59,11 @@ public final class ShowUsagesReferential<D extends ReferentialDto, R extends Ref
    57 59
         public static <D extends ReferentialDto, R extends ReferentialDtoReference, U extends ContentReferentialUI<D, R, U>> void installAction(U ui) {
    
    58 60
             ShowUsagesReferential<D, R, U> action = new ShowUsagesReferential<>(ui.getModel().getScope().getMainType());
    
    59 61
             init(ui, ui.getShowUsages(), action);
    
    62
    +        ui.getModel().getStates().addPropertyChangeListener(ContentReferentialUIModelStates.PROPERTY_SELECTED_BEAN_REFERENCE, evt -> {
    
    63
    +            ReferentialDtoReference newValue = (ReferentialDtoReference) evt.getNewValue();
    
    64
    +            ObserveSwingDataSource mainDataSource = ui.getModel().getDataSourcesManager().getMainDataSource();
    
    65
    +            action.setEnabled(newValue != null && (mainDataSource.isLocal() || mainDataSource.canReadAll()));
    
    66
    +        });
    
    60 67
         }
    
    61 68
     
    
    62 69
         public ShowUsagesReferential(Class<D> dataType) {
    

  • client/datasource/editor/ps/src/main/i18n/getters/jaxx.getter
    ... ... @@ -268,5 +268,6 @@ observe.referential.ps.localmarket.Buyer.email
    268 268
     observe.referential.ps.localmarket.Buyer.phone
    
    269 269
     observe.referential.ps.localmarket.Packaging.batchComposition
    
    270 270
     observe.referential.ps.localmarket.Packaging.batchWeightType
    
    271
    +observe.referential.ps.localmarket.Packaging.meanWeight
    
    271 272
     observe.ui.view.form
    
    272 273
     observe.ui.view.message

  • client/datasource/editor/ps/src/main/i18n/getters/navigation.getter
    ... ... @@ -67,6 +67,8 @@ observe.data.ps.localmarket.Batch.action.save
    67 67
     observe.data.ps.localmarket.Batch.action.save.tip
    
    68 68
     observe.data.ps.localmarket.Batch.count
    
    69 69
     observe.data.ps.localmarket.Batch.count.short
    
    70
    +observe.data.ps.localmarket.Batch.date
    
    71
    +observe.data.ps.localmarket.Batch.date.short
    
    70 72
     observe.data.ps.localmarket.Batch.title
    
    71 73
     observe.data.ps.localmarket.Batch.type
    
    72 74
     observe.data.ps.localmarket.Batch.weight
    

  • client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUI.jaxx
    ... ... @@ -19,7 +19,8 @@
    19 19
       -->
    
    20 20
     
    
    21 21
     <fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUI
    
    22
    -    beanScope="bean" i18n="fr.ird.observe.dto.data.ps.logbook.ActivityDto" superGenericType='ActivityDto, ActivityUI'>
    
    22
    +    beanScope="bean" i18n="fr.ird.observe.dto.data.ps.logbook.ActivityDto"
    
    23
    +    superGenericType='ActivityDto, ActivityUI'>
    
    23 24
     
    
    24 25
       <import>
    
    25 26
         fr.ird.observe.dto.data.ps.logbook.ActivityDto
    
    ... ... @@ -70,226 +71,230 @@
    70 71
       </BeanValidator>
    
    71 72
     
    
    72 73
       <JPanel id="contentBody" layout='{new BorderLayout()}'>
    
    73
    -    <Table insets="0" fill="both" constraints='BorderLayout.CENTER'>
    
    74
    -      <row>
    
    75
    -        <cell anchor="north" weightx="1">
    
    76
    -          <JTabbedPane id='mainTabbedPane'>
    
    77
    -            <tab id='generalTab' i18nProperty="">
    
    78
    -              <Table fill="both" anchor="north">
    
    74
    +    <JTabbedPane id='mainTabbedPane' constraints='BorderLayout.NORTH'>
    
    75
    +      <tab id='generalTab' i18nProperty="">
    
    76
    +        <Table fill="both" anchor="north">
    
    77
    +          <row>
    
    78
    +            <cell columns="2">
    
    79
    +              <Table fill="both">
    
    80
    +                <row>
    
    81
    +                  <cell>
    
    82
    +                    <JLabel styleClass="skipI18n"/>
    
    83
    +                  </cell>
    
    84
    +                </row>
    
    79 85
                     <row>
    
    80 86
                       <cell anchor='west'>
    
    81 87
                         <JLabel id='numberLabel'/>
    
    82 88
                       </cell>
    
    83
    -                  <cell anchor="east">
    
    89
    +                  <cell anchor="east" weightx="1">
    
    84 90
                         <NumberEditor id='number' styleClass="int6"/>
    
    85 91
                       </cell>
    
    86
    -                  <cell rows="2" fill="both" columns="2" weightx="1">
    
    87
    -                    <JPanel layout="{new BorderLayout()}">
    
    88
    -                      <JLabel id='coordinateLabel' constraints='BorderLayout.NORTH' styleClass="center"/>
    
    89
    -                      <CoordinatesEditor id='coordinate' constraints='BorderLayout.CENTER'/>
    
    90
    -                    </JPanel>
    
    91
    -                  </cell>
    
    92 92
                     </row>
    
    93 93
                     <row>
    
    94 94
                       <cell columns="2">
    
    95 95
                         <TimeEditor id='time' styleClass="i18n"/>
    
    96 96
                       </cell>
    
    97 97
                     </row>
    
    98
    +              </Table>
    
    99
    +            </cell>
    
    100
    +            <cell fill="both" columns="2" weightx="1">
    
    101
    +              <JPanel layout="{new BorderLayout()}">
    
    102
    +                <JLabel id='coordinateLabel' constraints='BorderLayout.NORTH' styleClass="center"/>
    
    103
    +                <CoordinatesEditor id='coordinate' constraints='BorderLayout.CENTER'/>
    
    104
    +              </JPanel>
    
    105
    +            </cell>
    
    106
    +          </row>
    
    107
    +          <row>
    
    108
    +            <cell anchor='west' columns="4">
    
    109
    +              <JPanel layout="{new GridLayout(0, 1)}">
    
    110
    +                <JLabel id='vesselActivityInformation' styleClass="skipI18n information"/>
    
    111
    +                <JLabel id='vesselActivityInformation2' styleClass="skipI18n information"/>
    
    112
    +              </JPanel>
    
    113
    +            </cell>
    
    114
    +          </row>
    
    115
    +          <row>
    
    116
    +            <cell anchor='west'>
    
    117
    +              <JLabel id='vesselActivityLabel'/>
    
    118
    +            </cell>
    
    119
    +            <cell anchor='east' columns="3">
    
    120
    +              <FilterableComboBox id='vesselActivity' genericType='VesselActivityReference'/>
    
    121
    +            </cell>
    
    122
    +          </row>
    
    123
    +          <row>
    
    124
    +            <cell anchor='west'>
    
    125
    +              <JLabel id='fpaZoneLabel'/>
    
    126
    +            </cell>
    
    127
    +            <cell columns="3">
    
    128
    +              <FilterableComboBox id='fpaZone' genericType='FpaZoneReference'/>
    
    129
    +            </cell>
    
    130
    +          </row>
    
    131
    +          <row>
    
    132
    +            <cell anchor='west'>
    
    133
    +              <JLabel id='originalDataModifiedLabel'/>
    
    134
    +            </cell>
    
    135
    +            <cell anchor='west'>
    
    136
    +              <BeanCheckBox id='originalDataModified' styleClass="skipI18n"/>
    
    137
    +            </cell>
    
    138
    +            <cell anchor='center' fill="both" rows="2" columns="2">
    
    139
    +              <JPanel layout="{new BorderLayout()}">
    
    140
    +                <JLabel id='coordinateOriginalLabel' constraints='BorderLayout.NORTH' styleClass="center"/>
    
    141
    +                <JButton id='copyFirstCoordinate'/>
    
    142
    +                <CoordinatesEditor id='coordinateOriginal' constraints='BorderLayout.CENTER'/>
    
    143
    +              </JPanel>
    
    144
    +            </cell>
    
    145
    +          </row>
    
    146
    +          <row>
    
    147
    +            <cell anchor='west'>
    
    148
    +              <JLabel id='vmsDivergentLabel'/>
    
    149
    +            </cell>
    
    150
    +            <cell anchor='west'>
    
    151
    +              <BeanCheckBox id='vmsDivergent' styleClass="skipI18n"/>
    
    152
    +            </cell>
    
    153
    +          </row>
    
    154
    +          <row>
    
    155
    +            <cell anchor='west'>
    
    156
    +              <JLabel id='dataQualityLabel'/>
    
    157
    +            </cell>
    
    158
    +            <cell columns="3">
    
    159
    +              <FilterableComboBox id='dataQuality' genericType='DataQualityReference'/>
    
    160
    +            </cell>
    
    161
    +          </row>
    
    162
    +          <row>
    
    163
    +            <cell>
    
    164
    +              <JLabel id='informationSourceLabel'/>
    
    165
    +            </cell>
    
    166
    +            <cell columns="3">
    
    167
    +              <FilterableComboBox id='informationSource' genericType='InformationSourceReference'/>
    
    168
    +            </cell>
    
    169
    +          </row>
    
    170
    +          <row>
    
    171
    +            <cell anchor='west'>
    
    172
    +              <JLabel id='relatedObservedActivityLabel'/>
    
    173
    +            </cell>
    
    174
    +            <cell columns="3">
    
    175
    +              <FilterableComboBox id='relatedObservedActivity' genericType='fr.ird.observe.dto.data.ps.observation.ActivityReference'/>
    
    176
    +            </cell>
    
    177
    +          </row>
    
    178
    +          <row>
    
    179
    +            <cell columns="4">
    
    180
    +              <BigTextEditor id="comment"/>
    
    181
    +            </cell>
    
    182
    +          </row>
    
    183
    +        </Table>
    
    184
    +      </tab>
    
    185
    +      <tab id='measurementsTab' i18nProperty="">
    
    186
    +        <Table insets='0' weightx="1" weighty="1">
    
    187
    +          <row>
    
    188
    +            <cell fill="both">
    
    189
    +              <Table fill="both" id="physicalMeasurements">
    
    98 190
                     <row>
    
    99
    -                  <cell anchor='west' columns="4">
    
    100
    -                    <JPanel layout="{new GridLayout(0, 1)}">
    
    101
    -                      <JLabel id='vesselActivityInformation' styleClass="skipI18n information"/>
    
    102
    -                      <JLabel id='vesselActivityInformation2' styleClass="skipI18n information"/>
    
    103
    -                    </JPanel>
    
    191
    +                  <cell anchor='west'>
    
    192
    +                    <JLabel id='seaSurfaceTemperatureLabel'/>
    
    193
    +                  </cell>
    
    194
    +                  <cell anchor='east' weightx="1">
    
    195
    +                    <TemperatureEditor id='seaSurfaceTemperature'/>
    
    104 196
                       </cell>
    
    105 197
                     </row>
    
    106 198
                     <row>
    
    107
    -                  <cell anchor='west'>
    
    108
    -                    <JLabel id='vesselActivityLabel'/>
    
    199
    +                  <cell>
    
    200
    +                    <JLabel id='windLabel'/>
    
    109 201
                       </cell>
    
    110
    -                  <cell anchor='east' columns="3">
    
    111
    -                    <FilterableComboBox id='vesselActivity' genericType='VesselActivityReference'/>
    
    202
    +                  <cell>
    
    203
    +                    <FilterableComboBox id='wind' genericType='WindReference'/>
    
    112 204
                       </cell>
    
    113 205
                     </row>
    
    114 206
                     <row>
    
    115
    -                  <cell anchor='west'>
    
    116
    -                    <JLabel id='fpaZoneLabel'/>
    
    207
    +                  <cell>
    
    208
    +                    <JLabel id='windDirectionLabel'/>
    
    117 209
                       </cell>
    
    118
    -                  <cell columns="3">
    
    119
    -                    <FilterableComboBox id='fpaZone' genericType='FpaZoneReference'/>
    
    210
    +                  <cell>
    
    211
    +                    <NumberEditor id='windDirection' styleClass="int6"/>
    
    120 212
                       </cell>
    
    121 213
                     </row>
    
    122 214
                     <row>
    
    123
    -                  <cell anchor='west'>
    
    124
    -                    <JLabel id='originalDataModifiedLabel'/>
    
    125
    -                  </cell>
    
    126
    -                  <cell anchor='west'>
    
    127
    -                    <BeanCheckBox id='originalDataModified' styleClass="skipI18n"/>
    
    215
    +                  <cell>
    
    216
    +                    <JLabel id='currentSpeedLabel'/>
    
    128 217
                       </cell>
    
    129
    -                  <cell anchor='center' fill="both" rows="2" columns="2">
    
    130
    -                    <JPanel layout="{new BorderLayout()}">
    
    131
    -                      <JLabel id='coordinateOriginalLabel' constraints='BorderLayout.NORTH' styleClass="center"/>
    
    132
    -                      <JButton id='copyFirstCoordinate'/>
    
    133
    -                      <CoordinatesEditor id='coordinateOriginal' constraints='BorderLayout.CENTER'/>
    
    134
    -                    </JPanel>
    
    218
    +                  <cell>
    
    219
    +                    <NumberEditor id='currentSpeed' styleClass="float1"/>
    
    135 220
                       </cell>
    
    136 221
                     </row>
    
    137 222
                     <row>
    
    138
    -                  <cell anchor='west'>
    
    139
    -                    <JLabel id='vmsDivergentLabel'/>
    
    223
    +                  <cell>
    
    224
    +                    <JLabel id='currentDirectionLabel'/>
    
    140 225
                       </cell>
    
    141
    -                  <cell anchor='west'>
    
    142
    -                    <BeanCheckBox id='vmsDivergent' styleClass="skipI18n"/>
    
    226
    +                  <cell>
    
    227
    +                    <NumberEditor id='currentDirection' styleClass="int6"/>
    
    143 228
                       </cell>
    
    144 229
                     </row>
    
    230
    +              </Table>
    
    231
    +            </cell>
    
    232
    +          </row>
    
    233
    +          <row>
    
    234
    +            <cell fill="both">
    
    235
    +              <Table fill="both" id="setMeasurements">
    
    145 236
                     <row>
    
    146 237
                       <cell anchor='west'>
    
    147
    -                    <JLabel id='dataQualityLabel'/>
    
    238
    +                    <JLabel id='reasonForNoFishingLabel'/>
    
    148 239
                       </cell>
    
    149
    -                  <cell columns="3">
    
    150
    -                    <FilterableComboBox id='dataQuality' genericType='DataQualityReference'/>
    
    240
    +                  <cell anchor='east'>
    
    241
    +                    <FilterableComboBox id='reasonForNoFishing' genericType='ReasonForNoFishingReference' styleClass="setEnabled"/>
    
    151 242
                       </cell>
    
    152 243
                     </row>
    
    153 244
                     <row>
    
    154
    -                  <cell>
    
    155
    -                    <JLabel id='informationSourceLabel'/>
    
    245
    +                  <cell anchor='west'>
    
    246
    +                    <JLabel id='setSuccessStatusLabel'/>
    
    156 247
                       </cell>
    
    157
    -                  <cell columns="3">
    
    158
    -                    <FilterableComboBox id='informationSource' genericType='InformationSourceReference'/>
    
    248
    +                  <cell anchor='east'>
    
    249
    +                    <FilterableComboBox id='setSuccessStatus' genericType='SetSuccessStatusReference' styleClass="reasonForNoFishingNotFilled"/>
    
    159 250
                       </cell>
    
    160 251
                     </row>
    
    161 252
                     <row>
    
    162 253
                       <cell anchor='west'>
    
    163
    -                    <JLabel id='relatedObservedActivityLabel'/>
    
    254
    +                    <JLabel id='reasonForNullSetLabel'/>
    
    164 255
                       </cell>
    
    165
    -                  <cell columns="3">
    
    166
    -                    <FilterableComboBox id='relatedObservedActivity' genericType='fr.ird.observe.dto.data.ps.observation.ActivityReference'/>
    
    256
    +                  <cell anchor='east' fill='both'>
    
    257
    +                    <FilterableComboBox id='reasonForNullSet' genericType='ReasonForNullSetReference'/>
    
    167 258
                       </cell>
    
    168 259
                     </row>
    
    169
    -              </Table>
    
    170
    -            </tab>
    
    171
    -            <tab id='measurementsTab' i18nProperty="">
    
    172
    -              <Table insets='0' weightx="1" weighty="1">
    
    173 260
                     <row>
    
    174
    -                  <cell fill="both">
    
    175
    -                    <Table fill="both" id="physicalMeasurements">
    
    176
    -                      <row>
    
    177
    -                        <cell anchor='west'>
    
    178
    -                          <JLabel id='seaSurfaceTemperatureLabel'/>
    
    179
    -                        </cell>
    
    180
    -                        <cell anchor='east' weightx="1">
    
    181
    -                          <TemperatureEditor id='seaSurfaceTemperature'/>
    
    182
    -                        </cell>
    
    183
    -                      </row>
    
    184
    -                      <row>
    
    185
    -                        <cell>
    
    186
    -                          <JLabel id='windLabel'/>
    
    187
    -                        </cell>
    
    188
    -                        <cell>
    
    189
    -                          <FilterableComboBox id='wind' genericType='WindReference'/>
    
    190
    -                        </cell>
    
    191
    -                      </row>
    
    192
    -                      <row>
    
    193
    -                        <cell>
    
    194
    -                          <JLabel id='windDirectionLabel'/>
    
    195
    -                        </cell>
    
    196
    -                        <cell>
    
    197
    -                          <NumberEditor id='windDirection' styleClass="int6"/>
    
    198
    -                        </cell>
    
    199
    -                      </row>
    
    200
    -                      <row>
    
    201
    -                        <cell>
    
    202
    -                          <JLabel id='currentSpeedLabel'/>
    
    203
    -                        </cell>
    
    204
    -                        <cell>
    
    205
    -                          <NumberEditor id='currentSpeed' styleClass="float1"/>
    
    206
    -                        </cell>
    
    207
    -                      </row>
    
    208
    -                      <row>
    
    209
    -                        <cell>
    
    210
    -                          <JLabel id='currentDirectionLabel'/>
    
    211
    -                        </cell>
    
    212
    -                        <cell>
    
    213
    -                          <NumberEditor id='currentDirection' styleClass="int6"/>
    
    214
    -                        </cell>
    
    215
    -                      </row>
    
    216
    -                    </Table>
    
    261
    +                  <cell anchor='west'>
    
    262
    +                    <JLabel id='schoolTypeLabel'/>
    
    263
    +                  </cell>
    
    264
    +                  <cell anchor='east' weightx="1">
    
    265
    +                    <FilterableComboBox id='schoolType' genericType='SchoolTypeReference' styleClass="reasonForNoFishingNotFilled"/>
    
    217 266
                       </cell>
    
    218 267
                     </row>
    
    219 268
                     <row>
    
    220
    -                  <cell fill="both">
    
    221
    -                    <Table fill="both" id="setMeasurements">
    
    222
    -                      <row>
    
    223
    -                        <cell anchor='west'>
    
    224
    -                          <JLabel id='reasonForNoFishingLabel'/>
    
    225
    -                        </cell>
    
    226
    -                        <cell anchor='east'>
    
    227
    -                          <FilterableComboBox id='reasonForNoFishing' genericType='ReasonForNoFishingReference' styleClass="setEnabled"/>
    
    228
    -                        </cell>
    
    229
    -                      </row>
    
    230
    -                      <row>
    
    231
    -                        <cell anchor='west'>
    
    232
    -                          <JLabel id='setSuccessStatusLabel'/>
    
    233
    -                        </cell>
    
    234
    -                        <cell anchor='east'>
    
    235
    -                          <FilterableComboBox id='setSuccessStatus' genericType='SetSuccessStatusReference' styleClass="reasonForNoFishingNotFilled"/>
    
    236
    -                        </cell>
    
    237
    -                      </row>
    
    238
    -                      <row>
    
    239
    -                        <cell anchor='west'>
    
    240
    -                          <JLabel id='reasonForNullSetLabel'/>
    
    241
    -                        </cell>
    
    242
    -                        <cell anchor='east' fill='both'>
    
    243
    -                          <FilterableComboBox id='reasonForNullSet' genericType='ReasonForNullSetReference'/>
    
    244
    -                        </cell>
    
    245
    -                      </row>
    
    246
    -                      <row>
    
    247
    -                        <cell anchor='west'>
    
    248
    -                          <JLabel id='schoolTypeLabel'/>
    
    249
    -                        </cell>
    
    250
    -                        <cell anchor='east' weightx="1">
    
    251
    -                          <FilterableComboBox id='schoolType' genericType='SchoolTypeReference' styleClass="reasonForNoFishingNotFilled"/>
    
    252
    -                        </cell>
    
    253
    -                      </row>
    
    254
    -                      <row>
    
    255
    -                        <cell anchor='west'>
    
    256
    -                          <JLabel id='setCountLabel'/>
    
    257
    -                        </cell>
    
    258
    -                        <cell anchor='east' fill="both">
    
    259
    -                          <NumberEditor id='setCount' styleClass="int6 reasonForNoFishingNotFilled"/>
    
    260
    -                        </cell>
    
    261
    -                      </row>
    
    262
    -                      <row>
    
    263
    -                        <cell>
    
    264
    -                          <JLabel id='totalWeightLabel'/>
    
    265
    -                        </cell>
    
    266
    -                        <cell>
    
    267
    -                          <NumberEditor id='totalWeight' styleClass="float3 reasonForNoFishingNotFilled"/>
    
    268
    -                        </cell>
    
    269
    -                      </row>
    
    270
    -                    </Table>
    
    269
    +                  <cell anchor='west'>
    
    270
    +                    <JLabel id='setCountLabel'/>
    
    271
    +                  </cell>
    
    272
    +                  <cell anchor='east' fill="both">
    
    273
    +                    <NumberEditor id='setCount' styleClass="int6 reasonForNoFishingNotFilled"/>
    
    271 274
                       </cell>
    
    272 275
                     </row>
    
    273 276
                     <row>
    
    274
    -                  <cell weighty="1">
    
    275
    -                    <JLabel styleClass="skipI18n"/>
    
    277
    +                  <cell>
    
    278
    +                    <JLabel id='totalWeightLabel'/>
    
    279
    +                  </cell>
    
    280
    +                  <cell>
    
    281
    +                    <NumberEditor id='totalWeight' styleClass="float3 reasonForNoFishingNotFilled"/>
    
    276 282
                       </cell>
    
    277 283
                     </row>
    
    278 284
                   </Table>
    
    279
    -
    
    280
    -            </tab>
    
    281
    -            <tab id="observedSystemTab" i18nProperty="">
    
    282
    -              <DoubleList id='observedSystem' genericType='ObservedSystemReference'/>
    
    283
    -            </tab>
    
    284
    -          </JTabbedPane>
    
    285
    -        </cell>
    
    286
    -      </row>
    
    287
    -      <row>
    
    288
    -        <cell fill="both" weighty="1">
    
    289
    -          <BigTextEditor id="comment"/>
    
    290
    -        </cell>
    
    291
    -      </row>
    
    292
    -    </Table>
    
    285
    +            </cell>
    
    286
    +          </row>
    
    287
    +          <row>
    
    288
    +            <cell weighty="1">
    
    289
    +              <JLabel styleClass="skipI18n"/>
    
    290
    +            </cell>
    
    291
    +          </row>
    
    292
    +        </Table>
    
    293
    +      </tab>
    
    294
    +      <tab id="observedSystemTab" i18nProperty="">
    
    295
    +        <DoubleList id='observedSystem' genericType='ObservedSystemReference'/>
    
    296
    +      </tab>
    
    297
    +    </JTabbedPane>
    
    293 298
       </JPanel>
    
    294 299
     
    
    295 300
       <JMenuItem id='addSet'/>
    

  • client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUI.jcss
    ... ... @@ -58,6 +58,10 @@
    58 58
       border:{new TitledBorder(t("observe.data.ps.logbook.Activity.setMeasurements") + "     ")};
    
    59 59
     }
    
    60 60
     
    
    61
    +#copyFirstCoordinate {
    
    62
    +  focusable:false;
    
    63
    +}
    
    64
    +
    
    61 65
     .setEnabled {
    
    62 66
       enabled:{states.isSetEnabled()};
    
    63 67
     }
    

  • client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java
    ... ... @@ -100,16 +100,10 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
    100 100
     
    
    101 101
             ActivityUI ui = getUi();
    
    102 102
     
    
    103
    -        ActivityDto bean = getModel().getStates().getBean();
    
    104 103
             if (Objects.equals(true, newValue)) {
    
    105 104
     
    
    106 105
                 // original data modified
    
    107 106
                 ui.getCoordinateOriginal().setEnabled(true);
    
    108
    -            //FIXME In jaxx should be done by previous statement
    
    109
    -            ui.getCoordinateOriginal().getGlobalResetButton().setEnabled(true);
    
    110
    -            ui.getCoordinateOriginal().getDmdFormat().setEnabled(true);
    
    111
    -            ui.getCoordinateOriginal().getDmsFormat().setEnabled(true);
    
    112
    -            ui.getCoordinateOriginal().getDdFormat().setEnabled(true);
    
    113 107
                 ui.getCopyFirstCoordinate().setEnabled(true);
    
    114 108
     
    
    115 109
             } else {
    
    ... ... @@ -117,11 +111,6 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
    117 111
                 // original data not modified
    
    118 112
                 ui.getCoordinateOriginal().getGlobalResetButton().doClick();
    
    119 113
                 ui.getCoordinateOriginal().setEnabled(false);
    
    120
    -            //FIXME In jaxx should be done by previous statement
    
    121
    -            ui.getCoordinateOriginal().getGlobalResetButton().setEnabled(false);
    
    122
    -            ui.getCoordinateOriginal().getDmdFormat().setEnabled(false);
    
    123
    -            ui.getCoordinateOriginal().getDmsFormat().setEnabled(false);
    
    124
    -            ui.getCoordinateOriginal().getDdFormat().setEnabled(false);
    
    125 114
                 ui.getCopyFirstCoordinate().setEnabled(false);
    
    126 115
             }
    
    127 116
         }
    

  • client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/referential/localmarket/PackagingUI.jaxx
    ... ... @@ -32,6 +32,7 @@
    32 32
         fr.ird.observe.dto.referential.common.HarbourReference
    
    33 33
     
    
    34 34
         org.nuiton.jaxx.widgets.datetime.DateEditor
    
    35
    +    org.nuiton.jaxx.widgets.number.NumberEditor
    
    35 36
         org.nuiton.jaxx.widgets.text.NormalTextEditor
    
    36 37
         io.ultreia.java4all.jaxx.widgets.combobox.BeanEnumEditor
    
    37 38
         io.ultreia.java4all.jaxx.widgets.choice.BeanCheckBox
    
    ... ... @@ -69,6 +70,14 @@
    69 70
             <FilterableComboBox id='batchWeightType' genericType='BatchWeightTypeReference'/>
    
    70 71
           </cell>
    
    71 72
         </row>
    
    73
    +    <row>
    
    74
    +      <cell anchor='west'>
    
    75
    +        <JLabel id='meanWeightLabel'/>
    
    76
    +      </cell>
    
    77
    +      <cell anchor='east' weightx="1" fill="both">
    
    78
    +        <NumberEditor id='meanWeight' styleClass="float4"/>
    
    79
    +      </cell>
    
    80
    +    </row>
    
    72 81
         <row>
    
    73 82
           <cell anchor='west'>
    
    74 83
             <JLabel id='validityDateRangeLabel'/>
    

  • client/runner/src/main/assembly/dist/scripts/postgresql/extra/01_0_create-postgis-functions.sql
    ... ... @@ -41,7 +41,7 @@ BEGIN
    41 41
             return NEW;
    
    42 42
         END IF;
    
    43 43
         RAISE NOTICE 'Will compute the_geom for %.% % - latitude % and longitude %', TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW.topiaId, NEW.latitude, NEW.longitude;
    
    44
    -    NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude::double precision, NEW.latitude::double precision), 4326);
    
    44
    +    NEW.the_geom := public.ST_SetSRID(public.ST_MakePoint(NEW.longitude, NEW.latitude), 4326);
    
    45 45
         RAISE NOTICE 'Computed for %.% % latitude % and longitude %, the_geom %', TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;
    
    46 46
         RETURN NEW;
    
    47 47
     END
    
    ... ... @@ -69,7 +69,7 @@ BEGIN
    69 69
             return NEW;
    
    70 70
         END IF;
    
    71 71
         RAISE NOTICE 'Will compute the_geom for %.% % - latitudeOriginal % and longitudeOriginal %', TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW.topiaId, NEW.latitudeOriginal, NEW.longitudeOriginal;
    
    72
    -    NEW.the_geom_original := ST_SetSRID(ST_MakePoint(NEW.longitudeOriginal::double precision, NEW.latitudeOriginal::double precision), 4326);
    
    72
    +    NEW.the_geom_original := public.ST_SetSRID(public.ST_MakePoint(NEW.longitudeOriginal, NEW.latitudeOriginal), 4326);
    
    73 73
         RAISE NOTICE 'Computed for %.% % latitudeOriginal % and longitudeOriginal %, the_geom_original %', TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW.topiaId, NEW.latitudeOriginal, NEW.longitudeOriginal, NEW.the_geom_original;
    
    74 74
         RETURN NEW;
    
    75 75
     END
    
    ... ... @@ -98,7 +98,7 @@ BEGIN
    98 98
             return NEW;
    
    99 99
         END IF;
    
    100 100
         RAISE NOTICE 'Will compute the_geom for %.% % - settingStartLatitude % and settingStartLongitude %', TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW.topiaId, NEW.settingStartLatitude, NEW.settingStartLongitude;
    
    101
    -    NEW.the_geom_settingStart := ST_SetSRID(ST_MakePoint(NEW.settingStartLongitude::double precision, NEW.settingStartLatitude::double precision), 4326);
    
    101
    +    NEW.the_geom_settingStart := public.ST_SetSRID(public.ST_MakePoint(NEW.settingStartLongitude, NEW.settingStartLatitude), 4326);
    
    102 102
         RAISE NOTICE 'Computed for %.% % settingStartLatitude % and settingStartLongitude %, the_geom_settingStart %', TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW.topiaId, NEW.settingStartLatitude, NEW.settingStartLongitude, NEW.the_geom_settingStart;
    
    103 103
         RETURN NEW;
    
    104 104
     END
    
    ... ... @@ -126,7 +126,7 @@ BEGIN
    126 126
             return NEW;
    
    127 127
         END IF;
    
    128 128
         RAISE NOTICE 'Will compute the_geom for %.% % - settingEndLatitude % and settingEndLongitude %', TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW.topiaId, NEW.settingEndLatitude, NEW.settingEndLongitude;
    
    129
    -    NEW.the_geom_settingEnd := ST_SetSRID(ST_MakePoint(NEW.settingEndLongitude::double precision, NEW.settingEndLatitude::double precision), 4326);
    
    129
    +    NEW.the_geom_settingEnd := public.ST_SetSRID(public.ST_MakePoint(NEW.settingEndLongitude, NEW.settingEndLatitude), 4326);
    
    130 130
         RAISE NOTICE 'Computed for %.% % settingEndLatitude % and settingEndLongitude %, the_geom_settingEnd %', TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW.topiaId, NEW.settingEndLatitude, NEW.settingEndLongitude, NEW.the_geom_settingEnd;
    
    131 131
         RETURN NEW;
    
    132 132
     END
    
    ... ... @@ -154,7 +154,7 @@ BEGIN
    154 154
             return NEW;
    
    155 155
         END IF;
    
    156 156
         RAISE NOTICE 'Will compute the_geom for %.% % - haulingStartLatitude % and haulingStartLongitude %', TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW.topiaId, NEW.haulingStartLatitude, NEW.haulingStartLongitude;
    
    157
    -    NEW.the_geom_haulingStart := ST_SetSRID(ST_MakePoint(NEW.haulingStartLongitude::double precision, NEW.haulingStartLatitude::double precision), 4326);
    
    157
    +    NEW.the_geom_haulingStart := public.ST_SetSRID(public.ST_MakePoint(NEW.haulingStartLongitude, NEW.haulingStartLatitude), 4326);
    
    158 158
         RAISE NOTICE 'Computed for %.% % haulingStartLatitude % and haulingStartLongitude %, the_geom_haulingStart %', TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW.topiaId, NEW.haulingStartLatitude, NEW.haulingStartLongitude, NEW.the_geom_haulingStart;
    
    159 159
         RETURN NEW;
    
    160 160
     END
    
    ... ... @@ -182,7 +182,7 @@ BEGIN
    182 182
             return NEW;
    
    183 183
         END IF;
    
    184 184
         RAISE NOTICE 'Will compute the_geom for %.% % - haulingEndLatitude % and haulingEndLongitude %', TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW.topiaId, NEW.haulingEndLatitude, NEW.haulingEndLongitude;
    
    185
    -    NEW.the_geom_haulingEnd := ST_SetSRID(ST_MakePoint(NEW.haulingEndLongitude::double precision, NEW.haulingEndLatitude::double precision), 4326);
    
    185
    +    NEW.the_geom_haulingEnd := public.ST_SetSRID(public.ST_MakePoint(NEW.haulingEndLongitude, NEW.haulingEndLatitude), 4326);
    
    186 186
         RAISE NOTICE 'Computed for %.% % haulingEndLatitude % and haulingEndLongitude %, the_geom_haulingEnd %', TG_TABLE_SCHEMA, TG_TABLE_NAME, NEW.topiaId, NEW.haulingEndLatitude, NEW.haulingEndLongitude, NEW.the_geom_haulingEnd;
    
    187 187
         RETURN NEW;
    
    188 188
     END
    

  • client/runner/src/main/assembly/dist/scripts/postgresql/extra/01_1_create-postgis-referential.sql
    ... ... @@ -23,4 +23,4 @@ ALTER TABLE common.harbour ADD COLUMN the_geom geometry(Point, 4326);
    23 23
     CREATE INDEX IF NOT EXISTS idx_harbour_gist ON common.harbour USING GIST (the_geom);
    
    24 24
     DROP TRIGGER IF EXISTS tr_sync_common_harbour_the_geom ON common.harbour;
    
    25 25
     CREATE TRIGGER tr_sync_common_harbour_the_geom BEFORE INSERT OR UPDATE OF latitude, longitude ON common.harbour FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_default();
    
    26
    -UPDATE common.harbour SET the_geom = ST_SetSRID(ST_MakePoint(longitude::double precision,latitude::double precision), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;
    26
    +UPDATE common.harbour SET the_geom = public.ST_SetSRID(public.ST_MakePoint(longitude,latitude), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;

  • client/runner/src/main/assembly/dist/scripts/postgresql/extra/01_2_create-postgis-ps.sql
    ... ... @@ -24,29 +24,29 @@ ALTER TABLE ps_observation.activity ADD COLUMN the_geom geometry(Point, 4326);
    24 24
     CREATE INDEX IF NOT EXISTS idx_ps_observation_activity_gist ON ps_observation.activity USING GIST (the_geom);
    
    25 25
     DROP TRIGGER IF EXISTS tr_sync_ps_observation_activity_the_geom ON ps_observation.activity;
    
    26 26
     CREATE TRIGGER tr_sync_ps_observation_activity_the_geom BEFORE INSERT OR UPDATE OF latitude, longitude ON ps_observation.activity FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_default();
    
    27
    -UPDATE ps_observation.activity SET the_geom = ST_SetSRID(ST_MakePoint(longitude::double precision,latitude::double precision), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;
    
    27
    +UPDATE ps_observation.activity SET the_geom = public.ST_SetSRID(public.ST_MakePoint(longitude,latitude), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;
    
    28 28
     
    
    29 29
     ALTER TABLE ps_observation.transmittingbuoy ADD COLUMN the_geom geometry(Point, 4326);
    
    30 30
     CREATE INDEX IF NOT EXISTS idx_ps_observation_transmittingbuoy_gist ON ps_observation.TransmittingBuoy USING GIST (the_geom);
    
    31 31
     DROP TRIGGER IF EXISTS tr_sync_ps_observation_transmittingbuoy_the_geom ON ps_observation.TransmittingBuoy;
    
    32 32
     CREATE TRIGGER tr_sync_ps_observation_transmittingbuoy_the_geom BEFORE INSERT OR UPDATE OF latitude, longitude ON ps_observation.TransmittingBuoy FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_default();
    
    33
    -UPDATE ps_observation.TransmittingBuoy SET the_geom = ST_SetSRID(ST_MakePoint(longitude::double precision, latitude::double precision), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;
    
    33
    +UPDATE ps_observation.TransmittingBuoy SET the_geom = public.ST_SetSRID(public.ST_MakePoint(longitude, latitude), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;
    
    34 34
     
    
    35 35
     
    
    36 36
     ALTER TABLE ps_logbook.activity ADD COLUMN the_geom geometry(Point, 4326);
    
    37 37
     CREATE INDEX IF NOT EXISTS idx_ps_logbook_activity_gist ON ps_logbook.activity USING GIST (the_geom);
    
    38 38
     DROP TRIGGER IF EXISTS tr_sync_ps_logbook_activity_the_geom ON ps_logbook.activity;
    
    39 39
     CREATE TRIGGER tr_sync_ps_logbook_activity_the_geom BEFORE INSERT OR UPDATE OF latitude, longitude ON ps_logbook.activity FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_default();
    
    40
    -UPDATE ps_logbook.activity SET the_geom = ST_SetSRID(ST_MakePoint(longitude::double precision,latitude::double precision), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;
    
    40
    +UPDATE ps_logbook.activity SET the_geom = public.ST_SetSRID(public.ST_MakePoint(longitude,latitude), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;
    
    41 41
     
    
    42 42
     ALTER TABLE ps_logbook.activity ADD COLUMN the_geom_original geometry(Point, 4326);
    
    43 43
     CREATE INDEX IF NOT EXISTS idx_ps_logbook_activity_original_gist ON ps_logbook.activity USING GIST (the_geom_original);
    
    44 44
     DROP TRIGGER IF EXISTS tr_sync_ps_logbook_activity_the_geom_original ON ps_logbook.activity;
    
    45 45
     CREATE TRIGGER tr_sync_ps_logbook_activity_the_geom_original BEFORE INSERT OR UPDATE OF latitudeOriginal, longitudeOriginal ON ps_logbook.activity FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_original();
    
    46
    -UPDATE ps_logbook.activity SET the_geom_original = ST_SetSRID(ST_MakePoint(latitudeOriginal::double precision, longitudeOriginal::double precision), 4326) WHERE latitudeOriginal IS NOT NULL AND longitudeOriginal IS NOT NULL AND the_geom_original IS NULL;
    
    46
    +UPDATE ps_logbook.activity SET the_geom_original = public.ST_SetSRID(public.ST_MakePoint(latitudeOriginal, longitudeOriginal), 4326) WHERE latitudeOriginal IS NOT NULL AND longitudeOriginal IS NOT NULL AND the_geom_original IS NULL;
    
    47 47
     
    
    48 48
     ALTER TABLE ps_logbook.transmittingbuoy ADD COLUMN the_geom geometry(Point, 4326);
    
    49 49
     CREATE INDEX IF NOT EXISTS idx_ps_logbook_transmittingbuoy_gist ON ps_logbook.TransmittingBuoy USING GIST (the_geom);
    
    50 50
     DROP TRIGGER IF EXISTS tr_sync_ps_logbook_transmittingbuoy_the_geom ON ps_logbook.TransmittingBuoy;
    
    51 51
     CREATE TRIGGER tr_sync_ps_logbook_transmittingbuoy_the_geom BEFORE INSERT OR UPDATE OF latitude, longitude ON ps_logbook.TransmittingBuoy FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_default();
    
    52
    -UPDATE ps_logbook.TransmittingBuoy SET the_geom = ST_SetSRID(ST_MakePoint(longitude::double precision, latitude::double precision), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;
    52
    +UPDATE ps_logbook.TransmittingBuoy SET the_geom = public.ST_SetSRID(public.ST_MakePoint(longitude, latitude), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;

  • client/runner/src/main/assembly/dist/scripts/postgresql/extra/01_3_create-postgis-ll.sql
    ... ... @@ -24,68 +24,68 @@ ALTER TABLE ll_observation.activity ADD COLUMN the_geom geometry(Point, 4326);
    24 24
     CREATE INDEX IF NOT EXISTS idx_ll_observation_activity_gist ON ll_observation.activity USING GIST (the_geom);
    
    25 25
     DROP TRIGGER IF EXISTS tr_sync_ll_observation_activity_the_geom ON ll_observation.activity;
    
    26 26
     CREATE TRIGGER tr_sync_ll_observation_activity_the_geom BEFORE INSERT OR UPDATE OF latitude, longitude ON ll_observation.activity FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_default();
    
    27
    -UPDATE ll_observation.activity SET the_geom = ST_SetSRID(ST_MakePoint(longitude::double precision, latitude::double precision), 4326) WHERE the_geom IS NULL;
    
    27
    +UPDATE ll_observation.activity SET the_geom = public.ST_SetSRID(public.ST_MakePoint(longitude, latitude), 4326) WHERE the_geom IS NULL;
    
    28 28
     
    
    29 29
     ALTER TABLE ll_observation.set ADD COLUMN the_geom_settingstart geometry(Point, 4326);
    
    30
    -DROP INDEX IF EXISTS idx_ll_observation_set_gist_settingstart;
    
    31
    -CREATE INDEX IF NOT EXISTS idx_ll_observation_set_gist_settingstart ON ll_observation.set USING GIST (the_geom_settingstart);
    
    30
    +DROP INDEX IF EXISTS idx_ll_observation_set_gipublic.ST_settingstart;
    
    31
    +CREATE INDEX IF NOT EXISTS idx_ll_observation_set_gipublic.ST_settingstart ON ll_observation.set USING GIST (the_geom_settingstart);
    
    32 32
     DROP TRIGGER IF EXISTS tr_sync_ll_observation_set_the_geom_settingstart ON ll_observation.set;
    
    33 33
     CREATE TRIGGER tr_sync_ll_observation_set_the_geom_settingstart BEFORE INSERT OR UPDATE OF settingStartLatitude, settingStartLongitude ON ll_observation.set FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_settingStart();
    
    34
    -UPDATE ll_observation.set SET the_geom_settingstart = ST_SetSRID(ST_MakePoint(settingStartLongitude::double precision, settingStartLatitude::double precision), 4326) WHERE the_geom_settingstart IS NULL;
    
    34
    +UPDATE ll_observation.set SET the_geom_settingstart = public.ST_SetSRID(public.ST_MakePoint(settingStartLongitude, settingStartLatitude), 4326) WHERE the_geom_settingstart IS NULL;
    
    35 35
     
    
    36 36
     ALTER TABLE ll_observation.set ADD COLUMN the_geom_settingend geometry(Point, 4326);
    
    37
    -DROP INDEX IF EXISTS idx_ll_observation_set_gist_settingend;
    
    38
    -CREATE INDEX IF NOT EXISTS idx_ll_observation_set_gist_settingend ON ll_observation.set USING GIST (the_geom_settingend);
    
    37
    +DROP INDEX IF EXISTS idx_ll_observation_set_gipublic.ST_settingend;
    
    38
    +CREATE INDEX IF NOT EXISTS idx_ll_observation_set_gipublic.ST_settingend ON ll_observation.set USING GIST (the_geom_settingend);
    
    39 39
     DROP TRIGGER IF EXISTS tr_sync_ll_observation_set_the_geom_settingend ON ll_observation.set;
    
    40 40
     CREATE TRIGGER tr_sync_ll_observation_set_the_geom_settingend BEFORE INSERT OR UPDATE OF settingEndLatitude, settingEndLongitude ON ll_observation.set FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_settingEnd();
    
    41
    -UPDATE ll_observation.set SET the_geom_settingend = ST_SetSRID(ST_MakePoint(settingEndLongitude::double precision, settingEndLatitude::double precision), 4326) WHERE the_geom_settingend IS NULL;
    
    41
    +UPDATE ll_observation.set SET the_geom_settingend = public.ST_SetSRID(public.ST_MakePoint(settingEndLongitude, settingEndLatitude), 4326) WHERE the_geom_settingend IS NULL;
    
    42 42
     
    
    43 43
     ALTER TABLE ll_observation.set ADD COLUMN the_geom_haulingstart geometry(Point, 4326);
    
    44
    -DROP INDEX IF EXISTS idx_ll_observation_set_gist_haulingstart;
    
    45
    -CREATE INDEX IF NOT EXISTS idx_ll_observation_set_gist_haulingstart ON ll_observation.set USING GIST (the_geom_haulingstart);
    
    44
    +DROP INDEX IF EXISTS idx_ll_observation_set_gipublic.ST_haulingstart;
    
    45
    +CREATE INDEX IF NOT EXISTS idx_ll_observation_set_gipublic.ST_haulingstart ON ll_observation.set USING GIST (the_geom_haulingstart);
    
    46 46
     DROP TRIGGER IF EXISTS tr_sync_ll_observation_set_the_geom_haulingstart ON ll_observation.set;
    
    47 47
     CREATE TRIGGER tr_sync_ll_observation_set_the_geom_haulingstart BEFORE INSERT OR UPDATE OF haulingStartLatitude, haulingStartLongitude ON ll_observation.set FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_haulingStart();
    
    48
    -UPDATE ll_observation.set SET the_geom_haulingstart = ST_SetSRID(ST_MakePoint(haulingStartLongitude::double precision, haulingStartLatitude::double precision), 4326) WHERE the_geom_haulingstart IS NULL;
    
    48
    +UPDATE ll_observation.set SET the_geom_haulingstart = public.ST_SetSRID(public.ST_MakePoint(haulingStartLongitude, haulingStartLatitude), 4326) WHERE the_geom_haulingstart IS NULL;
    
    49 49
     
    
    50 50
     ALTER TABLE ll_observation.set ADD COLUMN the_geom_haulingend geometry(Point, 4326);
    
    51
    -DROP INDEX IF EXISTS idx_ll_observation_set_gist_haulingend;
    
    52
    -CREATE INDEX IF NOT EXISTS idx_ll_observation_set_gist_haulingend ON ll_observation.set USING GIST (the_geom_haulingend);
    
    51
    +DROP INDEX IF EXISTS idx_ll_observation_set_gipublic.ST_haulingend;
    
    52
    +CREATE INDEX IF NOT EXISTS idx_ll_observation_set_gipublic.ST_haulingend ON ll_observation.set USING GIST (the_geom_haulingend);
    
    53 53
     DROP TRIGGER IF EXISTS tr_sync_ll_observation_set_the_geom_haulingend ON ll_observation.set;
    
    54 54
     CREATE TRIGGER tr_sync_ll_observation_set_the_geom_haulingend BEFORE INSERT OR UPDATE OF haulingEndLatitude, haulingEndLongitude ON ll_observation.set FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_haulingEnd();
    
    55
    -UPDATE ll_observation.set SET the_geom_haulingend = ST_SetSRID(ST_MakePoint(haulingEndLongitude::double precision, haulingEndLatitude::double precision), 4326) WHERE the_geom_haulingend IS NULL;
    
    55
    +UPDATE ll_observation.set SET the_geom_haulingend = public.ST_SetSRID(public.ST_MakePoint(haulingEndLongitude, haulingEndLatitude), 4326) WHERE the_geom_haulingend IS NULL;
    
    56 56
     
    
    57 57
     ALTER TABLE ll_logbook.activity ADD COLUMN the_geom geometry(Point, 4326);
    
    58 58
     CREATE INDEX IF NOT EXISTS idx_ll_logbook_activity_gist ON ll_logbook.activity USING GIST (the_geom);
    
    59 59
     DROP TRIGGER IF EXISTS tr_sync_ll_logbook_activity_the_geom ON ll_logbook.activity;
    
    60 60
     CREATE TRIGGER tr_sync_ll_logbook_activity_the_geom BEFORE INSERT OR UPDATE OF latitude, longitude ON ll_logbook.activity FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_default();
    
    61
    -UPDATE ll_logbook.activity SET the_geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;
    
    61
    +UPDATE ll_logbook.activity SET the_geom = public.ST_SetSRID(public.ST_MakePoint(longitude, latitude), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;
    
    62 62
     
    
    63 63
     ALTER TABLE ll_logbook.set ADD COLUMN the_geom_settingstart geometry(Point, 4326);
    
    64
    -CREATE INDEX IF NOT EXISTS idx_ll_logbook_set_gist_settingstart ON ll_logbook.set USING GIST (the_geom_settingstart);
    
    64
    +CREATE INDEX IF NOT EXISTS idx_ll_logbook_set_gipublic.ST_settingstart ON ll_logbook.set USING GIST (the_geom_settingstart);
    
    65 65
     DROP TRIGGER IF EXISTS tr_sync_ll_logbook_set_the_geom_settingstart ON ll_logbook.set;
    
    66 66
     CREATE TRIGGER tr_sync_ll_logbook_set_the_geom_settingstart BEFORE INSERT OR UPDATE OF settingStartLatitude, settingStartLongitude ON ll_logbook.set FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_settingStart();
    
    67
    -UPDATE ll_logbook.set SET the_geom_settingstart = ST_SetSRID(ST_MakePoint(settingStartLongitude::double precision, settingStartLatitude::double precision), 4326) WHERE settingStartLongitude IS NOT NULL AND settingStartLatitude IS NOT NULL AND the_geom_settingstart IS NULL;
    
    67
    +UPDATE ll_logbook.set SET the_geom_settingstart = public.ST_SetSRID(public.ST_MakePoint(settingStartLongitude, settingStartLatitude), 4326) WHERE settingStartLongitude IS NOT NULL AND settingStartLatitude IS NOT NULL AND the_geom_settingstart IS NULL;
    
    68 68
     
    
    69 69
     ALTER TABLE ll_logbook.set ADD COLUMN the_geom_settingend geometry(Point, 4326);
    
    70
    -CREATE INDEX IF NOT EXISTS idx_ll_logbook_set_gist_settingend ON ll_logbook.set USING GIST (the_geom_settingend);
    
    70
    +CREATE INDEX IF NOT EXISTS idx_ll_logbook_set_gipublic.ST_settingend ON ll_logbook.set USING GIST (the_geom_settingend);
    
    71 71
     DROP TRIGGER IF EXISTS tr_sync_ll_logbook_set_the_geom_settingend ON ll_logbook.set;
    
    72 72
     CREATE TRIGGER tr_sync_ll_logbook_set_the_geom_settingend BEFORE INSERT OR UPDATE OF settingEndLatitude, settingEndLongitude ON ll_logbook.set FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_settingEnd();
    
    73
    -UPDATE ll_logbook.set SET the_geom_settingend = ST_SetSRID(ST_MakePoint(settingEndLongitude::double precision, settingEndLatitude::double precision), 4326) WHERE settingEndLongitude IS NOT NULL AND settingEndLatitude IS NOT NULL AND the_geom_settingend IS NULL;
    
    73
    +UPDATE ll_logbook.set SET the_geom_settingend = public.ST_SetSRID(public.ST_MakePoint(settingEndLongitude, settingEndLatitude), 4326) WHERE settingEndLongitude IS NOT NULL AND settingEndLatitude IS NOT NULL AND the_geom_settingend IS NULL;
    
    74 74
     
    
    75 75
     ALTER TABLE ll_logbook.set ADD COLUMN the_geom_haulingstart geometry(Point, 4326);
    
    76
    -CREATE INDEX IF NOT EXISTS idx_ll_logbook_set_gist_haulingstart ON ll_logbook.set USING GIST (the_geom_haulingstart);
    
    76
    +CREATE INDEX IF NOT EXISTS idx_ll_logbook_set_gipublic.ST_haulingstart ON ll_logbook.set USING GIST (the_geom_haulingstart);
    
    77 77
     DROP TRIGGER IF EXISTS tr_sync_ll_logbook_set_the_geom_haulingstart ON ll_logbook.set;
    
    78 78
     CREATE TRIGGER tr_sync_ll_logbook_set_the_geom_haulingstart BEFORE INSERT OR UPDATE OF haulingStartLatitude, haulingStartLongitude ON ll_logbook.set FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_haulingStart();
    
    79
    -UPDATE ll_logbook.set SET the_geom_haulingstart = ST_SetSRID(ST_MakePoint(haulingStartLongitude::double precision, haulingStartLatitude::double precision), 4326) WHERE haulingStartLongitude IS NOT NULL AND haulingStartLatitude IS NOT NULL AND the_geom_haulingstart IS NULL;
    
    79
    +UPDATE ll_logbook.set SET the_geom_haulingstart = public.ST_SetSRID(public.ST_MakePoint(haulingStartLongitude, haulingStartLatitude), 4326) WHERE haulingStartLongitude IS NOT NULL AND haulingStartLatitude IS NOT NULL AND the_geom_haulingstart IS NULL;
    
    80 80
     
    
    81 81
     ALTER TABLE ll_logbook.set ADD COLUMN the_geom_haulingend geometry(Point, 4326);
    
    82
    -CREATE INDEX IF NOT EXISTS idx_ll_logbook_set_gist_haulingend ON ll_logbook.set USING GIST (the_geom_haulingend);
    
    82
    +CREATE INDEX IF NOT EXISTS idx_ll_logbook_set_gipublic.ST_haulingend ON ll_logbook.set USING GIST (the_geom_haulingend);
    
    83 83
     DROP TRIGGER IF EXISTS tr_sync_ll_logbook_set_the_geom_haulingend ON ll_logbook.set;
    
    84 84
     CREATE TRIGGER tr_sync_ll_logbook_set_the_geom_haulingend BEFORE INSERT OR UPDATE OF haulingEndLatitude, haulingEndLongitude ON ll_logbook.set FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_haulingEnd();
    
    85
    -UPDATE ll_logbook.set SET the_geom_haulingend = ST_SetSRID(ST_MakePoint(haulingEndLongitude::double precision, haulingEndLatitude::double precision), 4326) WHERE haulingEndLongitude IS NOT NULL AND haulingEndLatitude IS NOT NULL AND the_geom_haulingend IS NULL;
    
    85
    +UPDATE ll_logbook.set SET the_geom_haulingend = public.ST_SetSRID(public.ST_MakePoint(haulingEndLongitude, haulingEndLatitude), 4326) WHERE haulingEndLongitude IS NOT NULL AND haulingEndLatitude IS NOT NULL AND the_geom_haulingend IS NULL;
    
    86 86
     
    
    87 87
     ALTER TABLE ll_landing.landing ADD COLUMN the_geom geometry(Point, 4326);
    
    88 88
     CREATE INDEX IF NOT EXISTS idx_ll_landing_landing_gist ON ll_landing.landing USING GIST (the_geom);
    
    89 89
     DROP TRIGGER IF EXISTS tr_sync_ll_landing_landing_the_geom ON ll_landing.landing;
    
    90 90
     CREATE TRIGGER tr_sync_ll_landing_landing_the_geom BEFORE INSERT OR UPDATE OF latitude, longitude ON ll_landing.landing FOR EACH ROW EXECUTE PROCEDURE sync_the_geom_default();
    
    91
    -UPDATE ll_landing.landing SET the_geom = ST_SetSRID(ST_MakePoint(longitude::double precision, latitude::double precision), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;
    91
    +UPDATE ll_landing.landing SET the_geom = public.ST_SetSRID(public.ST_MakePoint(longitude, latitude), 4326) WHERE latitude IS NOT NULL AND longitude IS NOT NULL AND the_geom IS NULL;

  • core/api/dto-decoration/src/main/i18n/getters/labels.getter
    ... ... @@ -840,6 +840,7 @@ observe.data.ps.localmarket.Batch.buyer
    840 840
     observe.data.ps.localmarket.Batch.count
    
    841 841
     observe.data.ps.localmarket.Batch.count.short
    
    842 842
     observe.data.ps.localmarket.Batch.date
    
    843
    +observe.data.ps.localmarket.Batch.date.short
    
    843 844
     observe.data.ps.localmarket.Batch.title
    
    844 845
     observe.data.ps.localmarket.Batch.type
    
    845 846
     observe.data.ps.localmarket.Batch.weight
    

  • core/services/i18n/src/main/i18n/translations/services_en_GB.properties
    ... ... @@ -1004,6 +1004,7 @@ observe.data.ps.localmarket.Batch.count=Count
    1004 1004
     observe.data.ps.localmarket.Batch.count.short=Count
    
    1005 1005
     observe.data.ps.localmarket.Batch.count.validation.required=Count or weight must be filled (but not both).
    
    1006 1006
     observe.data.ps.localmarket.Batch.date=Date
    
    1007
    +observe.data.ps.localmarket.Batch.date.short=Date
    
    1007 1008
     observe.data.ps.localmarket.Batch.title=Batches
    
    1008 1009
     observe.data.ps.localmarket.Batch.type=Batch
    
    1009 1010
     observe.data.ps.localmarket.Batch.validation.date.after.currentPsCommonTrip.endDate=Date (%2$s) must be after trip end date (%1$s).
    

  • core/services/i18n/src/main/i18n/translations/services_es_ES.properties
    ... ... @@ -1004,6 +1004,7 @@ observe.data.ps.localmarket.Batch.count=Count
    1004 1004
     observe.data.ps.localmarket.Batch.count.short=Count
    
    1005 1005
     observe.data.ps.localmarket.Batch.count.validation.required=TODO
    
    1006 1006
     observe.data.ps.localmarket.Batch.date=Date
    
    1007
    +observe.data.ps.localmarket.Batch.date.short=Date
    
    1007 1008
     observe.data.ps.localmarket.Batch.title=Local market Batches
    
    1008 1009
     observe.data.ps.localmarket.Batch.type=Local market Batches
    
    1009 1010
     observe.data.ps.localmarket.Batch.validation.date.after.currentPsCommonTrip.endDate=Date (%2$s) must be after trip end date (%1$s). \#TODO
    

  • core/services/i18n/src/main/i18n/translations/services_fr_FR.properties
    ... ... @@ -1004,6 +1004,7 @@ observe.data.ps.localmarket.Batch.count=Nombre
    1004 1004
     observe.data.ps.localmarket.Batch.count.short=Effectif
    
    1005 1005
     observe.data.ps.localmarket.Batch.count.validation.required=Le nombre ou le poids doit être renseigné (mais pas les deux).
    
    1006 1006
     observe.data.ps.localmarket.Batch.date=Date
    
    1007
    +observe.data.ps.localmarket.Batch.date.short=Date
    
    1007 1008
     observe.data.ps.localmarket.Batch.title=Lots
    
    1008 1009
     observe.data.ps.localmarket.Batch.type=Lot
    
    1009 1010
     observe.data.ps.localmarket.Batch.validation.date.after.currentPsCommonTrip.endDate=La date (%2$s) doit être supérieure ou égale à la date de fin de marée (%1$s).
    

  • doc/specs/azti-2023/observe-azti-2023.md
    1 1
     # Introduction
    
    2 2
     
    
    3
    -* Ce document décrit notre réponse technique suite à la demande de développements complémentaires par l'AZTI et l'IRD.
    
    4
    -* Rédigé le 29/06/2023 à Saint Cybardeaux (16170)
    
    3
    +* Ce document décrit un chiffrage suite à la demande de développements complémentaires par l'AZTI et l'IRD.
    
    4
    +* Rédigé le 06/07/2023 à Saint Cybardeaux (16170)
    
    5 5
     * Auteur *Tony Chemit*, société *Ultreia.io*
    
    6 6
     
    
    7 7
     \newpage
    
    ... ... @@ -10,60 +10,65 @@
    10 10
     
    
    11 11
     ## (2707) Faire évoluer l'UI équipement du bateau pour autoriser la gestion de listes de référence
    
    12 12
     
    
    13
    - * ajout d'un nouveau type **date** (1J)
    
    14
    - * ajout du nouveau type **liste de choix** (1.5J)
    
    15
    - * contraindre les caractéristiques d'équipement (common.gearcharacteristic) autorisées pour un équipement (common.gear) donné (3J)
    
    16
    - * remplir les référentiels correctement via migration (3J)
    
    13
    +* ajout d'un nouveau type **date** (1J)
    
    14
    +* ajout du nouveau type **liste de choix** (1.5J)
    
    15
    +* contraindre les caractéristiques d'équipement (common.gearcharacteristic) autorisées pour un équipement (common.gear) donné (3J)
    
    16
    +* remplir les référentiels correctement via migration (3J)
    
    17 17
     
    
    18 18
     ## (2708) Ajout de deux nouveaux champs et listes déroulantes sur le formulaire bonnes pratiques de remise à l'eau
    
    19 19
     
    
    20
    - * ajout du nouveau référentiel Zone de manipulation (0.5J)
    
    21
    - * ajout du champs Numéro de salabarde (0.5J)
    
    20
    +* ajout du nouveau référentiel Zone de manipulation (0.5J)
    
    21
    +* ajout du champs Numéro de salabarde (0.5J)
    
    22 22
     
    
    23 23
     ## (2215) Améliorer le rapport de validation
    
    24 24
     
    
    25
    - * ajout méta-données et configuration de la validation (0.5J)
    
    26
    - * catégoriser des nouvelles informations permettant d'identifier les objets (2J)
    
    25
    +* ajout méta-données et configuration de la validation (0.5J)
    
    26
    +* catégoriser des nouvelles informations permettant d'identifier les objets (2J)
    
    27 27
     
    
    28 28
     ## (2449) Nouveaux flags allowSet et fpaZoneMode sur les types d'activités bateau
    
    29 29
     
    
    30
    - * ajout du flag **allowSet** et utilisation à tous les endroits propices (1J)
    
    31
    - * ajout du flag **allowFpaZoneChange** (1J)
    
    30
    +* ajout du flag **allowSet** et utilisation à tous les endroits propices (1J)
    
    31
    +* ajout du flag **allowFpaZoneChange** (1J)
    
    32 32
     
    
    33 33
     ## (2497) Filtrage des devenirs pour les données observation et logbooks
    
    34 34
     
    
    35
    - * ajout des deux nouveaux flags **observation** et **logbook** (PS et LL) (0.5J)
    
    36
    - * mise en place des valeurs associées via migration et utilisation sur les formulaires concernés (0.5J)
    
    35
    +* ajout des deux nouveaux flags **observation** et **logbook** (PS et LL) (0.5J)
    
    36
    +* mise en place des valeurs associées via migration et utilisation sur les formulaires concernés (0.5J)
    
    37 37
     
    
    38 38
     ## (2498) Filtrage des types d'activité bateau pour les données observation et logbooks
    
    39 39
     
    
    40
    - * ajout du nouveau flag (PS et LL) (1J)
    
    41
    - * remplissage du référentiel et utilisation sur les deux formulaires (1J)
    
    40
    +* ajout du nouveau flag (PS et LL) (1J)
    
    41
    +* remplissage du référentiel et utilisation sur les deux formulaires (1J)
    
    42 42
     
    
    43 43
     ## (2706) Améliorer l'identification des enregistrements dans l'UI de validation batch
    
    44 44
     
    
    45
    - * ajouter les clefs métiers qui remontent jusqu'à la marée (2J)
    
    45
    +* ajouter les clefs métiers qui remontent jusqu'à la marée (2J)
    
    46 46
     
    
    47 47
     La modification du rapport est traité dans un autre ticket.
    
    48 48
     
    
    49 49
     ## (2725) Contrôler la syntaxe des id balises par une expression régulière propre à chaque modèle de balise
    
    50 50
     
    
    51
    - * ajout du nouveau champs **regex** (0.5J)
    
    52
    - * mise à jour du référentiel via migration (1.5J)
    
    53
    - * mise en place de la validation via ce champs (1J)
    
    51
    +* ajout du nouveau champs **regex** (0.5J)
    
    52
    +* mise à jour du référentiel via migration (1.5J)
    
    53
    +* mise en place de la validation via ce champs (1J)
    
    54 54
     
    
    55 55
     ## (2729) En PS / logbook / Activité, voir comment mieux gérer l'ajout d'une activité dont l'horaire précéde celui de la dernière activité saisie (souci lié au numéro d'activité auto incrémenté)
    
    56 56
     
    
    57
    - * ajout du champs **activitiesAcquisitionMode** au niveau de la marée (0.5J)
    
    58
    - * positionnement de ce nouveau champs via migration embarqué et AVDTH (0.5J)
    
    59
    - * mise en place du mode horaire (0.5J)
    
    60
    - * mise en place du mode indexé (0.5J)
    
    57
    +* ajout du champs **activitiesAcquisitionMode** au niveau de la marée (0.5J)
    
    58
    +* positionnement de ce nouveau champs via migration embarqué et AVDTH (0.5J)
    
    59
    +* mise en place du mode horaire (0.5J)
    
    60
    +* mise en place du mode indexé (0.5J)
    
    61 61
     
    
    62 62
     ## (2740) En PS / logbook, ajouter 2 champs previousFpaZone et nextFpaZone
    
    63 63
     
    
    64
    - * ajout des deux nouveaux champs *previousFpaZone* et *nextFpaZone* (0.25J)
    
    65
    - * renommage du champs *fpaZone* en *currentFpaZone* (0.25J)
    
    66
    - * pilotage de ces champs via le drapeau sur vesselActivity (0.5J)
    
    64
    +* ajout des deux nouveaux champs *previousFpaZone* et *nextFpaZone* (0.25J)
    
    65
    +* renommage du champs *fpaZone* en *currentFpaZone* (0.25J)
    
    66
    +* pilotage de ces champs via le drapeau sur vesselActivity (0.5J)
    
    67
    +
    
    68
    +## (2750) Effectuer un différentiel sur l'UI de synchro de marées
    
    69
    +
    
    70
    +* calcul du différentiel entre les deux sources de données (1J)
    
    71
    +* adaptation de l'arbre de navigation pour n'afficher que les marées différentes (2J)
    
    67 72
     
    
    68 73
     # Chiffrage global
    
    69 74
     
    
    ... ... @@ -81,7 +86,13 @@ La modification du rapport est traité dans un autre ticket.
    81 86
     | (2725) Contrôler la syntaxe des id balises par une expression régulière propre à chaque modèle de balise                                                                                        |            3 |
    
    82 87
     | (2729) En PS / logbook / Activité, voir comment mieux gérer l'ajout d'une activité dont l'horaire précéde celui de la dernière activité saisie (souci lié au numéro d'activité auto incrémenté) |            2 |
    
    83 88
     | (2740) En PS / logbook, ajouter 2 champs previousFpaZone et nextFpaZone                                                                                                                         |            1 |
    
    84
    -| Gestion de projet                                                                                                                                                                               |          2.5 |
    
    89
    +| (2750) Effectuer un différentiel sur l'UI de synchro de marées                                                                                                                                  |            3 |
    
    90
    +| Gestion de projet                                                                                                                                                                               |            5 |
    
    91
    +| Total                                                                                                                                                                                           |           33 |
    
    92
    +| *Remises offertes*                                                                                                                                                                              |              |
    
    93
    +| Gestion de projet                                                                                                                                                                               |         -2.5 |
    
    94
    +| (2750) Effectuer un différentiel sur l'UI de synchro de marées                                                                                                                                  |           -3 |
    
    85 95
     | Total                                                                                                                                                                                           |         27.5 |
    
    86 96
     
    
    87
    -Le prix total est de **14 850 €**.
    97
    +* Prix total (sans remise) : **17 280€**
    
    98
    +* Prix total (avec remise) : **14 850€**

  • model/src/main/models/Observe/dto/class/containerChildDataDtoProperties.properties
    ... ... @@ -37,7 +37,7 @@ data.ll.observation.SensorUsed=sensorType,sensorBrand,sensorDataFormat,sensorSer
    37 37
     data.ll.observation.Tdr=homeId,serialNo,sensorBrand,hasData
    
    38 38
     data.ps.common.GearUseFeatures=gear,number,usedInTrip,comment
    
    39 39
     data.ps.landing.Landing=species,weightCategory,weight,destination,fate,fateVessel
    
    40
    -data.ps.localmarket.Batch=species,packaging,count,weight
    
    40
    +data.ps.localmarket.Batch=species,packaging,count,weight,date
    
    41 41
     data.ps.localmarket.SampleSpecies=species,sizeMeasureType,measuredCount,comment
    
    42 42
     data.ps.logbook.Catch=species,weightCategory,speciesFate,well,weight,count,comment
    
    43 43
     data.ps.logbook.SampleSpecies=subSampleNumber,species,sizeMeasureType,measuredCount,totalCount,startTime,endTime,comment
    

  • pom.xml
    ... ... @@ -23,7 +23,7 @@
    23 23
       <parent>
    
    24 24
         <groupId>io.ultreia.maven</groupId>
    
    25 25
         <artifactId>pom</artifactId>
    
    26
    -    <version>2023.31</version>
    
    26
    +    <version>2023.33</version>
    
    27 27
       </parent>
    
    28 28
       <groupId>fr.ird.observe</groupId>
    
    29 29
       <artifactId>ird-observe</artifactId>
    

  • toolkit/api-datasource/src/main/java/fr/ird/observe/datasource/security/WithPermission.java
    ... ... @@ -41,6 +41,10 @@ public interface WithPermission {
    41 41
             return canExecute(Permission.READ_REFERENTIAL);
    
    42 42
         }
    
    43 43
     
    
    44
    +    default boolean canReadAll() {
    
    45
    +        return canReadReferential() && canReadData();
    
    46
    +    }
    
    47
    +
    
    44 48
         default String getReferentialPermissionLabel() {
    
    45 49
             String result;
    
    46 50
             if (canWriteReferential()) {
    

  • toolkit/api/src/main/java/fr/ird/observe/dto/ObserveUtil.java
    ... ... @@ -22,6 +22,10 @@ package fr.ird.observe.dto;
    22 22
      * #L%
    
    23 23
      */
    
    24 24
     
    
    25
    +import com.google.gson.Gson;
    
    26
    +import com.google.gson.GsonBuilder;
    
    27
    +import com.google.gson.JsonObject;
    
    28
    +import com.google.gson.JsonParser;
    
    25 29
     import fr.ird.observe.spi.module.BusinessModule;
    
    26 30
     import fr.ird.observe.spi.module.BusinessSubModule;
    
    27 31
     import io.ultreia.java4all.config.ApplicationConfig;
    
    ... ... @@ -248,5 +252,16 @@ public class ObserveUtil {
    248 252
             return !isEmpty(o);
    
    249 253
         }
    
    250 254
     
    
    251
    -
    
    255
    +    /**
    
    256
    +     *
    
    257
    +     * @param jsonString the json string in compact mode
    
    258
    +     * @return the gson in a pretty mode
    
    259
    +     */
    
    260
    +    public static String toPrettyFormat(String jsonString)
    
    261
    +    {
    
    262
    +        JsonObject json = JsonParser.parseString(jsonString).getAsJsonObject();
    
    263
    +
    
    264
    +        Gson gson = new GsonBuilder().setPrettyPrinting().create();
    
    265
    +        return gson.toJson(json);
    
    266
    +    }
    
    252 267
     }

  • toolkit/persistence/src/main/java/org/nuiton/topia/persistence/security/SecurityScriptHelper.java
    ... ... @@ -191,6 +191,9 @@ public class SecurityScriptHelper {
    191 191
         protected void createSecurityScript(Path scriptPath, Set<DataSourceUserDto> users) throws IOException {
    
    192 192
             Set<String> schemas = new LinkedHashSet<>();
    
    193 193
             MigrationServiceSqlHelper migrationServiceSqlHelper = MigrationServiceSqlHelper.CURRENT;
    
    194
    +        // We need to add this schema, postgis function are in it
    
    195
    +        // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2757
    
    196
    +        schemas.add("public");
    
    194 197
             schemas.add(migrationServiceSqlHelper.schemaName());
    
    195 198
             schemas.addAll(applicationContext.getSchemaNames());
    
    196 199
             Path blobIdsPath = scriptPath.getParent().resolve(scriptPath.toFile().getName().replace(".sql", ".blob-ids"));