[Suiviobsmer-commits] r236 - in trunk: . suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl suiviobsmer-business/src/main/xmi suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages suiviobsmer-ui/src/main/webapp
Author: fdesbois Date: 2010-01-18 17:13:43 +0000 (Mon, 18 Jan 2010) New Revision: 236 Modified: trunk/changelog.txt trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSynthesisImpl.java trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/ChartUtils.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml Log: Evol #1975 : Improve graphic view + filter on sampleRows Modified: trunk/changelog.txt =================================================================== --- trunk/changelog.txt 2010-01-18 15:24:24 UTC (rev 235) +++ trunk/changelog.txt 2010-01-18 17:13:43 UTC (rev 236) @@ -1,6 +1,18 @@ Release note ============ +0.1.1 +----- + +- [fdesbois] Evol #1975 : Amélioration de l'affichage (marges) + dynamisme sur la liste déroulante des métiers (codes lignes du plan) +- [fdesbois] Evol #1972 : Envoi d'un email pour la modification du password de l'utilisateur +- [fdesbois] Ano #2015 : Un utilisateur inactif ne doit pas pouvoir se connecter à l'application +- [fdesbois] Evol #2008 : Renommer état "Embarquement prévu" par "Embarquement programmé" +- [fdesbois] Evol #1945 : Mise à jour du pied de page : ajout d'un lien vers Ifremer SIH (en plus de celui vers le site d'Ifremer) +- [fdesbois] Ano #2010 : L'icône d'ajout d'une news est présente pour un utilisateur +- [fdesbois] Ano #2014 : La data de saisie des données n'est pas supprimé lors du passage à un état refusé +- [fdesbois] Ano #2009 : Les icônes de validation apparaissent lors de la modification d'une ligne de contact + 0.1.0 ----- Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java 2010-01-18 15:24:24 UTC (rev 235) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java 2010-01-18 17:13:43 UTC (rev 236) @@ -51,7 +51,7 @@ query.add(contact + "." + Contact.USER + "." + User.COMPANY, getCompany()); } - query = prepareQueryForSampling(query, query.getMainAlias()); + query = prepareQueryForSampling(query, query.getMainAlias() + "." + Contact.SAMPLE_ROW); query = prepareQueryForBoat(query, query.getMainAlias()); if (getMammalsObservation() && getMammalsCapture()) { Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java 2010-01-18 15:24:24 UTC (rev 235) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java 2010-01-18 17:13:43 UTC (rev 236) @@ -21,11 +21,13 @@ package fr.ifremer.suiviobsmer.bean; +import fr.ifremer.suiviobsmer.SuiviObsmerContext; import fr.ifremer.suiviobsmer.entity.FishingZone; -import fr.ifremer.suiviobsmer.entity.SampleMonth; +import fr.ifremer.suiviobsmer.entity.SampleRow; +import java.util.Date; import org.apache.commons.lang.StringUtils; import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.framework.TopiaQuery.Op; /** * SamplingFilterImpl @@ -44,18 +46,30 @@ public TopiaQuery prepareQueryForSampling(TopiaQuery query, String main) { //query = super.prepareQuery(query); - String sampleRow = main + ".sampleRow"; + //String sampleRow = main + ".sampleRow"; if (getSampleRow() != null) { - query.add(sampleRow, getSampleRow()); + query.add(main, getSampleRow()); } else if (!StringUtils.isEmpty(getSectorName())) { query.addFrom(FishingZone.class.getName() + " F"); - query.add("F.sectorName", getSectorName()).add(sampleRow + " IN elements(F.sampleRow)"); + query.add("F." + FishingZone.SECTOR_NAME, getSectorName()).add(main + " IN elements(F." + FishingZone.SAMPLE_ROW + ")"); } else if (!StringUtils.isEmpty(getFacadeName())) { query.addFrom(FishingZone.class.getName() + " F"); - query.add("F.facadeName", getFacadeName()).add(sampleRow + " IN elements(F.sampleRow)"); + query.add("F." + FishingZone.FACADE_NAME, getFacadeName()).add(main + " IN elements(F." + FishingZone.SAMPLE_ROW + ")"); } + if (getPeriod() != null) { + getPeriod().initDayOfMonthExtremities(); + query.add(main + "." + SampleRow.PERIOD_BEGIN, Op.LT, getPeriod().getThruDate()). + add(main + "." + SampleRow.PERIOD_END, Op.GT, getPeriod().getFromDate()); + } + + if (getUnfinishedRowsOnly()) { + // Only rows which are not finished will be kept + Date current = SuiviObsmerContext.getCurrentDate(); + query.add(main + "." + SampleRow.PERIOD_END, Op.GE, current); + } + return query; } Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-18 15:24:24 UTC (rev 235) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-18 17:13:43 UTC (rev 236) @@ -32,6 +32,7 @@ import fr.ifremer.suiviobsmer.SuiviObsmerContext; import fr.ifremer.suiviobsmer.bean.ImportResults; import fr.ifremer.suiviobsmer.bean.ImportResultsImpl; +import fr.ifremer.suiviobsmer.bean.SamplingFilter; import fr.ifremer.suiviobsmer.entity.*; import fr.ifremer.suiviobsmer.entity.SampleRow; import fr.ifremer.suiviobsmer.services.ServiceSampling; @@ -54,7 +55,6 @@ import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaQuery; import org.nuiton.topia.framework.TopiaQuery.Op; -import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.util.EntityLoador; import org.nuiton.util.DateUtils; import org.nuiton.util.PeriodDates; @@ -333,7 +333,7 @@ } @Override - public List<SampleRow> getSampleRowsForUser(User user, boolean finished) throws SuiviObsmerException { + public List<SampleRow> getSampleRowsByFilter(SamplingFilter filter) throws SuiviObsmerException { TopiaContext transaction = null; List<SampleRow> results = new ArrayList<SampleRow>(); try { @@ -343,16 +343,18 @@ SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); - TopiaQuery<SampleRow> query = dao.createQuery(); + TopiaQuery<SampleRow> query = dao.createQuery("S"); - if (finished) { - // Only rows which are not finished will be kept - Date current = SuiviObsmerContext.getCurrentDate(); - query.add(SampleRow.PERIOD_END, Op.GE, current); - } + query = filter.prepareQueryForSampling(query, "S"); - if (!user.getAdmin()) { - query.add(SampleRow.COMPANY, user.getCompany()); +// if (finished) { +// // Only rows which are not finished will be kept +// Date current = SuiviObsmerContext.getCurrentDate(); +// query.add(SampleRow.PERIOD_END, Op.GE, current); +// } + + if (filter.getCompany() != null) { + query.add("S." + SampleRow.COMPANY, filter.getCompany()); } results = query.executeToEntityList(); Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSynthesisImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSynthesisImpl.java 2010-01-18 15:24:24 UTC (rev 235) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSynthesisImpl.java 2010-01-18 17:13:43 UTC (rev 236) @@ -94,7 +94,7 @@ addParam("fromDate", period.getFromDate()).addParam("thruDate", period.getThruDate()). addGroup("M.periodDate").addOrder("M.periodDate"); - query = filter.prepareQueryForSampling(query, "M"); + query = filter.prepareQueryForSampling(query, "M." + SampleMonth.SAMPLE_ROW); // if (filter.isBoatFiltered() || filter.getObserver() != null) { // // Check boat on finished contact (validate + Boarding_Done) and same month/year as SampleMonth Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo =================================================================== (Binary files differ) Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java 2010-01-18 15:24:24 UTC (rev 235) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java 2010-01-18 17:13:43 UTC (rev 236) @@ -26,6 +26,8 @@ import fr.ifremer.suiviobsmer.SuiviObsmerRunner; import fr.ifremer.suiviobsmer.SuiviObsmerContext; import fr.ifremer.suiviobsmer.bean.ImportResults; +import fr.ifremer.suiviobsmer.bean.SamplingFilter; +import fr.ifremer.suiviobsmer.bean.SamplingFilterImpl; import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; import fr.ifremer.suiviobsmer.entity.Boat; import fr.ifremer.suiviobsmer.entity.Company; @@ -334,15 +336,19 @@ service.importSamplingPlanCsv(input); /** EXEC METHOD **/ - User admin = new UserImpl(); - admin.setAdmin(true); - List<SampleRow> results = service.getSampleRowsForUser(admin, true); + SamplingFilter filter = new SamplingFilterImpl(); +// User admin = new UserImpl(); +// admin.setAdmin(true); +// filter.setCompany() + filter.setUnfinishedRowsOnly(true); + List<SampleRow> results = service.getSampleRowsByFilter(filter); // total in file : 11, 1 refused, 1 finished assertEquals(9, results.size()); - User user = new UserImpl(); - user.setCompany(company); - results = service.getSampleRowsForUser(user, true); +// User user = new UserImpl(); +// user.setCompany(company); + filter.setCompany(company); + results = service.getSampleRowsByFilter(filter); assertEquals(1, results.size()); } Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java 2010-01-18 15:24:24 UTC (rev 235) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java 2010-01-18 17:13:43 UTC (rev 236) @@ -191,7 +191,7 @@ if (log.isInfoEnabled()) { log.info("BUSINESS REQUEST [getSampleRowsForUser]"); } - List<SampleRow> sampleRows = serviceSampling.getSampleRowsForUser(user, getAvailableDataForFiltersOnly()); + List<SampleRow> sampleRows = serviceSampling.getSampleRowsByFilter(getFilter()); sampleRowSelectModel = new GenericSelectModel<SampleRow>(sampleRows, SampleRow.class, "code", "topiaId", propertyAccess); } Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/ChartUtils.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/ChartUtils.java 2010-01-18 15:24:24 UTC (rev 235) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/ChartUtils.java 2010-01-18 17:13:43 UTC (rev 236) @@ -56,12 +56,15 @@ public class ChartUtils { public enum ChartType { - BAR(BarRenderer.class), LINE(LineAndShapeRenderer.class), AREA(AreaRenderer.class); + BAR(BarRenderer.class, false), LINE(LineAndShapeRenderer.class, true), AREA(AreaRenderer.class, true); protected Class<? extends AbstractCategoryItemRenderer> rendererClass; - ChartType(Class<? extends AbstractCategoryItemRenderer> rendererClass) { + protected boolean noCategoryMargin; + + ChartType(Class<? extends AbstractCategoryItemRenderer> rendererClass, boolean noCategoryMargin) { this.rendererClass = rendererClass; + this.noCategoryMargin = noCategoryMargin; } public AbstractCategoryItemRenderer createRenderer() { @@ -93,7 +96,11 @@ // Axises CategoryAxis categoryAxis = new CategoryAxis("Mois"); categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90); + if (type.noCategoryMargin) { + categoryAxis.setCategoryMargin(0); + } ValueAxis valueAxis = new NumberAxis(axisName); + valueAxis.setUpperMargin(0.15); // Renderer for Category AbstractCategoryItemRenderer renderer = type.createRenderer(); @@ -102,10 +109,6 @@ renderer.setBaseItemLabelsVisible(Boolean.TRUE); CategoryPlot plot = new CategoryPlot(dataset, categoryAxis, valueAxis, renderer); -// AxisSpace space = new AxisSpace(); -// space.setLeft(0); -// space.setRight(0); -// plot.setFixedRangeAxisSpace(space); plot.setOrientation(PlotOrientation.VERTICAL); plot.setAxisOffset(RectangleInsets.ZERO_INSETS); return new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, true); Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2010-01-18 15:24:24 UTC (rev 235) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2010-01-18 17:13:43 UTC (rev 236) @@ -27,7 +27,8 @@ import fr.ifremer.suiviobsmer.entity.Boat; import fr.ifremer.suiviobsmer.bean.BoatFilter; import fr.ifremer.suiviobsmer.bean.CompanyBoatInfos; -import fr.ifremer.suiviobsmer.bean.ContactState; +import fr.ifremer.suiviobsmer.bean.SamplingFilter; +import fr.ifremer.suiviobsmer.bean.SamplingFilterImpl; import fr.ifremer.suiviobsmer.entity.BoatInfos; import fr.ifremer.suiviobsmer.entity.Company; import fr.ifremer.suiviobsmer.entity.Contact; @@ -318,12 +319,13 @@ if (log.isInfoEnabled()) { log.info("BUSINESS REQUEST [getSampleRowsForUser]"); } - /*List<OptionModel> options = new ArrayList<OptionModel>(); - for (String code : serviceSampling.getSampleRowCodesForUser(getUser())) { - options.add(new OptionModelImpl(code,code)); + // FIXME-FD20100118 Refactor filter system using AbstractFilteredPage + SamplingFilter filter = new SamplingFilterImpl(); + filter.setUnfinishedRowsOnly(true); + if (!user.getAdmin()) { + filter.setCompany(user.getCompany()); } - sampleRowSelectModel = new SelectModelImpl(null, options);*/ - List<SampleRow> sampleRows = serviceSampling.getSampleRowsForUser(user, true); + List<SampleRow> sampleRows = serviceSampling.getSampleRowsByFilter(filter); sampleRowSelectModel = new GenericSelectModel<SampleRow>(sampleRows, SampleRow.class, "code", "code", propertyAccess); } Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-01-18 15:24:24 UTC (rev 235) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-01-18 17:13:43 UTC (rev 236) @@ -78,6 +78,7 @@ void setupRender() throws SuiviObsmerException { initFilter(); + //getFilter().setUnfinishedRowsOnly(false); } /********************* DYNAMICAL GRAPH : DATASAMPLING *********************/ Modified: trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml 2010-01-18 15:24:24 UTC (rev 235) +++ trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml 2010-01-18 17:13:43 UTC (rev 236) @@ -268,7 +268,8 @@ </form> </t:zone> <script type="text/javascript"> - Event.observe('facadeName', 'change', function() { $('filtersForm').submit(); } ); + Event.observe('facadeName', 'change', function() { $('filtersForm').submit(); } ); + Event.observe('sectorName', 'change', function() { $('filtersForm').submit(); } ); </script> <t:if t:test="user.admin"> <script type="text/javascript"> Modified: trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml 2010-01-18 15:24:24 UTC (rev 235) +++ trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml 2010-01-18 17:13:43 UTC (rev 236) @@ -107,9 +107,10 @@ <img src="${asset:context:}/img/chart-line.png" alt="Diagramme linéaire (courbe)" title="Diagramme linéaire (courbe)" /> </a> </p> - <t:chart t:width="550" t:height="350" t:chart="dataSamplingChart" /> + <t:chart t:width="600" t:height="400" t:chart="dataSamplingChart" /> </div> <script type="text/javascript"> Event.observe('facadeName', 'change', function() { $('filtersForm').submit(); } ); + Event.observe('sectorName', 'change', function() { $('filtersForm').submit(); } ); </script> </t:layout>
participants (1)
-
fdesbois@users.labs.libre-entreprise.org