[Suiviobsmer-commits] r204 - in trunk: suiviobsmer-business/src/main/filters suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl suiviobsmer-business/src/main/xmi suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages suiviobsmer-ui/src/main/webapp
Author: fdesbois Date: 2010-01-15 00:50:04 +0000 (Fri, 15 Jan 2010) New Revision: 204 Modified: trunk/suiviobsmer-business/src/main/filters/SuiviObsmer.properties trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/UserFilterImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.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.properties trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml Log: - Suppress loading properties : put lazy=false in properties model file - Replace onPrepareForSubmit by onSuccess for AbstractFilteredPage - Add contact constraint on filtering DataSampling (for link with boat) Modified: trunk/suiviobsmer-business/src/main/filters/SuiviObsmer.properties =================================================================== --- trunk/suiviobsmer-business/src/main/filters/SuiviObsmer.properties 2010-01-14 22:59:54 UTC (rev 203) +++ trunk/suiviobsmer-business/src/main/filters/SuiviObsmer.properties 2010-01-15 00:50:04 UTC (rev 204) @@ -16,4 +16,4 @@ suiviobsmer.email.from=admin at suiviobsmer.org ## Version -suiviobsmer.version=${project.version} +suiviobsmer.version=0.1.0 \ No newline at end of file Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/UserFilterImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/UserFilterImpl.java 2010-01-14 22:59:54 UTC (rev 203) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/UserFilterImpl.java 2010-01-15 00:50:04 UTC (rev 204) @@ -31,4 +31,9 @@ return query; } + + @Override + public boolean isUserFiltered() { + return getObserver() != null || getCompany() != null; + } } Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-14 22:59:54 UTC (rev 203) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-15 00:50:04 UTC (rev 204) @@ -159,7 +159,7 @@ // } // query.add("C." + Contact.VALIDATION_COMPANY, companyValidValues, filter.getCompanyUndefined()); - query.addLoad("user.company", "sampleRow.profession", "sampleRow.company"); + query.addLoad("user.company"); if (log.isDebugEnabled()) { log.debug("Query : " + 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-14 22:59:54 UTC (rev 203) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-15 00:50:04 UTC (rev 204) @@ -298,7 +298,7 @@ String zoneOrder = "F.facadeName, F.sectorName, F.districtCode"; query.addOrder(zoneOrder).addOrder("S.code").addSelect(zoneOrder); // Load data - query.addLoad(SampleRow.PROFESSION, SampleRow.COMPANY); + //query.addLoad(SampleRow.PROFESSION, SampleRow.COMPANY); if (log.isDebugEnabled()) { log.debug("Query : " + query); @@ -351,7 +351,7 @@ query.add(SampleRow.COMPANY, user.getCompany()); } - results = query.addLoad(SampleRow.PROFESSION).executeToEntityList(); + results = query.executeToEntityList(); transaction.closeContext(); } catch (Exception eee) { @@ -370,8 +370,7 @@ SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); - result = dao.createQuery().add(TopiaEntity.TOPIA_ID, sampleRowId). - addLoad(SampleRow.PROFESSION, SampleRow.COMPANY).executeToEntity(); + result = dao.findByTopiaId(sampleRowId); transaction.closeContext(); } catch (Exception eee) { 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-14 22:59:54 UTC (rev 203) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSynthesisImpl.java 2010-01-15 00:50:04 UTC (rev 204) @@ -5,8 +5,8 @@ import fr.ifremer.suiviobsmer.SuiviObsmerException; import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper; import fr.ifremer.suiviobsmer.bean.BoatFilter; +import fr.ifremer.suiviobsmer.bean.ContactState; import fr.ifremer.suiviobsmer.entity.Contact; -import fr.ifremer.suiviobsmer.entity.ElligibleBoat; import fr.ifremer.suiviobsmer.entity.SampleMonth; import fr.ifremer.suiviobsmer.entity.SampleMonthDAO; import fr.ifremer.suiviobsmer.services.ServiceSynthesis; @@ -19,7 +19,6 @@ import java.util.TreeMap; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.framework.TopiaQuery.Op; import org.nuiton.util.PeriodDates; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,7 +52,7 @@ transaction = rootContext.beginTransaction(); PeriodDates period = filter.getPeriod(); - if (period.getFromDate() == null || period.getThruDate() == null) { + if (period == null || period.getFromDate() == null || period.getThruDate() == null) { return results; } @@ -72,17 +71,27 @@ TopiaQuery<SampleMonth> query = dao.createQuery("M"). setSelect("M.periodDate, SUM(M.realTidesValue), SUM(M.expectedTidesValue)"). //addFrom(SampleRow.class.getName() + " M").add("M IN elements(S)"). - add("M.periodDate", Op.GE, period.getFromDate()). - add("M.periodDate", Op.LE, period.getThruDate()). + add("M.periodDate BETWEEN :fromDate AND :thruDate"). + addParam("fromDate", period.getFromDate()).addParam("thruDate", period.getThruDate()). addGroup("M.periodDate").addOrder("M.periodDate"); - - query = filter.prepareQueryForUser(query, "M.sampleRow"); + query = filter.prepareQueryForSampling(query, "M"); - if (filter.isBoatFiltered()) { - // ElligibleBoat is sufficient ? no need to check contacts (more difficult query) ? - query.addFrom(ElligibleBoat.class.getName() + " E").add("E IN elements(M.sampleRow)"); - query = filter.prepareQueryForBoat(query, "E"); + // FIXME company from sampleRow and not from contact, but user from contact + // Refactor MODEL : suppress link between user and contact + add field observer in contact + // In filter : sampleRow.company filtered and contact.observer + + if (filter.isBoatFiltered() || filter.isUserFiltered()) { + // Check boat on finished contact (validate + Boarding_Done) and same month/year as SampleMonth + query.addFrom(Contact.class.getName() + " C").add("C IN elements(M.sampleRow.contact)"). + add("C.state", ContactState.BOARDING_DONE.toString()). + add("C.validationCompany", Boolean.TRUE). + add("C.validationProgram IS NULL OR C.validationProgram = :booleanTrue"). + addParam("booleanTrue", Boolean.TRUE). + add("month(C.tideBeginDate) = month(M.periodDate)"). + add("year(C.tideBeginDate) = year(M.periodDate)"); + query = filter.prepareQueryForBoat(query, "C"); + query = filter.prepareQueryForUser(query, "C"); } if (log.isTraceEnabled()) { Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.properties =================================================================== --- trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.properties 2010-01-14 22:59:54 UTC (rev 203) +++ trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.properties 2010-01-15 00:50:04 UTC (rev 204) @@ -7,6 +7,7 @@ fr.ifremer.suiviobsmer.entity.SampleRow.attribute.fishingZone.tagvalue.lazy=false fr.ifremer.suiviobsmer.entity.SampleRow.attribute.fishingZone.tagvalue.orderBy=facadeName,sectorName,districtCode fr.ifremer.suiviobsmer.entity.SampleRow.attribute.profession.tagvalue.lazy=false +fr.ifremer.suiviobsmer.entity.SampleRow.attribute.company.tagvalue.lazy=false #fr.ifremer.suiviobsmer.entity.SampleRow.attribute.pogram.tagvalue.lazy=false fr.ifremer.suiviobsmer.entity.SampleRow.attribute.elligibleBoat.tagvalue.lazy=false fr.ifremer.suiviobsmer.entity.SampleRow.attribute.elligibleBoat.tagvalue.orderBy=companyActive Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo =================================================================== (Binary files differ) 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-14 22:59:54 UTC (rev 203) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java 2010-01-15 00:50:04 UTC (rev 204) @@ -90,6 +90,10 @@ getSectorSelectModel(); sampleRowSelectModel = null; getSampleRowSelectModel(); + + if (getFilter().getSampleRow() != null) { + sampleRowId = getFilter().getSampleRow().getTopiaId(); + } } public SelectModel getFacadeSelectModel() throws SuiviObsmerException { @@ -161,7 +165,7 @@ } @Log - public void onPrepareForSubmit() throws SuiviObsmerException { + public void onSuccess() throws SuiviObsmerException { SampleRow row = getSampleRowSelectModel().findObject(sampleRowId); getFilter().setSampleRow(row); } Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-14 22:59:54 UTC (rev 203) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-15 00:50:04 UTC (rev 204) @@ -135,21 +135,6 @@ @InjectComponent private Zone importExportZone; -// @Persist -// private GenericSelectModel<SampleRow> sampleRowSelectModel; -// -// @Property -// private String sampleRowId; -// -// @Inject -// private ServiceReferential serviceReferential; -// -// @Persist -// private SelectModel facadeSelectModel; -// -// @Persist -// private SelectModel sectorSelectModel; - @Property @Persist("flash") private boolean filtersVisible; @@ -170,7 +155,7 @@ protected BoatFilter getFilter() throws SuiviObsmerException { return getContactFilter(); } - + @Override protected void resetFilter() { contactFilter = null; @@ -181,54 +166,6 @@ return filtersZone; } -// public SelectModel getFacadeSelectModel() throws SuiviObsmerException { -// if (facadeSelectModel == null) { -// if (log.isInfoEnabled()) { -// log.info("BUSINESS REQUEST [getFacades]"); -// } -// List<OptionModel> options = new ArrayList<OptionModel>(); -// for (String facadeName : serviceReferential.getFacades()) { -// options.add(new OptionModelImpl(facadeName,facadeName)); -// } -// facadeSelectModel = new SelectModelImpl(null, options); -// } -// return facadeSelectModel; -// } - -// public SelectModel getSectorSelectModel() throws SuiviObsmerException { -// if (sectorSelectModel == null) { -// if (log.isInfoEnabled()) { -// log.info("BUSINESS REQUEST [getSectors]"); -// } -// List<OptionModel> options = new ArrayList<OptionModel>(); -// for (String sectorName : serviceReferential.getSectors(getContactFilter().getFacadeName())) { -// options.add(new OptionModelImpl(sectorName,sectorName)); -// } -// sectorSelectModel = new SelectModelImpl(null, options); -// } -// return sectorSelectModel; -// } -// -// public GenericSelectModel<SampleRow> getSampleRowSelectModel() throws SuiviObsmerException { -// if (sampleRowSelectModel == null) { -// if (log.isInfoEnabled()) { -// log.info("BUSINESS REQUEST [getSampleRowsForUser]"); -// } -// List<SampleRow> sampleRows = serviceSampling.getSampleRowsForUser(user); -// sampleRowSelectModel = new GenericSelectModel<SampleRow>(sampleRows, SampleRow.class, -// "code", "topiaId", propertyAccess); -// } -// return sampleRowSelectModel; -// } - -// String[] onProvideCompletionsFromBoatName(String input) throws SuiviObsmerException { -// if (log.isInfoEnabled()) { -// log.info("BUSINESS REQUEST [getBoatNamesStartWith]"); -// } -// List<String> results = serviceBoat.getBoatNamesStartWith(input); -// return results.toArray(new String[0]); -// } - void onSuccessFromSearchBoat() { } @@ -242,25 +179,12 @@ return importExportZone.getBody(); } -// @Log -// public Object onChangeFromFacadeName(String value) throws SuiviObsmerException { -// if (!StringUtils.isEmpty(value.trim())) { -// // Reset contactFilter to avoid strange behavior (cause of no form submit) -// contactFilter = null; -// // set facadeName selected in contactFilter -// getContactFilter().setFacadeName(value); -// // Reset sectors to use facadeName selected -// sectorSelectModel = null; -// return filtersZone.getBody(); -// } -// return null; -// } - void onSelectedFromReset() { reset = true; } - void onSuccessFromFiltersForm() { + @Log + void onSuccessFromFiltersForm() throws SuiviObsmerException { if (reset) { contactFilter = null; } else { 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-14 22:59:54 UTC (rev 203) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-01-15 00:50:04 UTC (rev 204) @@ -93,7 +93,7 @@ private boolean reset; @Override - protected BoatFilter getFilter() throws SuiviObsmerException { + public BoatFilter getFilter() throws SuiviObsmerException { if (dataSamplingFilter == null) { dataSamplingFilter = new BoatFilterImpl(); if (!user.getAdmin()) { Modified: trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml 2010-01-14 22:59:54 UTC (rev 203) +++ trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml 2010-01-15 00:50:04 UTC (rev 204) @@ -53,7 +53,7 @@ <div class="t-beaneditor"> <div> <t:label t:for="boatName" />: - <input t:type="textfield" t:id="boatName" class="width50" t:value="filter.boatName" t:mixins="Autocomplete" /> + <input t:type="textfield" t:id="boatName" t:value="filter.boatName" t:mixins="Autocomplete" /> <t:label t:for="boatImmatriculation" />: <input t:type="textfield" t:id="boatImmatriculation" class="width50" t:value="filter.boatImmatriculation" /> <t:label t:for="boatDistrictCode" />:
participants (1)
-
fdesbois@users.labs.libre-entreprise.org