[Suiviobsmer-commits] r864 - in trunk: wao-business/src/main/java/fr/ifremer/wao wao-business/src/main/java/fr/ifremer/wao/bean wao-business/src/main/java/fr/ifremer/wao/entity wao-business/src/main/resources/i18n wao-business/src/main/xmi wao-ui/src/main/java/fr/ifremer/wao/ui/components wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/resources/fr/ifremer/wao/ui/components wao-ui/src/main/resources/fr/ifremer/wao/ui/pages wao-ui/src/main/webapp wao-ui/src/main/webapp/WEB-INF
Author: bleny Date: 2010-12-28 16:55:24 +0000 (Tue, 28 Dec 2010) New Revision: 864 Log: add sampling strategy in business + UI for sampleRows Added: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties trunk/wao-business/src/main/xmi/wao.zargo trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SampleRowForm.properties trunk/wao-ui/src/main/webapp/SampleRowForm.tml trunk/wao-ui/src/main/webapp/SamplingPlan.tml trunk/wao-ui/src/main/webapp/WEB-INF/app.properties Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-12-28 16:55:24 UTC (rev 864) @@ -690,4 +690,16 @@ queries.add("ALTER TABLE Contact RENAME tideBeginDate TO observationBeginDate"); queries.add("ALTER TABLE Contact RENAME tideEndDate TO observationEndDate"); } + + @Override + protected void addSampleRowAndContactsObsVenteColumns_2_0(List<String> queries) { + queries.add("ALTER TABLE SampleRow ADD samplingStrategyOrdinal SMALLINT;"); + queries.add("ALTER TABLE Contact ADD samplingStrategyOrdinal SMALLINT;"); + + // for all ObsMer sampleRows and contacts, set samplingStrategy to SIMULTANEOUS_ALL_SPECIES + queries.add("UPDATE SampleRow SET samplingStrategyOrdinal=2 WHERE ObsProgramOrdinal=0"); + queries.add("UPDATE Contact SET samplingStrategyOrdinal=2 WHERE ObsProgramOrdinal=0"); + + queries.add("ALTER TABLE Contact ADD completeSampling BOOLEAN;"); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-12-28 16:55:24 UTC (rev 864) @@ -119,6 +119,8 @@ protected abstract void renameContactsColumnsToCommonName_2_0(List<String> queries); + protected abstract void addSampleRowAndContactsObsVenteColumns_2_0(List<String> queries); + protected static final Version[] VERSIONS = new Version[] { VersionUtil.valueOf("1.0"), VersionUtil.valueOf("1.1"), @@ -423,6 +425,8 @@ renameContactsColumnsToCommonName_2_0(queries); + addSampleRowAndContactsObsVenteColumns_2_0(queries); + String[] strings = queries.toArray(new String[queries.size()]); executeSQL(tx, true, true, strings); } Added: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java (rev 0) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java 2010-12-28 16:55:24 UTC (rev 864) @@ -0,0 +1,31 @@ +package fr.ifremer.wao.bean; + +import static org.nuiton.i18n.I18n._; +import static org.nuiton.i18n.I18n.n_; + +public enum SamplingStrategy { + + SIMULTANEOUS_G1_SPECIES(n_("fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_SPECIES")), + SIMULTANEOUS_G1_G2_SPECIES(n_("fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES")), + SIMULTANEOUS_ALL_SPECIES(n_("fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_ALL_SPECIES")), + SPECIFIC_STOCK(n_("fr.ifremer.wao.bean.SamplingStrategy.SPECIFIC_STOCK")); + + protected String i18nkey; + + SamplingStrategy(String i18nkey) { + this.i18nkey = i18nkey; + } + + public String toString() { + return _(i18nkey); + } + + public static SamplingStrategy valueOf(int samplingStrategyOrdinal) { + for (SamplingStrategy samplingStrategy : values()) { + if (samplingStrategy.ordinal() == samplingStrategyOrdinal) { + return samplingStrategy; + } + } + return null; + } +} Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2010-12-28 16:55:24 UTC (rev 864) @@ -27,6 +27,7 @@ import fr.ifremer.wao.bean.ContactState; import fr.ifremer.wao.bean.DataReliability; import fr.ifremer.wao.bean.ObsProgram; +import fr.ifremer.wao.bean.SamplingStrategy; import org.nuiton.util.DateUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -113,4 +114,14 @@ public void setObsProgram(ObsProgram obsProgram) { setObsProgramOrdinal(obsProgram.ordinal()); } + + @Override + public SamplingStrategy getSamplingStrategy() { + return SamplingStrategy.valueOf(getSamplingStrategyOrdinal()); + } + + @Override + public void setSamplingStrategy(SamplingStrategy samplingStrategy) { + setSamplingStrategyOrdinal(samplingStrategy.ordinal()); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2010-12-28 16:55:24 UTC (rev 864) @@ -26,6 +26,7 @@ import fr.ifremer.wao.WaoUtils; import fr.ifremer.wao.bean.ObsProgram; +import fr.ifremer.wao.bean.SamplingStrategy; import fr.ifremer.wao.service.ServiceSampling; import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.StringUtils; @@ -431,4 +432,14 @@ public void setObsProgram(ObsProgram obsProgram) { setObsProgramOrdinal(obsProgram.ordinal()); } + + @Override + public SamplingStrategy getSamplingStrategy() { + return SamplingStrategy.valueOf(getSamplingStrategyOrdinal()); + } + + @Override + public void setSamplingStrategy(SamplingStrategy samplingStrategy) { + setSamplingStrategyOrdinal(samplingStrategy.ordinal()); + } } Modified: trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties 2010-12-28 16:55:24 UTC (rev 864) @@ -1,3 +1,7 @@ +fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_ALL_SPECIES= +fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES= +fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_SPECIES= +fr.ifremer.wao.bean.SamplingStrategy.SPECIFIC_STOCK= fr.ifremer.wao.entity.FishingGearDCF.=Not specified fr.ifremer.wao.entity.FishingGearDCF.DRB=Boat dredges fr.ifremer.wao.entity.FishingGearDCF.DRH=Hand dredges Modified: trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties 2010-12-28 16:55:24 UTC (rev 864) @@ -1,6 +1,10 @@ fr.ifremer.wao.bean.ObsProgram.OBSDEB=ObsDeb fr.ifremer.wao.bean.ObsProgram.OBSMER=ObsMer fr.ifremer.wao.bean.ObsProgram.OBSVENTE=ObsVente +fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultan\u00E9 \: Toutes esp\u00E8ces commerciales +fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1+G2 +fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1 +fr.ifremer.wao.bean.SamplingStrategy.SPECIFIC_STOCK=Stock sp\u00E9cifique fr.ifremer.wao.bean.UserRole.ADMIN=Administrateur fr.ifremer.wao.bean.UserRole.COORDINATOR=Coordinateur fr.ifremer.wao.bean.UserRole.GUEST=Invit\u00E9 Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-12-28 16:55:24 UTC (rev 864) @@ -46,6 +46,8 @@ import java.util.LinkedHashMap; import java.util.Map; +import static org.nuiton.i18n.I18n._; + /** * Layout * @@ -145,8 +147,7 @@ menuItems = new LinkedHashMap<String, String>(); for (Class page : pagesInMenu) { if (serviceAuthentication.isAllowed(page)) { - // menuItems.put(page.getSimpleName(), _(page.getName())); - menuItems.put(page.getSimpleName(), page.getSimpleName()); + menuItems.put(page.getSimpleName(), _(page.getName())); } } } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2010-12-28 16:55:24 UTC (rev 864) @@ -26,10 +26,7 @@ import fr.ifremer.wao.WaoBusinessException; import fr.ifremer.wao.WaoException; -import fr.ifremer.wao.bean.ConnectedUser; -import fr.ifremer.wao.bean.SamplingFilter; -import fr.ifremer.wao.bean.SamplingFilterImpl; -import fr.ifremer.wao.bean.UserRole; +import fr.ifremer.wao.bean.*; import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.Company; import fr.ifremer.wao.entity.DCF5Code; @@ -56,12 +53,7 @@ import org.apache.tapestry5.Field; import org.apache.tapestry5.OptionModel; import org.apache.tapestry5.SelectModel; -import org.apache.tapestry5.annotations.IncludeStylesheet; -import org.apache.tapestry5.annotations.InjectComponent; -import org.apache.tapestry5.annotations.Log; -import org.apache.tapestry5.annotations.Persist; -import org.apache.tapestry5.annotations.Property; -import org.apache.tapestry5.annotations.SessionState; +import org.apache.tapestry5.annotations.*; import org.apache.tapestry5.beaneditor.BeanModel; import org.apache.tapestry5.corelib.components.Form; import org.apache.tapestry5.internal.OptionModelImpl; @@ -89,7 +81,8 @@ * @author fdesbois <fdesbois at codelutin.com> */ @RequiresAuthentication(allowedRoles = UserRole.ADMIN, readOnlyAllowed = false) - at IncludeStylesheet("context:css/sampling.css") +//@IncludeStylesheet("context:css/sampling.css") + at Import(stylesheet = "context:css/sampling.css") public class SampleRowForm { @Inject @@ -535,6 +528,10 @@ } } else { sampleRow = serviceSampling.getNewSampleRow(); + sampleRow.setObsProgram(user.getProfile().getObsProgram()); + if (sampleRow.getObsProgram() == ObsProgram.OBSMER) { + sampleRow.setSamplingStrategy(SamplingStrategy.SIMULTANEOUS_ALL_SPECIES); + } } propertyChange = new WaoPropertyChangeListener(); } @@ -554,6 +551,9 @@ sampleRowModel.add("company", null); sampleRowModel.add("boats", null); sampleRowModel.include("code", "company", "nbObservants", "averageTideTime", "boats", "comment"); + if (user.getProfile().getObsProgram() == ObsProgram.OBSVENTE) { + sampleRowModel.add("samplingStrategy"); + } } return sampleRowModel; } @@ -692,6 +692,12 @@ String rowCode = serviceSampling.getNewSampleRowCode(periodBegin); getSampleRow().setCode(rowCode); } + + if (sampleRow.getSamplingStrategy() == SamplingStrategy.SPECIFIC_STOCK) { + if (StringUtils.isEmpty(getSampleRow().getProfession().getSpecies())) { + sampleRowForm.recordError("Pour ce choix de stratégie d'échantillonnage, il faut préciser les espèces cibles"); + } + } } } catch (WaoBusinessException eee) { sampleRowForm.recordError(eee.getMessage()); Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2010-12-28 16:55:24 UTC (rev 864) @@ -26,10 +26,7 @@ import fr.ifremer.wao.WaoBusinessException; import fr.ifremer.wao.WaoException; -import fr.ifremer.wao.bean.ConnectedUser; -import fr.ifremer.wao.bean.FacadeRow; -import fr.ifremer.wao.bean.SamplingFilter; -import fr.ifremer.wao.bean.SamplingFilterImpl; +import fr.ifremer.wao.bean.*; import fr.ifremer.wao.entity.DCF5Code; import fr.ifremer.wao.entity.FishingZone; import fr.ifremer.wao.entity.SampleMonth; @@ -564,7 +561,11 @@ } public int getNbColumnsForOther() { - return 4; + int nbColumnsForOther = 4; + if (showObsVente()) { + nbColumnsForOther += 1; // add sampling strategy + } + return nbColumnsForOther; } public int getNbColumnsTotal() { @@ -612,6 +613,10 @@ return new SimpleDateFormat("MM/yyyy"); } + public boolean showObsVente() { + return user.getProfile().getObsProgram() == ObsProgram.OBSVENTE; + } + /** ------------------------- ACTIONS ---------------------------------- **/ /** Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml =================================================================== --- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2010-12-28 16:55:24 UTC (rev 864) @@ -64,7 +64,7 @@ </div> <div id="user-infos" class="fleft"> Vous êtes <strong>${currentUser.fullName}</strong> de la société <strong>${currentUser.company.name}</strong> - (${accessText}) + (${currentUser.profile.description}) </div> <div id="user-actions" class="fright"> <a t:type="pagelink" t:page="index" title="Page d'accueil"> Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SampleRowForm.properties =================================================================== --- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SampleRowForm.properties 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SampleRowForm.properties 2010-12-28 16:55:24 UTC (rev 864) @@ -46,6 +46,7 @@ nbObservants-label: Nombre d'observateurs averageTideTime-label: Dur\u00e9e moyenne d'une mar\u00e9e comment-label: Commentaire sur la ligne +samplingStrategy-label: Stat\u00e9gie d'\u00e9chantillonnage # FORM errors-banner: La ligne n'a pas \u00e9t\u00e9 sauvegard\u00e9 \u00e0 cause des erreurs suivantes : Modified: trunk/wao-ui/src/main/webapp/SampleRowForm.tml =================================================================== --- trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2010-12-28 16:55:24 UTC (rev 864) @@ -199,6 +199,10 @@ <t:label t:for="comment" /> <input t:type="textarea" t:id="comment" cols="40" rows="3" value="sampleRow.comment" /> </p:comment> + <p:samplingStrategy> + <t:label t:for="samplingStrategy" /> + <input t:type="select" t:id="samplingStrategy" value="sampleRow.samplingStrategy" t:validate="required" /> + </p:samplingStrategy> </t:beaneditor> </div> </fieldset> Modified: trunk/wao-ui/src/main/webapp/SamplingPlan.tml =================================================================== --- trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-12-28 16:55:24 UTC (rev 864) @@ -38,7 +38,7 @@ <a t:type="actionlink" t:id="exportSamplingPlan"> <img src="${asset:context:}/img/file-export-22px.png" alt="Export CSV" title="Exporter le plan d'échantillonnage du ${dateFormat.format(period.fromDate)} au ${dateFormat.format(period.thruDate)}" /> - </a> + </a> </span> <t:unless t:test="user.guest"> <span> @@ -65,7 +65,7 @@ title="Agrandir le plan d'échantillonnage"/> </p:else> </t:if> - </a> + </a> </span> <t:if t:test="canEditSampleRow()"> <span> @@ -74,9 +74,9 @@ </a> </span> </t:if> - </t:if> + </t:if> </div> - </div> + </div> <div> Pour la pédiode du <t:output value="period.fromDate" format="dateFormat" /> au <t:output value="period.thruDate" format="dateFormat" /> <a t:type="actionlink" t:id="showFilters" t:zone="so-sampling-filters" class="display-form"><img src="${asset:context:img/search.png}" /> recherche avancée</a> @@ -177,6 +177,9 @@ <td class="width50 bright">total</td> <td class="width60">Durée moyenne d'une marée (J.)</td> <td class="width60">Nb. d'observateurs</td> + <t:if test="showObsVente()"> + <td class="width60 bright">Stratégie d'échantillonnage</td> + </t:if> <td class="width60 bright">Commentaire</td> <td class="bright">Actions</td> </tr> @@ -272,6 +275,11 @@ </td> <td class="width60 acenter"><t:output t:value="row.averageTideTime" t:format="numberFormat" /></td> <td class="width60 acenter">${row.nbObservants}</td> + <t:if test="showObsVente()"> + <td class="width60 acenter"> + ${row.samplingStrategy} + </td> + </t:if> <td class="width60 acenter bright"> <t:if t:test="row.comment"> <span t:type="ck/Tooltip" title="Commentaire" t:value="prop:rowComment" t:effect="appear"> Modified: trunk/wao-ui/src/main/webapp/WEB-INF/app.properties =================================================================== --- trunk/wao-ui/src/main/webapp/WEB-INF/app.properties 2010-12-28 09:56:05 UTC (rev 863) +++ trunk/wao-ui/src/main/webapp/WEB-INF/app.properties 2010-12-28 16:55:24 UTC (rev 864) @@ -38,3 +38,7 @@ DataReliability.RELIABLE: Exploitable DataReliability.NOT_PROVIDED: Non contr\u00f4l\u00e9e +SamplingStrategy.SIMULTANEOUS_G1_SPECIES: Simultan\u00e9 : esp\u00e8ces G1 +SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES: Simultan\u00e9 : esp\u00e8ces G1+G2 +SamplingStrategy.SIMULTANEOUS_ALL_SPECIES: Toutes esp\u00e8ces commerciales +SamplingStrategy.SPECIFIC_STOCK: Stock sp\u00e9cifique
participants (1)
-
bleny@users.labs.libre-entreprise.org