Observe-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
June 2019
- 1 participants
- 64 discussions
[Git][ultreiaio/ird-observe][develop] Choix de nouvelles couleurs pour les symboles de la carte LL - Closes #1293
by Tony CHEMIT 29 Jun '19
by Tony CHEMIT 29 Jun '19
29 Jun '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
74dcde81 by tchemit at 2019-06-29T19:13:44Z
Choix de nouvelles couleurs pour les symboles de la carte LL - Closes #1293
- - - - -
8 changed files:
- client-core/src/main/java/fr/ird/observe/client/ui/util/tripMap/TripMapContentBuilder.java
- client-core/src/main/map/style.xml
- dto/src/main/i18n/getters/java-enumeration.getter
- dto/src/main/java/fr/ird/observe/dto/data/TripMapPointType.java
- observe-i18n/src/main/i18n/translations/observe_en_GB.properties
- observe-i18n/src/main/i18n/translations/observe_es_ES.properties
- observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
- persistence/src/main/java/fr/ird/observe/entities/data/ps/common/TripSeineTopiaDao.java
Changes:
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/util/tripMap/TripMapContentBuilder.java
=====================================
@@ -84,9 +84,9 @@ public class TripMapContentBuilder {
public static final String TRIP_POINTS_LAYER_NAME = "Trip points";
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM");
protected static final Set<TripMapPointType> TRIP_MAP_POINT_TYPES_IN_LEGEND = ImmutableSet.of(
- TripMapPointType.seineActivityInHarbour,
- TripMapPointType.seineActivityWithFreeSchoolType,
- TripMapPointType.seineActivityWithObjectSchoolType,
+ TripMapPointType.seineActivityObsInHarbour,
+ TripMapPointType.seineActivityObsWithFreeSchoolType,
+ TripMapPointType.seineActivityObsWithObjectSchoolType,
TripMapPointType.longlineActivityObsInHarbour,
TripMapPointType.longlineActivityObsWithSettingStart,
TripMapPointType.longlineActivityObsWithSettingEnd,
=====================================
client-core/src/main/map/style.xml
=====================================
@@ -30,7 +30,6 @@
<Name>Trip lines</Name>
<UserStyle>
<IsDefault>true</IsDefault>
- <Title>SLD Cook Book: Simple Line</Title>
<FeatureTypeStyle>
<Rule>
<Name>Trip day</Name>
@@ -91,7 +90,6 @@
<Name>Trip longline observation zone</Name>
<UserStyle>
<IsDefault>true</IsDefault>
- <Title>SLD Cook Book: Simple Line</Title>
<FeatureTypeStyle>
<Rule>
<Name>Trip day</Name>
@@ -131,7 +129,6 @@
<Name>Trip longline logbook zone</Name>
<UserStyle>
<IsDefault>true</IsDefault>
- <Title>SLD Cook Book: Simple Line</Title>
<FeatureTypeStyle>
<Rule>
<Name>Trip day</Name>
@@ -171,7 +168,6 @@
<Name>Trip longline observation line</Name>
<UserStyle>
<IsDefault>true</IsDefault>
- <Title>SLD Cook Book: Simple Line</Title>
<FeatureTypeStyle>
<Rule>
<Name>Trip</Name>
@@ -231,7 +227,6 @@
<Name>Trip longline logbook line</Name>
<UserStyle>
<IsDefault>true</IsDefault>
- <Title>SLD Cook Book: Simple Line</Title>
<FeatureTypeStyle>
<Rule>
<Name>Trip</Name>
@@ -294,11 +289,11 @@
<IsDefault>true</IsDefault>
<FeatureTypeStyle>
<Rule>
- <Name>Point seine activity in harbour</Name>
+ <Name>Point seine activity Obs in harbour</Name>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>pointType</ogc:PropertyName>
- <ogc:Literal>seineActivityInHarbour</ogc:Literal>
+ <ogc:Literal>seineActivityObsInHarbour</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PointSymbolizer>
@@ -322,11 +317,11 @@
<FeatureTypeStyle>
<Rule>
- <Name>Point seine activity with free school type</Name>
+ <Name>Point seine activity Obs with free school type</Name>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>pointType</ogc:PropertyName>
- <ogc:Literal>seineActivityWithFreeSchoolType</ogc:Literal>
+ <ogc:Literal>seineActivityObsWithFreeSchoolType</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PointSymbolizer>
@@ -334,7 +329,7 @@
<Mark>
<WellKnownName>Triangle</WellKnownName>
<Fill>
- <CssParameter name="fill">#FFC800</CssParameter>
+ <CssParameter name="fill">#7800f6</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
@@ -349,11 +344,11 @@
<FeatureTypeStyle>
<Rule>
- <Name>Point seine activity with object school type</Name>
+ <Name>Point seine activity Obs with object school type</Name>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>pointType</ogc:PropertyName>
- <ogc:Literal>seineActivityWithObjectSchoolType</ogc:Literal>
+ <ogc:Literal>seineActivityObsWithObjectSchoolType</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<PointSymbolizer>
@@ -361,7 +356,7 @@
<Mark>
<WellKnownName>X</WellKnownName>
<Fill>
- <CssParameter name="fill">#00FF00</CssParameter>
+ <CssParameter name="fill">#7800f6</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
@@ -414,7 +409,7 @@
<PointSymbolizer>
<Graphic>
<Mark>
- <WellKnownName>X</WellKnownName>
+ <WellKnownName>Square</WellKnownName>
<Fill>
<CssParameter name="fill">#00FF00</CssParameter>
</Fill>
@@ -442,9 +437,9 @@
<PointSymbolizer>
<Graphic>
<Mark>
- <WellKnownName>Triangle</WellKnownName>
+ <WellKnownName>Circle</WellKnownName>
<Fill>
- <CssParameter name="fill">#FF0000</CssParameter>
+ <CssParameter name="fill">#00FF00</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
@@ -471,7 +466,7 @@
<Mark>
<WellKnownName>X</WellKnownName>
<Fill>
- <CssParameter name="fill">#FF0000</CssParameter>
+ <CssParameter name="fill">#00FF00</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
@@ -641,7 +636,7 @@
<Mark>
<WellKnownName>Triangle</WellKnownName>
<Fill>
- <CssParameter name="fill">#00FF00</CssParameter>
+ <CssParameter name="fill">#FF0000</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
@@ -667,9 +662,9 @@
<PointSymbolizer>
<Graphic>
<Mark>
- <WellKnownName>X</WellKnownName>
+ <WellKnownName>Square</WellKnownName>
<Fill>
- <CssParameter name="fill">#00FF00</CssParameter>
+ <CssParameter name="fill">#FF0000</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
@@ -695,7 +690,7 @@
<PointSymbolizer>
<Graphic>
<Mark>
- <WellKnownName>Triangle</WellKnownName>
+ <WellKnownName>Circle</WellKnownName>
<Fill>
<CssParameter name="fill">#FF0000</CssParameter>
</Fill>
=====================================
dto/src/main/i18n/getters/java-enumeration.getter
=====================================
@@ -36,10 +36,10 @@ observe.constant.TripMapPointType.longlineActivityObsWithSettingStart
observe.constant.TripMapPointType.longlineActivityObsWithStation
observe.constant.TripMapPointType.longlineDepartureHarbour
observe.constant.TripMapPointType.longlineLandingHarbour
-observe.constant.TripMapPointType.seineActivity
-observe.constant.TripMapPointType.seineActivityInHarbour
-observe.constant.TripMapPointType.seineActivityWithFreeSchoolType
-observe.constant.TripMapPointType.seineActivityWithObjectSchoolType
+observe.constant.TripMapPointType.seineActivityObs
+observe.constant.TripMapPointType.seineActivityObsInHarbour
+observe.constant.TripMapPointType.seineActivityObsWithFreeSchoolType
+observe.constant.TripMapPointType.seineActivityObsWithObjectSchoolType
observe.constant.TripMapPointType.seineDepartureHarbour
observe.constant.TripMapPointType.seineLandingHarbour
observe.constant.TypeTransmittingBuoyOperation.pasDeBalise
=====================================
dto/src/main/java/fr/ird/observe/dto/data/TripMapPointType.java
=====================================
@@ -32,10 +32,10 @@ public enum TripMapPointType {
seineDepartureHarbour,
seineLandingHarbour,
- seineActivity,
- seineActivityInHarbour,
- seineActivityWithFreeSchoolType,
- seineActivityWithObjectSchoolType,
+ seineActivityObs,
+ seineActivityObsInHarbour,
+ seineActivityObsWithFreeSchoolType,
+ seineActivityObsWithObjectSchoolType,
longlineDepartureHarbour,
longlineLandingHarbour,
=====================================
observe-i18n/src/main/i18n/translations/observe_en_GB.properties
=====================================
@@ -2865,10 +2865,10 @@ observe.constant.TripMapPointType.longlineActivityWithSettingStart=Setting start
observe.constant.TripMapPointType.longlineActivityWithStation=Station
observe.constant.TripMapPointType.longlineDepartureHarbour=Harbour departure
observe.constant.TripMapPointType.longlineLandingHarbour=Harbour landing
-observe.constant.TripMapPointType.seineActivity=Activity
-observe.constant.TripMapPointType.seineActivityInHarbour=In harbour
-observe.constant.TripMapPointType.seineActivityWithFreeSchoolType=Free School type
-observe.constant.TripMapPointType.seineActivityWithObjectSchoolType=Object School type
+observe.constant.TripMapPointType.seineActivityObs=Activity
+observe.constant.TripMapPointType.seineActivityObsInHarbour=In harbour
+observe.constant.TripMapPointType.seineActivityObsWithFreeSchoolType=Free School type
+observe.constant.TripMapPointType.seineActivityObsWithObjectSchoolType=Object School type
observe.constant.TripMapPointType.seineDepartureHarbour=Harbour departure
observe.constant.TripMapPointType.seineLandingHarbour=Harbour landing
observe.constant.TypeTransmittingBuoyOperation.pasDeBalise=No Beacon
=====================================
observe-i18n/src/main/i18n/translations/observe_es_ES.properties
=====================================
@@ -2865,10 +2865,10 @@ observe.constant.TripMapPointType.longlineActivityWithSettingStart=Inicio de cal
observe.constant.TripMapPointType.longlineActivityWithStation=Estación Oceanográfica
observe.constant.TripMapPointType.longlineDepartureHarbour=Puerto de salida
observe.constant.TripMapPointType.longlineLandingHarbour=Puerto de llegada
-observe.constant.TripMapPointType.seineActivity=Actividad
-observe.constant.TripMapPointType.seineActivityInHarbour=En puerto
-observe.constant.TripMapPointType.seineActivityWithFreeSchoolType=Banco libre
-observe.constant.TripMapPointType.seineActivityWithObjectSchoolType=Banco a objeto
+observe.constant.TripMapPointType.seineActivityObs=Actividad
+observe.constant.TripMapPointType.seineActivityObsInHarbour=En puerto
+observe.constant.TripMapPointType.seineActivityObsWithFreeSchoolType=Banco libre
+observe.constant.TripMapPointType.seineActivityObsWithObjectSchoolType=Banco a objeto
observe.constant.TripMapPointType.seineDepartureHarbour=Puerto de salida
observe.constant.TripMapPointType.seineLandingHarbour=Puerto de llegada
observe.constant.TypeTransmittingBuoyOperation.pasDeBalise=DCP sin baliza
=====================================
observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
=====================================
@@ -2865,10 +2865,10 @@ observe.constant.TripMapPointType.longlineActivityWithSettingStart=Début de fil
observe.constant.TripMapPointType.longlineActivityWithStation=Station océanographique
observe.constant.TripMapPointType.longlineDepartureHarbour=Port de départ
observe.constant.TripMapPointType.longlineLandingHarbour=Port d'arrivée
-observe.constant.TripMapPointType.seineActivity=point d'activité
-observe.constant.TripMapPointType.seineActivityInHarbour=Au port
-observe.constant.TripMapPointType.seineActivityWithFreeSchoolType=Banc libre
-observe.constant.TripMapPointType.seineActivityWithObjectSchoolType=Banc objet
+observe.constant.TripMapPointType.seineActivityObs=point d'activité
+observe.constant.TripMapPointType.seineActivityObsInHarbour=Au port
+observe.constant.TripMapPointType.seineActivityObsWithFreeSchoolType=Banc libre
+observe.constant.TripMapPointType.seineActivityObsWithObjectSchoolType=Banc objet
observe.constant.TripMapPointType.seineDepartureHarbour=Port de départ
observe.constant.TripMapPointType.seineLandingHarbour=Port d'arrivée
observe.constant.TypeTransmittingBuoyOperation.pasDeBalise=Pas de balise liée au DCP
=====================================
persistence/src/main/java/fr/ird/observe/entities/data/ps/common/TripSeineTopiaDao.java
=====================================
@@ -141,23 +141,23 @@ public class TripSeineTopiaDao extends AbstractTripSeineTopiaDao<TripSeine> {
point.setLatitude(resultSet.getFloat(3));
point.setLongitude(resultSet.getFloat(4));
if (ACTIVITY_HARBOUR_ID.equals(resultSet.getString(5))) {
- point.setType(TripMapPointType.seineActivityInHarbour);
+ point.setType(TripMapPointType.seineActivityObsInHarbour);
} else if (resultSet.getString(6) == null) {
- point.setType(TripMapPointType.seineActivity);
+ point.setType(TripMapPointType.seineActivityObs);
} else {
String schoolType = resultSet.getString(6);
switch (schoolType) {
case SchoolTypeHelper.SCHOOL_TYPE_FREE_ID:
- point.setType(TripMapPointType.seineActivityWithFreeSchoolType);
+ point.setType(TripMapPointType.seineActivityObsWithFreeSchoolType);
break;
case SchoolTypeHelper.SCHOOL_TYPE_OBJECT_ID:
- point.setType(TripMapPointType.seineActivityWithObjectSchoolType);
+ point.setType(TripMapPointType.seineActivityObsWithObjectSchoolType);
break;
case SchoolTypeHelper.SCHOOL_TYPE_UNDEFINED_ID:
- point.setType(TripMapPointType.seineActivity);
+ point.setType(TripMapPointType.seineActivityObs);
break;
default:
- point.setType(TripMapPointType.seineActivity);
+ point.setType(TripMapPointType.seineActivityObs);
}
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/74dcde816b4e5563f750190f5bf…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/74dcde816b4e5563f750190f5bf…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9] 8 commits: Choix de nouvelles couleurs pour les symboles de la carte LL - Closes #1293
by Tony CHEMIT 29 Jun '19
by Tony CHEMIT 29 Jun '19
29 Jun '19
Tony CHEMIT pushed to branch develop-9 at ultreiaio / ird-observe
Commits:
74dcde81 by tchemit at 2019-06-29T19:13:44Z
Choix de nouvelles couleurs pour les symboles de la carte LL - Closes #1293
- - - - -
2977dae3 by tchemit at 2019-06-29T19:13:52Z
Réorganisation des données d’observation PS - Réorganisation des captures et échantillons de cible et bycatch observés - See #1254
- - - - -
4915185e by tchemit at 2019-06-29T19:13:52Z
Move to new version 9.0-alpha-1
- - - - -
27b1c490 by tchemit at 2019-06-29T19:13:52Z
Réorganisation des données d’observation PS - Re localisation dans la hiérarchie - Closes #1252
- - - - -
c80573fc by tchemit at 2019-06-29T19:13:52Z
Module 2 (first flush)
- - - - -
752abdb4 by tchemit at 2019-06-29T19:13:53Z
[PS] Contenu des onglets spécifiques observations et logbooks et le formulaire marée - See #1300
- - - - -
3aecb17c by tchemit at 2019-06-29T19:13:53Z
Module 2 - second flush
- - - - -
a107d1d2 by tchemit at 2019-06-29T19:13:53Z
Report from v8 for ps logbook model
- - - - -
30 changed files:
- .mvn/pom.gitflow.develop
- .mvn/pom.gitflow.master
- client-configuration/.mvn/pom.gitflow.develop
- client-configuration/.mvn/pom.gitflow.master
- client-configuration/pom.xml
- client-configuration/src/main/config/Client.ini
- client-configuration/src/main/i18n/getters/config.getter
- client-configuration/src/main/i18n/getters/java-enumeration.getter
- client-configuration/src/main/i18n/getters/java.getter
- client-core/.mvn/pom.gitflow.develop
- client-core/.mvn/pom.gitflow.master
- client-core/pom.xml
- client-core/src/main/dcp-presets/ps/logbook/01-deployment-preset.yml
- client-core/src/main/dcp-presets/ps/logbook/02-removal-preset.yml
- client-core/src/main/dcp-presets/ps/logbook/03-update-preset.yml
- client-core/src/main/dcp-presets/ps/logbook/04-abandonned-preset.yml
- client-core/src/main/dcp-presets/ps/observation/01-deployment-preset.yml
- client-core/src/main/dcp-presets/ps/observation/02-removal-preset.yml
- client-core/src/main/dcp-presets/ps/observation/03-update-preset.yml
- client-core/src/main/i18n/getters/java.getter
- client-core/src/main/i18n/getters/jaxx.getter
- client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java
- client-core/src/main/java/fr/ird/observe/client/navigation/RouteCloseCallback.java
- client-core/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jaxx
- client-core/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jcss
- client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/add/AddActivitySeineFloatingObjectUIAction.java
- client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/dcp/AddFloatingObjectPresetUIAction.java
- + client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/logbook/add/AddActivitySeineFloatingObjectUIAction.java
- client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/nodes/data/ps/obs/DiscardedTargetCatchSeineNavigationTreeNode.java → client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/logbook/add/AddActivitySeineSetUIAction.java
- + client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/logbook/dcp/AddFloatingObjectPresetUIAction.java
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/09c729a2d0eb209e92559d5956…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/09c729a2d0eb209e92559d5956…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] L'assistant migration via serveur pourrait refuser de continuer si...
by Tony CHEMIT 29 Jun '19
by Tony CHEMIT 29 Jun '19
29 Jun '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
dfd0c3f9 by tchemit at 2019-06-29T16:52:58Z
L'assistant migration via serveur pourrait refuser de continuer si l'utilisateur n'est pas assez acrédité - Closes #1145
Assistant création de base PG échoue - Closes #1331
- - - - -
15 changed files:
- client-core/src/main/i18n/getters/java.getter
- client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java
- client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java
- client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestRemoteUIAction.java
- client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestServerUIAction.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java
- client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIModel.java
- observe-i18n/src/main/i18n/translations/observe_en_GB.properties
- observe-i18n/src/main/i18n/translations/observe_es_ES.properties
- observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
- pom.xml
- server-core/src/main/filtered-resources/mapping
- services-local/src/main/java/fr/ird/observe/services/local/service/DataSourceServiceLocal.java
- services/src/main/java/fr/ird/observe/services/service/DataSourceService.java
Changes:
=====================================
client-core/src/main/i18n/getters/java.getter
=====================================
@@ -910,6 +910,7 @@ observe.storage.error.rest.user.required
observe.storage.error.rest.user.unknown
observe.storage.error.serverVersionMismatch
observe.storage.error.serverVersionModelMismatch
+observe.storage.error.user.not.owner
observe.storage.internalDump.last.modified
observe.storage.internalDump.not.exist
observe.storage.label.data.import.db
=====================================
client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java
=====================================
@@ -125,7 +125,9 @@ public class ObserveDataSourcesManager implements Closeable {
dataSource = newDataSource(configuration);
break;
}
-
+ if (model.getDataSourceInformation() != null) {
+ dataSource.setOwner(model.getDataSourceInformation().isOwner());
+ }
return dataSource;
}
@@ -293,8 +295,8 @@ public class ObserveDataSourcesManager implements Closeable {
try {
- ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect();
-
+ ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false);
+ dataSource.setOwner(dataSourceInformation.isOwner());
dataSource.migrateDataIfPossible(dataSourceInformation, config.getModelVersion());
// la source sera utilisée dans les ui
@@ -360,7 +362,8 @@ public class ObserveDataSourcesManager implements Closeable {
try {
- ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect();
+ ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false);
+ dataSource.setOwner(dataSourceInformation.isOwner());
dataSource.migrateData(dataSourceInformation, config.getModelVersion());
=====================================
client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java
=====================================
@@ -151,6 +151,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements
// indique si une modification a été effectuéé sur la base depuis son ouverture
private boolean modified;
+ private boolean owner;
public ObserveSwingDataSource(ObserveDataSourceConfiguration configuration) {
this.configuration = configuration;
@@ -223,7 +224,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements
canWriteReferential(),
canReadData(),
canWriteData(),
- getVersion(),
+ isOwner(), getVersion(),
getVersion(),
ImmutableList.of());
}
@@ -395,6 +396,10 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements
}
+ public boolean isOwner() {
+ return owner;
+ }
+
void migrateDataIfPossible(ObserveDataSourceInformation dataSourceInformation, Version targetVersion) {
checkIsNotOpen();
@@ -445,10 +450,10 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements
return connection != null;
}
- public ObserveDataSourceInformation checkCanConnect() throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException {
+ public ObserveDataSourceInformation checkCanConnect(boolean canBeEmpty) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException {
checkIsNotAlreadyOpen();
DataSourceService dataSourceService = servicesProvider.getDataSourceService();
- return dataSourceService.checkCanConnect(configuration);
+ return canBeEmpty ? dataSourceService.checkCanConnectOrBeEmpty(configuration) : dataSourceService.checkCanConnect(configuration);
}
public boolean isLocal() {
@@ -828,4 +833,12 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements
public void setProgressModel(ProgressModel progressModel) {
this.progressModel = progressModel;
}
+
+ public void setOwner(boolean owner) {
+ this.owner = owner;
+ }
+
+ public boolean getOwner() {
+ return owner;
+ }
}
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestRemoteUIAction.java
=====================================
@@ -67,7 +67,8 @@ public class TestRemoteUIAction extends PresetsUIActionSupport {
ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(config);
try {
- ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect();
+ ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false);
+ dataSource.setOwner(dataSourceInformation.isOwner());
Version versionDataSource = dataSourceInformation.getVersion();
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestServerUIAction.java
=====================================
@@ -102,7 +102,7 @@ public class TestServerUIAction extends PresetsUIActionSupport {
}
if (connexionStatusError == null) {
- ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect();
+ ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false);
Version versionDataSource = dataSourceInformation.getVersion();
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java
=====================================
@@ -651,7 +651,7 @@ public class ConfigModel extends AdminActionModel {
try {
- localSourceInformation = localSource.checkCanConnect();
+ localSourceInformation = localSource.checkCanConnect(false);
} catch (Exception e) {
//FIXME ! il faut faire quelque chose dans ce cas précis, au moins avertir l'utilisateur
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java
=====================================
@@ -554,8 +554,8 @@ public class StorageUIHandler implements UIHandler<StorageUI> {
// si on utilise la base local on lance une migration de la base si necessaire
if (DbMode.USE_LOCAL.equals((model.getDbMode()))) {
- ObserveDataSourceInformation dataSourceInformation = currentDataSource.checkCanConnect();
-
+ ObserveDataSourceInformation dataSourceInformation = currentDataSource.checkCanConnect(false);
+ currentDataSource.setOwner(dataSourceInformation.isOwner());
progressModel.incrementsCurrentStep();
currentDataSource.migrateData(dataSourceInformation, config.getModelVersion());
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIModel.java
=====================================
@@ -1665,12 +1665,14 @@ public class StorageUIModel extends WizardModel<StorageStep> {
if (!error) {
- dataSourceInformation = dataSource.checkCanConnect();
+ boolean createAction = ObstunaAdminAction.CREATE.equals(adminAction);
+ dataSourceInformation = dataSource.checkCanConnect(createAction);
+ dataSource.setOwner(dataSourceInformation.isOwner());
Version versionDataSource = dataSourceInformation.getVersion();
// en mise a jour de la base on ne test pas la version
- if (getModelVersion().equals(versionDataSource) || isCanMigrate() || ObstunaAdminAction.CREATE.equals(adminAction)) {
+ if (isCanMigrate() || createAction || getModelVersion().equals(versionDataSource)) {
setConnexionStatus(ConnexionStatus.SUCCESS);
@@ -1738,6 +1740,16 @@ public class StorageUIModel extends WizardModel<StorageStep> {
setBusy(false);
}
+ if (result && dataSourceInformation != null && adminAction != null) {
+
+ // must be owner of database to perform a such action
+ if (!dataSourceInformation.isOwner()) {
+ connexionStatusError = t("observe.storage.error.user.not.owner");
+ log.error(connexionStatusError);
+ setConnexionStatus(ConnexionStatus.FAILED);
+ result = false;
+ }
+ }
return result;
}
@@ -1949,7 +1961,7 @@ public class StorageUIModel extends WizardModel<StorageStep> {
if (h2DataSourceInformation == null && localStorageExist) {
ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(h2Config);
try {
- h2DataSourceInformation = dataSource.checkCanConnect();
+ h2DataSourceInformation = dataSource.checkCanConnect(false);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.debug("error on load data source information for local storage", e);
=====================================
observe-i18n/src/main/i18n/translations/observe_en_GB.properties
=====================================
@@ -3049,6 +3049,7 @@ observe.storage.error.rest.user.required=User login is mandatory
observe.storage.error.rest.user.unknown=User "%s" is not defined on server
observe.storage.error.serverVersionMismatch=Remote server version (%s) is not compliant with the client version (%s)
observe.storage.error.serverVersionModelMismatch=Remote server model version (%s) is not compliant with the client model version (%s)
+observe.storage.error.user.not.owner=User must be owner of database to perform this action\!
observe.storage.import.data.fromBackup=Import data from a backup of a local database (*.sql.gz)
observe.storage.import.data.fromRemoteStorage=Import data from a remote database
observe.storage.import.data.fromServerStorage=Import data from a remove server
=====================================
observe-i18n/src/main/i18n/translations/observe_es_ES.properties
=====================================
@@ -3049,6 +3049,7 @@ observe.storage.error.rest.user.required=El usuario es obligatorio
observe.storage.error.rest.user.unknown=El usuario "%s" no es conocido del servidor
observe.storage.error.serverVersionMismatch=La versión del servidor remoto (%s) no es compatible con la versión del modelo (%s)
observe.storage.error.serverVersionModelMismatch=La version du modèle du serveur distant (%s) n'est pas compatible avec la version du modèle du client (%s) \#TODO
+observe.storage.error.user.not.owner=User must be owner of database to perform this action\! \#TODO
observe.storage.import.data.fromBackup=Importar los datos de una copia de seguridad de una base local (*.sql.gz)
observe.storage.import.data.fromRemoteStorage=Importar los datos de una base remota
observe.storage.import.data.fromServerStorage=Importar los datos de un servidor remoto
=====================================
observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
=====================================
@@ -3049,6 +3049,7 @@ observe.storage.error.rest.user.required=L'utilisateur est obligatoire
observe.storage.error.rest.user.unknown=L'utilisateur "%s" est inconnu sur le serveur
observe.storage.error.serverVersionMismatch=La version du serveur distant (%s) n'est pas compatible avec la version du client (%s)
observe.storage.error.serverVersionModelMismatch=La version du modèle du serveur distant (%s) n'est pas compatible avec la version du modèle du client (%s)
+observe.storage.error.user.not.owner=L'utilisateur doit être le propriétaire de la base pour effectuer cette opération \!
observe.storage.import.data.fromBackup=Importer les données depuis une sauvegarde de base locale (*.sql.gz)
observe.storage.import.data.fromRemoteStorage=Importer les données depuis une base distante
observe.storage.import.data.fromServerStorage=Importer les données depuis un serveur distant
=====================================
pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2019.8.22</version>
+ <version>2019.8.23</version>
</parent>
<groupId>fr.ird.observe</groupId>
@@ -156,12 +156,12 @@
<maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format>
<buildDate>${maven.build.timestamp}</buildDate>
- <observeToolkitVersion>4.13</observeToolkitVersion>
+ <observeToolkitVersion>4.14-SNAPSHOT</observeToolkitVersion>
<lib.version.nuiton.validation>3.1</lib.version.nuiton.validation>
<!--can't use 1.4.197 (date has changed + blob also)-->
<lib.version.h2>1.4.196</lib.version.h2>
- <!--<lib.version.java4all.topia>1.10-SNAPSHOT</lib.version.java4all.topia>-->
+ <lib.version.java4all.topia>1.11-SNAPSHOT</lib.version.java4all.topia>
<!--<lib.version.java4all.eugene>3.0-alpha-22</lib.version.java4all.eugene>-->
<!--lib.version.java4all.jaxx>3.0-alpha-52</lib.version.java4all.jaxx-->
<!--<lib.version.java4all.i18n>4.0-beta-3-SNAPSHOT</lib.version.java4all.i18n>-->
=====================================
server-core/src/main/filtered-resources/mapping
=====================================
@@ -56,6 +56,7 @@ GET /admin/configuration/resetAuthenticationTokens ConfigurationCo
GET /api/v1/DataSourceService/applySecurity v1.DataSourceServiceRestApi.applySecurity
GET /api/v1/DataSourceService/backup v1.DataSourceServiceRestApi.backup
GET /api/v1/DataSourceService/checkCanConnect v1.DataSourceServiceRestApi.checkCanConnect
+GET /api/v1/DataSourceService/checkCanConnectOrBeEmpty v1.DataSourceServiceRestApi.checkCanConnectOrBeEmpty
GET /api/v1/DataSourceService/close v1.DataSourceServiceRestApi.close
GET /api/v1/DataSourceService/create v1.DataSourceServiceRestApi.create
GET /api/v1/DataSourceService/destroy v1.DataSourceServiceRestApi.destroy
=====================================
services-local/src/main/java/fr/ird/observe/services/local/service/DataSourceServiceLocal.java
=====================================
@@ -27,12 +27,12 @@ import com.google.common.collect.ImmutableSet;
import fr.ird.observe.dto.ObserveDbRole;
import fr.ird.observe.dto.db.ObserveDbUserDto;
import fr.ird.observe.dto.reference.ReferentialDtoReference;
-import fr.ird.observe.entities.referential.ObserveReferentialEntity;
import fr.ird.observe.entities.ObserveEntityEnum;
import fr.ird.observe.entities.ObserveTopiaApplicationContext;
import fr.ird.observe.entities.ObserveTopiaConfiguration;
import fr.ird.observe.entities.ObserveTopiaConfigurationFactory;
import fr.ird.observe.entities.migration.ObserveTopiaMigrationServiceAskUserToMigrate;
+import fr.ird.observe.entities.referential.ObserveReferentialEntity;
import fr.ird.observe.services.configuration.DataSourceCreateConfigurationDto;
import fr.ird.observe.services.configuration.DataSourceCreateWithNoReferentialImportException;
import fr.ird.observe.services.configuration.IncompatibleDataSourceCreateConfigurationException;
@@ -53,8 +53,8 @@ import fr.ird.observe.services.service.DatabaseNotFoundException;
import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest;
import fr.ird.observe.services.service.sql.SqlScriptProducerService;
import fr.ird.observe.spi.DbModelHelper;
-import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.nuiton.topia.persistence.jdbc.JdbcHelper;
import org.nuiton.topia.persistence.jdbc.JdbcPostgresHelper;
import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity;
@@ -98,6 +98,95 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
return privileges != null && !privileges.isEmpty();
}
+ private static boolean isOwner(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, JdbcPostgresHelper jdbcHelper) {
+ if (dataSourceConfiguration.isH2Database()) {
+ return true;
+ }
+ return jdbcHelper.isOwner();
+ }
+
+ @Override
+ public ObserveDataSourceInformation checkCanConnectOrBeEmpty(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException {
+ Preconditions.checkState(dataSourceConfiguration instanceof ObserveDataSourceConfigurationTopiaSupport);
+ ObserveDataSourceConfigurationTopiaSupport dataSourceConfigurationTopiaSupport = (ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration;
+
+ ObserveDataSourceInformation dataSourceInformation;
+
+ if (dataSourceConfigurationTopiaSupport.isH2Database()) {
+
+ ObserveDataSourceConfigurationTopiaH2 h2DataSourceConfiguration = (ObserveDataSourceConfigurationTopiaH2) dataSourceConfigurationTopiaSupport;
+
+ // On vérifie que le fichier de la base existe
+ File databaseFile = h2DataSourceConfiguration.getDatabaseFile();
+
+ if (!databaseFile.exists()) {
+
+ String message = l(getApplicationLocale(), "observe.services.topia.error.h2.database.notFound");
+ throw new DatabaseNotFoundException(message, dataSourceConfiguration);
+
+ }
+
+ // On vérifier que la base n'est pas déjà en cours d'utilisation
+ File databaseLockFile = h2DataSourceConfiguration.getLockFile();
+ if (databaseLockFile.exists()) {
+
+ String message = l(getApplicationLocale(), "observe.services.topia.error.h2.database.locked");
+ if (log.isWarnEnabled()) {
+ log.warn(message);
+ }
+ // FIXME even if file is lock we still authorize to connect,
+ //throw new DatabaseConnexionNotAuthorizedException(message, dataSourceConfiguration);
+ }
+
+ // On tente une connection à la base
+ ObserveTopiaConfiguration topiaConfiguration = ObserveTopiaConfigurationFactory.forH2Database(h2DataSourceConfiguration.getDirectory(),
+ h2DataSourceConfiguration.getDbName(),
+ h2DataSourceConfiguration.getUsername(),
+ new String(h2DataSourceConfiguration.getPassword()),
+ false,
+ false);
+
+
+ try {
+ new JdbcHelper(topiaConfiguration).runSelectOnString("SELECT 1;");
+ } catch (Exception e) {
+
+ // Authentification refusée
+ String message = l(getApplicationLocale(), "observe.services.topia.error.h2.database.badAuthentication");
+ throw new DatabaseConnexionNotAuthorizedException(message, e, dataSourceConfiguration);
+
+ }
+
+ dataSourceInformation = getDataSourceInformation(h2DataSourceConfiguration, topiaConfiguration, false);
+
+
+ } else {
+
+ ObserveDataSourceConfigurationTopiaPG pgDataSourceConfiguration = (ObserveDataSourceConfigurationTopiaPG) dataSourceConfigurationTopiaSupport;
+ // On tente une connexion au serveur
+ ObserveTopiaConfiguration topiaConfiguration = ObserveTopiaConfigurationFactory.forPostgresqlDatabase(pgDataSourceConfiguration.getJdbcUrl(),
+ pgDataSourceConfiguration.getUsername(),
+ new String(pgDataSourceConfiguration.getPassword()),
+ false,
+ false);
+
+ try {
+ new JdbcHelper(topiaConfiguration).runSelectOnString("SELECT 1;");
+ } catch (Exception e) {
+
+ throw new DatabaseConnexionNotAuthorizedException(e.getMessage(), e, dataSourceConfiguration);
+
+ }
+
+ dataSourceInformation = getDataSourceInformation(pgDataSourceConfiguration, topiaConfiguration, true);
+
+ }
+
+ return dataSourceInformation;
+
+ }
+
+
@Override
public ObserveDataSourceInformation checkCanConnect(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException {
@@ -151,7 +240,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
}
- dataSourceInformation = getDataSourceInformation(h2DataSourceConfiguration, topiaConfiguration);
+ dataSourceInformation = getDataSourceInformation(h2DataSourceConfiguration, topiaConfiguration, false);
} else {
@@ -172,7 +261,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
}
- dataSourceInformation = getDataSourceInformation(pgDataSourceConfiguration, topiaConfiguration);
+ dataSourceInformation = getDataSourceInformation(pgDataSourceConfiguration, topiaConfiguration, false);
}
@@ -359,7 +448,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
}
- ObserveDataSourceInformation dataSourceInformation = getDataSourceInformation((ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration, topiaApplicationContext.getConfiguration());
+ ObserveDataSourceInformation dataSourceInformation = getDataSourceInformation((ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration, topiaApplicationContext.getConfiguration(), false);
return createDataSourceConnection(dataSourceInformation, topiaApplicationContext.getAuthenticationToken());
@@ -529,7 +618,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
dataSourceInformation.getVersion());
}
- private ObserveDataSourceInformation getDataSourceInformation(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, ObserveTopiaConfiguration topiaConfiguration) {
+ private ObserveDataSourceInformation getDataSourceInformation(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, ObserveTopiaConfiguration topiaConfiguration, boolean canBeEmpty) {
boolean writeReferential;
boolean readData;
@@ -538,8 +627,37 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
Version version;
JdbcPostgresHelper jdbcHelper = new JdbcPostgresHelper(topiaConfiguration);
+ boolean owner = isOwner(dataSourceConfiguration, jdbcHelper);
- version = TMSVersionHibernateDao.getVersion(jdbcHelper, "tms_version").map(TMSVersion::toVersion).orElse(Version.VZERO);
+ try {
+ version = TMSVersionHibernateDao.getVersion(jdbcHelper, "tms_version").map(TMSVersion::toVersion).orElse(Version.VZERO);
+ } catch (Exception e) {
+ if (!canBeEmpty) {
+ throw e;
+ }
+ if (dataSourceConfiguration.isH2Database()) {
+
+ // Sur une base H2, on a le droit de tout lire, mais uniquement d'écrire les données
+ writeReferential = false;
+ readData = true;
+ writeData = true;
+ owner = true;
+
+ } else {
+ writeReferential = true;
+ readData = true;
+ writeData = true;
+ }
+ return new ObserveDataSourceInformation(
+ true,
+ writeReferential,
+ readData,
+ writeData,
+ owner,
+ ObserveTopiaMigrationServiceAskUserToMigrate.getMinimumVersion(),
+ null,
+ null);
+ }
if (dataSourceConfiguration.isH2Database()) {
@@ -591,6 +709,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
writeReferential,
readData,
writeData,
+ owner,
ObserveTopiaMigrationServiceAskUserToMigrate.getMinimumVersion(),
version,
observeMigrationConfigurationProvider.getVersionsAfter(version));
=====================================
services/src/main/java/fr/ird/observe/services/service/DataSourceService.java
=====================================
@@ -47,6 +47,9 @@ public interface DataSourceService extends ObserveService, Closeable {
@Get(addAuthtoken = false)
ObserveDataSourceInformation checkCanConnect(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException;
+ @Get(addAuthtoken = false)
+ ObserveDataSourceInformation checkCanConnectOrBeEmpty(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException;
+
@Get(addAuthtoken = false)
ObserveDataSourceConnection create(ObserveDataSourceConfiguration dataSourceConfiguration, DataSourceCreateConfigurationDto dataSourceCreateConfiguration)
throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException,
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/dfd0c3f9e9b15194d887b392ee1…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/dfd0c3f9e9b15194d887b392ee1…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9] 9 commits: [PS] Suppression de 2 champs - Closes #1337
by Tony CHEMIT 29 Jun '19
by Tony CHEMIT 29 Jun '19
29 Jun '19
Tony CHEMIT pushed to branch develop-9 at ultreiaio / ird-observe
Commits:
aca4d4c4 by tchemit at 2019-06-27T09:11:51Z
[PS] Suppression de 2 champs - Closes #1337
- - - - -
dfd0c3f9 by tchemit at 2019-06-29T16:52:58Z
L'assistant migration via serveur pourrait refuser de continuer si l'utilisateur n'est pas assez acrédité - Closes #1145
Assistant création de base PG échoue - Closes #1331
- - - - -
c42d17df by tchemit at 2019-06-29T16:56:44Z
Réorganisation des données d’observation PS - Réorganisation des captures et échantillons de cible et bycatch observés - See #1254
- - - - -
ff82ad5f by tchemit at 2019-06-29T16:56:44Z
Move to new version 9.0-alpha-1
- - - - -
9fb85ec5 by tchemit at 2019-06-29T16:56:44Z
Réorganisation des données d’observation PS - Re localisation dans la hiérarchie - Closes #1252
- - - - -
a3049c2e by tchemit at 2019-06-29T16:56:45Z
Module 2 (first flush)
- - - - -
58b6a918 by tchemit at 2019-06-29T16:56:45Z
[PS] Contenu des onglets spécifiques observations et logbooks et le formulaire marée - See #1300
- - - - -
158fdfc8 by tchemit at 2019-06-29T16:56:46Z
Module 2 - second flush
- - - - -
09c729a2 by tchemit at 2019-06-29T16:56:46Z
Report from v8 for ps logbook model
- - - - -
30 changed files:
- .mvn/pom.gitflow.develop
- .mvn/pom.gitflow.master
- client-configuration/.mvn/pom.gitflow.develop
- client-configuration/.mvn/pom.gitflow.master
- client-configuration/pom.xml
- client-configuration/src/main/config/Client.ini
- client-configuration/src/main/i18n/getters/config.getter
- client-configuration/src/main/i18n/getters/java-enumeration.getter
- client-configuration/src/main/i18n/getters/java.getter
- client-core/.mvn/pom.gitflow.develop
- client-core/.mvn/pom.gitflow.master
- client-core/pom.xml
- client-core/src/main/dcp-presets/ps/logbook/01-deployment-preset.yml
- client-core/src/main/dcp-presets/ps/logbook/02-removal-preset.yml
- client-core/src/main/dcp-presets/ps/logbook/03-update-preset.yml
- client-core/src/main/dcp-presets/ps/logbook/04-abandonned-preset.yml
- client-core/src/main/dcp-presets/ps/observation/01-deployment-preset.yml
- client-core/src/main/dcp-presets/ps/observation/02-removal-preset.yml
- client-core/src/main/dcp-presets/ps/observation/03-update-preset.yml
- client-core/src/main/i18n/getters/java.getter
- client-core/src/main/i18n/getters/jaxx.getter
- client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java
- client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java
- client-core/src/main/java/fr/ird/observe/client/navigation/RouteCloseCallback.java
- client-core/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jaxx
- client-core/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jcss
- client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/add/AddActivitySeineFloatingObjectUIAction.java
- client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/dcp/AddFloatingObjectPresetUIAction.java
- + client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/logbook/add/AddActivitySeineFloatingObjectUIAction.java
- client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/nodes/data/ps/obs/DiscardedTargetCatchSeineNavigationTreeNode.java → client-core/src/main/java/fr/ird/observe/client/ui/actions/content/data/ps/logbook/add/AddActivitySeineSetUIAction.java
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/ce84b5b9add3073d5b20d71e68…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/ce84b5b9add3073d5b20d71e68…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] L'assistant migration via serveur pourrait refuser de continuer si...
by Tony CHEMIT 28 Jun '19
by Tony CHEMIT 28 Jun '19
28 Jun '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
175475b0 by tchemit at 2019-06-28T15:50:09Z
L'assistant migration via serveur pourrait refuser de continuer si l'utilisateur n'est pas assez acrédité - Closes #1145
Assistant création de base PG échoue - Closes #1331
- - - - -
15 changed files:
- client-core/src/main/i18n/getters/java.getter
- client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java
- client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java
- client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestRemoteUIAction.java
- client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestServerUIAction.java
- client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java
- client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIModel.java
- observe-i18n/src/main/i18n/translations/observe_en_GB.properties
- observe-i18n/src/main/i18n/translations/observe_es_ES.properties
- observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
- pom.xml
- server-core/src/main/filtered-resources/mapping
- services-local/src/main/java/fr/ird/observe/services/local/service/DataSourceServiceLocal.java
- services/src/main/java/fr/ird/observe/services/service/DataSourceService.java
Changes:
=====================================
client-core/src/main/i18n/getters/java.getter
=====================================
@@ -910,6 +910,7 @@ observe.storage.error.rest.user.required
observe.storage.error.rest.user.unknown
observe.storage.error.serverVersionMismatch
observe.storage.error.serverVersionModelMismatch
+observe.storage.error.user.not.owner
observe.storage.internalDump.last.modified
observe.storage.internalDump.not.exist
observe.storage.label.data.import.db
=====================================
client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java
=====================================
@@ -125,7 +125,9 @@ public class ObserveDataSourcesManager implements Closeable {
dataSource = newDataSource(configuration);
break;
}
-
+ if (model.getDataSourceInformation() != null) {
+ dataSource.setOwner(model.getDataSourceInformation().isOwner());
+ }
return dataSource;
}
@@ -293,8 +295,8 @@ public class ObserveDataSourcesManager implements Closeable {
try {
- ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect();
-
+ ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false);
+ dataSource.setOwner(dataSourceInformation.isOwner());
dataSource.migrateDataIfPossible(dataSourceInformation, config.getModelVersion());
// la source sera utilisée dans les ui
@@ -360,7 +362,8 @@ public class ObserveDataSourcesManager implements Closeable {
try {
- ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect();
+ ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false);
+ dataSource.setOwner(dataSourceInformation.isOwner());
dataSource.migrateData(dataSourceInformation, config.getModelVersion());
=====================================
client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java
=====================================
@@ -151,6 +151,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements
// indique si une modification a été effectuéé sur la base depuis son ouverture
private boolean modified;
+ private boolean owner;
public ObserveSwingDataSource(ObserveDataSourceConfiguration configuration) {
this.configuration = configuration;
@@ -223,7 +224,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements
canWriteReferential(),
canReadData(),
canWriteData(),
- getVersion(),
+ isOwner(), getVersion(),
getVersion(),
ImmutableList.of());
}
@@ -395,6 +396,10 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements
}
+ public boolean isOwner() {
+ return owner;
+ }
+
void migrateDataIfPossible(ObserveDataSourceInformation dataSourceInformation, Version targetVersion) {
checkIsNotOpen();
@@ -445,10 +450,10 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements
return connection != null;
}
- public ObserveDataSourceInformation checkCanConnect() throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException {
+ public ObserveDataSourceInformation checkCanConnect(boolean canBeEmpty) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException {
checkIsNotAlreadyOpen();
DataSourceService dataSourceService = servicesProvider.getDataSourceService();
- return dataSourceService.checkCanConnect(configuration);
+ return canBeEmpty ? dataSourceService.checkCanConnectOrBeEmpty(configuration) : dataSourceService.checkCanConnect(configuration);
}
public boolean isLocal() {
@@ -828,4 +833,12 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements
public void setProgressModel(ProgressModel progressModel) {
this.progressModel = progressModel;
}
+
+ public void setOwner(boolean owner) {
+ this.owner = owner;
+ }
+
+ public boolean getOwner() {
+ return owner;
+ }
}
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestRemoteUIAction.java
=====================================
@@ -67,7 +67,8 @@ public class TestRemoteUIAction extends PresetsUIActionSupport {
ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(config);
try {
- ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect();
+ ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false);
+ dataSource.setOwner(dataSourceInformation.isOwner());
Version versionDataSource = dataSourceInformation.getVersion();
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/actions/storage/presets/TestServerUIAction.java
=====================================
@@ -102,7 +102,7 @@ public class TestServerUIAction extends PresetsUIActionSupport {
}
if (connexionStatusError == null) {
- ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect();
+ ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false);
Version versionDataSource = dataSourceInformation.getVersion();
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/admin/config/ConfigModel.java
=====================================
@@ -651,7 +651,7 @@ public class ConfigModel extends AdminActionModel {
try {
- localSourceInformation = localSource.checkCanConnect();
+ localSourceInformation = localSource.checkCanConnect(false);
} catch (Exception e) {
//FIXME ! il faut faire quelque chose dans ce cas précis, au moins avertir l'utilisateur
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java
=====================================
@@ -554,8 +554,8 @@ public class StorageUIHandler implements UIHandler<StorageUI> {
// si on utilise la base local on lance une migration de la base si necessaire
if (DbMode.USE_LOCAL.equals((model.getDbMode()))) {
- ObserveDataSourceInformation dataSourceInformation = currentDataSource.checkCanConnect();
-
+ ObserveDataSourceInformation dataSourceInformation = currentDataSource.checkCanConnect(false);
+ currentDataSource.setOwner(dataSourceInformation.isOwner());
progressModel.incrementsCurrentStep();
currentDataSource.migrateData(dataSourceInformation, config.getModelVersion());
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/storage/StorageUIModel.java
=====================================
@@ -1665,12 +1665,14 @@ public class StorageUIModel extends WizardModel<StorageStep> {
if (!error) {
- dataSourceInformation = dataSource.checkCanConnect();
+ boolean createAction = ObstunaAdminAction.CREATE.equals(adminAction);
+ dataSourceInformation = dataSource.checkCanConnect(createAction);
+ dataSource.setOwner(dataSourceInformation.isOwner());
Version versionDataSource = dataSourceInformation.getVersion();
// en mise a jour de la base on ne test pas la version
- if (getModelVersion().equals(versionDataSource) || isCanMigrate() || ObstunaAdminAction.CREATE.equals(adminAction)) {
+ if (isCanMigrate() || createAction || getModelVersion().equals(versionDataSource)) {
setConnexionStatus(ConnexionStatus.SUCCESS);
@@ -1738,6 +1740,16 @@ public class StorageUIModel extends WizardModel<StorageStep> {
setBusy(false);
}
+ if (result && dataSourceInformation != null && adminAction != null) {
+
+ // must be owner of database to perform a such action
+ if (!dataSourceInformation.isOwner()) {
+ connexionStatusError = t("observe.storage.error.user.not.owner");
+ log.error(connexionStatusError);
+ setConnexionStatus(ConnexionStatus.FAILED);
+ result = false;
+ }
+ }
return result;
}
@@ -1949,7 +1961,7 @@ public class StorageUIModel extends WizardModel<StorageStep> {
if (h2DataSourceInformation == null && localStorageExist) {
ObserveSwingDataSource dataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSource(h2Config);
try {
- h2DataSourceInformation = dataSource.checkCanConnect();
+ h2DataSourceInformation = dataSource.checkCanConnect(false);
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.debug("error on load data source information for local storage", e);
=====================================
observe-i18n/src/main/i18n/translations/observe_en_GB.properties
=====================================
@@ -3049,6 +3049,7 @@ observe.storage.error.rest.user.required=User login is mandatory
observe.storage.error.rest.user.unknown=User "%s" is not defined on server
observe.storage.error.serverVersionMismatch=Remote server version (%s) is not compliant with the client version (%s)
observe.storage.error.serverVersionModelMismatch=Remote server model version (%s) is not compliant with the client model version (%s)
+observe.storage.error.user.not.owner=User must be owner of database to perform this action\!
observe.storage.import.data.fromBackup=Import data from a backup of a local database (*.sql.gz)
observe.storage.import.data.fromRemoteStorage=Import data from a remote database
observe.storage.import.data.fromServerStorage=Import data from a remove server
=====================================
observe-i18n/src/main/i18n/translations/observe_es_ES.properties
=====================================
@@ -3049,6 +3049,7 @@ observe.storage.error.rest.user.required=El usuario es obligatorio
observe.storage.error.rest.user.unknown=El usuario "%s" no es conocido del servidor
observe.storage.error.serverVersionMismatch=La versión del servidor remoto (%s) no es compatible con la versión del modelo (%s)
observe.storage.error.serverVersionModelMismatch=La version du modèle du serveur distant (%s) n'est pas compatible avec la version du modèle du client (%s) \#TODO
+observe.storage.error.user.not.owner=User must be owner of database to perform this action\! \#TODO
observe.storage.import.data.fromBackup=Importar los datos de una copia de seguridad de una base local (*.sql.gz)
observe.storage.import.data.fromRemoteStorage=Importar los datos de una base remota
observe.storage.import.data.fromServerStorage=Importar los datos de un servidor remoto
=====================================
observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
=====================================
@@ -3049,6 +3049,7 @@ observe.storage.error.rest.user.required=L'utilisateur est obligatoire
observe.storage.error.rest.user.unknown=L'utilisateur "%s" est inconnu sur le serveur
observe.storage.error.serverVersionMismatch=La version du serveur distant (%s) n'est pas compatible avec la version du client (%s)
observe.storage.error.serverVersionModelMismatch=La version du modèle du serveur distant (%s) n'est pas compatible avec la version du modèle du client (%s)
+observe.storage.error.user.not.owner=L'utilisateur doit être le propriétaire de la base pour effectuer cette opération \!
observe.storage.import.data.fromBackup=Importer les données depuis une sauvegarde de base locale (*.sql.gz)
observe.storage.import.data.fromRemoteStorage=Importer les données depuis une base distante
observe.storage.import.data.fromServerStorage=Importer les données depuis un serveur distant
=====================================
pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2019.8.22</version>
+ <version>2019.8.23</version>
</parent>
<groupId>fr.ird.observe</groupId>
@@ -156,7 +156,7 @@
<maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format>
<buildDate>${maven.build.timestamp}</buildDate>
- <observeToolkitVersion>4.13</observeToolkitVersion>
+ <observeToolkitVersion>4.14-SNAPSHOT</observeToolkitVersion>
<lib.version.nuiton.validation>3.1</lib.version.nuiton.validation>
<!--can't use 1.4.197 (date has changed + blob also)-->
<lib.version.h2>1.4.196</lib.version.h2>
=====================================
server-core/src/main/filtered-resources/mapping
=====================================
@@ -56,6 +56,7 @@ GET /admin/configuration/resetAuthenticationTokens ConfigurationCo
GET /api/v1/DataSourceService/applySecurity v1.DataSourceServiceRestApi.applySecurity
GET /api/v1/DataSourceService/backup v1.DataSourceServiceRestApi.backup
GET /api/v1/DataSourceService/checkCanConnect v1.DataSourceServiceRestApi.checkCanConnect
+GET /api/v1/DataSourceService/checkCanConnectOrBeEmpty v1.DataSourceServiceRestApi.checkCanConnectOrBeEmpty
GET /api/v1/DataSourceService/close v1.DataSourceServiceRestApi.close
GET /api/v1/DataSourceService/create v1.DataSourceServiceRestApi.create
GET /api/v1/DataSourceService/destroy v1.DataSourceServiceRestApi.destroy
=====================================
services-local/src/main/java/fr/ird/observe/services/local/service/DataSourceServiceLocal.java
=====================================
@@ -27,12 +27,12 @@ import com.google.common.collect.ImmutableSet;
import fr.ird.observe.dto.ObserveDbRole;
import fr.ird.observe.dto.db.ObserveDbUserDto;
import fr.ird.observe.dto.reference.ReferentialDtoReference;
-import fr.ird.observe.entities.referential.ObserveReferentialEntity;
import fr.ird.observe.entities.ObserveEntityEnum;
import fr.ird.observe.entities.ObserveTopiaApplicationContext;
import fr.ird.observe.entities.ObserveTopiaConfiguration;
import fr.ird.observe.entities.ObserveTopiaConfigurationFactory;
import fr.ird.observe.entities.migration.ObserveTopiaMigrationServiceAskUserToMigrate;
+import fr.ird.observe.entities.referential.ObserveReferentialEntity;
import fr.ird.observe.services.configuration.DataSourceCreateConfigurationDto;
import fr.ird.observe.services.configuration.DataSourceCreateWithNoReferentialImportException;
import fr.ird.observe.services.configuration.IncompatibleDataSourceCreateConfigurationException;
@@ -53,8 +53,8 @@ import fr.ird.observe.services.service.DatabaseNotFoundException;
import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest;
import fr.ird.observe.services.service.sql.SqlScriptProducerService;
import fr.ird.observe.spi.DbModelHelper;
-import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.nuiton.topia.persistence.jdbc.JdbcHelper;
import org.nuiton.topia.persistence.jdbc.JdbcPostgresHelper;
import org.nuiton.topia.persistence.metadata.TopiaMetadataEntity;
@@ -71,6 +71,7 @@ import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.LinkedHashSet;
+import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.UUID;
@@ -98,6 +99,96 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
return privileges != null && !privileges.isEmpty();
}
+ private static boolean isOwner(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, JdbcPostgresHelper jdbcHelper) {
+ if (dataSourceConfiguration.isH2Database()) {
+ return true;
+ }
+ String ownerName = jdbcHelper.runSelectOnString("SELECT pg_catalog.pg_get_userbyid(d.datdba) FROM pg_catalog.pg_database d WHERE d.datname = (SELECT current_database())\n");
+ return Objects.equals(dataSourceConfiguration.getUsername(), ownerName);
+ }
+
+ @Override
+ public ObserveDataSourceInformation checkCanConnectOrBeEmpty(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException {
+ Preconditions.checkState(dataSourceConfiguration instanceof ObserveDataSourceConfigurationTopiaSupport);
+ ObserveDataSourceConfigurationTopiaSupport dataSourceConfigurationTopiaSupport = (ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration;
+
+ ObserveDataSourceInformation dataSourceInformation;
+
+ if (dataSourceConfigurationTopiaSupport.isH2Database()) {
+
+ ObserveDataSourceConfigurationTopiaH2 h2DataSourceConfiguration = (ObserveDataSourceConfigurationTopiaH2) dataSourceConfigurationTopiaSupport;
+
+ // On vérifie que le fichier de la base existe
+ File databaseFile = h2DataSourceConfiguration.getDatabaseFile();
+
+ if (!databaseFile.exists()) {
+
+ String message = l(getApplicationLocale(), "observe.services.topia.error.h2.database.notFound");
+ throw new DatabaseNotFoundException(message, dataSourceConfiguration);
+
+ }
+
+ // On vérifier que la base n'est pas déjà en cours d'utilisation
+ File databaseLockFile = h2DataSourceConfiguration.getLockFile();
+ if (databaseLockFile.exists()) {
+
+ String message = l(getApplicationLocale(), "observe.services.topia.error.h2.database.locked");
+ if (log.isWarnEnabled()) {
+ log.warn(message);
+ }
+ // FIXME even if file is lock we still authorize to connect,
+ //throw new DatabaseConnexionNotAuthorizedException(message, dataSourceConfiguration);
+ }
+
+ // On tente une connection à la base
+ ObserveTopiaConfiguration topiaConfiguration = ObserveTopiaConfigurationFactory.forH2Database(h2DataSourceConfiguration.getDirectory(),
+ h2DataSourceConfiguration.getDbName(),
+ h2DataSourceConfiguration.getUsername(),
+ new String(h2DataSourceConfiguration.getPassword()),
+ false,
+ false);
+
+
+ try {
+ new JdbcHelper(topiaConfiguration).runSelectOnString("SELECT 1;");
+ } catch (Exception e) {
+
+ // Authentification refusée
+ String message = l(getApplicationLocale(), "observe.services.topia.error.h2.database.badAuthentication");
+ throw new DatabaseConnexionNotAuthorizedException(message, e, dataSourceConfiguration);
+
+ }
+
+ dataSourceInformation = getDataSourceInformation(h2DataSourceConfiguration, topiaConfiguration, false);
+
+
+ } else {
+
+ ObserveDataSourceConfigurationTopiaPG pgDataSourceConfiguration = (ObserveDataSourceConfigurationTopiaPG) dataSourceConfigurationTopiaSupport;
+ // On tente une connexion au serveur
+ ObserveTopiaConfiguration topiaConfiguration = ObserveTopiaConfigurationFactory.forPostgresqlDatabase(pgDataSourceConfiguration.getJdbcUrl(),
+ pgDataSourceConfiguration.getUsername(),
+ new String(pgDataSourceConfiguration.getPassword()),
+ false,
+ false);
+
+ try {
+ new JdbcHelper(topiaConfiguration).runSelectOnString("SELECT 1;");
+ } catch (Exception e) {
+
+ throw new DatabaseConnexionNotAuthorizedException(e.getMessage(), e, dataSourceConfiguration);
+
+ }
+
+ dataSourceInformation = getDataSourceInformation(pgDataSourceConfiguration, topiaConfiguration, true);
+
+ }
+
+ return dataSourceInformation;
+
+ }
+
+
@Override
public ObserveDataSourceInformation checkCanConnect(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException {
@@ -151,7 +242,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
}
- dataSourceInformation = getDataSourceInformation(h2DataSourceConfiguration, topiaConfiguration);
+ dataSourceInformation = getDataSourceInformation(h2DataSourceConfiguration, topiaConfiguration, false);
} else {
@@ -172,7 +263,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
}
- dataSourceInformation = getDataSourceInformation(pgDataSourceConfiguration, topiaConfiguration);
+ dataSourceInformation = getDataSourceInformation(pgDataSourceConfiguration, topiaConfiguration, false);
}
@@ -359,7 +450,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
}
- ObserveDataSourceInformation dataSourceInformation = getDataSourceInformation((ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration, topiaApplicationContext.getConfiguration());
+ ObserveDataSourceInformation dataSourceInformation = getDataSourceInformation((ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration, topiaApplicationContext.getConfiguration(), false);
return createDataSourceConnection(dataSourceInformation, topiaApplicationContext.getAuthenticationToken());
@@ -529,7 +620,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
dataSourceInformation.getVersion());
}
- private ObserveDataSourceInformation getDataSourceInformation(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, ObserveTopiaConfiguration topiaConfiguration) {
+ private ObserveDataSourceInformation getDataSourceInformation(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, ObserveTopiaConfiguration topiaConfiguration, boolean canBeEmpty) {
boolean writeReferential;
boolean readData;
@@ -538,8 +629,37 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
Version version;
JdbcPostgresHelper jdbcHelper = new JdbcPostgresHelper(topiaConfiguration);
+ boolean owner = isOwner(dataSourceConfiguration, jdbcHelper);
- version = TMSVersionHibernateDao.getVersion(jdbcHelper, "tms_version").map(TMSVersion::toVersion).orElse(Version.VZERO);
+ try {
+ version = TMSVersionHibernateDao.getVersion(jdbcHelper, "tms_version").map(TMSVersion::toVersion).orElse(Version.VZERO);
+ } catch (Exception e) {
+ if (!canBeEmpty) {
+ throw e;
+ }
+ if (dataSourceConfiguration.isH2Database()) {
+
+ // Sur une base H2, on a le droit de tout lire, mais uniquement d'écrire les données
+ writeReferential = false;
+ readData = true;
+ writeData = true;
+ owner = true;
+
+ } else {
+ writeReferential = true;
+ readData = true;
+ writeData = true;
+ }
+ return new ObserveDataSourceInformation(
+ true,
+ writeReferential,
+ readData,
+ writeData,
+ owner,
+ ObserveTopiaMigrationServiceAskUserToMigrate.getMinimumVersion(),
+ null,
+ null);
+ }
if (dataSourceConfiguration.isH2Database()) {
@@ -591,6 +711,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
writeReferential,
readData,
writeData,
+ owner,
ObserveTopiaMigrationServiceAskUserToMigrate.getMinimumVersion(),
version,
observeMigrationConfigurationProvider.getVersionsAfter(version));
=====================================
services/src/main/java/fr/ird/observe/services/service/DataSourceService.java
=====================================
@@ -47,6 +47,9 @@ public interface DataSourceService extends ObserveService, Closeable {
@Get(addAuthtoken = false)
ObserveDataSourceInformation checkCanConnect(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException;
+ @Get(addAuthtoken = false)
+ ObserveDataSourceInformation checkCanConnectOrBeEmpty(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException;
+
@Get(addAuthtoken = false)
ObserveDataSourceConnection create(ObserveDataSourceConfiguration dataSourceConfiguration, DataSourceCreateConfigurationDto dataSourceCreateConfiguration)
throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException,
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/175475b05d24bab72165a29e2e1…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/175475b05d24bab72165a29e2e1…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] [PS] Suppression de 2 champs - Closes #1337
by Tony CHEMIT 27 Jun '19
by Tony CHEMIT 27 Jun '19
27 Jun '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
aca4d4c4 by tchemit at 2019-06-27T09:11:51Z
[PS] Suppression de 2 champs - Closes #1337
- - - - -
13 changed files:
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/SetSeineUI.jaxx
- dto/src/main/models/Observe-20-data-ps-observation.model
- persistence/src/main/java/fr/ird/observe/binder/data/ps/observation/SetSeineEntityDtoBinder.java
- persistence/src/main/models/Observe-20-data-ps-observation.model
- persistence/src/main/resources/db/migration/7.3/02_ps_modify_data_tables-H2.sql
- persistence/src/main/resources/db/migration/7.3/02_ps_modify_data_tables-PG.sql
- services-local/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/NonTargetCatchServiceLocal.java
- services-local/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/TargetCatchServiceLocal.java
- test/src/main/resources/db/7.3/dataForTestLongline.sql.gz
- test/src/main/resources/db/7.3/dataForTestSeine.sql.gz
- test/src/main/resources/db/7.3/empty_h2.sql.gz
- test/src/main/resources/db/7.3/empty_pg.sql.gz
- test/src/main/resources/db/7.3/referentiel.sql.gz
Changes:
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/SetSeineUI.jaxx
=====================================
@@ -33,8 +33,6 @@
fr.ird.observe.client.ui.actions.content.data.ps.delete.DeleteSetSeineUIAction
fr.ird.observe.client.ui.actions.content.data.ps.save.SaveSetSeineUIAction
- fr.ird.observe.client.ui.util.BooleanEditor
-
org.nuiton.jaxx.widgets.number.NumberEditor
org.nuiton.jaxx.widgets.select.BeanFilterableComboBox
org.nuiton.jaxx.widgets.datetime.DateTimeEditor
@@ -94,22 +92,6 @@
<NormalTextEditor id='supportVesselName'/>
</cell>
</row>
- <row>
- <cell anchor="west">
- <JLabel id='targetDiscardedLabel'/>
- </cell>
- <cell anchor='east' fill="both">
- <BooleanEditor id='targetDiscarded'/>
- </cell>
- </row>
- <row>
- <cell anchor="west">
- <JLabel id='nonTargetDiscardedLabel'/>
- </cell>
- <cell anchor='east' fill="both">
- <BooleanEditor id='nonTargetDiscarded'/>
- </cell>
- </row>
<row>
<cell anchor='west'>
<JLabel id='schoolTypeLabel' styleClass="information"/>
=====================================
dto/src/main/models/Observe-20-data-ps-observation.model
=====================================
@@ -144,8 +144,6 @@ schoolTopDepth + {*:1} Integer
schoolMeanDepth + {*:1} Integer
schoolThickness + {*:1} Integer
supportVesselName + {*:1} String
-targetDiscarded + {*:1} Boolean
-nonTargetDiscarded + {*:1} Boolean
currentMeasureDepth + {*:1} Integer
schoolType + {*:1} fr.ird.observe.dto.referential.ps.common.SchoolTypeReference
targetCatchCompositionEstimatedByObserver + {*:1} boolean
=====================================
persistence/src/main/java/fr/ird/observe/binder/data/ps/observation/SetSeineEntityDtoBinder.java
=====================================
@@ -52,8 +52,6 @@ public class SetSeineEntityDtoBinder extends DataEntityDtoBinderSupport<SetSeine
entity.setSchoolMeanDepth(dto.getSchoolMeanDepth());
entity.setSchoolThickness(dto.getSchoolThickness());
entity.setSupportVesselName(dto.getSupportVesselName());
- entity.setTargetDiscarded(dto.getTargetDiscarded());
- entity.setNonTargetDiscarded(dto.getNonTargetDiscarded());
entity.setCurrentMeasureDepth(dto.getCurrentMeasureDepth());
entity.setLastUpdateDate(dto.getLastUpdateDate());
entity.setTargetCatchCompositionEstimatedByObserver(dto.isTargetCatchCompositionEstimatedByObserver());
@@ -76,8 +74,6 @@ public class SetSeineEntityDtoBinder extends DataEntityDtoBinderSupport<SetSeine
dto.setSchoolMeanDepth(entity.getSchoolMeanDepth());
dto.setSchoolThickness(entity.getSchoolThickness());
dto.setSupportVesselName(entity.getSupportVesselName());
- dto.setTargetDiscarded(entity.getTargetDiscarded());
- dto.setNonTargetDiscarded(entity.getNonTargetDiscarded());
dto.setCurrentMeasureDepth(entity.getCurrentMeasureDepth());
dto.setTargetCatchCompositionEstimatedByObserver(entity.isTargetCatchCompositionEstimatedByObserver());
dto.setTargetDiscardCatchCompositionEstimatedByObserver(entity.isTargetDiscardCatchCompositionEstimatedByObserver());
=====================================
persistence/src/main/models/Observe-20-data-ps-observation.model
=====================================
@@ -151,8 +151,6 @@ schoolTopDepth + {*:1} Integer
schoolMeanDepth + {*:1} Integer
schoolThickness + {*:1} Integer
supportVesselName + {*:1} String
-targetDiscarded + {*:1} Boolean
-nonTargetDiscarded + {*:1} Boolean
currentMeasureDepth + {*:1} Integer
schoolType + {*:1} referential.ps.common.SchoolType
targetCatchCompositionEstimatedByObserver + {*:1} boolean
=====================================
persistence/src/main/resources/db/migration/7.3/02_ps_modify_data_tables-H2.sql
=====================================
@@ -40,3 +40,6 @@ ALTER TABLE ps_observation.TransmittingBuoy ADD CONSTRAINT fk_ps_observation_Tra
CREATE INDEX idx_ps_observation_ObservedSystem_schoolType ON ps_observation.ObservedSystem(schoolType);
CREATE INDEX idx_ps_observation_Set_schoolType ON ps_observation.Set(schoolType);
CREATE INDEX idx_ps_observation_TransmittingBuoy_TransmittingBuoyOwnership ON ps_observation.TransmittingBuoy(TransmittingBuoyOwnership);
+
+ALTER TABLE ps_observation.Set DROP COLUMN targetDiscarded;
+ALTER TABLE ps_observation.Set DROP COLUMN nonTargetDiscarded;
\ No newline at end of file
=====================================
persistence/src/main/resources/db/migration/7.3/02_ps_modify_data_tables-PG.sql
=====================================
@@ -40,3 +40,6 @@ ALTER TABLE ps_observation.TransmittingBuoy ADD CONSTRAINT fk_ps_observation_Tra
CREATE INDEX idx_ps_observation_ObservedSystem_schoolType ON ps_observation.ObservedSystem(schoolType);
CREATE INDEX idx_ps_observation_Set_schoolType ON ps_observation.Set(schoolType);
CREATE INDEX idx_ps_observation_TransmittingBuoy_TransmittingBuoyOwnership ON ps_observation.TransmittingBuoy(TransmittingBuoyOwnership);
+
+ALTER TABLE ps_observation.Set DROP COLUMN targetDiscarded;
+ALTER TABLE ps_observation.Set DROP COLUMN nonTargetDiscarded;
=====================================
services-local/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/NonTargetCatchServiceLocal.java
=====================================
@@ -90,18 +90,6 @@ public class NonTargetCatchServiceLocal extends ObserveServiceLocal implements N
checkLastUpdateDate(entity, dto);
SET_SEINE_NON_TARGET_SPI.copyDtoToEntity(dto, entity, getReferentialLocale());
- // mise a jour de la propriete nonTargetDiscarded sur la calée
-
- boolean nonTargetDiscarded = entity.getNonTargetCatch().stream()
- .anyMatch(nonTargetCatch -> nonTargetCatch.getReasonForDiscard() != null);
-// for (NonTargetCatch nonTargetCatch : entity.getNonTargetCatch()) {
-// if (nonTargetCatch.getReasonForDiscard() != null) {
-// // on a trouve un rejet de faune
-// nonTargetDiscarded = true;
-// break;
-// }
-// }
- entity.setNonTargetDiscarded(nonTargetDiscarded);
// on supprime les échantillons dont les espèces ne sont plus dans les captures
if (entity.isNonTargetSampleNotEmpty()) {
NonTargetSample nonTargetSample = entity.getNonTargetSample().iterator().next();
=====================================
services-local/src/main/java/fr/ird/observe/services/local/service/data/ps/observation/TargetCatchServiceLocal.java
=====================================
@@ -109,17 +109,6 @@ public class TargetCatchServiceLocal extends ObserveServiceLocal implements Targ
for (TargetCatch targetCatch : entity.getTargetCatch()) {
targetCatch.setSetSeine(entity);
}
- // Calcul du champs SetSeine.targetDiscarded
- boolean targetDiscarded;
- if (discarded) {
- // on est sur des captures il suffit que les données entrantes contiennent une capture
- targetDiscarded = dto.sizeTargetCatch() > 0;
- } else {
- // on est sur des rejets il suffit que les autres données contiennent une capture
- targetDiscarded = otherTargetCatches.size() > 0;
- }
- log.info("SetSeine " + entity.getTopiaId() + ", targetDiscarded: " + targetDiscarded);
- entity.setTargetDiscarded(targetDiscarded);
return saveEntity(entity);
}
=====================================
test/src/main/resources/db/7.3/dataForTestLongline.sql.gz
=====================================
Binary files a/test/src/main/resources/db/7.3/dataForTestLongline.sql.gz and b/test/src/main/resources/db/7.3/dataForTestLongline.sql.gz differ
=====================================
test/src/main/resources/db/7.3/dataForTestSeine.sql.gz
=====================================
Binary files a/test/src/main/resources/db/7.3/dataForTestSeine.sql.gz and b/test/src/main/resources/db/7.3/dataForTestSeine.sql.gz differ
=====================================
test/src/main/resources/db/7.3/empty_h2.sql.gz
=====================================
Binary files a/test/src/main/resources/db/7.3/empty_h2.sql.gz and b/test/src/main/resources/db/7.3/empty_h2.sql.gz differ
=====================================
test/src/main/resources/db/7.3/empty_pg.sql.gz
=====================================
Binary files a/test/src/main/resources/db/7.3/empty_pg.sql.gz and b/test/src/main/resources/db/7.3/empty_pg.sql.gz differ
=====================================
test/src/main/resources/db/7.3/referentiel.sql.gz
=====================================
Binary files a/test/src/main/resources/db/7.3/referentiel.sql.gz and b/test/src/main/resources/db/7.3/referentiel.sql.gz differ
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/aca4d4c456c1429a92352aebd9d…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/aca4d4c456c1429a92352aebd9d…
You're receiving this email because of your account on gitlab.com.
1
0
Tony CHEMIT pushed to branch develop-9 at ultreiaio / ird-observe
Commits:
19e30588 by tchemit at 2019-06-27T05:28:05Z
update pom
- - - - -
f64a33aa by tchemit at 2019-06-27T05:30:37Z
Clés de référentiel non traduite ou nom des clés invalide - Close #1336
- - - - -
5f644483 by tchemit at 2019-06-27T05:33:03Z
[REFERENTIEL] Impossible de modifier le parent d'un matériau - Closes #1338
- - - - -
230a5851 by tchemit at 2019-06-27T05:34:46Z
[REFERENTIEL] La validation sur les Objets flottant matériaux ne fonctionnent plus :( - Closes #1339
- - - - -
7cd87441 by tchemit at 2019-06-27T05:37:57Z
[PS][FAD] Comportement des entrées 'FAD' et 'LOG' - Closes #1324
- - - - -
3bd3958b by tchemit at 2019-06-27T05:39:11Z
Fix referential back to list action
- - - - -
e65a7d2f by tchemit at 2019-06-27T06:56:50Z
update changelog [skip ci]
- - - - -
8c8e6502 by tchemit at 2019-06-27T07:02:32Z
Réorganisation des données d’observation PS - Réorganisation des captures et échantillons de cible et bycatch observés - See #1254
- - - - -
cf0ef2da by tchemit at 2019-06-27T07:02:32Z
Move to new version 9.0-alpha-1
- - - - -
9b0e8181 by tchemit at 2019-06-27T07:02:32Z
Réorganisation des données d’observation PS - Re localisation dans la hiérarchie - Closes #1252
- - - - -
13ec4fe8 by tchemit at 2019-06-27T07:02:33Z
Module 2 (first flush)
- - - - -
883d5108 by tchemit at 2019-06-27T07:03:25Z
[PS] Contenu des onglets spécifiques observations et logbooks et le formulaire marée - See #1300
- - - - -
86a285bf by tchemit at 2019-06-27T07:03:54Z
Module 2 - second flush
- - - - -
ce84b5b9 by tchemit at 2019-06-27T08:02:10Z
Report from v8 for ps logbook model
- - - - -
30 changed files:
- .mvn/gitlab-cache/milestones/898778-issues.json
- + .mvn/gitlab-cache/milestones/915205-artifacts.json
- + .mvn/gitlab-cache/milestones/915205-issues.json
- + .mvn/gitlab-cache/milestones/915205.json
- + .mvn/gitlab-cache/milestones/916804-artifacts.json
- + .mvn/gitlab-cache/milestones/916804-issues.json
- + .mvn/gitlab-cache/milestones/916804.json
- .mvn/pom.gitflow.develop
- .mvn/pom.gitflow.master
- CHANGELOG.md
- client-configuration/.mvn/pom.gitflow.develop
- client-configuration/.mvn/pom.gitflow.master
- client-configuration/pom.xml
- client-configuration/src/main/config/Client.ini
- client-configuration/src/main/i18n/getters/config.getter
- client-configuration/src/main/i18n/getters/java-enumeration.getter
- client-configuration/src/main/i18n/getters/java.getter
- client-core/.mvn/pom.gitflow.develop
- client-core/.mvn/pom.gitflow.master
- client-core/pom.xml
- client-core/src/main/dcp-presets/ps/logbook/01-deployment-preset.yml
- client-core/src/main/dcp-presets/ps/logbook/02-removal-preset.yml
- client-core/src/main/dcp-presets/ps/logbook/03-update-preset.yml
- client-core/src/main/dcp-presets/ps/logbook/04-abandonned-preset.yml
- client-core/src/main/i18n/getters/java.getter
- client-core/src/main/i18n/getters/jaxx.getter
- client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java
- client-core/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java
- client-core/src/main/java/fr/ird/observe/client/navigation/RouteCloseCallback.java
- client-core/src/main/java/fr/ird/observe/client/ui/ObserveMainUI.jaxx
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/8e6c0c308de8532a98b1bcfdf7…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/8e6c0c308de8532a98b1bcfdf7…
You're receiving this email because of your account on gitlab.com.
1
0
27 Jun '19
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
e65a7d2f by tchemit at 2019-06-27T06:56:50Z
update changelog [skip ci]
- - - - -
9 changed files:
- .mvn/gitlab-cache/milestones/898778-issues.json
- + .mvn/gitlab-cache/milestones/915205-artifacts.json
- + .mvn/gitlab-cache/milestones/915205-issues.json
- + .mvn/gitlab-cache/milestones/915205.json
- + .mvn/gitlab-cache/milestones/916804-artifacts.json
- + .mvn/gitlab-cache/milestones/916804-issues.json
- + .mvn/gitlab-cache/milestones/916804.json
- CHANGELOG.md
- client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java
Changes:
=====================================
.mvn/gitlab-cache/milestones/898778-issues.json
=====================================
@@ -45,7 +45,7 @@
"_external": false,
"_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…"
},
- "userNotesCount": 1,
+ "userNotesCount": 2,
"upVotes": 0,
"downVotes": 0,
"confidential": false,
@@ -54,10 +54,70 @@
"totalTimeSpent": 0
},
"state": "opened",
- "updatedAt": "Jun 9, 2019 4:55:22 PM",
- "createdAt": "May 22, 2019 10:52:43 AM",
+ "updatedAt": "Jun 25, 2019 6:27:13 PM",
+ "createdAt": "May 22, 2019 11:52:43 AM",
"webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1293"
},
+ {
+ "id": 21832893,
+ "iid": 1330,
+ "projectId": 2722779,
+ "title": "N° de versions mentionnés par l\u0027assistant migration",
+ "description": "L\u0027assistant migration de la 8 RC2 mentionne des mises à jour jusqu\u0027en 7.2, non pas 8. Est-ce normal?\n\n",
+ "labels": [
+ "Anomalie",
+ "Bas",
+ "Tâche"
+ ],
+ "milestone": {
+ "id": 898778,
+ "iid": 143,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "8.0-RC-3",
+ "description": "",
+ "state": "active"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 1111318,
+ "_username": "pcauquil",
+ "_name": "Pascal Cauquil",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…"
+ },
+ "userNotesCount": 3,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 12, 2019 1:00:39 PM",
+ "createdAt": "Jun 12, 2019 12:54:12 PM",
+ "closedAt": "Jun 12, 2019 12:59:20 PM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1330"
+ },
{
"id": 18519309,
"iid": 1237,
@@ -113,10 +173,363 @@
"totalTimeSpent": 0
},
"state": "opened",
- "updatedAt": "Jun 8, 2019 5:38:47 PM",
+ "updatedAt": "Jun 8, 2019 6:38:47 PM",
"createdAt": "Feb 22, 2019 4:32:32 PM",
"webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1237"
},
+ {
+ "id": 21873545,
+ "iid": 1333,
+ "projectId": 2722779,
+ "title": "[PS FOB] Intégration du nœud Balise en tant qu\u0027onglet du formulaire FOB",
+ "description": "Cette évolution permettra une meilleure intégration avec le nouveau système de pré-configurations sur FOB (Voir #1321) (sinon celui-ci agirait sur deux formulaires de deux nœud différents, ce qui n\u0027est pas une bonne chose en terme d\u0027ergonomie).\n\nÇa donne ça :\n\n",
+ "labels": [
+ "Evolution",
+ "IRD-2018-01-V8"
+ ],
+ "milestone": {
+ "id": 898778,
+ "iid": 143,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "8.0-RC-3",
+ "description": "",
+ "state": "active"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 13, 2019 2:35:01 PM",
+ "createdAt": "Jun 13, 2019 1:36:28 PM",
+ "closedAt": "Jun 13, 2019 2:35:01 PM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1333"
+ },
+ {
+ "id": 21839813,
+ "iid": 1332,
+ "projectId": 2722779,
+ "title": "[V8] Schémas",
+ "description": "Après migration d\u0027une base V7, j\u0027obtiens les schémas suivants :\n\n\n\nPlusieurs schémas viennent de la base d\u0027origine, par contre le schéma ll_landing a bien été créé par la migration. Or a priori ce schéma n\u0027a pas lieu d\u0027être. On devrait avoir :\n* common\n* ll_common\n* ll_observation\n* ll_logbook\n* ps_common\n* ps_observation\n* ps_logbook (ne sera créé qu\u0027en V)\n\nEt les LL landings devraient se retrouver dans ll_logbook (tout comme les échantillons).\n\nSinon, logiquement en V9 il faudrait alors créer des schémas pour les plans de cuves, les débarquements, le faux poisson, ce qui fait beaucoup.",
+ "labels": [
+ "IRD-2018-01-V8"
+ ],
+ "milestone": {
+ "id": 898778,
+ "iid": 143,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "8.0-RC-3",
+ "description": "",
+ "state": "active"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 1111318,
+ "_username": "pcauquil",
+ "_name": "Pascal Cauquil",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…"
+ },
+ "userNotesCount": 3,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "opened",
+ "updatedAt": "Jun 13, 2019 3:32:44 PM",
+ "createdAt": "Jun 12, 2019 3:44:04 PM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1332"
+ },
+ {
+ "id": 21833130,
+ "iid": 1331,
+ "projectId": 2722779,
+ "title": "Assistant création de base PG échoue",
+ "description": "J\u0027essaie de créer une base PG v8 vide.\nPour cela je créer sous PG une base vide.\nJe lance ensuite postgresql/create.bat et je le connecte à la base.\n\nCelui-ci y recherche une version de base, et stoppe pour cette raison. Pourtant, s\u0027agissant de l\u0027assistant de création, il devrait démarrer correctement sur une base totalement vide.\n\n",
+ "labels": [
+ "Anomalie",
+ "IRD-2018-01-V8"
+ ],
+ "milestone": {
+ "id": 898778,
+ "iid": 143,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "8.0-RC-3",
+ "description": "",
+ "state": "active"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 1111318,
+ "_username": "pcauquil",
+ "_name": "Pascal Cauquil",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "opened",
+ "updatedAt": "Jun 12, 2019 1:06:09 PM",
+ "createdAt": "Jun 12, 2019 1:06:09 PM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1331"
+ },
+ {
+ "id": 21803313,
+ "iid": 1326,
+ "projectId": 2722779,
+ "title": "[PS FOB Buoys] Revoir cet écran",
+ "description": "Plusieurs choses ne vont pas ici :\n\nIl y a des problèmes de libellés et aussi de validation.\nLa modification des commentaires n\u0027est pas prise en compte.",
+ "labels": [
+ "Anomalie",
+ "IRD-2018-01-V8"
+ ],
+ "milestone": {
+ "id": 898778,
+ "iid": 143,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "8.0-RC-3",
+ "description": "",
+ "state": "active"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 11, 2019 6:08:40 PM",
+ "createdAt": "Jun 11, 2019 6:02:39 PM",
+ "closedAt": "Jun 11, 2019 6:08:40 PM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1326"
+ },
+ {
+ "id": 21785455,
+ "iid": 1322,
+ "projectId": 2722779,
+ "title": "[PS] Transformation de deux énumérations en référentiels",
+ "description": "Il s\u0027agit des référentiels suivants :\n\n* **ps_common.SchoolType**\n* **ps_common.TransmittingBuoyOwnership**\n\nLa migration est assurée dans les données existantes.",
+ "labels": [
+ "Evolution",
+ "IRD-2018-02-V9",
+ "Module 1"
+ ],
+ "milestone": {
+ "id": 898778,
+ "iid": 143,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "8.0-RC-3",
+ "description": "",
+ "state": "active"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 11, 2019 6:08:40 PM",
+ "createdAt": "Jun 11, 2019 11:15:09 AM",
+ "closedAt": "Jun 11, 2019 6:08:39 PM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1322"
+ },
+ {
+ "id": 21760531,
+ "iid": 1321,
+ "projectId": 2722779,
+ "title": "[PS FOB] Mise en place des nouvelles templates de FOB",
+ "description": "Voir CTTP 4.1.5.3.1.",
+ "labels": [
+ "Evolution",
+ "IRD-2018-02-V9",
+ "Module 1"
+ ],
+ "milestone": {
+ "id": 898778,
+ "iid": 143,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "8.0-RC-3",
+ "description": "",
+ "state": "active"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 21, 2019 6:29:25 PM",
+ "createdAt": "Jun 10, 2019 4:07:34 PM",
+ "closedAt": "Jun 21, 2019 6:29:25 PM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1321"
+ },
{
"id": 21224725,
"iid": 1299,
@@ -151,8 +564,8 @@
"totalTimeSpent": 0
},
"state": "opened",
- "updatedAt": "Jun 9, 2019 4:55:22 PM",
- "createdAt": "May 23, 2019 3:23:51 PM",
+ "updatedAt": "Jun 9, 2019 5:55:22 PM",
+ "createdAt": "May 23, 2019 4:23:51 PM",
"webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1299"
}
]
\ No newline at end of file
=====================================
.mvn/gitlab-cache/milestones/915205-artifacts.json
=====================================
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "Application",
+ "filename": "observe-9.0-alpha-1.zip",
+ "url": "http://repo1.maven.org/maven2/fr/ird/observe/observe/9.0-alpha-1/observe-9.…"
+ },
+ {
+ "name": "Serveur",
+ "filename": "observe-9.0-alpha-1.war",
+ "url": "http://repo1.maven.org/maven2/fr/ird/observe/observe/9.0-alpha-1/observe-9.…"
+ }
+]
\ No newline at end of file
=====================================
.mvn/gitlab-cache/milestones/915205-issues.json
=====================================
@@ -0,0 +1,239 @@
+[
+ {
+ "id": 22239676,
+ "iid": 1337,
+ "projectId": 2722779,
+ "title": "[PS] Suppression de 2 champs",
+ "description": "Dans les données d\u0027observation PS, on souhaite purement et simplement supprimer ces 2 champs :\n\n\n\nSur l\u0027UI comme dans dans la base, avec perte des données associées.\n\nIl sont inutiles.",
+ "labels": [
+ "Evolution",
+ "IRD-2018-02-V9",
+ "Normal"
+ ],
+ "milestone": {
+ "id": 915205,
+ "iid": 144,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "9.0-alpha-1",
+ "startDate": "Jun 25, 2019 2:00:00 AM",
+ "state": "active"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 1111318,
+ "_username": "pcauquil",
+ "_name": "Pascal Cauquil",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "opened",
+ "updatedAt": "Jun 25, 2019 6:38:42 PM",
+ "createdAt": "Jun 25, 2019 6:35:13 PM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1337"
+ },
+ {
+ "id": 21225875,
+ "iid": 1300,
+ "projectId": 2722779,
+ "title": "[PS] Contenu des onglets spécifiques observations et logbooks et le formulaire marée",
+ "description": "En LL, depuis que nous avons la gestion des logbooks, un système d\u0027onglets est apparu sur le formulaire marée pour :\n* les métadonnées communes\n* les métadonnées spécifiques observations\n* les métadonnées spécifiques logbooks\n\nLe même principe doit être adopté pour la PS.\n\nLes champs suivants doivent être déplacés de l\u0027onglet principal vers l\u0027onglet \"caractéristiques d\u0027observation\" :\n* observateur\n* saisisseur\n* qualité de données (qui dans la base devrait être renommé \"qualité des données d\u0027observation\")\n* url des formulaires\n* url des rapports\n\nLes champs suivants doivent être créés sur l\u0027onglet \"caractéristiques livre de bord\" :\n* saisisseur (FK vers liste personne avec filtre le flag saisisseur)\n* heures de mer : entier positif, NULL possible\n* heures de pêche : entier positif, NULL possible\n* Total débarqué (en t) : décimal, au millième, NULL possible\n* Total marché local (en t) : décimal, au millième, NULL possible\n* Loch (miles nautiques) : entier positif, NULL possible\n* Présence des activités (ex flag Enquête ?) : bouléen 2 états, NULL non possible\n* État des cuves au départ : liste déroulante, FK vers table ps_logbook.WellsState, NULL autorisé\n* État des cuves après débarquement : liste déroulante, FK vers table ps_logbook.WellsState, NULL interdit\n* Commentaires logbook :varchar 1024 ?, NULL possible\n\nContenu du référentiel WellsState :\n* 1 - Cuves vides / Wells empty\n* 2 - Cuves non vides / Wells not empty\n\nL\u0027idée étant de reproduire (avec quelques améliorations) le formulaire marée logbook AVDTH :\n\n",
+ "labels": [
+ "IRD-2018-02-V9",
+ "Module 1"
+ ],
+ "milestone": {
+ "id": 915205,
+ "iid": 144,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "9.0-alpha-1",
+ "startDate": "Jun 25, 2019 2:00:00 AM",
+ "state": "active"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 1111318,
+ "_username": "pcauquil",
+ "_name": "Pascal Cauquil",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "opened",
+ "updatedAt": "Jun 26, 2019 6:35:37 PM",
+ "createdAt": "May 23, 2019 4:59:19 PM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1300"
+ },
+ {
+ "id": 19964211,
+ "iid": 1254,
+ "projectId": 2722779,
+ "title": "Réorganisation des données d’observation PS - Réorganisation des captures et échantillons de cible et bycatch observés",
+ "description": "Voir CCTP 3.7.2 et 3.7.3",
+ "labels": [
+ "Evolution",
+ "IRD-2018-02-V9",
+ "Module 1",
+ "Senne"
+ ],
+ "milestone": {
+ "id": 915205,
+ "iid": 144,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "9.0-alpha-1",
+ "startDate": "Jun 25, 2019 2:00:00 AM",
+ "state": "active"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "opened",
+ "updatedAt": "Jun 25, 2019 6:26:41 PM",
+ "createdAt": "Apr 11, 2019 1:59:43 PM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1254"
+ },
+ {
+ "id": 19964177,
+ "iid": 1252,
+ "projectId": 2722779,
+ "title": "Réorganisation des données d’observation PS - Re localisation dans la hiérarchie",
+ "description": "Voir CCTP 3.7.1",
+ "labels": [
+ "Evolution",
+ "IRD-2018-02-V9",
+ "Module 1",
+ "Senne"
+ ],
+ "milestone": {
+ "id": 915205,
+ "iid": 144,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "9.0-alpha-1",
+ "startDate": "Jun 25, 2019 2:00:00 AM",
+ "state": "active"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "opened",
+ "updatedAt": "Jun 25, 2019 6:26:41 PM",
+ "createdAt": "Apr 11, 2019 1:58:36 PM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1252"
+ }
+]
\ No newline at end of file
=====================================
.mvn/gitlab-cache/milestones/915205.json
=====================================
@@ -0,0 +1,9 @@
+{
+ "id": 915205,
+ "iid": 144,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "9.0-alpha-1",
+ "startDate": "Jun 25, 2019 2:00:00 AM",
+ "state": "active"
+}
\ No newline at end of file
=====================================
.mvn/gitlab-cache/milestones/916804-artifacts.json
=====================================
@@ -0,0 +1,12 @@
+[
+ {
+ "name": "Application",
+ "filename": "observe-7.0.8.zip",
+ "url": "http://repo1.maven.org/maven2/fr/ird/observe/observe/7.0.8/observe-7.0.8.zip"
+ },
+ {
+ "name": "Serveur",
+ "filename": "observe-7.0.8.war",
+ "url": "http://repo1.maven.org/maven2/fr/ird/observe/observe/7.0.8/observe-7.0.8.war"
+ }
+]
\ No newline at end of file
=====================================
.mvn/gitlab-cache/milestones/916804-issues.json
=====================================
@@ -0,0 +1,480 @@
+[
+ {
+ "id": 22275757,
+ "iid": 1338,
+ "projectId": 2722779,
+ "title": "[REFERENTIEL] Impossible de modifier le parent d\u0027un matériau",
+ "description": "Sur cet écran :\n\n\nOn ne peut pas modifier le parent de cet élément : le contenu de la liste \u0027parent\u0027 est limité au parent actuel (ALOG).\n\nLa liste entière des éléments (même les désactivés idéalement) devrait apparaître.\n\nCela représente un handicap important.",
+ "labels": [
+ "Anomalie",
+ "Haut"
+ ],
+ "milestone": {
+ "id": 916804,
+ "iid": 145,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "7.0.8",
+ "dueDate": "Jun 27, 2019 2:00:00 AM",
+ "startDate": "Jun 26, 2019 2:00:00 AM",
+ "state": "closed"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 1111318,
+ "_username": "pcauquil",
+ "_name": "Pascal Cauquil",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…"
+ },
+ "userNotesCount": 2,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 27, 2019 8:51:47 AM",
+ "createdAt": "Jun 26, 2019 4:35:06 PM",
+ "closedAt": "Jun 27, 2019 8:51:47 AM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1338"
+ },
+ {
+ "id": 21793484,
+ "iid": 1324,
+ "projectId": 2722779,
+ "title": "[PS][FAD] Comportement des entrées \u0027FAD\u0027 et \u0027LOG\u0027",
+ "description": "Actuellement les éléments \u0027FAD\u0027 et \u0027LOG\u0027 sont cliquables. Cependant leur enregistrement n\u0027est pas effectué : ces coches disparaissent lorsque l\u0027on clique sur \u0027Enregistrer\u0027.\n\nQuestion liée : Ces éléments ne devraient-ils pas être non cliquables ?\n\nCe comportement déroute actuellement les utilisateurs.",
+ "labels": [
+ "Haut"
+ ],
+ "milestone": {
+ "id": 916804,
+ "iid": 145,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "7.0.8",
+ "dueDate": "Jun 27, 2019 2:00:00 AM",
+ "startDate": "Jun 26, 2019 2:00:00 AM",
+ "state": "closed"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 1111318,
+ "_username": "pcauquil",
+ "_name": "Pascal Cauquil",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 27, 2019 8:51:47 AM",
+ "createdAt": "Jun 11, 2019 2:41:51 PM",
+ "closedAt": "Jun 27, 2019 8:51:47 AM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1324"
+ },
+ {
+ "id": 21584798,
+ "iid": 1310,
+ "projectId": 2722779,
+ "title": "On ne peut pas supprimer certains référentiels",
+ "description": "Voir #1307 et #1309",
+ "labels": [
+ "Anomalie",
+ "Haut"
+ ],
+ "milestone": {
+ "id": 916804,
+ "iid": 145,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "7.0.8",
+ "dueDate": "Jun 27, 2019 2:00:00 AM",
+ "startDate": "Jun 26, 2019 2:00:00 AM",
+ "state": "closed"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 27, 2019 6:20:57 AM",
+ "createdAt": "Jun 5, 2019 4:22:14 AM",
+ "closedAt": "Jun 5, 2019 4:36:55 AM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1310"
+ },
+ {
+ "id": 22024840,
+ "iid": 1336,
+ "projectId": 2722779,
+ "title": "Clés de référentiel non traduite ou nom des clés invalide",
+ "description": "Sur cet écran, des clés de référentiel ne sont pas traduites. Probablement un souci dans le nom des clés.\n\n",
+ "labels": [
+ "Anomalie",
+ "Bas",
+ "Contrat AZTI-2017"
+ ],
+ "milestone": {
+ "id": 916804,
+ "iid": 145,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "7.0.8",
+ "dueDate": "Jun 27, 2019 2:00:00 AM",
+ "startDate": "Jun 26, 2019 2:00:00 AM",
+ "state": "closed"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 1111318,
+ "_username": "pcauquil",
+ "_name": "Pascal Cauquil",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 27, 2019 8:51:47 AM",
+ "createdAt": "Jun 18, 2019 3:42:47 PM",
+ "closedAt": "Jun 27, 2019 8:51:47 AM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1336"
+ },
+ {
+ "id": 22024034,
+ "iid": 1335,
+ "projectId": 2722779,
+ "title": "[UI REFERENTIEL] Liste des relations taille-poids et taill-taille",
+ "description": "Dans la liste des relations taill-poids, il serait très pratique d\u0027ajouter dans le libellé des relations le code FAO (et de pouvoir classer selon lui).\n\n\n\nMême chose pour les relations taille-taille.",
+ "labels": [
+ "Bas",
+ "Evolution",
+ "IRD-2018-01-V8",
+ "À facturer"
+ ],
+ "milestone": {
+ "id": 916804,
+ "iid": 145,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "7.0.8",
+ "dueDate": "Jun 27, 2019 2:00:00 AM",
+ "startDate": "Jun 26, 2019 2:00:00 AM",
+ "state": "closed"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 1111318,
+ "_username": "pcauquil",
+ "_name": "Pascal Cauquil",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…"
+ },
+ "userNotesCount": 3,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 27, 2019 6:19:18 AM",
+ "createdAt": "Jun 18, 2019 3:19:08 PM",
+ "closedAt": "Jun 21, 2019 6:29:25 PM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1335"
+ },
+ {
+ "id": 22301949,
+ "iid": 1339,
+ "projectId": 2722779,
+ "title": "[REFERENTIEL] La validation sur les Objets flottant matériaux ne fonctionnent plus :(",
+ "description": "La champs **validation** n\u0027est jamais validé suite à une coquille dans le code...",
+ "labels": [
+ "Anomalie",
+ "IRD-2018-01-V8"
+ ],
+ "milestone": {
+ "id": 916804,
+ "iid": 145,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "7.0.8",
+ "dueDate": "Jun 27, 2019 2:00:00 AM",
+ "startDate": "Jun 26, 2019 2:00:00 AM",
+ "state": "closed"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 27, 2019 8:51:47 AM",
+ "createdAt": "Jun 27, 2019 6:42:02 AM",
+ "closedAt": "Jun 27, 2019 8:51:47 AM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1339"
+ },
+ {
+ "id": 21799934,
+ "iid": 1325,
+ "projectId": 2722779,
+ "title": "Une modification sur le référentiel n\u0027active pas le bouton \u0027Enregistrer\u0027",
+ "description": "Ici :\n\n\n\nOn a passé la propriété de \u0027oui\u0027 à \u0027indéterminé\u0027, mais on ne peut pas enregistrer la modification.",
+ "labels": [
+ "Anomalie"
+ ],
+ "milestone": {
+ "id": 916804,
+ "iid": 145,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "7.0.8",
+ "dueDate": "Jun 27, 2019 2:00:00 AM",
+ "startDate": "Jun 26, 2019 2:00:00 AM",
+ "state": "closed"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 1111318,
+ "_username": "pcauquil",
+ "_name": "Pascal Cauquil",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…"
+ },
+ "userNotesCount": 0,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 27, 2019 7:36:38 AM",
+ "createdAt": "Jun 11, 2019 4:33:27 PM",
+ "closedAt": "Jun 27, 2019 7:36:38 AM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1325"
+ },
+ {
+ "id": 20078138,
+ "iid": 1269,
+ "projectId": 2722779,
+ "title": "[TREE] Parfois un affichage tronqué sans raison",
+ "description": "Vu avec la v7.0.5 et v7.0.6 :\n\n\n\n",
+ "labels": [],
+ "milestone": {
+ "id": 916804,
+ "iid": 145,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "7.0.8",
+ "dueDate": "Jun 27, 2019 2:00:00 AM",
+ "startDate": "Jun 26, 2019 2:00:00 AM",
+ "state": "closed"
+ },
+ "assignees": [
+ {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ }
+ ],
+ "assignee": {
+ "_id": 166231,
+ "_username": "tchemit",
+ "_name": "Tony CHEMIT",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/2a915aa9a1df35c8b609ff2f750d5dac?s\u003d…"
+ },
+ "author": {
+ "_id": 1111318,
+ "_username": "pcauquil",
+ "_name": "Pascal Cauquil",
+ "_state": "active",
+ "_external": false,
+ "_avatarUrl": "https://secure.gravatar.com/avatar/b4ae117bd93e10d96298fa4d885208ea?s\u003d…"
+ },
+ "userNotesCount": 2,
+ "upVotes": 0,
+ "downVotes": 0,
+ "confidential": false,
+ "timeStats": {
+ "timeEstimate": 0,
+ "totalTimeSpent": 0
+ },
+ "state": "closed",
+ "updatedAt": "Jun 27, 2019 7:09:31 AM",
+ "createdAt": "Apr 15, 2019 6:27:13 PM",
+ "closedAt": "Jun 27, 2019 7:09:31 AM",
+ "webUrl": "https://gitlab.com/ultreiaio/ird-observe/issues/1269"
+ }
+]
\ No newline at end of file
=====================================
.mvn/gitlab-cache/milestones/916804.json
=====================================
@@ -0,0 +1,10 @@
+{
+ "id": 916804,
+ "iid": 145,
+ "projectId": 2722779,
+ "groupId": 0,
+ "title": "7.0.8",
+ "dueDate": "Jun 27, 2019 2:00:00 AM",
+ "startDate": "Jun 26, 2019 2:00:00 AM",
+ "state": "closed"
+}
\ No newline at end of file
=====================================
CHANGELOG.md
=====================================
@@ -1,7 +1,7 @@
# ObServe changelog
* Author [Tony Chemit](mailto:dev@tchemit.fr)
- * Last generated at 2019-06-09 16:58.
+ * Last generated at 2019-06-27 08:55.
## Version [8.0-RC-2](https://gitlab.com/ultreiaio/ird-observe/milestones/142)
@@ -179,6 +179,22 @@ Premier lot du contrat IRD-2018-01-V8
* [[Evolution 922]](https://gitlab.com/ultreiaio/ird-observe/issues/922) **Ajoute le référentiel observe_common.DataQuality sur les données existantes** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
* [[Evolution 950]](https://gitlab.com/ultreiaio/ird-observe/issues/950) **Renommage de la classe seine.WeightCategory en seine.WeightCategorySeine** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+## Version [7.0.8](https://gitlab.com/ultreiaio/ird-observe/milestones/145)
+
+**Closed at 2019-06-27.**
+
+### Download
+* [Application (observe-7.0.8.zip)](http://repo1.maven.org/maven2/fr/ird/observe/observe/7.…)
+* [Serveur (observe-7.0.8.war)](http://repo1.maven.org/maven2/fr/ird/observe/observe/7.…)
+
+### Issues
+ * [[Anomalie 1310]](https://gitlab.com/ultreiaio/ird-observe/issues/1310) **On ne peut pas supprimer certains référentiels** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+ * [[Anomalie 1325]](https://gitlab.com/ultreiaio/ird-observe/issues/1325) **Une modification sur le référentiel n'active pas le bouton 'Enregistrer'** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Anomalie 1336]](https://gitlab.com/ultreiaio/ird-observe/issues/1336) **Clés de référentiel non traduite ou nom des clés invalide** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Anomalie 1338]](https://gitlab.com/ultreiaio/ird-observe/issues/1338) **[REFERENTIEL] Impossible de modifier le parent d'un matériau** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Anomalie 1339]](https://gitlab.com/ultreiaio/ird-observe/issues/1339) **[REFERENTIEL] La validation sur les Objets flottant matériaux ne fonctionnent plus :(** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+ * [[Evolution 1335]](https://gitlab.com/ultreiaio/ird-observe/issues/1335) **[UI REFERENTIEL] Liste des relations taille-poids et taill-taille** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+
## Version [7.0.7](https://gitlab.com/ultreiaio/ird-observe/milestones/140)
**Closed at 2019-05-13.**
=====================================
client-core/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java
=====================================
@@ -549,8 +549,18 @@ public class ObserveDataSourcesManager implements Closeable {
mainUI.getInitializer().cleanNavigationUI(progressModel);
- ObserveEditModel navigationEditModel = config.getNavigationEditModel();
- ObserveSelectModel navigationSelectModel = config.getNavigationSelectModel();
+ ObserveEditModel navigationEditModel = null;
+ try {
+ navigationEditModel = config.getNavigationEditModel();
+ } catch (Exception e) {
+ log.error("Can't load navigation edit model",e);
+ }
+ ObserveSelectModel navigationSelectModel = null;
+ try {
+ navigationSelectModel = config.getNavigationSelectModel();
+ } catch (Exception e) {
+ log.error("Can't load navigation select model",e);
+ }
boolean withSelectModel = navigationSelectModel != null;
boolean withEditModel = navigationEditModel != null;
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/e65a7d2f28a3b4ef193d76df6f8…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/e65a7d2f28a3b4ef193d76df6f8…
You're receiving this email because of your account on gitlab.com.
1
0
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
19e30588 by tchemit at 2019-06-27T05:28:05Z
update pom
- - - - -
f64a33aa by tchemit at 2019-06-27T05:30:37Z
Clés de référentiel non traduite ou nom des clés invalide - Close #1336
- - - - -
5f644483 by tchemit at 2019-06-27T05:33:03Z
[REFERENTIEL] Impossible de modifier le parent d'un matériau - Closes #1338
- - - - -
230a5851 by tchemit at 2019-06-27T05:34:46Z
[REFERENTIEL] La validation sur les Objets flottant matériaux ne fonctionnent plus :( - Closes #1339
- - - - -
7cd87441 by tchemit at 2019-06-27T05:37:57Z
[PS][FAD] Comportement des entrées 'FAD' et 'LOG' - Closes #1324
- - - - -
3bd3958b by tchemit at 2019-06-27T05:39:11Z
Fix referential back to list action
- - - - -
6 changed files:
- client-core/src/main/java/fr/ird/observe/client/ui/content/api/ref/ContentReferenceUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/FloatingObjectUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/ref/ps/observation/ObjectMaterialUIHandler.java
- dto/src/main/java/fr/ird/observe/dto/decoration/ObserveI18nLabelsBuilder.java
- dto/src/main/java/fr/ird/observe/dto/referential/ps/observation/ObjectMaterialDto.java
- pom.xml
Changes:
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/api/ref/ContentReferenceUIHandler.java
=====================================
@@ -352,11 +352,13 @@ public class ContentReferenceUIHandler<D extends ReferentialDto, R extends Refer
private void updateView(boolean editing) {
log.debug("Editing has changed : " + editing);
- JButton deleteAction = ui.getDelete();
- if (editing) {
- ui.getDetailRealActions().add(deleteAction);
- } else {
- ui.getListActions().add(deleteAction);
+ if (!getModel().isReadingMode()) {
+ JButton deleteAction = ui.getDelete();
+ if (editing) {
+ ui.getDetailRealActions().add(deleteAction);
+ } else {
+ ui.getListActions().add(deleteAction);
+ }
}
ui.getViewLayout().setSelected(editing ? ContentReferenceUI.DETAIL_VIEW : ContentReferenceUI.LIST_VIEW);
}
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/FloatingObjectUIHandler.java
=====================================
@@ -40,7 +40,6 @@ import fr.ird.observe.dto.referential.ps.common.TransmittingBuoyOwnershipDto;
import fr.ird.observe.dto.referential.ps.common.TransmittingBuoyOwnershipHelper;
import fr.ird.observe.dto.referential.ps.common.TransmittingBuoyOwnershipReference;
import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialDto;
-import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialTypeReference;
import fr.ird.observe.dto.referential.ps.observation.ObjectOperationReference;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -84,14 +83,6 @@ public class FloatingObjectUIHandler extends ContentEditUIHandler<FloatingObject
ObjectMaterialHierarchyDto detailedForm = getFloatingObjectService().getObjectMaterialHierarchy();
- //FIXME-PROTECTED-ID
- ObjectMaterialTypeReference booleanType = getReferentialReferences(ObjectMaterialTypeReference.class).stream().filter(e -> e.getTopiaId().equals("fr.ird.referential.ps.observation.ObjectMaterialType#0#0")).findFirst().orElseThrow(IllegalStateException::new);
-
- for (ObjectMaterialHierarchyDto objectMaterialHierarchyDto : detailedForm.getChildren()) {
- if (objectMaterialHierarchyDto.isEnabled()) {
- objectMaterialHierarchyDto.setObjectMaterialType(booleanType);
- }
- }
Map<String, ObjectMaterialDto> allMap = new TreeMap<>();
detailedForm.getAllDtos().forEach(s -> allMap.putIfAbsent(s.getId(), s));
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/ref/ps/observation/ObjectMaterialUIHandler.java
=====================================
@@ -28,7 +28,6 @@ import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialDto;
import fr.ird.observe.dto.referential.ps.observation.ObjectMaterialReference;
import org.nuiton.jaxx.runtime.spi.UIHandler;
-import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
@@ -46,23 +45,23 @@ class ObjectMaterialUIHandler extends ContentReferenceUIHandler<ObjectMaterialDt
@Override
public void createUI() {
super.createUI();
- Optional<Set<ObjectMaterialReference>> optionalReferenceSetDto = getModel().getReferenceCache().tryToGetReferentialReferenceSet(ObjectMaterialDto.PROPERTY_PARENT);
-
- if (optionalReferenceSetDto.isPresent()) {
- ObjectMaterialReference parent = getModel().getBean().getParent();
- List<ObjectMaterialReference> references = optionalReferenceSetDto.get().stream().filter(r -> !Objects.equals(r.getId(), Optional.ofNullable(parent).map(ReferentialDtoReference::getId).orElse(null))).collect(Collectors.toList());
- ui.getParentCode().setData(references);
- }
+ setParentList();
}
@Override
public void modifyUI() {
super.modifyUI();
- ObjectMaterialReference parent = getModel().getBean().getParent();
- if (parent == null) {
- ui.getParentCode().setData(Collections.emptyList());
- } else {
- ui.getParentCode().setData(Collections.singletonList(parent));
+ setParentList();
+ }
+
+ private void setParentList() {
+ Optional<Set<ObjectMaterialReference>> optionalReferenceSetDto = getModel().getReferenceCache().tryToGetReferentialReferenceSet(ObjectMaterialDto.PROPERTY_PARENT);
+
+ if (optionalReferenceSetDto.isPresent()) {
+
+ ObjectMaterialReference parent = getModel().getBean().getParent();
+ List<ObjectMaterialReference> references = optionalReferenceSetDto.get().stream().filter(r -> !Objects.equals(r.getId(), Optional.ofNullable(parent).map(ReferentialDtoReference::getId).orElse(null))).collect(Collectors.toList());
+ getUi().getParentCode().setData(references);
}
}
=====================================
dto/src/main/java/fr/ird/observe/dto/decoration/ObserveI18nLabelsBuilder.java
=====================================
@@ -112,6 +112,8 @@ public class ObserveI18nLabelsBuilder extends BeanPropertyI18nKeyProducerSupport
protected Map<String, String> createPropertyKeyMapping() {
return ImmutableMap.<String, String>builder()
.put("sizeMeasureTypeCode", "sizeMeasureType")
+ .put("inputSizeMeasureTypeCode", "inputSizeMeasureType")
+ .put("outputSizeMeasureTypeCode", "outputSizeMeasureType")
.build();
}
=====================================
dto/src/main/java/fr/ird/observe/dto/referential/ps/observation/ObjectMaterialDto.java
=====================================
@@ -22,6 +22,7 @@ package fr.ird.observe.dto.referential.ps.observation;
* #L%
*/
+import fr.ird.observe.dto.referential.FormulaHelper;
import org.apache.commons.lang3.StringUtils;
public class ObjectMaterialDto extends GeneratedObjectMaterialDto {
@@ -44,6 +45,13 @@ public class ObjectMaterialDto extends GeneratedObjectMaterialDto {
return objectMaterialType != null && "fr.ird.referential.ps.observation.ObjectMaterialType#0#1".equals(objectMaterialType.getId());
}
+ @Override
+ public void setValidation(String validation) {
+ super.setValidation(validation);
+ boolean result = FormulaHelper.validateObjectMaterialValidation(validation, 10);
+ setValidationValid(result);
+ }
+
public boolean withValidation() {
return StringUtils.isNoneEmpty(validation);
}
=====================================
pom.xml
=====================================
@@ -26,7 +26,7 @@
<parent>
<groupId>io.ultreia.maven</groupId>
<artifactId>pom</artifactId>
- <version>2019.8.21</version>
+ <version>2019.8.22</version>
</parent>
<groupId>fr.ird.observe</groupId>
@@ -161,7 +161,7 @@
<!--can't use 1.4.197 (date has changed + blob also)-->
<lib.version.h2>1.4.196</lib.version.h2>
- <lib.version.java4all.topia>1.10-SNAPSHOT</lib.version.java4all.topia>
+ <!--<lib.version.java4all.topia>1.10-SNAPSHOT</lib.version.java4all.topia>-->
<!--<lib.version.java4all.eugene>3.0-alpha-22</lib.version.java4all.eugene>-->
<!--lib.version.java4all.jaxx>3.0-alpha-52</lib.version.java4all.jaxx-->
<!--<lib.version.java4all.i18n>4.0-beta-3-SNAPSHOT</lib.version.java4all.i18n>-->
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/ddd980c3a8327020b38c59b9e8…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/ddd980c3a8327020b38c59b9e8…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] [TREE] Parfois un affichage tronqué sans raison - Closes #1269
by Tony CHEMIT 27 Jun '19
by Tony CHEMIT 27 Jun '19
27 Jun '19
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
e7cdd45e by tchemit at 2019-06-27T05:08:28Z
[TREE] Parfois un affichage tronqué sans raison - Closes #1269
- - - - -
1 changed file:
- client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTreeCellRenderer.java
Changes:
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTreeCellRenderer.java
=====================================
@@ -23,15 +23,15 @@ package fr.ird.observe.client.ui.tree.navigation;
*/
import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport;
-import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.jdesktop.swingx.renderer.StringValue;
import org.jdesktop.swingx.tree.DefaultXTreeCellRenderer;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JTree;
-import javax.swing.tree.DefaultTreeCellRenderer;
+import javax.swing.SwingUtilities;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
@@ -97,6 +97,13 @@ public class NavigationTreeCellRenderer extends DefaultXTreeCellRenderer impleme
Dimension newSize = new Dimension((int) size.getWidth(), iconHeight + 2);
comp.setSize(newSize);
comp.setPreferredSize(newSize);
+ } else {
+ int stringWidth = SwingUtilities.computeStringWidth(comp.getFontMetrics(comp.getFont()), text);
+ if (size.getWidth() < stringWidth) {
+ log.error(String.format("Size is too low: %s for node: %s", size, text));
+ Dimension newSize = new Dimension(stringWidth + 5, (int) height);
+ comp.setPreferredSize(newSize);
+ }
}
}
return comp;
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/e7cdd45e47c72f98550065e0db6…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/e7cdd45e47c72f98550065e0db6…
You're receiving this email because of your account on gitlab.com.
1
0