Author: fdesbois Date: 2010-01-12 14:33:15 +0000 (Tue, 12 Jan 2010) New Revision: 185 Removed: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProgramImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceReferentialMock.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceSamplingMock.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceUserMock.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/ProgramImplTest.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingHistoric.java trunk/suiviobsmer-ui/src/main/webapp/SamplingHistoric.tml Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobal.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleMonthImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceNewsMock.java trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatImplTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/BusinessUtils.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.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/Contacts.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Index.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SampleRowForm.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingPlan.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/ContactModelFactory.java trunk/suiviobsmer-ui/src/main/webapp/Index.tml trunk/suiviobsmer-ui/src/main/webapp/SampleRowForm.tml trunk/suiviobsmer-ui/src/main/webapp/SamplingPlan.tml Log: - Big refactor : Suppress program, all attributes is directly set in SampleRow - Clean mock : suppress SampleHistoric and add News entity Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobal.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobal.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobal.java 2010-01-12 14:33:15 UTC (rev 185) @@ -44,6 +44,11 @@ private static final Logger log = LoggerFactory.getLogger(SuiviObsmerGlobal.class); + // CREATE UNIQUE INDEX boat_immatriculation_idx ON BOAT(IMMATRICULATION) + // CREATE UNIQUE INDEX activitycalendar_idx ON ACTIVITYCALENDAR (BOAT, YEAR) + // CREATE UNIQUE INDEX shipowner_idx ON SHIPOWNER (CODE) + // CREATE UNIQUE INDEX samplerow_idx ON SAMPLEROW (CODE) + /** * Create a default admin user if no user already exist. * @throws SuiviObsmerException Deleted: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProgramImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProgramImpl.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProgramImpl.java 2010-01-12 14:33:15 UTC (rev 185) @@ -1,153 +0,0 @@ -/* - * *##% - * SuiviObsmer :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * 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 Lesser 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>. - * ##%* - */ - -package fr.ifremer.suiviobsmer.entity; - -import fr.ifremer.suiviobsmer.SuiviObsmerContext; -import fr.ifremer.suiviobsmer.SuiviObsmerException; -import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper; -import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.framework.TopiaQuery.Op; -import java.io.Serializable; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; -import org.apache.commons.lang.StringUtils; -import org.nuiton.topia.TopiaContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ProgramImpl - * - * Created: 30 nov. 2009 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public class ProgramImpl extends ProgramAbstract implements Serializable, Program { - - private static final Logger log = LoggerFactory.getLogger(ProgramImpl.class); - - private static final long serialVersionUID = 1L; - - @Override - @Deprecated - public boolean isMonthAndYearIncluded(int month, int year) { - Calendar currentCal = new GregorianCalendar(year, month-1, 15, 0, 0, 0); - - return (currentCal.after(getCalendarBegin()) || currentCal.equals(getCalendarBegin())) && - (currentCal.before(getCalendarEnd()) || currentCal.equals(getCalendarEnd())); - } - - @Override - public boolean isStarted() { - Date current = SuiviObsmerContext.getCurrentDate(); - return current.after(getPeriodBegin()) || current.equals(getPeriodBegin()); - } - - @Override - public boolean isFinished() { - Date current = SuiviObsmerContext.getCurrentDate(); - return current.after(getPeriodEnd()); - } - - @Override - @Deprecated - public void setPeriodBegin(int month, int year) { - Calendar calendar = new GregorianCalendar(year, month-1, 1, 0, 0, 0); - setPeriodBegin(calendar.getTime()); - } - - @Override - @Deprecated - public void setPeriodEnd(int month, int year) { - Calendar calendar = new GregorianCalendar(year, month-1, 1, 0, 0, 0); - int max = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); - calendar.set(Calendar.DAY_OF_MONTH, max); - setPeriodEnd(calendar.getTime()); - } - - @Override - public boolean isValid(Date begin, Date end) { - Calendar refBegin = new GregorianCalendar(); - refBegin.setTime(begin); - refBegin.set(Calendar.DAY_OF_MONTH, 1); - - Calendar refEnd = new GregorianCalendar(); - refEnd.setTime(end); - int max = refEnd.getActualMaximum(Calendar.DAY_OF_MONTH); - refEnd.set(Calendar.DAY_OF_MONTH, max); - - return ! (refEnd.before(getCalendarBegin()) || refBegin.after(getCalendarEnd())); - } - - protected Calendar getCalendarBegin() { - Calendar beginCal = new GregorianCalendar(); - beginCal.setTime(getPeriodBegin()); - return beginCal; - } - - protected Calendar getCalendarEnd() { - Calendar endCal = new GregorianCalendar(); - endCal.setTime(getPeriodEnd()); - return endCal; - } - - @Override - public String getNewSampleRowCode() throws SuiviObsmerException { - TopiaContext transaction = null; - String result = null; - if (getPeriodBegin() == null) { - return result; - } - try { - transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction(); - - Calendar begin = getCalendarBegin(); - int year = begin.get(Calendar.YEAR); - - SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); - TopiaQuery<SampleRow> query = dao.createQuery().add(SampleRow.CODE, Op.LIKE, year + "_%"); - - String maxCode = query.executeToString("MAX(" + SampleRow.CODE + ")"); - - if (log.isDebugEnabled()) { - log.debug("Max code found : " + maxCode); - } - - String[] part = maxCode.split("_"); - int inc = Integer.parseInt(part[1]) + 1; - String str = StringUtils.leftPad("" + inc, 2, "0"); - result = year + "_" + str; - - transaction.closeContext(); - } catch (Exception eee) { - SuiviObsmerContext.serviceException(transaction, - "Impossible de récupérer un nouveau code pour une ligne d'échantillonnage", - eee); - } - return result; - } -} Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleMonthImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleMonthImpl.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleMonthImpl.java 2010-01-12 14:33:15 UTC (rev 185) @@ -54,13 +54,6 @@ public void setPeriod(Date date) { setPeriodDate(date); } - -// @Override -// public void setPeriodDate(Date date) { -// periodDate = date; -// periodMonth = getCalendar().get(Calendar.MONTH) +1; -// periodYear = getCalendar().get(Calendar.YEAR); -// } protected Calendar getCalendar() { Calendar calendar = new GregorianCalendar(); @@ -134,10 +127,6 @@ try { transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction(); - // sux this.setTopiaContext(transaction) not allowed... -// this.setTopiaContext(transaction); -// setRealTidesValue(result); - SampleMonthDAO dao = SuiviObsmerModelDAOHelper.getSampleMonthDAO(transaction); SampleMonth month = dao.findByTopiaId(this.getTopiaId()); month.setRealTidesValue(result); Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java 2010-01-12 14:33:15 UTC (rev 185) @@ -21,6 +21,7 @@ package fr.ifremer.suiviobsmer.entity; +import fr.ifremer.suiviobsmer.SuiviObsmerContext; import fr.ifremer.suiviobsmer.SuiviObsmerException; import java.io.Serializable; import java.util.Calendar; @@ -28,7 +29,7 @@ import java.util.GregorianCalendar; import java.util.Iterator; import java.util.List; -import org.nuiton.util.DateUtils; +import org.nuiton.util.PeriodDates; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,27 +51,6 @@ private static final long serialVersionUID = 1L; /** - * Get a SampleMonth from the month and year paramater. - * @param month the month of the SampleMonth to get - * @param year the year of the SampleMonth to get - * @return the SampleMonth if it exists in the SampleMonth list or null either - * @deprecated since 0.0.4, use {@link #getSampleMonth(java.util.Date) } instead - */ - @Override - @Deprecated - public SampleMonth getSampleMonth(int month, int year) { - if (getSampleMonth() == null) { - return null; - } - for (SampleMonth curr : getSampleMonth()) { - if (curr.getPeriodMonth() == month && curr.getPeriodYear() == year) { - return curr; - } - } - return null; - } - - /** * Get a SampleMonth from a date. The month and year of the date must correspond to the SampleMonth to get. * @param date a Date * @return the SampleMonth if it exists in the SampleMonth list or null either @@ -205,4 +185,35 @@ month.addRealTideTime(-nbDays); } + @Override + public void setPeriod(PeriodDates period) { + period.initDayOfMonthExtremities(); + setPeriodBegin(period.getFromDate()); + setPeriodEnd(period.getThruDate()); + } + + @Override + public boolean isStarted() { + Date current = SuiviObsmerContext.getCurrentDate(); + return current.after(getPeriodBegin()) || current.equals(getPeriodBegin()); + } + + @Override + public boolean isFinished() { + Date current = SuiviObsmerContext.getCurrentDate(); + return current.after(getPeriodEnd()); + } + + /** + * Check if a SampleMonth is valid for the date in argument. + * + * @param begin date for testing SampleMonth existence + * @return true if a SampleMonth exist for this begin date, false either + */ + @Override + public boolean isValid(Date begin) { + SampleMonth month = getSampleMonth(begin); + return month != null; + } + } Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java 2010-01-12 14:33:15 UTC (rev 185) @@ -75,10 +75,6 @@ private static final boolean DISABLED = false; - // CREATE UNIQUE INDEX boat_immatriculation_idx ON BOAT(IMMATRICULATION) - // CREATE UNIQUE INDEX activitycalendar_idx ON ACTIVITYCALENDAR (BOAT, YEAR) - // CREATE UNIQUE INDEX shipowner_idx ON SHIPOWNER (CODE) - public class ActivityCalendarKey { private Boat _boat; Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-12 14:33:15 UTC (rev 185) @@ -186,7 +186,7 @@ SampleRow sampleRow = elligible.getSampleRow(); // SampleRow non closed only - if (!sampleRow.getProgram().isFinished()) { + if (!sampleRow.isFinished()) { String companyId = sampleRow.getCompany() != null ? sampleRow.getCompany().getTopiaId() : ""; 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-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-12 14:33:15 UTC (rev 185) @@ -46,7 +46,6 @@ import fr.ifremer.suiviobsmer.entity.ElligibleBoatDAO; import fr.ifremer.suiviobsmer.entity.FishingZone; import fr.ifremer.suiviobsmer.entity.Profession; -import fr.ifremer.suiviobsmer.entity.Program; import fr.ifremer.suiviobsmer.entity.SampleRow; import fr.ifremer.suiviobsmer.entity.SampleRowDAO; import fr.ifremer.suiviobsmer.entity.User; @@ -156,7 +155,7 @@ } query.add("C." + Contact.VALIDATION_COMPANY, companyValidValues, filter.getCompanyUndefined()); - query.addLoad("user.company", "sampleRow.program", "sampleRow.profession", "sampleRow.company"); + query.addLoad("user.company", "sampleRow.profession", "sampleRow.company"); if (log.isDebugEnabled()) { log.debug("Query : " + query); @@ -173,16 +172,6 @@ } @Override - public List<Contact> getAllContacts() throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<String> getContactStates() throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override public Contact getNewContact(User user, SampleRow row, Boat boat) { Contact result = new ContactImpl(); result.setUser(user); @@ -297,11 +286,10 @@ // SampleRow part SampleRow row = contact.getSampleRow(); - Program program = row.getProgram(); record[SAMPLING.PLAN_CODE.forContactCsv()] = row.getCode(); - record[SAMPLING.PROGRAMME_CODE.forContactCsv()] = program.getName(); - record[SAMPLING.PROGRAMME_DEBUT.forContactCsv()] = dateFormat.format(program.getPeriodBegin()); - record[SAMPLING.PROGRAMME_FIN.forContactCsv()] = dateFormat.format(program.getPeriodEnd()); + record[SAMPLING.PROGRAMME_CODE.forContactCsv()] = row.getProgramName(); + record[SAMPLING.PROGRAMME_DEBUT.forContactCsv()] = dateFormat.format(row.getPeriodBegin()); + record[SAMPLING.PROGRAMME_FIN.forContactCsv()] = dateFormat.format(row.getPeriodEnd()); record[SAMPLING.PECHE_AUTRE.forContactCsv()] = row.getFishingZonesInfos(); // FishingZone part Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java 2010-01-12 14:33:15 UTC (rev 185) @@ -30,8 +30,6 @@ import fr.ifremer.suiviobsmer.entity.FishingZoneDAO; import fr.ifremer.suiviobsmer.entity.Profession; import fr.ifremer.suiviobsmer.entity.ProfessionDAO; -import fr.ifremer.suiviobsmer.entity.Program; -import fr.ifremer.suiviobsmer.entity.ProgramDAO; import fr.ifremer.suiviobsmer.services.ServiceReferential; import java.io.InputStream; import java.nio.charset.Charset; @@ -125,25 +123,6 @@ } @Override - public List<Program> getPrograms() throws SuiviObsmerException { - TopiaContext transaction = null; - List<Program> results = new ArrayList<Program>(); - try { - transaction = rootContext.beginTransaction(); - - ProgramDAO dao = SuiviObsmerModelDAOHelper.getProgramDAO(transaction); - - results = dao.findAll(); - - transaction.closeContext(); - } catch (Exception eee) { - SuiviObsmerContext.serviceException(transaction, - "Impossible de charger la liste des programmes", eee); - } - return results; - } - - @Override public List<FishingZone> getFishingZones() throws SuiviObsmerException { TopiaContext transaction = null; List<FishingZone> results = new ArrayList<FishingZone>(); 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-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-12 14:33:15 UTC (rev 185) @@ -32,7 +32,6 @@ import fr.ifremer.suiviobsmer.SuiviObsmerContext; import fr.ifremer.suiviobsmer.bean.ImportResults; import fr.ifremer.suiviobsmer.bean.ImportResultsImpl; -import fr.ifremer.suiviobsmer.dto.SamplingHistoricRow; import fr.ifremer.suiviobsmer.entity.*; import fr.ifremer.suiviobsmer.entity.SampleRow; import fr.ifremer.suiviobsmer.services.ServiceSampling; @@ -109,12 +108,12 @@ // Save program : can't be create if row already exist // TODO check program.topiaId exist for an update - ProgramDAO programDAO = SuiviObsmerModelDAOHelper.getProgramDAO(transaction); - boolean newProgram = SuiviObsmerContext.prepareTopiaId(Program.class, row.getProgram()); - if (log.isDebugEnabled()) { - log.debug("create or update program : " + row.getProgram()); - } - programDAO.update(row.getProgram()); +// ProgramDAO programDAO = SuiviObsmerModelDAOHelper.getProgramDAO(transaction); +// boolean newProgram = SuiviObsmerContext.prepareTopiaId(Program.class, row.getProgram()); +// if (log.isDebugEnabled()) { +// log.debug("create or update program : " + row.getProgram()); +// } +// programDAO.update(row.getProgram()); // Save sampleMonth : create or update SampleMonthDAO monthDAO = SuiviObsmerModelDAOHelper.getSampleMonthDAO(transaction); @@ -196,14 +195,14 @@ // Prepare period dates period.initDayOfMonthExtremities(); - query.add("S.program.periodBegin", Op.LT, period.getThruDate()). - add("S.program.periodEnd", Op.GT, period.getFromDate()); + query.add("S.periodBegin", Op.LT, period.getThruDate()). + add("S.periodEnd", Op.GT, period.getFromDate()); // Order By facade, sector, districtCode, sampleRowCode String zoneOrder = "F.facadeName, F.sectorName, F.districtCode"; query.addOrder(zoneOrder).addOrder("S.code").addSelect(zoneOrder); // Load data - query.addLoad(SampleRow.PROFESSION, SampleRow.PROGRAM, SampleRow.COMPANY); + query.addLoad(SampleRow.PROFESSION, SampleRow.COMPANY); if (log.isDebugEnabled()) { log.debug("Query : " + query); @@ -220,6 +219,24 @@ } @Override + public List<String> getPrograms() throws SuiviObsmerException { + TopiaContext transaction = null; + List<String> results = new ArrayList<String>(); + try { + transaction = rootContext.beginTransaction(); + + SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); + results = (List<String>)dao.createQuery().setSelect("DISTINCT " + SampleRow.PROGRAM_NAME).execute(); + + transaction.closeContext(); + } catch (Exception eee) { + SuiviObsmerContext.serviceException(transaction, + "Impossible de charger la liste des programmes", eee); + } + return results; + } + + @Override public List<SampleRow> getSampleRowsForUser(User user) throws SuiviObsmerException { TopiaContext transaction = null; List<SampleRow> results = new ArrayList<SampleRow>(); @@ -232,13 +249,13 @@ SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); // Only rows which are not finished will be kept - TopiaQuery<SampleRow> query = dao.createQuery().add("program.periodEnd", Op.GE, current); + TopiaQuery<SampleRow> query = dao.createQuery().add(SampleRow.PERIOD_END, Op.GE, current); if (!user.getAdmin()) { query.add(SampleRow.COMPANY, user.getCompany()); } - results = query.addLoad(SampleRow.PROFESSION, SampleRow.PROGRAM).executeToEntityList(); + results = query.addLoad(SampleRow.PROFESSION).executeToEntityList(); transaction.closeContext(); } catch (Exception eee) { @@ -249,11 +266,6 @@ } @Override - public List<SamplingHistoricRow> getHistoric() throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override public SampleRow getSampleRow(String sampleRowId) throws SuiviObsmerException { TopiaContext transaction = null; SampleRow result = null; @@ -263,16 +275,8 @@ SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); result = dao.createQuery().add(TopiaEntity.TOPIA_ID, sampleRowId). - addLoad(SampleRow.PROFESSION, SampleRow.PROGRAM, SampleRow.COMPANY). - executeToEntity(); + addLoad(SampleRow.PROFESSION, SampleRow.COMPANY).executeToEntity(); -// result = dao.findByTopiaId(sampleRowId); -// -// // load data -// result.getCompany(); -// result.getProgram(); -// result.getProfession(); - transaction.closeContext(); } catch (Exception eee) { SuiviObsmerContext.serviceException(transaction, @@ -304,11 +308,48 @@ } @Override + public String getNewSampleRowCode(Date beginDate) throws SuiviObsmerException { + TopiaContext transaction = null; + String result = null; + if (beginDate == null) { + return result; + } + try { + transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction(); + + Calendar begin = new GregorianCalendar(); + begin.setTime(beginDate); + int year = begin.get(Calendar.YEAR); + + SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); + TopiaQuery<SampleRow> query = dao.createQuery().add(SampleRow.CODE, Op.LIKE, year + "_%"); + + String maxCode = query.executeToString("MAX(" + SampleRow.CODE + ")"); + + if (log.isDebugEnabled()) { + log.debug("Max code found : " + maxCode); + } + + String[] part = maxCode.split("_"); + int inc = Integer.parseInt(part[1]) + 1; + String str = StringUtils.leftPad("" + inc, 2, "0"); + result = year + "_" + str; + + transaction.closeContext(); + } catch (Exception eee) { + SuiviObsmerContext.serviceException(transaction, + "Impossible de récupérer un nouveau code pour une ligne d'échantillonnage", + eee); + } + return result; + } + + @Override public SampleRow getNewSampleRow() { SampleRow row = new SampleRowImpl(); row.setProfession(new ProfessionImpl()); row.setFishingZone(new ArrayList<FishingZone>()); - row.setProgram(new ProgramImpl()); + //row.setProgram(new ProgramImpl()); row.setElligibleBoat(new ArrayList<ElligibleBoat>()); row.setSampleMonth(new ArrayList<SampleMonth>()); return row; @@ -371,10 +412,6 @@ // Replace single number after year by a double one : 2010_1 -> 2010_01 code = code.replaceFirst("_(\\d)$", "_0$1"); - String programName = reader.get(SAMPLING.PROGRAMME_CODE.name()).trim(); -// int[] programBegin = getMonthAndYear(reader.get(SAMPLING.PROGRAMME_DEBUT.name()).trim()); -// int[] programEnd = getMonthAndYear(reader.get(SAMPLING.PROGRAMME_FIN.name()).trim()); - PeriodDates period = ImportHelper.readPeriod(reader, SAMPLING.PROGRAMME_DEBUT, SAMPLING.PROGRAMME_FIN); String districts = reader.get(FISHING_ZONE.PECHE_DIVISION.name()); row = dao.findByCode(code); @@ -387,10 +424,10 @@ result.addError(currRow, "[CODE = " + code + "] refusé : Code déjà existant"); result.incNbRefused(); //nbRefused++; - } else if (StringUtils.isEmpty(programName)) { - throw new SuiviObsmerBusinessException(Type.IMPORT_ERROR, this.getClass(), - "Erreur à la ligne " + currRow + " [CODE = " + code + "] : " + - "Cette ligne n'est lié à aucun programme !"); +// } else if (StringUtils.isEmpty(programName)) { +// throw new SuiviObsmerBusinessException(Type.IMPORT_ERROR, this.getClass(), +// "Erreur à la ligne " + currRow + " [CODE = " + code + "] : " + +// "Cette ligne n'est lié à aucun programme !"); // Refuse Fishing zones empty } else if (StringUtils.isEmpty(districts)) { // if (log.isInfoEnabled()) { @@ -419,10 +456,6 @@ row.setCompany(company); } - // Import program. Creation if not exist - Program program = importProgram(transaction, programName, period); - row.setProgram(program); - // Import profession. Creation if not exist Profession profession = importProfession(transaction, reader); row.setProfession(profession); @@ -439,9 +472,6 @@ } transaction.closeContext(); - -// result[0] = nbImported; -// result[1] = nbRefused; } catch (NumberFormatException eee) { SuiviObsmerContext.serviceException(transaction, @@ -460,43 +490,6 @@ } /** - * Import a program from CSV File from importSamplingPlanCsv method. - * This program is imported for a new SampleRow line. - * Key value for the program : programName. If program already exists, update dates. - * @param transaction Topia transaction for using ProgramDAO - * @param programName the program name (key) - * @param period the program period - * @return an existing Program or a new one - * @throws TopiaException for dao errors - */ - protected Program importProgram(TopiaContext transaction, String programName, PeriodDates period) throws TopiaException { - - ProgramDAO dao = SuiviObsmerModelDAOHelper.getProgramDAO(transaction); - Program program = dao.findByName(programName); - Date periodBegin = null, periodEnd = null; - if (program == null) { - if (log.isInfoEnabled()) { - log.info("Ajout d'un nouveau programme : " + programName + " - " + period); - } - program = dao.create(Program.NAME, programName); - } else { - periodBegin = program.getPeriodBegin(); - periodEnd = program.getPeriodEnd(); - } - - if (periodBegin == null || periodBegin.after(period.getFromDate())) { - program.setPeriodBegin(period.getFromDate()); - } - if (periodEnd == null || periodEnd.before(period.getThruDate())) { - program.setPeriodEnd(period.getThruDate()); - } - -// program.setPeriodBegin(begin[TAB_MONTH], begin[TAB_YEAR]); -// program.setPeriodEnd(end[TAB_MONTH], end[TAB_YEAR]); - return program; - } - - /** * Import a profession from CSV File from importSamplingPlanCsv method. * This profession is imported for a new SampleRow line. * Key value for the profession : codeDCF5, meshSize, size, other. @@ -593,11 +586,16 @@ String averageStr = reader.get(SAMPLING.PLAN_DUREE_MOY.name()).trim(); averageStr = averageStr.replaceAll(",", "."); double averageTideTime = Double.parseDouble(averageStr); + String programName = reader.get(SAMPLING.PROGRAMME_CODE.name()).trim(); + PeriodDates period = ImportHelper.readPeriod(reader, SAMPLING.PROGRAMME_DEBUT, SAMPLING.PROGRAMME_FIN); // Problem : not imported yet ?? sampleRow.setFishingZonesInfos(fishingZoneInfos); sampleRow.setNbObservants(nbObservants); sampleRow.setAverageTideTime(averageTideTime); + sampleRow.setProgramName(programName); + sampleRow.setPeriodBegin(period.getFromDate()); + sampleRow.setPeriodEnd(period.getThruDate()); // 16 fixed columns : 13 before months and 3 after final int nbFixedColumns = 16; @@ -611,13 +609,10 @@ for (int i = firstMonthColumnId; i < lastMonthColumnId; i++) { - //int[] monthAndYear = getMonthAndYear(); Date monthDate = dateFormat.parse(reader.getHeader(i)); Integer monthValue = StringUtils.isEmpty(reader.get(i)) ? null : Integer.parseInt(reader.get(i)); - Program program = sampleRow.getProgram(); - //if (sampleRow.getProgram().isMonthAndYearIncluded(monthAndYear[TAB_MONTH], monthAndYear[TAB_YEAR])) { - if (DateUtils.between(monthDate, program.getPeriodBegin(), program.getPeriodEnd())) { + if (monthValue != null && DateUtils.between(monthDate, sampleRow.getPeriodBegin(), sampleRow.getPeriodEnd())) { SampleMonthDAO dao = SuiviObsmerModelDAOHelper.getSampleMonthDAO(transaction); SampleMonth month = sampleRow.getSampleMonth(monthDate); @@ -628,17 +623,15 @@ SampleMonth.PERIOD_DATE, monthDate); sampleRow.addSampleMonth(month); } - if (monthValue == null) { - monthValue = 0; - } month.setExpectedTidesValue(monthValue); - } else if (monthValue != null) { - // exception, outOfBounds month - if (log.isErrorEnabled()) { - log.error("Month out of bounds : value=" + monthValue + " _ monthDate=" + monthDate + - " _ program=" + sampleRow.getProgram()); - } } +// else if (monthValue != null) { +// // exception, outOfBounds month +// if (log.isErrorEnabled()) { +// log.error("Month out of bounds : value=" + monthValue + " _ monthDate=" + monthDate + +// " _ periode=" + sampleRow.getPeriodBegin() + " au " + sampleRow.getPeriodEnd()); +// } +// } } } Deleted: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java 2010-01-12 14:33:15 UTC (rev 185) @@ -1,260 +0,0 @@ -/* - * *##% - * SuiviObsmer :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * 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 Lesser 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>. - * ##%* - */ - -package fr.ifremer.suiviobsmer.mock; - -import fr.ifremer.suiviobsmer.SuiviObsmerException; -import fr.ifremer.suiviobsmer.bean.BoatFilter; -import fr.ifremer.suiviobsmer.bean.CompanyBoatInfos; -import fr.ifremer.suiviobsmer.entity.*; -import fr.ifremer.suiviobsmer.services.ServiceBoat; -import java.io.FileNotFoundException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ServiceBoatMock - * - * Created: 16 nov. 2009 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public class ServiceBoatMock implements ServiceBoat { - - protected List<Boat> boats; - - private static final Logger log = LoggerFactory.getLogger(ServiceBoatMock.class); - - public ServiceBoatMock() { - loadData(); - } - - @Override - public List<Boat> getAllBoats() throws SuiviObsmerException { - return boats; - } - - @Override - public Map<Integer, Boat> getBoatsByFilter(BoatFilter filter) throws SuiviObsmerException { - Map<Integer, Boat> results = new HashMap<Integer, Boat>(); - -// // Sector and Facade -// // 3 -> Cherbourg -// if (filter.getSectorNum() != null && filter.getSectorNum() == 3) { -// results.put(898467, boats.get(2)); -// results.put(730818, boats.get(3)); -// // 2 -> Mer Celtique -// } else if (filter.getSectorNum() != null && filter.getSectorNum() == 2) { -// results.put(667404, boats.get(4)); -// } else if (!StringUtils.isEmpty(filter.getFacadeName()) && -// filter.getFacadeName().equals("Atlantique")) { -// results.put(898467, boats.get(2)); -// results.put(730818, boats.get(3)); -// } else if (!StringUtils.isEmpty(filter.getFacadeName()) && -// filter.getFacadeName().equals("Manche - mer du nord")) { -// results.put(683423, boats.get(0)); -// results.put(721230, boats.get(1)); -// results.put(667404, boats.get(4)); -// } else { -// for (Boat boat : boats) { -// results.put(boat.getImmatriculation(), boat); -// } -// } - - /*Iterator<Boat> it = results.iterator(); - - while (it.hasNext()) { - Boat boat = it.next(); - int imma = boat.getImmatriculation(); - - if (!StringUtils.isEmpty(boat.getDistrictCode()) && !boat.getDistrictCode().equals(filter.getBoatDistrictCode())) { - it.remove(); - continue; - } - if (imma != 0 && imma != filter.getBoatImmatriculation()) { - it.remove(); - continue; - } - if (!StringUtils.isEmpty(boat.getName()) && !boat.getName().startsWith(filter.getBoatName())) { - it.remove(); - continue; - } - - // Profession - if (!StringUtils.isEmpty(filter.getProfessionLibelle()) && - filter.getProfessionLibelle().equals("OTB DEF80-90 - Chalutage de fond côtier")) { - // On éjecte les boat 1, 2 et 3 - if (imma == 721230 || imma == 898467 || imma == 730818) { - it.remove(); - } - //results.add(boats.get(0)); - //results.add(boats.get(4)); - } else if (!StringUtils.isEmpty(filter.getProfessionLibelle()) && - filter.getProfessionLibelle().equals("PTM DEF - Chalutage pélagique en bœuf à bar")) { - } else if (!StringUtils.isEmpty(filter.getProfessionLibelle()) && - filter.getProfessionLibelle().equals("PTM DEF - Chalutage pélagique en bœuf à poissons")) { - // On éjecte les boat 0, 2 et 4 - if (imma == 683423 || imma == 898467 || imma == 667404) { - it.remove(); - } - //results.add(boats.get(1)); - //results.add(boats.get(3)); - } - }*/ - - if (log.isDebugEnabled()) { - for (Boat boat : results.values()) { - log.debug("boat : " + boat.getImmatriculation()); - } - } - - return results; - } - - protected void loadData() { - boats = new ArrayList<Boat>(); - - // Manche / Brest - Boat boat0 = new BoatImpl(); - boat0.setName("Auglya"); - boat0.setImmatriculation(683423); - boat0.setDistrictCode("PL"); - boats.add(boat0); - - // Manche / Brest - Boat boat1 = new BoatImpl(); - boat1.setName("Aventur vad"); - boat1.setImmatriculation(721230); - boat1.setDistrictCode("PL"); - boats.add(boat1); - - // Atlantique / Mer Celtique - Boat boat2 = new BoatImpl(); - boat2.setName("Ar Laeres"); - boat2.setImmatriculation(898467); - boat2.setDistrictCode("GV"); - boats.add(boat2); - - // Atlantique / Mer Celtique - Boat boat3 = new BoatImpl(); - boat3.setName("Bara Zur"); - boat3.setImmatriculation(730818); - boat3.setDistrictCode("GV"); - boats.add(boat3); - - // Manche / Cherbourg - Boat boat4 = new BoatImpl(); - boat4.setName("Le Bel Espoir"); - boat4.setImmatriculation(667404); - boat4.setDistrictCode("CH"); - boats.add(boat4); - - for (int i=0; i<15; i++) { - Boat boat = new BoatImpl(); - boat.setName("Test pagination " + i); - boat.setImmatriculation(667405+i); - boat.setDistrictCode("CH"); - boats.add(boat); - } - - } - -// @Override -// public BoatInfos getBoatInfos(Boat boat, String companyId) throws SuiviObsmerException { -// BoatInfos infos = new BoatInfosImpl(); -// infos.setBoat(boat); -// -// infos.setContactFirstName("Philippe"); -// infos.setContactLastName("Dupond"); -// infos.setContactPhoneNumber("02 41 41 41 41"); -// infos.setDup(1); -// //infos.setFirstBoardingDate(new Date()); -// //infos.setNbBoarding(18); -// //infos.setNbBoardingForCompany(5); -// -// List<String> professions = new ArrayList<String>(); -// professions.add("PTM DEF - Chalutage pélagique en bœuf à bar"); -// professions.add("OTB DEF80-90 - Chalutage de fond côtier"); -// //infos.setProfessionLibelles(professions); -// -// infos.setComment("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent mattis sapien sed nisi consequat tempus. " + -// "Donec interdum egestas erat, varius viverra nisi sollicitudin ut. Aenean viverra luctus urna. Fusce et erat " + -// "ut sem ornare pretium. Phasellus sit amet est erat. Donec fringilla auctor elit ac aliquet. Maecenas quis orci " + -// "dolor, et semper turpis. Suspendisse sit amet euismod libero. Duis in lorem augue, at feugiat est. Aliquam "); -// -// return infos; -// } - - @Override - public int[] importBoatCsv(InputStream input) throws SuiviObsmerException { - return new int[]{0,0}; - } - - @Override - public List<Boat> getBoats(String immatriculations) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public CompanyBoatInfos getCompanyBoatInfos(int boatImmatriculation, Company company) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Boat getBoat(String boatId) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void createUpdateCompanyBoatInfos(CompanyBoatInfos elligibleBoatsCompany) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void importActivityCalendarCsv(InputStream input) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public ActivityCalendar getLastActivityCalendar(Boat boat) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public InputStream getActivityCalendarLogFile() throws FileNotFoundException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<String> getBoatNamesStartWith(String input) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - -} Deleted: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java 2010-01-12 14:33:15 UTC (rev 185) @@ -1,276 +0,0 @@ -/* - * *##% - * SuiviObsmer :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * 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 Lesser 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>. - * ##%* - */ - -package fr.ifremer.suiviobsmer.mock; - -import fr.ifremer.suiviobsmer.SuiviObsmerException; -import fr.ifremer.suiviobsmer.bean.ContactFilter; -import fr.ifremer.suiviobsmer.entity.Boat; -import fr.ifremer.suiviobsmer.entity.Contact; -import fr.ifremer.suiviobsmer.entity.ContactImpl; -import fr.ifremer.suiviobsmer.entity.SampleRow; -import fr.ifremer.suiviobsmer.entity.User; -import fr.ifremer.suiviobsmer.services.ServiceContact; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * ServiceContactMock - * - * Created: 18 nov. 2009 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public class ServiceContactMock implements ServiceContact { - - private List<Contact> contacts; - - public ServiceContactMock() { - loadData(); - } - - @Override - public Map<String, Contact> getContactsByFilter(ContactFilter filter) throws SuiviObsmerException { - Map<String, Contact> results = new HashMap<String, Contact>(); - for (Contact contact : contacts) { - results.put(contact.getTopiaId(), contact); - } - return results; - } - - @Override - public List<Contact> getAllContacts() throws SuiviObsmerException { - return contacts; - } - - @Override - public List<String> getContactStates() throws SuiviObsmerException { - List<String> states = new ArrayList<String>(); - - states.add("Contact pris"); - states.add("Embarquement prévu"); - states.add("Embarquement réalisé"); - states.add("Injoignable/Indisponible"); - states.add("Refus"); - states.add("Refus définitif"); - - return states; - } - - private void loadData() { - contacts = new ArrayList<Contact>(); -// -// /*Boat boat0 = new BoatImpl(); -// boat0.setName("Auglya"); -// boat0.setImmatriculation(683423); -// boat0.setDistrictCode("PL");*/ -// -// // Atlantique / Mer Celtique -// /*Boat boat2 = new BoatImpl(); -// boat2.setName("Ar Laeres"); -// boat2.setImmatriculation(898467); -// boat2.setDistrictCode("GV");*/ -// -// Facade atlantique = new Facade(); -// atlantique.setName("Atlantique"); -// atlantique.setSector(new ArrayList<Sector>()); -// Facade nord = new Facade(); -// nord.setName("Manche - mer du nord"); -// nord.setSector(new ArrayList<Sector>()); -// -// Sector sector3 = new Sector(); -// sector3.setNum(3); -// sector3.setName("Secteur Mer Celtique et Ouest Irlande centré Pays bigouden"); -// sector3.setFacade(atlantique); -// atlantique.addSector(sector3); -// -// /** CONTACT1 **/ -// Contact contact1 = new ContactImpl(); -// Calendar cal = new GregorianCalendar(); -// cal.set(2009, 6, 18); -// contact1.setCreationDate(cal.getTime()); -// contact1.setId("contact1"); -// -// ContactHistoric historic = new ContactHistoric(); -// historic.setState("Contact pris"); -// historic.setComment("begin"); -// historic.setUpdateDate(cal.getTime()); -// historic.setContact(contact1); -// contact1.setContactHistoric(new ArrayList<ContactHistoric>()); -// contact1.addContactHistoric(historic); -// contact1.setCurrentState(historic); -// -// contact1.setBoatName("Auglya"); -// contact1.setBoatImmatriculation(683423); -// contact1.setBoatDistrictCode("PL"); -// contact1.setProgramName("DCR"); -// contact1.setSector(sector3); -// contact1.setCompanyName("COFREPECHE"); -// -// cal.set(2009, 6, 24); -// contact1.setBeginTideDate(cal.getTime()); -// contact1.setEndTideDate(cal.getTime()); -// contact1.setNbObservants(1); -// contact1.setNbReports(2); -// contact1.setValidationCompany(true); -// contact1.setValidationIfremer(false); -// contact1.setMammalsObservation(true); -// contact1.setCreatedBy("Jean Michmuche"); -// -// contacts.add(contact1); -// -// /** CONTACT2 **/ -// Contact contact2 = new Contact(); -// cal = new GregorianCalendar(); -// cal.set(2009, 6, 18); -// contact2.setCreationDate(cal.getTime()); -// contact2.setId("contact2"); -// -// historic = new ContactHistoric(); -// historic.setState("Embarquement réalisé"); -// historic.setComment("plop"); -// historic.setUpdateDate(cal.getTime()); -// historic.setContact(contact2); -// contact2.setContactHistoric(new ArrayList<ContactHistoric>()); -// contact2.addContactHistoric(historic); -// contact2.setCurrentState(historic); -// -// contact2.setBoatName("Ar Laeres"); -// contact2.setBoatImmatriculation(898467); -// contact2.setBoatDistrictCode("GV"); -// contact2.setProgramName("DCR"); -// contact2.setSector(sector3); -// contact2.setCompanyName("COFREPECHE"); -// -// cal.set(2009, 6, 24); -// contact2.setBeginTideDate(cal.getTime()); -// contact2.setEndTideDate(cal.getTime()); -// contact2.setNbObservants(2); -// contact2.setEditable(true); -// contact2.setValidationCompany(false); -// contact2.setCreatedBy("Bart Simpson"); -// -// contacts.add(contact2); -// -// Sector sector1 = new Sector(); -// sector1.setNum(1); -// sector1.setName("Secteur du Havre à Dunkerque centré sur Boulogne"); -// sector1.setFacade(nord); -// nord.addSector(sector1); -// -// /** CONTACT3 **/ -// Contact contact3 = new Contact(); -// cal = new GregorianCalendar(); -// cal.set(2009, 6, 18); -// contact3.setCreationDate(cal.getTime()); -// contact3.setId("contact3"); -// -// historic = new ContactHistoric(); -// historic.setState("Contact pris"); -// historic.setComment("begin"); -// historic.setUpdateDate(cal.getTime()); -// historic.setContact(contact3); -// contact3.setContactHistoric(new ArrayList<ContactHistoric>()); -// contact3.addContactHistoric(historic); -// contact3.setCurrentState(historic); -// -// contact3.setBoatName("Ar Laeres"); -// contact3.setBoatImmatriculation(898467); -// contact3.setBoatDistrictCode("GV"); -// contact3.setProgramName("DCR"); -// contact3.setSector(sector1); -// contact2.setCompanyName("Océanic Développement"); -// contact3.setValidationCompany(true); -// contact3.setValidationIfremer(true); -// contact3.setMammalsCapture(true); -// contact3.setMammalsObservation(true); -// -// contact3.setNbObservants(1); -// contact3.setEditable(true); -// contact3.setCreatedBy("Homer Simpson"); -// -// contacts.add(contact3); -// -// /** 40 others CONTACT **/ -// for (int i=0; i < 40; i++) { -// ContactHistoric historic1 = new ContactHistoric(); -// historic1.setState("Contact pris"); -// historic1.setComment("begin"); -// Contact contact = new Contact(); -// cal = new GregorianCalendar(); -// cal.set(2009, 6, 18); -// contact.setCreationDate(cal.getTime()); -// contact.setId("contact-"+i); -// historic1.setUpdateDate(cal.getTime()); -// historic1.setContact(contact); -// contact.setContactHistoric(new ArrayList<ContactHistoric>()); -// contact.addContactHistoric(historic1); -// contact.setCurrentState(historic1); -// contact.setBoatName("Auglya"); -// contact.setBoatImmatriculation(683423); -// contact.setBoatDistrictCode("PL"); -// contact.setProgramName("DCR"); -// contact.setCompanyName("COFREPECHE"); -// contact.setSector(sector3); -// contact.setNbObservants(1); -// contact.setCreatedBy("Jean Michmuche"); -// contacts.add(contact); -// } - } - - @Override - public Contact getNewContact(User user, SampleRow row, Boat boat) { -// Contact contact = new Contact(); -// ContactHistoric historic = new ContactHistoric(); -// contact.setCurrentState(historic); -// historic.setContact(contact); -// contact.setContactHistoric(new ArrayList<ContactHistoric>()); -// contact.addContactHistoric(historic); -// return contact; - return new ContactImpl(); - } - - @Override - public void saveContact(Contact contact, boolean delete) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public InputStream exportContactCsv(User user, Collection<Contact> contacts) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public int importContactCsv(User user, InputStream input) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - - -} Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceNewsMock.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceNewsMock.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceNewsMock.java 2010-01-12 14:33:15 UTC (rev 185) @@ -22,7 +22,8 @@ package fr.ifremer.suiviobsmer.mock; import fr.ifremer.suiviobsmer.SuiviObsmerException; -import fr.ifremer.suiviobsmer.dto.News; +import fr.ifremer.suiviobsmer.entity.News; +import fr.ifremer.suiviobsmer.entity.NewsImpl; import fr.ifremer.suiviobsmer.services.ServiceNews; import java.util.ArrayList; import java.util.Date; @@ -51,8 +52,8 @@ Integer[] tab = new Integer[12]; - News news = new News(); - news.setDate(new Date()); + News news = new NewsImpl(); + news.setTopiaCreateDate(new Date()); news.setTitle("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent mattis sapien sed nisi consequat tempus"); news.setContent("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent mattis sapien sed nisi consequat tempus. " + "Donec interdum egestas erat, varius viverra nisi sollicitudin ut. Aenean viverra luctus urna. Fusce et erat " + @@ -74,8 +75,8 @@ results.add(news); - news = new News(); - news.setDate(new Date()); + news = new NewsImpl(); + news.setTopiaCreateDate(new Date()); news.setTitle("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent mattis sapien sed nisi consequat tempus"); news.setContent("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent mattis sapien sed nisi consequat tempus. " + "Donec interdum egestas erat, varius viverra nisi sollicitudin ut. Aenean viverra luctus urna. Fusce et erat " + Deleted: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceReferentialMock.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceReferentialMock.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceReferentialMock.java 2010-01-12 14:33:15 UTC (rev 185) @@ -1,170 +0,0 @@ -/* - * *##% - * SuiviObsmer :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * 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 Lesser 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>. - * ##%* - */ - -package fr.ifremer.suiviobsmer.mock; - -import fr.ifremer.suiviobsmer.SuiviObsmerException; -import fr.ifremer.suiviobsmer.dto.Facade; -import fr.ifremer.suiviobsmer.dto.Sector; -import fr.ifremer.suiviobsmer.entity.FishingZone; -import fr.ifremer.suiviobsmer.entity.FishingZoneImpl; -import fr.ifremer.suiviobsmer.entity.Profession; -import fr.ifremer.suiviobsmer.entity.ProfessionImpl; -import fr.ifremer.suiviobsmer.entity.Program; -import fr.ifremer.suiviobsmer.services.ServiceReferential; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * ServiceReferentialMock - * - * Created: 16 nov. 2009 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public class ServiceReferentialMock implements ServiceReferential { - - - @Override - public List<FishingZone> getFishingZones() throws SuiviObsmerException { - List<FishingZone> results = new ArrayList<FishingZone>(); - - FishingZone fishingZone = new FishingZoneImpl(); - fishingZone.setFacadeName("Manche - mer du nord"); - fishingZone.setSectorName("Secteur du Havre à Dunkerque centré sur Boulogne"); - fishingZone.setDistrictCode("VII"); - fishingZone.setTopiaId("fishingZone1"); - results.add(fishingZone); - - fishingZone = new FishingZoneImpl(); - fishingZone.setFacadeName("Manche - mer du nord"); - fishingZone.setSectorName("Secteur Cherbourg Honfleur centré sur Port-en-Bessin"); - fishingZone.setDistrictCode("VIId"); - fishingZone.setTopiaId("fishingZone2"); - results.add(fishingZone); - - fishingZone = new FishingZoneImpl(); - fishingZone.setFacadeName("Atlantique"); - fishingZone.setSectorName("Secteur Mer Celtique et Ouest Irlande centré Pays bigouden"); - fishingZone.setDistrictCode("VIIe"); - fishingZone.setTopiaId("fishingZone3"); - results.add(fishingZone); - - return results; - } - - @Override - public List<String> getFacades() throws SuiviObsmerException { - List<Facade> facades = new ArrayList<Facade>(); - -// Facade nord = new Facade(); -// nord.setName("Manche - mer du nord"); -// facades.add(nord); -// -// Facade atlantique = new Facade(); -// atlantique.setName("Atlantique"); -// facades.add(atlantique); -// -// List<Sector> nordSectors = new ArrayList<Sector>(); -// nord.setSector(nordSectors); -// Sector sector1 = new Sector(); -// sector1.setNum(1); -// sector1.setName("Secteur du Havre à Dunkerque centré sur Boulogne"); -// //sector1.setCompanyName("Océanic Développement"); -// nordSectors.add(sector1); -// -// Sector sector2 = new Sector(); -// sector2.setNum(2); -// sector2.setName("Secteur Cherbourg Honfleur centré sur Port-en-Bessin"); -// //sector2.setCompanyName("COFREPECHE"); -// nordSectors.add(sector2); -// -// List<Sector> atlantiqueSectors = new ArrayList<Sector>(); -// atlantique.setSector(atlantiqueSectors); -// -// Sector sector3 = new Sector(); -// sector3.setNum(3); -// sector3.setName("Secteur Mer Celtique et Ouest Irlande centré Pays bigouden"); -// //sector3.setCompanyName("COFREPECHE"); -// atlantiqueSectors.add(sector3); -// -// return facades; - return new ArrayList<String>(); - } - - @Override - public List<Profession> getProfessions() throws SuiviObsmerException { - List<Profession> results = new ArrayList<Profession>(); - - Profession profession = new ProfessionImpl(); - profession.setCodeDCF5("OTB DEF"); - profession.setMeshSize("<18m"); - profession.setLibelle("Chalutage de fond côtier"); - profession.setTopiaId("profession1"); - results.add(profession); - - profession = new ProfessionImpl(); - profession.setCodeDCF5("PTM DEF"); - profession.setLibelle("Chalutage pélagique en bœuf à poissons"); - profession.setTopiaId("profession2"); - results.add(profession); - - profession = new ProfessionImpl(); - // other code for name already exist for other profession - profession.setCodeDCF5("OTB DEF"); - profession.setSize("80-90"); - profession.setLibelle("Chalutage de fond côtier"); - profession.setTopiaId("profession3"); - results.add(profession); - - profession = new ProfessionImpl(); - // other name for code already exist for other profession - profession.setCodeDCF5("PTM DEF"); - profession.setLibelle("Chalutage pélagique en bœuf à bar"); - profession.setTopiaId("profession4"); - results.add(profession); - - - return results; - } - - - @Override - public int importFishingZoneCsv(InputStream input) throws SuiviObsmerException { - return 0; - } - - @Override - public List<Program> getPrograms() throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<String> getSectors(String facadeName) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - -} Deleted: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceSamplingMock.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceSamplingMock.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceSamplingMock.java 2010-01-12 14:33:15 UTC (rev 185) @@ -1,269 +0,0 @@ -/* - * *##% - * SuiviObsmer :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * 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 Lesser 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>. - * ##%* - */ - -package fr.ifremer.suiviobsmer.mock; - -import fr.ifremer.suiviobsmer.SuiviObsmerException; -import fr.ifremer.suiviobsmer.bean.ImportResults; -import fr.ifremer.suiviobsmer.bean.ImportResultsImpl; -import fr.ifremer.suiviobsmer.dto.SamplingHistoricRow; -import fr.ifremer.suiviobsmer.dto.SampleRowDTO; -import fr.ifremer.suiviobsmer.entity.Boat; -import fr.ifremer.suiviobsmer.entity.Company; -import fr.ifremer.suiviobsmer.entity.Profession; -import fr.ifremer.suiviobsmer.entity.SampleMonth; -import fr.ifremer.suiviobsmer.entity.SampleRow; -import fr.ifremer.suiviobsmer.entity.SampleRowImpl; -import fr.ifremer.suiviobsmer.entity.User; -import fr.ifremer.suiviobsmer.services.ServiceSampling; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.List; -import org.nuiton.util.PeriodDates; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ServiceSamplingMock - * - * Created: 10 nov. 2009 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public class ServiceSamplingMock implements ServiceSampling { - - private static final Logger log = LoggerFactory.getLogger(ServiceSamplingMock.class); - - @Override - public List<SampleRow> getSampleRowsOrderedByFishingZone(PeriodDates period, Company company) throws SuiviObsmerException { - return new ArrayList<SampleRow>(); - } - - /*@Override - public List<Facade> getSampleRowsByFacade() throws SuiviObsmerException { - List<Facade> results = new ArrayList<Facade>(); - - Facade nord = new Facade(); - nord.setName("Fileyeurs et chalutiers de Manche - mer du nord"); - results.add(nord); - List<Sector> nordSectors = new ArrayList<Sector>(); - nord.setSector(nordSectors); - - Sector sector1 = new Sector(); - sector1.setNum(1); - sector1.setName("Secteur du Havre à Dunkerque centré sur Boulogne"); - nordSectors.add(sector1); - - List<SampleRowDTO> sector1Rows = new ArrayList<SampleRowDTO>(); - sector1.setSampleRowDTO(sector1Rows); - SampleRowDTO row1 = createOneRow("Océanic Développement"); - sector1Rows.add(row1); - row1 = createOneRow("Océanic Développement"); - row1.setProgramName("FEP Cabillaud"); - row1.setEditable(true); - sector1Rows.add(row1); - row1 = createOneRow("Océanic Développement"); - sector1Rows.add(row1); - row1 = createOneRow("Océanic Développement"); - sector1Rows.add(row1); - row1 = createOneRow("Océanic Développement"); - sector1Rows.add(row1); - row1 = createOneRow("Océanic Développement"); - row1.setProgramName("FEP Cabillaud"); - sector1Rows.add(row1); - row1 = createOneRow("Océanic Développement"); - sector1Rows.add(row1); - row1 = createOneRow("Océanic Développement"); - sector1Rows.add(row1); - - Sector sector2 = new Sector(); - sector2.setNum(2); - sector2.setName("Secteur Cherbourg Honfleur centré sur Port-en-Bessin"); - nordSectors.add(sector2); - - List<SampleRowDTO> sector2Rows = new ArrayList<SampleRowDTO>(); - sector2.setSampleRowDTO(sector2Rows); - SampleRowDTO row2 = createOneRow("COFREPECHE"); - sector2Rows.add(row2); - row2 = createOneRow("COFREPECHE"); - row2.setProgramName("FEP Cabillaud"); - sector2Rows.add(row2); - row2 = createOneRow("COFREPECHE"); - sector2Rows.add(row2); - row2 = createOneRow("COFREPECHE"); - row2.setEditable(true); - sector2Rows.add(row2); - row2 = createOneRow("COFREPECHE"); - sector2Rows.add(row2); - - Facade atlantique = new Facade(); - atlantique.setName("Chalutiers et fileyeurs Atlantique"); - results.add(atlantique); - List<Sector> atlantiqueSectors = new ArrayList<Sector>(); - atlantique.setSector(atlantiqueSectors); - - Sector sector3 = new Sector(); - sector3.setNum(3); - sector3.setName("Secteur Mer Celtique et Ouest Irlande centré Pays bigouden"); - atlantiqueSectors.add(sector3); - - List<SampleRowDTO> sector3Rows = new ArrayList<SampleRowDTO>(); - sector3.setSampleRowDTO(sector3Rows); - SampleRowDTO row3 = createOneRow("COFREPECHE"); - sector1Rows.add(row3); - row3 = createOneRow("COFREPECHE"); - sector3Rows.add(row3); - row3 = createOneRow("COFREPECHE"); - sector3Rows.add(row3); - row3 = createOneRow("COFREPECHE"); - sector3Rows.add(row3); - - return results; - }*/ - - private SampleRowDTO createOneRow(String companyName) { - SampleRowDTO row1 = new SampleRowDTO(); - row1.setCompanyName(companyName); - row1.setProfessionName("Chalutage de fond côtier"); - row1.setProfessionCode("OTB DEF<18m"); - row1.setYear(2009); - - row1.setNbTidesExpectedByMonth(4, 3); // mai - row1.setNbTidesExpectedByMonth(5, 2); - row1.setNbTidesExpectedByMonth(6, 3); - row1.setNbTidesExpectedByMonth(7, 2); - row1.setNbTidesExpectedByMonth(8, 3); - row1.setNbTidesExpectedByMonth(9, 2); - row1.setNbTidesExpectedByMonth(10, 3); - row1.setNbTidesExpectedByMonth(11, 2); // decembre - setTotalTidesExpected(row1); - - row1.setNbTidesRealByMonth(4, 1); // mai - row1.setNbTidesRealByMonth(5, 2); - row1.setNbTidesRealByMonth(6, 4); // juillet - setTotalTidesReal(row1); - - row1.setNbTechnicians(2); - return row1; - } - - private void setTotalTidesExpected(SampleRowDTO row) { - int total = 0; - Integer[] tab = row.getNbTidesExpectedByMonth(); - for (int i = 0; i < tab.length; i++) { - total += tab[i] != null ? tab[i] : 0; - } - row.setTotalTidesExpected(total); - } - - private void setTotalTidesReal(SampleRowDTO row) { - int total = 0; - Integer[] tab = row.getNbTidesRealByMonth(); - for (int i = 0; i < tab.length; i++) { - total += tab[i] != null ? tab[i] : 0; - } - row.setTotalTidesReal(total); - } - - @Override - public List<SamplingHistoricRow> getHistoric() throws SuiviObsmerException { - List<SamplingHistoricRow> historic = new ArrayList<SamplingHistoricRow>(); - - Calendar cal = new GregorianCalendar(); - - SamplingHistoricRow samplingHistoric = new SamplingHistoricRow(); - cal.set(2009, 6, 24, 0, 0, 0); - samplingHistoric.setChangeDate(cal.getTime()); - samplingHistoric.setComment("Troisième changement ca a mal tourné !!"); - samplingHistoric.setStaticSamplingUrl("2009-histo-3.html"); - - historic.add(samplingHistoric); - - samplingHistoric = new SamplingHistoricRow(); - cal.set(2009, 4, 18, 0, 0, 0); - samplingHistoric.setChangeDate(cal.getTime()); - samplingHistoric.setComment("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent mattis sapien sed nisi consequat tempus. " + - "Donec interdum egestas erat, varius viverra nisi sollicitudin ut. Aenean viverra luctus urna. Fusce et erat " + - "ut sem ornare pretium. Phasellus sit amet est erat. Donec fringilla auctor elit ac aliquet. Maecenas quis orci " + - "dolor, et semper turpis. Suspendisse sit amet euismod libero. Duis in lorem augue, at feugiat est. Aliquam "); - samplingHistoric.setStaticSamplingUrl("2009-histo-2.html"); - - historic.add(samplingHistoric); - - samplingHistoric = new SamplingHistoricRow(); - cal.set(2009, 1, 2, 0, 0, 0); - samplingHistoric.setChangeDate(cal.getTime()); - samplingHistoric.setComment("Premier changement ca a mal tourné !!"); - samplingHistoric.setStaticSamplingUrl("2009-histo-1.html"); - - historic.add(samplingHistoric); - - return historic; - } - - @Override - public SampleRow getSampleRow(String sampleRowId) throws SuiviObsmerException { - return new SampleRowImpl(); - } - - @Override - public ImportResults importSamplingPlanCsv(InputStream input) throws SuiviObsmerException { - return new ImportResultsImpl(); - } - - @Override - public void createUpdateSampleRow(SampleRow sampleRow, List<Boat> boats) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public SampleRow getNewSampleRow() { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public SampleMonth getNewSampleMonth(Date period, SampleRow row) { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public List<SampleRow> getSampleRowsForUser(User user) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void deleteSampleRow(SampleRow sampleRow) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public Profession getNewProfession(Profession profession) { - throw new UnsupportedOperationException("Not supported yet."); - } - -} Deleted: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceUserMock.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceUserMock.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceUserMock.java 2010-01-12 14:33:15 UTC (rev 185) @@ -1,153 +0,0 @@ -/* - * *##% - * SuiviObsmer :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * 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 Lesser 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>. - * ##%* - */ - -package fr.ifremer.suiviobsmer.mock; - -import fr.ifremer.suiviobsmer.SuiviObsmerException; -import fr.ifremer.suiviobsmer.entity.Company; -import fr.ifremer.suiviobsmer.entity.CompanyImpl; -import fr.ifremer.suiviobsmer.entity.User; -import fr.ifremer.suiviobsmer.entity.UserImpl; -import fr.ifremer.suiviobsmer.services.ServiceUser; -import java.util.ArrayList; -import java.util.List; - -/** - * ServiceUserMock - * - * Created: 9 nov. 2009 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public class ServiceUserMock implements ServiceUser { - - @Override - public User connect(String login, String password) throws SuiviObsmerException { - User jean = getJeanMichmuche(); - User admin = getAdmin(); - if (jean.getLogin().equals(login) && jean.getPassword().equals(password)) { - return jean; - } else if (admin.getLogin().equals(login) && admin.getPassword().equals(password)) { - return admin; - } - return null; - } - - @Override - public void createUpdateUser(User user, boolean generatePassword) throws SuiviObsmerException { - } - - @Override - public void createUpdateCompany(Company company) throws SuiviObsmerException { - } - - @Override - public List<Company> getCompanies(boolean activeOnly) throws SuiviObsmerException { - List<Company> results = new ArrayList<Company>(); - results.add(getIfremer()); - results.add(getTartanpion()); - return results; - } - - private User getJeanMichmuche() { - User user = new UserImpl(); - user.setLogin("user"); - user.setPassword("password"); - user.setFirstName("Jean"); - user.setLastName("Michmuche"); - Company tartanpion = new CompanyImpl(); - tartanpion.setName("Tartanpion"); - tartanpion.setTopiaId("tartanpion"); - user.setCompany(tartanpion); - user.setPhoneNumber("04 01 23 14 78"); - //user.setEmail("jmichmuche at tartanpion.fr"); - //user.setId("jm"); - return user; - } - - private User getBartSimpson() { - User user = new UserImpl(); - user.setLogin("bart at ifremer.fr"); - user.setPassword("password"); - user.setFirstName("Bart"); - user.setLastName("Simpson"); - Company ifremer = new CompanyImpl(); - ifremer.setName("Ifremer"); - ifremer.setTopiaId("ifremer"); - user.setCompany(ifremer); - //user.setId("bs"); - return user; - } - - private User getAdmin() { - User user = new UserImpl(); - user.setLogin("admin"); - user.setPassword("password"); - user.setFirstName("Admin"); - Company ifremer = new CompanyImpl(); - ifremer.setName("Ifremer"); - ifremer.setTopiaId("ifremer"); - user.setCompany(ifremer); - user.setAdmin(true); - //user.setId("admin"); - return user; - } - - private Company getIfremer() { - Company company = new CompanyImpl(); - company.setUser(new ArrayList<User>()); - company.setTopiaId("ifremer"); - company.setName("Ifremer"); - company.setPhoneNumber("02 28 24 24 24"); - company.setAddress1("Rue Ile d'yeu"); - company.setCity("Nantes"); - company.setPostalCode(44000); - User bart = getBartSimpson(); - bart.setCompany(company); - company.addUser(bart); - User admin = getAdmin(); - company.addUser(admin); - admin.setCompany(company); - return company; - } - - private Company getTartanpion() { - Company company = new CompanyImpl(); - company.setUser(new ArrayList<User>()); - company.setTopiaId("tartanpion"); - company.setName("Tartanpion"); - company.setCity("Somewhere"); - company.setPostalCode(15020); - User jean = getJeanMichmuche(); - company.addUser(jean); - jean.setCompany(company); - return company; - } - - @Override - public void forgetPassword(String login) throws SuiviObsmerException { - throw new UnsupportedOperationException("Not supported yet."); - } -} Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo =================================================================== (Binary files differ) Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatImplTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatImplTest.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatImplTest.java 2010-01-12 14:33:15 UTC (rev 185) @@ -126,7 +126,6 @@ SampleRowDAO rowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); SampleRow row = rowDAO.findByCode("2010_01"); row.getCompany(); - row.getProgram(); row.getProfession(); transaction.closeContext(); Deleted: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/ProgramImplTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/ProgramImplTest.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/ProgramImplTest.java 2010-01-12 14:33:15 UTC (rev 185) @@ -1,212 +0,0 @@ -/* - * *##% - * SuiviObsmer :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * 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 Lesser 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>. - * ##%* - */ - -package fr.ifremer.suiviobsmer.entity; - -import fr.ifremer.suiviobsmer.SuiviObsmerContext; -import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper; -import fr.ifremer.suiviobsmer.SuiviObsmerRunner; -import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; -import fr.ifremer.suiviobsmer.impl.ServiceSamplingImpl; -import fr.ifremer.suiviobsmer.services.ServiceSampling; -import java.io.InputStream; -import java.util.Calendar; -import java.util.GregorianCalendar; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.nuiton.topia.TopiaContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ProgramImplTest - * - * Created: 30 nov. 2009 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public class ProgramImplTest { - - private static SuiviObsmerRunner runner; - - private static final Logger log = LoggerFactory.getLogger(ProgramImplTest.class); - - public ProgramImplTest() { - } - - @BeforeClass - public static void setUpClass() throws Exception { - runner = new SuiviObsmerRunnerTest(); - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() throws Exception { - runner.start(); - } - - @After - public void tearDown() throws Exception { - runner.stop(); - } - - /** - * Test of isMonthAndYearIncluded method, of class ProgramImpl. - */ - @Test - public void testIsMonthAndYearIncluded() { - log.info("isMonthAndYearIncluded"); - - /** PREPARE DATA **/ - Program program = new ProgramImpl(); - program.setName("DPMA-2009"); - program.setPeriodBegin(5, 2009); - program.setPeriodEnd(3, 2010); - - /** EXEC METHOD **/ - // between - boolean res = program.isMonthAndYearIncluded(8, 2009); - Assert.assertTrue(res); - // equals begin - res = program.isMonthAndYearIncluded(5, 2009); - Assert.assertTrue(res); - // equals end - res = program.isMonthAndYearIncluded(3, 2010); - Assert.assertTrue(res); - // before - res = program.isMonthAndYearIncluded(5, 2008); - Assert.assertFalse(res); - // after - res = program.isMonthAndYearIncluded(5, 2010); - Assert.assertFalse(res); - } - - /** - * Test of isStarted method, of class ProgramImpl. - */ - //@Test - public void testIsStarted() { - System.out.println("isStarted"); - } - - @Test - public void testSetPeriodBegin() { - log.info("setPeriodBegin"); - - Program program = new ProgramImpl(); - program.setPeriodBegin(5, 2009); - - // Décalage d'un mois - Calendar calendar = new GregorianCalendar(2009,4,1,0,0,0); - Assert.assertEquals(calendar.getTime(), program.getPeriodBegin()); - } - - @Test - public void testSetPeriodEnd() { - log.info("setPeriodEnd"); - - Program program = new ProgramImpl(); - program.setPeriodEnd(3, 2010); - - // Décalage d'un mois - Calendar calendar = new GregorianCalendar(2010,2,31,0,0,0); - Assert.assertEquals(calendar.getTime(), program.getPeriodEnd()); - } - - @Test - public void testIsValid() { - log.info("isValid"); - - Program program = new ProgramImpl(); - program.setPeriodBegin(5, 2009); - program.setPeriodEnd(3, 2010); - - // program included - Calendar begin = new GregorianCalendar(2000, 0, 1); - log.debug(begin.getTime().toString()); - Calendar end = new GregorianCalendar(2020, 11, 31); - - Assert.assertTrue(program.isValid(begin.getTime(), end.getTime())); - - // program after period - end = new GregorianCalendar(2008, 11, 31); - Assert.assertFalse(program.isValid(begin.getTime(), end.getTime())); - - // program before period - begin = new GregorianCalendar(2011, 0, 1); - end = new GregorianCalendar(2020, 11, 31); - Assert.assertFalse(program.isValid(begin.getTime(), end.getTime())); - - } - - - @Test - public void testGetNewSampleRowCode() throws Exception { - log.info("getNewSampleRowCode"); - - /** PREPARE DATA **/ - TopiaContext transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction(); - - FishingZoneDAO zoneDAO = SuiviObsmerModelDAOHelper.getFishingZoneDAO(transaction); - FishingZone zoneIId = zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); - FishingZone zoneIV = zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); - FishingZone zoneI = zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); - - CompanyDAO companyDAO = SuiviObsmerModelDAOHelper.getCompanyDAO(transaction); - companyDAO.create(Company.NAME, "TARTANPION"); - transaction.commitTransaction(); - - ServiceSampling serviceSampling = new ServiceSamplingImpl(); - InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - serviceSampling.importSamplingPlanCsv(input); - - ProgramDAO programDAO = SuiviObsmerModelDAOHelper.getProgramDAO(transaction); - Program program = programDAO.findByName("PPP2010"); - transaction.closeContext(); - - /** EXEC METHOD **/ - - String result = program.getNewSampleRowCode(); - Assert.assertEquals("2009_07", result); - - // Test regex for replacment in importSamplingPlanCsv - String code = "2010_1"; - code = code.replaceFirst("_(\\d)$", "_0$1"); - Assert.assertEquals("2010_01", code); - - code = "2010_04"; - code = code.replaceFirst("_(\\d)$", "_0$1"); - Assert.assertEquals("2010_04", code); - } - - -} Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java 2010-01-12 14:33:15 UTC (rev 185) @@ -26,15 +26,19 @@ import fr.ifremer.suiviobsmer.SuiviObsmerRunner; import fr.ifremer.suiviobsmer.SuiviObsmerContext; import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; +import java.util.Calendar; import java.util.Date; +import java.util.GregorianCalendar; import org.junit.After; import org.junit.AfterClass; +import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.util.DateUtils; +import org.nuiton.util.PeriodDates; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static org.junit.Assert.*; @@ -107,28 +111,7 @@ return resultRow; } - - /** - * Test of getSampleMonth method, of class SampleRowImpl. - * @throws SuiviObsmerException - * @throws TopiaException - */ @Test - public void testGetSampleMonth() throws SuiviObsmerException, TopiaException { - log.info("getSampleMonth"); - - /** PREPARE DATA **/ - SampleRow myRow = prepareData(); - - /** EXEC METHOD **/ - SampleMonth res = myRow.getSampleMonth(4, 2009); - assertNotNull(res); - - res = myRow.getSampleMonth(5, 2009); - assertNull(res); - } - - @Test public void testAddRealTideTime() throws Exception { log.info("addRealTideTime"); @@ -189,5 +172,4 @@ // result put to 5 : 12 - 7 (diff) assertEquals(5, result.getRealTidesValue()); } - } Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java 2010-01-12 14:33:15 UTC (rev 185) @@ -224,10 +224,8 @@ // Get two SampleRows : 2009_3 & 2010_4 SampleRowDAO rowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); SampleRow row1 = rowDAO.findByCode("2009_03"); - row1.getProgram(); row1.getProfession(); SampleRow row2 = rowDAO.findByCode("2010_04"); - row2.getProgram(); row2.getProfession(); transaction.commitTransaction(); @@ -273,7 +271,6 @@ SampleRowDAO rowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); SampleRow row = rowDAO.findByCode("2010_01"); row.getCompany(); - row.getProgram(); row.getProfession(); transaction.closeContext(); 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-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java 2010-01-12 14:33:15 UTC (rev 185) @@ -37,9 +37,6 @@ import fr.ifremer.suiviobsmer.entity.Profession; import fr.ifremer.suiviobsmer.entity.ProfessionDAO; import fr.ifremer.suiviobsmer.entity.ProfessionImpl; -import fr.ifremer.suiviobsmer.entity.Program; -import fr.ifremer.suiviobsmer.entity.ProgramDAO; -import fr.ifremer.suiviobsmer.entity.ProgramImpl; import fr.ifremer.suiviobsmer.entity.SampleMonth; import fr.ifremer.suiviobsmer.entity.SampleMonthImpl; import fr.ifremer.suiviobsmer.entity.SampleRow; @@ -47,10 +44,12 @@ import fr.ifremer.suiviobsmer.entity.User; import fr.ifremer.suiviobsmer.entity.UserImpl; import fr.ifremer.suiviobsmer.services.ServiceBoat; +import fr.ifremer.suiviobsmer.services.ServiceSampling; import java.io.InputStream; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; +import java.util.Date; import java.util.GregorianCalendar; import java.util.List; import org.junit.After; @@ -61,6 +60,7 @@ import org.junit.Test; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; +import org.nuiton.util.DateUtils; import org.nuiton.util.PeriodDates; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -124,11 +124,6 @@ transaction.closeContext(); // CREATE - Program program1 = new ProgramImpl(); - program1.setName("DPMA-2009"); - program1.setPeriodBegin(1, 2009); - program1.setPeriodEnd(3, 2010); - Profession profession1 = new ProfessionImpl(); profession1.setCodeDCF5("OORR-BDP"); profession1.setMeshSize(">=18"); @@ -155,7 +150,9 @@ row.setCode("2010_03"); row.setNbObservants(3); row.setAverageTideTime(2.5); - row.setProgram(program1); + row.setProgramName("DPMA-2009"); + row.setPeriodBegin(DateUtils.createDate(1, 1, 2009)); + row.setPeriodEnd(DateUtils.createDate(31, 3, 2010)); row.setProfession(profession1); row.setSampleMonth(months); row.setFishingZone(zones); @@ -166,7 +163,6 @@ service.createUpdateSampleRow(row, boats); assertNotNull(row.getTopiaId()); assertNotNull(row.getProfession().getTopiaId()); - assertNotNull(row.getProgram().getTopiaId()); SampleRow result = service.getSampleRow(row.getTopiaId()); assertEquals(3, result.getFishingZone().size()); @@ -195,39 +191,43 @@ List<FishingZone> zones = prepareFishingZones(transaction); - ProgramDAO programDAO = SuiviObsmerModelDAOHelper.getProgramDAO(transaction); + //Program program1 = programDAO.create(Program.NAME, "DPMA-2009"); + Date dateBegin1 = DateUtils.createDate(1, 1, 2009); + Date dateEnd1 = DateUtils.createDate(1, 3, 2010); + PeriodDates period1 = new PeriodDates(dateBegin1, dateEnd1); - Program program1 = programDAO.create(Program.NAME, "DPMA-2009"); - program1.setPeriodBegin(1, 2009); - program1.setPeriodEnd(3, 2010); + //Program program2 = programDAO.create(Program.NAME, "PPDA-2008"); + Date dateBegin2 = DateUtils.createDate(1, 1, 2008); + Date dateEnd2 = DateUtils.createDate(1, 12, 2008); + PeriodDates period2 = new PeriodDates(dateBegin2, dateEnd2); - Program program2 = programDAO.create(Program.NAME, "PPDA-2008"); - program2.setPeriodBegin(1, 2008); - program2.setPeriodEnd(12, 2008); - SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); SampleRow row1 = dao.create(); row1.setCode("2010_01"); row1.addFishingZone(zones.get(2)); - row1.setProgram(program1); + row1.setProgramName("DPMA-2009"); + row1.setPeriod(period1); SampleRow row2 = dao.create(); row2.setCode("2010_02"); row2.addFishingZone(zones.get(0)); - row2.setProgram(program1); + row2.setProgramName("DPMA-2009"); + row2.setPeriod(period1); SampleRow row3 = dao.create(); row3.setCode("2010_03"); row3.addFishingZone(zones.get(1)); row3.addFishingZone(zones.get(2)); row3.addFishingZone(zones.get(0)); - row3.setProgram(program2); + row3.setProgramName("PPDA-2008"); + row3.setPeriod(period2); SampleRow row4 = dao.create(); row4.setCode("2010_04"); row4.addFishingZone(zones.get(0)); - row4.setProgram(program1); + row4.setProgramName("DPMA-2009"); + row4.setPeriod(period1); transaction.commitTransaction(); @@ -315,17 +315,15 @@ CompanyDAO companyDAO = SuiviObsmerModelDAOHelper.getCompanyDAO(transaction); Company company = companyDAO.create(Company.NAME, "TARTANPION"); - ProgramDAO programDAO = SuiviObsmerModelDAOHelper.getProgramDAO(transaction); - Program program = programDAO.create(Program.NAME, "DPMA-2009"); - Calendar calendar = new GregorianCalendar(2009,8,1); - program.setPeriodBegin(calendar.getTime()); - calendar.set(2010,11,31); - program.setPeriodEnd(calendar.getTime()); + Calendar begin = new GregorianCalendar(2009,8,1); + Calendar end = new GregorianCalendar(2010,11,31); SampleRowDAO sampleRowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); SampleRow row = sampleRowDAO.create( SampleRow.CODE,"2010_178", SampleRow.COMPANY,company, - SampleRow.PROGRAM, program); + SampleRow.PROGRAM_NAME, "DPMA-2009", + SampleRow.PERIOD_BEGIN, begin.getTime(), + SampleRow.PERIOD_END, end.getTime()); transaction.commitTransaction(); @@ -417,7 +415,6 @@ SampleRowDAO rowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); SampleRow row = rowDAO.findByCode("2010_01"); row.getProfession(); - row.getProgram(); row.getCompany(); transaction.closeContext(); @@ -470,11 +467,6 @@ /** CHECK VALUES **/ transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction(); - ProgramDAO programDAO = SuiviObsmerModelDAOHelper.getProgramDAO(transaction); - - List<Program> programs = programDAO.findAll(); - assertEquals(4, programs.size()); - ProfessionDAO professionDAO = SuiviObsmerModelDAOHelper.getProfessionDAO(transaction); List<Profession> professions = professionDAO.findAll(); @@ -487,9 +479,7 @@ assertEquals(1, row1.getNbObservants()); assertEquals(1.5, row1.getAverageTideTime(), 0.1); - Program program = row1.getProgram(); - assertNotNull(program); - assertEquals("MA-2009", program.getName()); + assertEquals("MA-2009", row1.getProgramName()); Profession profession = row1.getProfession(); assertNotNull(profession); @@ -506,4 +496,67 @@ transaction.closeContext(); } + @Test + public void testGetPrograms() throws Exception { + /** PREPARE DATA **/ + TopiaContext transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction(); + + FishingZoneDAO zoneDAO = SuiviObsmerModelDAOHelper.getFishingZoneDAO(transaction); + zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); + zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); + zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); + + CompanyDAO companyDAO = SuiviObsmerModelDAOHelper.getCompanyDAO(transaction); + companyDAO.create(Company.NAME, "TARTANPION"); + transaction.commitTransaction(); + transaction.closeContext(); + + InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + service.importSamplingPlanCsv(input); + + /** EXEC METHOD **/ + List<String> programs = service.getPrograms(); + assertEquals(4, programs.size()); + } + + + @Test + public void testGetNewSampleRowCode() throws Exception { + log.info("getNewSampleRowCode"); + + /** PREPARE DATA **/ + TopiaContext transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction(); + + FishingZoneDAO zoneDAO = SuiviObsmerModelDAOHelper.getFishingZoneDAO(transaction); + FishingZone zoneIId = zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); + FishingZone zoneIV = zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); + FishingZone zoneI = zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); + + CompanyDAO companyDAO = SuiviObsmerModelDAOHelper.getCompanyDAO(transaction); + companyDAO.create(Company.NAME, "TARTANPION"); + transaction.commitTransaction(); + + ServiceSampling serviceSampling = new ServiceSamplingImpl(); + InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + serviceSampling.importSamplingPlanCsv(input); + + transaction.closeContext(); + + /** EXEC METHOD **/ + + Calendar begin = new GregorianCalendar(2009, 11, 1); + + String result = service.getNewSampleRowCode(begin.getTime()); + Assert.assertEquals("2009_07", result); + + // Test regex for replacment in importSamplingPlanCsv + String code = "2010_1"; + code = code.replaceFirst("_(\\d)$", "_0$1"); + Assert.assertEquals("2010_01", code); + + code = "2010_04"; + code = code.replaceFirst("_(\\d)$", "_0$1"); + Assert.assertEquals("2010_04", code); + } + } Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/BusinessUtils.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/BusinessUtils.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/BusinessUtils.java 2010-01-12 14:33:15 UTC (rev 185) @@ -24,7 +24,6 @@ import fr.ifremer.suiviobsmer.entity.Boat; import fr.ifremer.suiviobsmer.entity.FishingZone; import fr.ifremer.suiviobsmer.entity.Profession; -import fr.ifremer.suiviobsmer.entity.Program; import fr.ifremer.suiviobsmer.entity.SampleRow; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -48,7 +47,6 @@ String result = ""; DateFormat dateFormat = new SimpleDateFormat("MM/yyyy"); Profession profession = row.getProfession(); - Program program = row.getProgram(); result += "<strong>Métier : </strong>" + profession.getCodeDCF5(); if (!StringUtils.isEmpty(profession.getMeshSize())) { result+= " " + profession.getMeshSize(); @@ -63,9 +61,9 @@ if (!StringUtils.isEmpty(profession.getSpecies())) { result += "<br /><strong>Espèces cibles : </strong>" + profession.getSpecies(); } - result += "<br /><strong>Programme : </strong>" + program.getName() + " - " + - "du " + dateFormat.format(program.getPeriodBegin()) + - " au " + dateFormat.format(program.getPeriodEnd()); + result += "<br /><strong>Programme : </strong>" + row.getProgramName(); + result += "<br /><strong>Période : </strong> du " + dateFormat.format(row.getPeriodBegin()) + + " au " + dateFormat.format(row.getPeriodEnd()); for (FishingZone zone : row.getFishingZone()) { result += "<br /><strong>Zone de pêche : </strong>" + zone.getCode(); Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java 2010-01-12 14:33:15 UTC (rev 185) @@ -256,7 +256,6 @@ log.debug("User : " + user); } - // TODO validation : required : lastName, firstName, login if (!StringUtils.isEmpty(password)) { String encodedPassword = SuiviObsmerContext.encodeString(password); user.setPassword(encodedPassword); 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-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2010-01-12 14:33:15 UTC (rev 185) @@ -34,7 +34,6 @@ import fr.ifremer.suiviobsmer.entity.ElligibleBoat; import fr.ifremer.suiviobsmer.entity.FishingZone; import fr.ifremer.suiviobsmer.entity.Profession; -import fr.ifremer.suiviobsmer.entity.Program; import fr.ifremer.suiviobsmer.entity.SampleRow; import fr.ifremer.suiviobsmer.entity.User; import fr.ifremer.suiviobsmer.services.ServiceBoat; @@ -458,8 +457,7 @@ public boolean canCreateNewContactFromList() throws SuiviObsmerException { if (!user.getAdmin() && isSampleRowExists()) { - Program program = getSampleRow().getProgram(); - if (program.isFinished()) { + if (getSampleRow().isFinished()) { return false; } return boat.canCreateContact(user.getCompany()); @@ -612,8 +610,8 @@ public boolean canCreateNewContactFromElligibleBoat() throws SuiviObsmerException { if (!user.getAdmin() && !isElligibleBoatCompanyActiveFalse()) { - Program program = elligibleBoat.getSampleRow().getProgram(); - if (program.isFinished()) { + SampleRow row = elligibleBoat.getSampleRow(); + if (row.isFinished()) { return false; } Boat boat = getBoatInfos().getBoat(); 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-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-12 14:33:15 UTC (rev 185) @@ -29,7 +29,6 @@ import fr.ifremer.suiviobsmer.bean.ContactState; import fr.ifremer.suiviobsmer.entity.Boat; import fr.ifremer.suiviobsmer.entity.Contact; -import fr.ifremer.suiviobsmer.entity.Program; import fr.ifremer.suiviobsmer.entity.SampleRow; import fr.ifremer.suiviobsmer.entity.User; import fr.ifremer.suiviobsmer.services.ServiceBoat; @@ -542,20 +541,19 @@ Date begin = contact.getTideBeginDate(); Date end = contact.getTideEndDate(); Date input = contact.getDataInputDate(); - Program program = contact.getSampleRow().getProgram(); + SampleRow row = contact.getSampleRow(); DateFormat dateFormat = new SimpleDateFormat("MM/yyyy"); - if (begin != null && !DateUtils.between(begin, program.getPeriodBegin(), program.getPeriodEnd())) { + if (begin != null && !row.isValid(begin)) { contactsForm.recordError(beginDate, - "La date de début de la marée doit être comprise dans la période du programme : du " + - dateFormat.format(program.getPeriodBegin()) + " au " + dateFormat.format(program.getPeriodEnd())); + "La date de début de la marée doit correspondre à un mois valide (non vide) de la ligne " + row.getCode()); } - if (end != null && !DateUtils.between(end, program.getPeriodBegin(), program.getPeriodEnd())) { - contactsForm.recordError(endDate, - "La date de fin de la marée doit être comprise dans la période du programme : du " + - dateFormat.format(program.getPeriodBegin()) + " au " + dateFormat.format(program.getPeriodEnd())); - } +// if (end != null && !DateUtils.between(end, row.getPeriodBegin(), row.getPeriodEnd())) { +// contactsForm.recordError(endDate, +// "La date de fin de la marée doit être comprise dans la période de la ligne : du " + +// dateFormat.format(row.getPeriodBegin()) + " au " + dateFormat.format(row.getPeriodEnd())); +// } if (begin != null && end != null && end.before(begin)) { contactsForm.recordError(endDate, "La date de fin de la marée ne peut pas être antérieure à celle de début"); Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Index.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Index.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Index.java 2010-01-12 14:33:15 UTC (rev 185) @@ -22,7 +22,7 @@ package fr.ifremer.suiviobsmer.ui.pages; import fr.ifremer.suiviobsmer.SuiviObsmerException; -import fr.ifremer.suiviobsmer.dto.News; +import fr.ifremer.suiviobsmer.entity.News; import fr.ifremer.suiviobsmer.services.ServiceNews; import fr.ifremer.suiviobsmer.ui.base.SuiviObsmerPage; import java.text.DateFormat; Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SampleRowForm.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SampleRowForm.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SampleRowForm.java 2010-01-12 14:33:15 UTC (rev 185) @@ -28,8 +28,6 @@ import fr.ifremer.suiviobsmer.entity.FishingZone; import fr.ifremer.suiviobsmer.entity.Profession; import fr.ifremer.suiviobsmer.entity.ProfessionImpl; -import fr.ifremer.suiviobsmer.entity.Program; -import fr.ifremer.suiviobsmer.entity.ProgramImpl; import fr.ifremer.suiviobsmer.entity.SampleMonth; import fr.ifremer.suiviobsmer.entity.SampleRow; import fr.ifremer.suiviobsmer.entity.User; @@ -48,6 +46,8 @@ import org.apache.tapestry5.ComponentResources; import org.apache.tapestry5.EventContext; 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; @@ -56,9 +56,10 @@ import org.apache.tapestry5.annotations.SessionState; import org.apache.tapestry5.beaneditor.BeanModel; import org.apache.tapestry5.corelib.components.Form; +import org.apache.tapestry5.internal.OptionModelImpl; +import org.apache.tapestry5.internal.SelectModelImpl; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.ioc.services.PropertyAccess; -import org.apache.tapestry5.runtime.Component; import org.apache.tapestry5.services.BeanModelSource; import org.nuiton.util.DateUtils; import org.nuiton.util.PeriodDates; @@ -125,7 +126,7 @@ sampleRowForm.clearErrors(); if (!isCreateMode()) { - programId = getSampleRow().getProgram().getTopiaId(); + programId = getSampleRow().getProgramName(); } else { programId = null; } @@ -285,7 +286,7 @@ /*************************** PROGRAM & MONTHS *****************************/ @Persist - private GenericSelectModel<Program> programSelectModel; + private SelectModel programSelectModel; @Property private String programName; @@ -317,14 +318,16 @@ private boolean programChanged; - public GenericSelectModel<Program> getProgramSelectModel() throws SuiviObsmerException { + public SelectModel getProgramSelectModel() throws SuiviObsmerException { if (programSelectModel == null) { if (log.isInfoEnabled()) { log.info("BUSINESS REQUEST [getPrograms]"); } - List<Program> programs = serviceReferential.getPrograms(); - programSelectModel = new GenericSelectModel<Program>(programs, Program.class, - "name", "topiaId", propertyAccess); + List<OptionModel> options = new ArrayList<OptionModel>(); + for (String name : serviceSampling.getPrograms()) { + options.add(new OptionModelImpl(name, name)); + } + programSelectModel = new SelectModelImpl(null, options); } return programSelectModel; } @@ -341,14 +344,14 @@ return months; } - public Program getProgram() throws SuiviObsmerException { - return getSampleRow().getProgram(); - } +// public Program getProgram() throws SuiviObsmerException { +// return getSampleRow().getProgram(); +// } public PeriodDates getPeriod() throws SuiviObsmerException { if (period == null) { - Date begin = getProgram().getPeriodBegin(); - Date end = getProgram().getPeriodEnd(); + Date begin = getSampleRow().getPeriodBegin(); + Date end = getSampleRow().getPeriodEnd(); period = new PeriodDates(begin, end); } return period; @@ -379,15 +382,16 @@ */ @Log void onSelectedFromSearchProgram() throws SuiviObsmerException { - Program sampleRowProgram = new ProgramImpl(); + //Program sampleRowProgram = new ProgramImpl(); if (!StringUtils.isEmpty(programId)) { - sampleRowProgram = getProgramSelectModel().findObject(programId); + //sampleRowProgram = getProgramSelectModel().findObject(programId); programName = null; period = null; months = null; - // Period will be reinitialized from program params - getSampleRow().setProgram(sampleRowProgram); + getSampleRow().setProgramName(programId); //validateProgram(); + + // No period in this case ?!? } programChanged = true; } @@ -400,61 +404,20 @@ */ @Log void onSelectedFromRefreshMonths() throws SuiviObsmerException { - Program sampleRowProgram = null; + //Program sampleRowProgram = null; if (!StringUtils.isEmpty(programName)) { // New program - sampleRowProgram = new ProgramImpl(); - sampleRowProgram.setName(programName); - getSampleRow().setProgram(sampleRowProgram); + //sampleRowProgram = new ProgramImpl(); + //sampleRowProgram.setName(programName); + getSampleRow().setProgramName(programName); programId = null; } months = null; - getProgram().setPeriodBegin(period.getFromDate()); - getProgram().setPeriodEnd(period.getThruDate()); + getSampleRow().setPeriod(period); programChanged = true; } -// @Log -// protected boolean validateProgram() throws SuiviObsmerException { -// sampleRowForm.clearErrors(); -// if (StringUtils.isEmpty(getProgram().getName())) { -// sampleRowForm.recordError(program, -// "Vous devez choisir un programme existant ou en créer un nouveau"); -// } -// -// Date periodBegin = getProgram().getPeriodBegin(); -// Date periodEnd = getProgram().getPeriodEnd(); -// -// // Validation for period dates -// if (periodBegin == null) { -// sampleRowForm.recordError(programPeriodBegin, -// "Vous ne pouvez pas rafraîchir les mois avec une date de début de programme vide"); -// } -// if (periodEnd == null) { -// sampleRowForm.recordError(programPeriodEnd, -// "Vous ne pouvez pas rafraîchir les mois avec une date de fin de programme vide"); -// } -// -// if (periodBegin != null && periodEnd != null) { -// -// int size = getSampleMonths().size(); -// -// SampleMonth firstMonth = getSampleMonths().get(0); -// SampleMonth lastMonth = getSampleMonths().get(size-1); -// -// Date firstDate = DateUtils.createDate( -// 1, firstMonth.getPeriodMonth(), firstMonth.getPeriodYear()); -// -// if (periodBegin.after(firstDate) && firstMonth.getRealTidesValue() != 0) { -// sampleRowForm.recordError(programPeriodBegin, -// "Vous ne pouvez pas réduire la période du programme. " + -// "Il existe des enregistrements de marées réels."); -// } -// } -// return !sampleRowForm.getHasErrors(); -// } - /*************************** SAMPLE ROW ***********************************/ private String sampleRowId; @@ -532,13 +495,13 @@ try { // Only for save or programChanged (refreshMonths or searchProgram) if (!cancel && !edited) { - if (StringUtils.isEmpty(getProgram().getName())) { + if (StringUtils.isEmpty(getSampleRow().getProgramName())) { sampleRowForm.recordError(program, "Vous devez choisir un programme existant ou en créer un nouveau"); } - Date periodBegin = getProgram().getPeriodBegin(); - Date periodEnd = getProgram().getPeriodEnd(); + Date periodBegin = getSampleRow().getPeriodBegin(); + Date periodEnd = getSampleRow().getPeriodEnd(); // Validation for period dates if (periodBegin == null) { @@ -584,7 +547,7 @@ boats = serviceBoat.getBoats(immatriculations); // Update sampleRowCode from program only if changed } else if (isCreateMode()) { - String rowCode = getProgram().getNewSampleRowCode(); + String rowCode = serviceSampling.getNewSampleRowCode(periodBegin); getSampleRow().setCode(rowCode); } } @@ -605,21 +568,6 @@ return this; } if (!edited && !programChanged) { -// if (validateProgram()) { -// sampleRowForm.clearErrors(); -// Profession profession = getSampleRow().getProfession(); -// if (StringUtils.isEmpty(profession.getCodeDCF5())) { -// sampleRowForm.recordError( -// "Le métier doit obligatoirement avoir un Code DCF niveau 5"); -// } -// int nbZones = getSampleRow().sizeFishingZone(); -// if (nbZones == 0) { -// sampleRowForm.recordError(fishingZoneSelect, -// "Vous devez ajouter au moins une zone de pêche à la ligne"); -// } -// if (sampleRowForm.getHasErrors()) { -// return sampleRowForm; -// } // Save company Company company = getCompanySelectModel().findObject(companyId); @@ -633,17 +581,9 @@ getSampleRow().setSampleMonth(getSampleMonths()); -// try { -// List<Boat> boats = serviceBoat.getBoats(immatriculations); - serviceSampling.createUpdateSampleRow(sampleRow, boats); return SamplingPlan.class; -// } catch (SuiviObsmerBusinessException eee) { -// sampleRowForm.recordError(eee.getMessage()); -// log.error("BUSINESS ERROR : " + eee.getType() + " depuis " + eee.getServiceName()); -// } -// } } else { // Reinitialize professionId for select to avoid selection from existing Profession professionId = null; Deleted: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingHistoric.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingHistoric.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingHistoric.java 2010-01-12 14:33:15 UTC (rev 185) @@ -1,76 +0,0 @@ -/* - * *##% - * SuiviObsmer :: Web Interface - * Copyright (C) 2009 - 2010 Ifremer - * - * 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 Lesser 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>. - * ##%* - */ - -package fr.ifremer.suiviobsmer.ui.pages; - -import fr.ifremer.suiviobsmer.SuiviObsmerException; -import fr.ifremer.suiviobsmer.dto.SamplingHistoricRow; -import fr.ifremer.suiviobsmer.services.ServiceSampling; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.List; -import org.apache.tapestry5.annotations.IncludeStylesheet; -import org.apache.tapestry5.annotations.Property; -import org.apache.tapestry5.ioc.annotations.Inject; - -/** - * SamplingHistoric - * - * Created: 13 nov. 2009 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ - at IncludeStylesheet("context:css/sampling.css") -public class SamplingHistoric { - - @Inject - private ServiceSampling serviceSampling; - - private List<SamplingHistoricRow> historic; - - @Property - private SamplingHistoricRow historicRow; - - private DateFormat dateFormat; - - public List<SamplingHistoricRow> getHistoric() { - if (historic == null) { - try { - historic = serviceSampling.getHistoric(); - } catch (SuiviObsmerException eee) { - // errors - } - } - return historic; - } - - public DateFormat getDateFormat() { - if (dateFormat == null) { - dateFormat = new SimpleDateFormat("dd/MM/yyyy"); - } - return dateFormat; - } - -} Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingPlan.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingPlan.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingPlan.java 2010-01-12 14:33:15 UTC (rev 185) @@ -46,7 +46,6 @@ import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.upload.services.UploadedFile; import org.nuiton.util.PeriodDates; -import fr.ifremer.suiviobsmer.entity.Program; import org.slf4j.Logger; /** @@ -342,11 +341,10 @@ * @param rowIndex index of the row in the table * @throws SuiviObsmerException for a data problem */ - void onActionFromFilterProgramDates(int rowIndex) throws SuiviObsmerException { + void onActionFromFilterPeriodDates(int rowIndex) throws SuiviObsmerException { row = getData().get(rowIndex); - Program program = row.getProgram(); - period.setFromDate(program.getPeriodBegin()); - period.setThruDate(program.getPeriodEnd()); + period.setFromDate(row.getPeriodBegin()); + period.setThruDate(row.getPeriodEnd()); } void onActionFromDeleteSampleRow(int rowIndex) throws SuiviObsmerException { Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/ContactModelFactory.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/ContactModelFactory.java 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/ContactModelFactory.java 2010-01-12 14:33:15 UTC (rev 185) @@ -195,7 +195,7 @@ @Override public Object get(Object arg0) { Contact contact = (Contact)arg0; - return contact.getSampleRow().getProgram().getName(); + return contact.getSampleRow().getProgramName(); } @Override Modified: trunk/suiviobsmer-ui/src/main/webapp/Index.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/Index.tml 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/webapp/Index.tml 2010-01-12 14:33:15 UTC (rev 185) @@ -2,7 +2,7 @@ xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"> <t:loop t:source="newsList" value="news"> <div class="item"> - <p class="date">Publiée le <t:output value="news.date" format="dateFormat" /></p> + <p class="date">Publiée le <t:output value="news.topiaCreateDate" format="dateFormat" /></p> <h2>${news.title}</h2> <p class="content">${news.content}</p> </div> Modified: trunk/suiviobsmer-ui/src/main/webapp/SampleRowForm.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/SampleRowForm.tml 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/webapp/SampleRowForm.tml 2010-01-12 14:33:15 UTC (rev 185) @@ -80,7 +80,7 @@ <!-- DISPLAY PROGRAM --> <dl class="t-beandisplay"> <dt>Programme</dt> - <dd>${sampleRow.program.name}</dd> + <dd>${sampleRow.programName}</dd> </dl> <p:else> <!-- EDITION PROGRAM --> @@ -164,165 +164,4 @@ </form> </t:zone> - -<!-- - - <t:if t:test="createMode"> - <div t:type="zone" t:id="professionZone" class="formPart" id="so-samplerow-form-profession"> - <form t:type="form" t:id="professionForm" t:zone="so-samplerow-form-profession"> - <t:errors /> - <fieldset class="user-form"> - <legend>Métier</legend> - <div class="select"> - <t:label t:for="professionSelect" /> : - <input t:type="select" t:id="professionSelect" t:model="professionSelectModel" - t:value="professionId" /> - <input t:type="submit" class="ico search" t:id="searchProfession" value="Search" title="Afficher les détails de ce métier"/> - <input t:type="submit" class="ico add" t:id="addNewProfession" value="Ajouter un nouveau métier" /> - </div> - <div class="t-beaneditor"> - <t:beaneditor t:id="professionEditor" t:object="sampleRow.profession" - t:include="codeDCF5, meshSize, size, other, libelle, species" /> - </div> - <div class="t-beaneditor-row aright"> - <input t:type="submit" class="ico save" t:id="saveProfession" value="Save" title="Enregistrer les modifications concernant le métier"/> - </div> - </fieldset> - </form> - </div> - <p:else> - fieldset class="user-form"> - <legend>Métier</legend> - <div t:type="beandisplay" t:object="sampleRow.profession" - t:include="codeDCF5, meshSize, size, other, libelle, species" /> - </fieldset - </p:else> - </t:if> - <t:if t:test="createMode"> - <div t:type="zone" t:id="fishingZoneZone" class="formPart" id="so-samplerow-form-fishingzone"> - <form t:type="form" t:id="fishingZoneForm" t:zone="so-samplerow-form-fishingzone"> - <fieldset class="user-form"> - <legend>Zone de pêche</legend> - <div class="select"> - <t:label t:for="fishingZoneSelect" /> : - <input t:type="select" t:id="fishingZoneSelect" t:model="fishingZoneSelectModel" - t:value="fishingZoneId" /> - <input t:type="submit" class="ico add" t:id="addFishingZone" value="Add" title="Ajouter la zone sélectionnée à la ligne d'échantillonnage" /> - </div> - <div class="clearfix fishingzone-row" t:type="loop" volatile="true" t:source="fishingZones" t:value="fishingZone" t:index="indexFishingZone"> - <div class="fleft width50"> - <input t:type="submitContext" class="ico remove" t:context="indexFishingZone" - t:id="removeFishingZone" value="Remove" title="Retirer cette zone de la liste liée à la ligne d'échantillonnage"/> - </div> - <div class="fleft"> - ${fishingZone.code} - </div> - </div> - <div class="select"> - <t:label t:for="fishingZonesInfos" /> : - <input t:type="textfield" class="width300" t:id="fishingZonesInfos" value="sampleRow.fishingZonesInfos" /> - </div> - <div class="t-beaneditor-row aright"> - <input t:type="submit" class="ico save" t:id="saveFishingZones" value="Save" title="Enregistrer les modifications concernant les zones de pêche"/> - </div> - </fieldset> - </form> - </div> - TODO else show fishingZone + fishingZoneInfos - </t:if> - <div t:type="zone" t:id="periodZone" class="formPart" id="so-samplerow-form-period"> - <form t:type="form" t:id="periodForm" t:zone="so-samplerow-form-period"> - <fieldset class="user-form"> - <legend>Programme et données des marées par mois</legend> - <div class="select"> - <t:if t:test="createMode"> - <t:label t:for="program"/> : - <input t:type="select" t:id="program" t:model="programSelectModel" value="programId" /> - <input t:type="submit" class="ico search" t:id="searchProgram" value="Search" title="Afficher les détails du programme"/> - ou <input t:type="textfield" t:id="programName" value="programName" /> - <p:else> - Programme : ${sampleRow.program.name} - </p:else> - </t:if> - </div> - <div class="select"> - <t:label t:for="programPeriod"/> : - du <input t:type="datefield" t:id="programPeriod" value="period.fromDate" /> - jusqu'au <input t:type="datefield" t:id="programPeriodEnd" value="period.thruDate" /> - <input t:type="submit" class="ico refresh" t:id="refreshMonths" value="Refresh" title="Rafraîchir les mois"/> - </div> - <div class="acenter"> - <table id="so-samplerow-form-months"> - <tr class="firstRow"> - <td t:type="loop" t:source="months" t:value="month" volatile="true"> - <t:output value="month" format="dateFormat" /> - </td> - </tr> - <tr> - <td t:type="loop" class="acenter" volatile="true" t:source="sampleMonths" t:value="sampleMonth"> - <input t:type="textfield" class="width40" t:id="sampleMonth" value="sampleMonth.expectedTidesValue" /> - </td> - </tr> - </table> - </div> - <div class="t-beaneditor-row aright"> - <input t:type="submit" class="ico save" t:id="saveMonths" value="Save" title="Enregistrer le programme et les données des marées par mois"/> - </div> - </fieldset> - </form> - </div> - -div t:type="zone" t:id="sampleRowZone" class="formPart" id="so-samplerow-form-other" t:update="show" - <form t:type="form" t:id="sampleRowForm"> - <fieldset class="user-form"> - <legend>Autres données de la ligne d'échantillonnage</legend> - <div class="t-beaneditor"> - <t:beaneditor t:id="sampleRowEditor" t:object="sampleRow" - t:include="code, nbObservants, averageTideTime" t:add="company, boats, comment"> - <p:company> - <t:label t:for="company" /> - <input t:type="select" t:id="company" t:model="companySelectModel" value="companyId" /> - </p:company> - <p:boats> - <t:label t:for="boats" /> - <input t:type="textarea" t:id="boats" cols="50" rows="2" value="immatriculations" /> - </p:boats> - <p:comment> - <t:label t:for="comment" /> - <input t:type="textarea" t:id="comment" cols="50" rows="5" value="updateComment" /> - </p:comment> - </t:beaneditor> - </div> - <div class="t-beaneditor-row aright"> - <input t:type="submit" class="ico undo" t:id="cancelSave" value="Undo" title="Annuler toutes les modifications" /> - <input t:type="submit" class="ico save" t:id="saveSampleRow" value="Save" title="Valider les modifications et retourner au plan"/> - </div> - </fieldset> - </form> - /div - t:zone t:id="sampleRowZone"> - <form t:type="form" t:id="sampleRowForm" t:zone="sampleRowZone"> - <p> - - </p> - <div class="select"> - </div> - <div class="select"> - <t:label t:for="nbObservants"/> : - <input t:type="textfield" t:id="nbObservants" value="sampleRow.nbObservants" /> - </div> - <div class="select"> - <t:label t:for="averageTideTime"/> : - <input t:type="textfield" t:id="averageTideTime" value="sampleRow.averageTideTime" /> - </div> - <p> - - </p> - <p><t:label t:for="comment"/>* :</p> - <p> - - </p> - <input t:type="submit" class="ico undo" value="Undo" /> - </form> - </t:zone--> - </t:layout> \ No newline at end of file Deleted: trunk/suiviobsmer-ui/src/main/webapp/SamplingHistoric.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/SamplingHistoric.tml 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/webapp/SamplingHistoric.tml 2010-01-12 14:33:15 UTC (rev 185) @@ -1,16 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<t:layout t:pageTitle="Historique des plans d'échantillonnage" t:contentId="so-sampling-historic" - xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter"> - - <h1>Historique des plans d'échantillonnage</h1> - <hr /> - <t:loop t:source="historic" t:value="historicRow"> - <div class="row clearfix"> - <p class="date">Changement du <t:output value="historicRow.changeDate" format="dateFormat" /></p> - <p class="comment">${historicRow.comment}</p> - <p class="url"><a href="${historicRow.staticSamplingUrl}">Aperçu</a></p> - </div> - <hr /> - </t:loop> - -</t:layout> \ No newline at end of file Modified: trunk/suiviobsmer-ui/src/main/webapp/SamplingPlan.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/SamplingPlan.tml 2010-01-12 10:42:35 UTC (rev 184) +++ trunk/suiviobsmer-ui/src/main/webapp/SamplingPlan.tml 2010-01-12 14:33:15 UTC (rev 185) @@ -26,12 +26,12 @@ </div> <t:if t:test="user.admin"> <div class="actions fright"> - <span> +<!-- <span> <a t:type="pagelink" t:page="samplingHistoric"> <img src="${asset:context:}/img/clock.png" alt="Historique" title="Voir l'historique des plans d'échantillonnage"/> </a> - </span> + </span>--> <span> <a t:type="pagelink" t:page="sampleRowForm"> <img src="${asset:context:}/img/add-32px.png" alt="Ajouter" title="Ajouter une nouvelle ligne"/> @@ -63,8 +63,8 @@ <td>METIER<br />Autre info</td> <td>METIER<br />Libellé</td> <td>METIER<br />Espèces cibles</td> - <td>Début du programme</td> - <td class="bright">Fin du programme</td> + <td>Date de début</td> + <td class="bright">Date de fin</td> <p:else> <td>METIER<br />Code</td> <td class="bright">METIER<br />Libellé</td> @@ -95,13 +95,13 @@ </tr> </t:if> <tr class="${parityClass}"> - <td class="bleft">${row.code}</td> - <td class="width150"> - <a t:type="actionlink" t:id="filterProgramDates" t:context="rowIndex" - title="Changer les dates de la période par rapport à celles du programme"> - ${row.program.name} + <td class="bleft"> + <a t:type="actionlink" t:id="filterPeriodDates" t:context="rowIndex" + title="Changer les dates de la période par rapport à celles de la ligne"> + ${row.code} </a> </td> + <td class="width150">${row.programName}</td> <t:if t:test="user.admin"> <td>${companyName}</td> </t:if> @@ -114,8 +114,8 @@ <td>${row.profession.other}</td> <td>${row.profession.libelle}</td> <td>${row.profession.species}</td> - <td><t:output value="row.program.periodBegin" format="dateFormat" /></td> - <td class="bright"><t:output value="row.program.periodEnd" format="dateFormat" /></td> + <td><t:output value="row.periodBegin" format="dateFormat" /></td> + <td class="bright"><t:output value="row.periodEnd" format="dateFormat" /></td> <p:else> <td> <span t:type="ck/Tooltip" title="Infos" t:value="prop:row.fishingZonesInfos" t:effect="appear">