Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
43554699
by Tony Chemit at 2023-07-06T09:45:08+02:00
-
c9a15077
by Tony Chemit at 2023-07-06T12:13:25+02:00
-
b738487f
by Tony Chemit at 2023-07-12T17:30:22+02:00
-
9d954457
by Tony Chemit at 2023-07-12T17:30:22+02:00
-
5e6c417f
by Tony Chemit at 2023-07-12T17:30:22+02:00
-
c228c1e4
by Tony Chemit at 2023-07-12T17:30:22+02:00
-
07cd622b
by Tony Chemit at 2023-07-12T17:30:22+02:00
-
9d9ea87d
by Tony Chemit at 2023-07-12T17:45:00+02:00
-
6fbc4793
by Tony Chemit at 2023-07-12T19:03:20+02:00
24 changed files:
- client/core/src/main/java/fr/ird/observe/client/datasource/api/action/FeedBackBuilderModel.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/action/TechnicalErrorFeedBackBuilderModel.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/ContentReferentialUI.jcss
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/actions/ShowUsagesReferential.java
- client/datasource/editor/ps/src/main/i18n/getters/jaxx.getter
- client/datasource/editor/ps/src/main/i18n/getters/navigation.getter
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUI.jaxx
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUI.jcss
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/referential/localmarket/PackagingUI.jaxx
- client/runner/src/main/assembly/dist/scripts/postgresql/extra/01_0_create-postgis-functions.sql
- client/runner/src/main/assembly/dist/scripts/postgresql/extra/01_1_create-postgis-referential.sql
- client/runner/src/main/assembly/dist/scripts/postgresql/extra/01_2_create-postgis-ps.sql
- client/runner/src/main/assembly/dist/scripts/postgresql/extra/01_3_create-postgis-ll.sql
- core/api/dto-decoration/src/main/i18n/getters/labels.getter
- core/services/i18n/src/main/i18n/translations/services_en_GB.properties
- core/services/i18n/src/main/i18n/translations/services_es_ES.properties
- core/services/i18n/src/main/i18n/translations/services_fr_FR.properties
- doc/specs/azti-2023/observe-azti-2023.md
- model/src/main/models/Observe/dto/class/containerChildDataDtoProperties.properties
- pom.xml
- toolkit/api-datasource/src/main/java/fr/ird/observe/datasource/security/WithPermission.java
- toolkit/api/src/main/java/fr/ird/observe/dto/ObserveUtil.java
- toolkit/persistence/src/main/java/org/nuiton/topia/persistence/security/SecurityScriptHelper.java
Changes:
| ... | ... | @@ -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 | }
|
| ... | ... | @@ -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 | }
|
| ... | ... | @@ -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 | }
|
| ... | ... | @@ -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) {
|
| ... | ... | @@ -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 |
| ... | ... | @@ -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
|
| ... | ... | @@ -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'/>
|
| ... | ... | @@ -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 | }
|
| ... | ... | @@ -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 | }
|
| ... | ... | @@ -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'/>
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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; |
| ... | ... | @@ -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; |
| ... | ... | @@ -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; |
| ... | ... | @@ -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
|
| ... | ... | @@ -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).
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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).
|
| 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€** |
| ... | ... | @@ -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
|
| ... | ... | @@ -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>
|
| ... | ... | @@ -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()) {
|
| ... | ... | @@ -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 | } |
| ... | ... | @@ -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"));
|