Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: f99fa7ff by Tony Chemit at 2022-10-18T03:56:06+02:00 Agrandir la zone de texte Source sur les référentiels taille-poids et taille-taille - Closes #2474 - - - - - 97437906 by Tony Chemit at 2022-10-18T08:22:36+02:00 Restaurer la possibilité d'afficher les relations taille-poids et taille-taille par code FAO - Closes #2473 - - - - - 686530bb by Tony Chemit at 2022-10-18T09:49:15+02:00 update pom - - - - - 20 changed files: - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/LengthLengthParameterUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/LengthWeightParameterUI.jaxx - core/api/dto/src/main/java/fr/ird/observe/dto/referential/common/LengthFormulaSupportDto.java - + core/api/dto/src/main/java/fr/ird/observe/dto/referential/common/LengthLengthParameterReference.java - + core/api/dto/src/main/java/fr/ird/observe/dto/referential/common/LengthWeightParameterReference.java - core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveDefaultDecoratorRenderer.java - core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveDtoDecoratorRenderer.java - core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveDtoReferenceDecoratorRenderer.java - core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveI18nLabelsBuilder.java - core/api/services/src/main/resources/META-INF/i18n/Observe-labels.properties - core/persistence/java/src/main/java/fr/ird/observe/entities/referential/common/LengthLengthParameterImpl.java - core/persistence/java/src/main/java/fr/ird/observe/entities/referential/common/LengthWeightParameterImpl.java - core/persistence/java/src/main/java/fr/ird/observe/spi/decoration/ObserveEntityDecoratorRenderer.java - model/src/main/models/Observe/dto/00-common.model - model/src/main/models/Observe/dto/01-referential-common.model - model/src/main/models/Observe/dto/class/decorator.properties - pom.xml - toolkit/api/src/main/java/fr/ird/observe/dto/referential/WithFormula.java - + toolkit/api/src/main/java/fr/ird/observe/dto/referential/WithSpeciesFaoCode.java - toolkit/api/src/test/java/fr/ird/observe/dto/referential/FormulaHelperTest.java Changes: ===================================== client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/LengthLengthParameterUI.jaxx ===================================== @@ -49,7 +49,7 @@ <LengthLengthParameterDto id='bean'/> <Table id="editView" insets="0" fill="both"> <row> - <cell anchor="north" weightx="1"> + <cell anchor="north" weightx="1" weighty="1"> <JTabbedPane id='mainTabbedPane'> <tab id='generalTab' i18nProperty=""> <Table id='editTable' styleClass="caracteristic" addToContainer="true" forceOverride="3"> @@ -168,10 +168,5 @@ </JTabbedPane> </cell> </row> - <row> - <cell columns="2" weighty="1"> - <JLabel styleClass="skipI18n"/> - </cell> - </row> </Table> </fr.ird.observe.client.datasource.editor.api.content.referential.ContentReferentialUI> ===================================== client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/LengthWeightParameterUI.jaxx ===================================== @@ -67,7 +67,7 @@ public void decorateUniqueKeyTable(JTable table, TableCellRenderer renderer, JSc ]]></script> <Table id="editView" insets="0" fill="both"> <row> - <cell anchor="north" weightx="1"> + <cell anchor="north" weightx="1" weighty="1"> <JTabbedPane id='mainTabbedPane'> <tab id='generalTab' i18nProperty=""> <Table id='editTable' styleClass="caracteristic" addToContainer="true" forceOverride="3"> @@ -187,12 +187,6 @@ public void decorateUniqueKeyTable(JTable table, TableCellRenderer renderer, JSc <NumberEditor id='meanWeight' styleClass="float2"/> </cell> </row> - <row> - <cell> - <javax.swing.Box.Filler id='filler' - constructorParams='UIHelper.newMinDimension(), UIHelper.newMinDimension(), UIHelper.newMaxXDimension()'/> - </cell> - </row> </Table> </cell> </row> @@ -206,10 +200,5 @@ public void decorateUniqueKeyTable(JTable table, TableCellRenderer renderer, JSc </JTabbedPane> </cell> </row> - <row> - <cell columns="2" weighty="1"> - <JLabel styleClass="skipI18n"/> - </cell> - </row> </Table> </fr.ird.observe.client.datasource.editor.api.content.referential.ContentReferentialUI> ===================================== core/api/dto/src/main/java/fr/ird/observe/dto/referential/common/LengthFormulaSupportDto.java ===================================== @@ -32,6 +32,16 @@ public abstract class LengthFormulaSupportDto extends GeneratedLengthFormulaSupp private Map<String, Double> coefficientsValues; + @Override + public String getSpeciesFaoCode() { + return getSpecies() == null ? null : getSpecies().getFaoCode(); + } + + @Override + public SpeciesReference getSpeciesLabel() { + return (SpeciesReference) super.getSpeciesLabel(); + } + @Override public final void setCoefficients(String coefficients) { super.setCoefficients(coefficients); ===================================== core/api/dto/src/main/java/fr/ird/observe/dto/referential/common/LengthLengthParameterReference.java ===================================== @@ -0,0 +1,45 @@ +package fr.ird.observe.dto.referential.common; + +/*- + * #%L + * ObServe Core :: API :: Dto + * %% + * Copyright (C) 2008 - 2022 IRD, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition; + +/** + * Created on 18/10/2022. + * + * @author Tony Chemit - dev@tchemit.fr + * @since 9.0.14 + */ +@GenerateJavaBeanDefinition +public class LengthLengthParameterReference extends GeneratedLengthLengthParameterReference { + + @Override + public String getSpeciesFaoCode() { + return getSpecies() == null ? null : getSpecies().getFaoCode(); + } + + @Override + public SpeciesReference getSpeciesLabel() { + return (SpeciesReference) super.getSpeciesLabel(); + } +} ===================================== core/api/dto/src/main/java/fr/ird/observe/dto/referential/common/LengthWeightParameterReference.java ===================================== @@ -0,0 +1,45 @@ +package fr.ird.observe.dto.referential.common; + +/*- + * #%L + * ObServe Core :: API :: Dto + * %% + * Copyright (C) 2008 - 2022 IRD, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition; + +/** + * Created on 18/10/2022. + * + * @author Tony Chemit - dev@tchemit.fr + * @since 9.0.14 + */ +@GenerateJavaBeanDefinition +public class LengthWeightParameterReference extends GeneratedLengthWeightParameterReference { + + @Override + public String getSpeciesFaoCode() { + return getSpecies() == null ? null : getSpecies().getFaoCode(); + } + + @Override + public SpeciesReference getSpeciesLabel() { + return (SpeciesReference) super.getSpeciesLabel(); + } +} ===================================== core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveDefaultDecoratorRenderer.java ===================================== @@ -41,6 +41,13 @@ public interface ObserveDefaultDecoratorRenderer { return String.format("%s - %s - %s", faoCode, scientificLabel, label); } + default String speciesSimpleLabel(String scientificLabel, String label) { + if ("xx".equals(scientificLabel)) { + return String.format("%s", label); + } + return String.format("%s (%s)", scientificLabel, label); + } + default String fieldEnabler(Locale locale, boolean fieldEnabler) { return fieldEnabler ? I18n.l(locale, "observe.referential.ps.common.AcquisitionStatus.fieldEnabled") : I18n.l(locale, "observe.referential.ps.common.AcquisitionStatus.fieldDisabled"); } ===================================== core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveDtoDecoratorRenderer.java ===================================== @@ -49,4 +49,13 @@ public class ObserveDtoDecoratorRenderer<O extends BusinessDto> extends DtoDecor String label = label(locale, species); return speciesLabel(faoCode, scientificLabel, label); } + + public String speciesSimpleLabel(Locale locale, SpeciesReference species) { + if (species == null) { + return onNullValue(locale, null); + } + String scientificLabel = species.getScientificLabel(); + String label = label(locale, species); + return speciesSimpleLabel(scientificLabel, label); + } } ===================================== core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveDtoReferenceDecoratorRenderer.java ===================================== @@ -49,4 +49,13 @@ public class ObserveDtoReferenceDecoratorRenderer<O extends DtoReference> extend String label = label(locale, species); return speciesLabel(faoCode, scientificLabel, label); } + + public String speciesSimpleLabel(Locale locale, SpeciesReference species) { + if (species == null) { + return onNullValue(locale, null); + } + String scientificLabel = species.getScientificLabel(); + String label = label(locale, species); + return speciesSimpleLabel(scientificLabel, label); + } } ===================================== core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveI18nLabelsBuilder.java ===================================== @@ -47,6 +47,7 @@ import fr.ird.observe.dto.referential.MinMaxWeightAware; import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.dto.referential.WithFormula; import fr.ird.observe.dto.referential.WithI18n; +import fr.ird.observe.dto.referential.WithSpeciesFaoCode; import fr.ird.observe.dto.referential.common.SpeciesDto; import fr.ird.observe.dto.referential.common.VesselSizeCategoryDto; import io.ultreia.java4all.i18n.spi.bean.BeanPropertyI18nKeyProducerSupport; @@ -144,6 +145,7 @@ import static io.ultreia.java4all.i18n.I18n.n; @RegisterI18nLabel(target = BusinessDto.class, properties = {"homeId"}), @RegisterI18nLabel(target = OpenableDto.class, offers = {"action.close.tip", "action.create.tip", "action.editable.tip", "action.notEditable.tip", "action.reopen.tip", "action.update.tip"}), @RegisterI18nLabel(target = WithStartEndDate.class, properties = {"startDate", "endDate", "validityRangeLabel"}), + @RegisterI18nLabel(target = WithSpeciesFaoCode.class, properties = {"speciesFaoCode", "speciesLabel"}), @RegisterI18nLabel(target = WithDataFile.class, properties = {"dataLocation", "dataLocation.tip", "data", "hasData.short", "hasData", "action.deleteDataFile", "action.deleteDataFile.tip", "action.exportDataFile", "action.exportDataFile.filter", "action.exportDataFile.tip", "action.importData", "action.importDataFile", "action.importDataFile.tip", "action.replace.data.file.message", "choose.title.exportDataFile", "choose.title.importData", "delete.data.file.message"}), @RegisterI18nLabel(target = LonglineElementAware.class, properties = {"haulingIdentifier", "haulingIdentifier.short", "settingIdentifier", "settingIdentifier.short"}), @RegisterI18nLabel(target = InlineDataDto.class, offers = {"action.add", "action.add.tip", "action.delete", "action.delete.message", "action.delete.tip"}), ===================================== core/api/services/src/main/resources/META-INF/i18n/Observe-labels.properties ===================================== @@ -20,7 +20,7 @@ # #L% ### #Generated by org.nuiton.i18n.plugin.GenerateI18nLabelsMojo -#Mon Oct 17 14:55:03 CEST 2022 +#Tue Oct 18 08:15:15 CEST 2022 observe.Business.createDate=observe.Common.createDate observe.Business.homeId=observe.Common.homeId observe.Business.id=observe.Common.id @@ -1816,6 +1816,8 @@ observe.referential.Referential.status=observe.Common.status observe.referential.Referential.uri=observe.Common.uri observe.referential.Referential.version=observe.Common.version observe.referential.WithFormula.endDate=observe.Common.endDate +observe.referential.WithFormula.speciesFaoCode=observe.Common.speciesFaoCode +observe.referential.WithFormula.speciesLabel=observe.Common.speciesLabel observe.referential.WithFormula.startDate=observe.Common.startDate observe.referential.WithFormula.validityRangeLabel=observe.Common.validityRangeLabel observe.referential.WithI18n.label1=observe.Common.label1 @@ -1826,6 +1828,8 @@ observe.referential.WithI18n.label5=observe.Common.label5 observe.referential.WithI18n.label6=observe.Common.label6 observe.referential.WithI18n.label7=observe.Common.label7 observe.referential.WithI18n.label8=observe.Common.label8 +observe.referential.WithSpeciesFaoCode.speciesFaoCode=observe.Common.speciesFaoCode +observe.referential.WithSpeciesFaoCode.speciesLabel=observe.Common.speciesLabel observe.referential.common.Country.code=observe.referential.Referential.code observe.referential.common.Country.codeAndHomeId=observe.referential.Referential.codeAndHomeId observe.referential.common.Country.createDate=observe.Common.createDate @@ -1996,6 +2000,8 @@ observe.referential.common.LengthFormulaSupport.otherTab=observe.Common.otherTab observe.referential.common.LengthFormulaSupport.sex=observe.Common.sex observe.referential.common.LengthFormulaSupport.source=observe.referential.WithFormula.source observe.referential.common.LengthFormulaSupport.species=observe.Common.species +observe.referential.common.LengthFormulaSupport.speciesFaoCode=observe.Common.speciesFaoCode +observe.referential.common.LengthFormulaSupport.speciesLabel=observe.Common.speciesLabel observe.referential.common.LengthFormulaSupport.startDate=observe.Common.startDate observe.referential.common.LengthFormulaSupport.status=observe.Common.status observe.referential.common.LengthFormulaSupport.uri=observe.Common.uri @@ -2019,6 +2025,8 @@ observe.referential.common.LengthLengthParameter.otherTab=observe.Common.otherTa observe.referential.common.LengthLengthParameter.sex=observe.Common.sex observe.referential.common.LengthLengthParameter.source=observe.referential.WithFormula.source observe.referential.common.LengthLengthParameter.species=observe.Common.species +observe.referential.common.LengthLengthParameter.speciesFaoCode=observe.Common.speciesFaoCode +observe.referential.common.LengthLengthParameter.speciesLabel=observe.Common.speciesLabel observe.referential.common.LengthLengthParameter.startDate=observe.Common.startDate observe.referential.common.LengthLengthParameter.status=observe.Common.status observe.referential.common.LengthLengthParameter.uri=observe.Common.uri @@ -2063,6 +2071,8 @@ observe.referential.common.LengthWeightParameter.sex=observe.Common.sex observe.referential.common.LengthWeightParameter.sizeMeasureType=observe.Common.sizeMeasureType observe.referential.common.LengthWeightParameter.source=observe.referential.WithFormula.source observe.referential.common.LengthWeightParameter.species=observe.Common.species +observe.referential.common.LengthWeightParameter.speciesFaoCode=observe.Common.speciesFaoCode +observe.referential.common.LengthWeightParameter.speciesLabel=observe.Common.speciesLabel observe.referential.common.LengthWeightParameter.startDate=observe.Common.startDate observe.referential.common.LengthWeightParameter.status=observe.Common.status observe.referential.common.LengthWeightParameter.uri=observe.Common.uri ===================================== core/persistence/java/src/main/java/fr/ird/observe/entities/referential/common/LengthLengthParameterImpl.java ===================================== @@ -39,6 +39,16 @@ public class LengthLengthParameterImpl extends LengthLengthParameterAbstract { private Boolean formulaOneValid; private Boolean formulaTwoValid; + @Override + public String getSpeciesFaoCode() { + return getSpecies() == null ? null : getSpecies().getFaoCode(); + } + + @Override + public Species getSpeciesLabel() { + return (Species) super.getSpeciesLabel(); + } + @Override public void setInputOutputFormula(String inputOutputFormula) { super.setInputOutputFormula(inputOutputFormula); ===================================== core/persistence/java/src/main/java/fr/ird/observe/entities/referential/common/LengthWeightParameterImpl.java ===================================== @@ -32,6 +32,16 @@ public class LengthWeightParameterImpl extends LengthWeightParameterAbstract { private Boolean formulaOneValid; private Boolean formulaTwoValid; + @Override + public String getSpeciesFaoCode() { + return getSpecies() == null ? null : getSpecies().getFaoCode(); + } + + @Override + public Species getSpeciesLabel() { + return (Species) super.getSpeciesLabel(); + } + @Override public void setLengthWeightFormula(String value) { super.setLengthWeightFormula(value); ===================================== core/persistence/java/src/main/java/fr/ird/observe/spi/decoration/ObserveEntityDecoratorRenderer.java ===================================== @@ -22,6 +22,7 @@ package fr.ird.observe.spi.decoration; * #L% */ +import fr.ird.observe.dto.CommonDto; import fr.ird.observe.entities.Entity; import fr.ird.observe.entities.referential.common.Species; @@ -49,4 +50,15 @@ public class ObserveEntityDecoratorRenderer<O extends Entity> extends EntityDeco String label = label(locale, species); return speciesLabel(faoCode, scientificLabel, label); } + + public String speciesSimpleLabel(Locale locale, CommonDto source) { + Species species = (Species) source; + if (species == null) { + return onNullValue(locale, null); + } + String scientificLabel = species.getScientificLabel(); + String label = label(locale, species); + return speciesSimpleLabel(scientificLabel, label); + } + } ===================================== model/src/main/models/Observe/dto/00-common.model ===================================== @@ -24,6 +24,8 @@ interface referential.WithI18n interface WithStartEndDate > DtoAndReferenceAware +interface referential.WithSpeciesFaoCode > DtoAndReferenceAware + interface WithAtLeastOneSelected atLeastOneSelected() boolean ===================================== model/src/main/models/Observe/dto/01-referential-common.model ===================================== @@ -1,6 +1,6 @@ package fr.ird.observe.dto.referential.common -interface referential.WithFormula > WithStartEndDate +interface referential.WithFormula > WithStartEndDate, referential.WithSpeciesFaoCode interface referential.common.GearCharacteristicTypeAware > DtoAndReferenceAware ===================================== model/src/main/models/Observe/dto/class/decorator.properties ===================================== @@ -100,8 +100,8 @@ presets.RemoteDataSourceConfiguration=${name} presets.ServerDataSourceConfiguration=${name} referential.common.FpaZone=${code}##${this::label} referential.common.Harbour=${this::label}##${code}##${locode} -referential.common.LengthLengthParameter=${species/faoCode}##${species::label}##$(observe.Common.ocean) ${ocean::labelOrUnknown}##$(observe.Common.sex) ${sex::label}##${this::validityRangeLabel}##${inputSizeMeasureType::labelOrUnknown}##${outputSizeMeasureType::labelOrUnknown} -referential.common.LengthWeightParameter=${species/faoCode}##${species::label}##$(observe.Common.ocean) ${ocean::labelOrUnknown}##$(observe.Common.sex) ${sex::label}##${this::validityRangeLabel}##${sizeMeasureType::labelOrUnknown} +referential.common.LengthLengthParameter=${speciesFaoCode}##${speciesLabel::speciesSimpleLabel}##$(observe.Common.ocean) ${ocean::labelOrUnknown}##$(observe.Common.sex) ${sex::label}##${this::validityRangeLabel}##${inputSizeMeasureType::labelOrUnknown}##${outputSizeMeasureType::labelOrUnknown} +referential.common.LengthWeightParameter=${speciesFaoCode}##${speciesLabel::speciesSimpleLabel}##$(observe.Common.ocean) ${ocean::labelOrUnknown}##$(observe.Common.sex) ${sex::label}##${this::validityRangeLabel}##${sizeMeasureType::labelOrUnknown} referential.common.Person=${lastName}##${firstName} referential.common.ShipOwner=${code}##${label} referential.common.Species=${faoCode}##${scientificLabel}##${this::label} ===================================== pom.xml ===================================== @@ -23,7 +23,7 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2022.91</version> + <version>2022.92</version> </parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> ===================================== toolkit/api/src/main/java/fr/ird/observe/dto/referential/WithFormula.java ===================================== @@ -36,7 +36,7 @@ import java.util.Set; * @author Tony Chemit - dev@tchemit.fr * @since 6.0 */ -public interface WithFormula extends WithStartEndDate { +public interface WithFormula extends WithStartEndDate, WithSpeciesFaoCode { String PROPERTY_OCEAN = "ocean"; String PROPERTY_SPECIES = "species"; ===================================== toolkit/api/src/main/java/fr/ird/observe/dto/referential/WithSpeciesFaoCode.java ===================================== @@ -0,0 +1,43 @@ +package fr.ird.observe.dto.referential; + +/*- + * #%L + * ObServe Toolkit :: API + * %% + * Copyright (C) 2008 - 2022 IRD, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.dto.CommonDto; +import fr.ird.observe.dto.DtoAndReferenceAware; + +/** + * Created on 18/10/2022. + * + * @author Tony Chemit - dev@tchemit.fr + * @since 9.0.14 + */ +public interface WithSpeciesFaoCode extends DtoAndReferenceAware { + + CommonDto getSpecies(); + + default CommonDto getSpeciesLabel() { + return getSpecies(); + } + + String getSpeciesFaoCode(); +} ===================================== toolkit/api/src/test/java/fr/ird/observe/dto/referential/FormulaHelperTest.java ===================================== @@ -22,6 +22,7 @@ package fr.ird.observe.dto.referential; * #L% */ +import fr.ird.observe.dto.CommonDto; import org.junit.Assert; import org.junit.Test; @@ -40,6 +41,15 @@ public class FormulaHelperTest { public void testComputeValue() { WithFormula formula = new WithFormula() { + @Override + public String getSpeciesFaoCode() { + return null; + } + + @Override + public CommonDto getSpecies() { + return null; + } @Override public Date getStartDate() { @@ -135,7 +145,7 @@ public class FormulaHelperTest { Float weight = FormulaHelper.computeValue(formula, "a * Math.pow(L, b)", null, "L", 84.0f); Assert.assertNotNull(weight); - Float excepted = (float) (Math.pow(84.0, 2.78) * 3.8e-5); + float excepted = (float) (Math.pow(84.0, 2.78) * 3.8e-5); Assert.assertEquals(excepted, weight, 2); } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/301bdea8caa63ad6213e935d6... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/301bdea8caa63ad6213e935d6... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT (@tchemit)