r2077 - in branches/wao-4.0-obsvente: wao-services/src/main/java/fr/ifremer/wao/services wao-services/src/main/java/fr/ifremer/wao/services/service wao-services/src/test/java/fr/ifremer/wao/services wao-web/src/main/java/fr/ifremer/wao/web wao-web/src/main/java/fr/ifremer/wao/web/action wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer wao-web/src/main/resources/fr/ifremer/wao/services/service wao-web/src/main/resources/fr/ifremer/wao/web/action wao-web/src/main/resources/fr/ifremer/wao/w
Author: bleny Date: 2014-06-20 17:20:22 +0200 (Fri, 20 Jun 2014) New Revision: 2077 Url: http://forge.codelutin.com/projects/wao/repository/revisions/2077 Log: refs #4493 synthesis for obsvente in branch, not working Added: branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/Synthesis.java branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/action/SynthesisAction.java branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/services/service/Synthesis-conversion.properties branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/web/action/SynthesisAction-conversion.properties branches/wao-4.0-obsvente/wao-web/src/main/webapp/WEB-INF/content/synthesis.jsp Removed: branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SynthesisAction.java branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/services/service/ObsMerSynthesis-conversion.properties branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/SynthesisAction-conversion.properties branches/wao-4.0-obsvente/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp Modified: branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/DefaultWaoServiceContext.java branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/WaoApplicationContext.java branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/WaoServiceContext.java branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/SynthesisService.java branches/wao-4.0-obsvente/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoApplicationContext.java branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/CacheInvalidationTopiaEntityListener.java branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java Modified: branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/DefaultWaoServiceContext.java =================================================================== --- branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/DefaultWaoServiceContext.java 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/DefaultWaoServiceContext.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -29,7 +29,7 @@ import fr.ifremer.wao.services.service.BoatsFilterValues; import fr.ifremer.wao.services.service.BoatsFilterValuesCacheKey; import fr.ifremer.wao.services.service.ObsMerSamplingPlan; -import fr.ifremer.wao.services.service.ObsMerSynthesis; +import fr.ifremer.wao.services.service.Synthesis; import fr.ifremer.wao.services.service.SamplingPlanCacheKey; import java.lang.reflect.Constructor; @@ -133,7 +133,7 @@ } @Override - public Cache<ContactsFilter, ObsMerSynthesis> getSynthesesCache() { + public Cache<ContactsFilter, Synthesis> getSynthesesCache() { return waoApplicationContext.getSynthesesCache(); } } Modified: branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/WaoApplicationContext.java =================================================================== --- branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/WaoApplicationContext.java 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/WaoApplicationContext.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -7,7 +7,7 @@ import fr.ifremer.wao.services.service.BoatsFilterValues; import fr.ifremer.wao.services.service.BoatsFilterValuesCacheKey; import fr.ifremer.wao.services.service.ObsMerSamplingPlan; -import fr.ifremer.wao.services.service.ObsMerSynthesis; +import fr.ifremer.wao.services.service.Synthesis; import fr.ifremer.wao.services.service.SamplingPlanCacheKey; import java.util.Date; @@ -39,6 +39,6 @@ Cache<BoatsFilterValuesCacheKey, BoatsFilterValues> getBoatsFilterValuesCache(); - Cache<ContactsFilter, ObsMerSynthesis> getSynthesesCache(); + Cache<ContactsFilter, Synthesis> getSynthesesCache(); } Modified: branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/WaoServiceContext.java =================================================================== --- branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/WaoServiceContext.java 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/WaoServiceContext.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -28,7 +28,7 @@ import fr.ifremer.wao.services.service.BoatsFilterValues; import fr.ifremer.wao.services.service.BoatsFilterValuesCacheKey; import fr.ifremer.wao.services.service.ObsMerSamplingPlan; -import fr.ifremer.wao.services.service.ObsMerSynthesis; +import fr.ifremer.wao.services.service.Synthesis; import fr.ifremer.wao.services.service.SamplingPlanCacheKey; import java.util.Date; @@ -60,5 +60,5 @@ Cache<BoatsFilterValuesCacheKey, BoatsFilterValues> getBoatsFilterValuesCache(); - Cache<ContactsFilter,ObsMerSynthesis> getSynthesesCache(); + Cache<ContactsFilter,Synthesis> getSynthesesCache(); } Added: branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java =================================================================== --- branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java (rev 0) +++ branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -0,0 +1,65 @@ +package fr.ifremer.wao.services.service; + +import com.google.common.collect.ImmutableSet; +import fr.ifremer.wao.ContactsFilter; +import fr.ifremer.wao.services.AuthenticatedWaoUser; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.time.DateUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.util.Calendar; +import java.util.Collection; +import java.util.Date; +import java.util.HashSet; + +public class ContactsService extends WaoServiceSupport { + + private static final Log log = LogFactory.getLog(ContactsService.class); + + public ContactsFilter newContactFilter(AuthenticatedWaoUser authenticatedWaoUser) { + + ContactsFilter newContactsFilter = new ContactsFilter(); + + newContactsFilter.getSampleRowFilter().setObsProgram(authenticatedWaoUser.getObsProgram()); + + // DO NOT REMOVE THIS + if (authenticatedWaoUser.isCoordinatorOrObserver()) { + String authenticatedWaoUserCompanyTopiaId = authenticatedWaoUser.getWaoUser().getCompany().getTopiaId(); + newContactsFilter.getSampleRowFilter().setCompanyIds(ImmutableSet.of(authenticatedWaoUserCompanyTopiaId)); + } + + Calendar periodFromCalendar = Calendar.getInstance(); + periodFromCalendar.setTime(serviceContext.getNow()); + + // in the firsts months of a new year go from now to 6 months before + // in the rest of the year, just start at the beginning of the current year + if (periodFromCalendar.get(Calendar.MONTH) < 3) { + periodFromCalendar.add(Calendar.MONTH, -6); + } else { + periodFromCalendar.set(Calendar.DAY_OF_YEAR, 1); + } + + Date periodFrom = periodFromCalendar.getTime(); + Date periodTo = DateUtils.addYears(periodFromCalendar.getTime(), 1); + + newContactsFilter.setPeriodFrom(periodFrom); + newContactsFilter.setPeriodTo(periodTo); + + if (authenticatedWaoUser.isProfessional()) { + // Pour le profesionnel, on restreint d'office à la liste des contacts portant sur les bateaux qu'il peut voir + Collection<String> canReadBoatsTopiaIds = authenticatedWaoUser.getWaoUser().getCanReadBoatsTopiaIds(); + if (CollectionUtils.isEmpty(canReadBoatsTopiaIds)) { + if (log.isWarnEnabled()) { + log.warn("user " + authenticatedWaoUser.getWaoUser() + " is professional but can't read any boat"); + } + } else { + newContactsFilter.getBoatFilter().setBoatIds(new HashSet<>(canReadBoatsTopiaIds)); + } + } + + return newContactsFilter; + + } + +} Modified: branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java =================================================================== --- branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -49,11 +49,9 @@ import fr.ifremer.wao.services.service.mail.AddBoatToUserAllegroWalletEmail; import fr.ifremer.wao.services.service.mail.EmailService; import fr.ifremer.wao.services.service.mail.MammalsObservationEmail; -import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.csv.AbstractImportErrorInfo; @@ -73,7 +71,6 @@ import org.nuiton.util.pagination.PaginationResult; import java.io.InputStream; -import java.util.Calendar; import java.util.Collection; import java.util.Date; import java.util.HashMap; @@ -85,7 +82,7 @@ import static org.nuiton.i18n.I18n.l; -public class ObsMerContactsService extends WaoServiceSupport { +public class ObsMerContactsService extends ContactsService { private static final Log log = LogFactory.getLog(ObsMerContactsService.class); @@ -137,51 +134,6 @@ return result; } - public ContactsFilter newContactFilter(AuthenticatedWaoUser authenticatedWaoUser) { - - ContactsFilter newContactsFilter = new ContactsFilter(); - - newContactsFilter.getSampleRowFilter().setObsProgram(authenticatedWaoUser.getObsProgram()); - - // DO NOT REMOVE THIS - if (authenticatedWaoUser.isCoordinatorOrObserver()) { - String authenticatedWaoUserCompanyTopiaId = authenticatedWaoUser.getWaoUser().getCompany().getTopiaId(); - newContactsFilter.getSampleRowFilter().setCompanyIds(ImmutableSet.of(authenticatedWaoUserCompanyTopiaId)); - } - - Calendar periodFromCalendar = Calendar.getInstance(); - periodFromCalendar.setTime(serviceContext.getNow()); - - // in the firsts months of a new year go from now to 6 months before - // in the rest of the year, just start at the beginning of the current year - if (periodFromCalendar.get(Calendar.MONTH) < 3) { - periodFromCalendar.add(Calendar.MONTH, -6); - } else { - periodFromCalendar.set(Calendar.DAY_OF_YEAR, 1); - } - - Date periodFrom = periodFromCalendar.getTime(); - Date periodTo = DateUtils.addYears(periodFromCalendar.getTime(), 1); - - newContactsFilter.setPeriodFrom(periodFrom); - newContactsFilter.setPeriodTo(periodTo); - - if (authenticatedWaoUser.isProfessional()) { - // Pour le profesionnel, on restreint d'office à la liste des contacts portant sur les bateaux qu'il peut voir - Collection<String> canReadBoatsTopiaIds = authenticatedWaoUser.getWaoUser().getCanReadBoatsTopiaIds(); - if (CollectionUtils.isEmpty(canReadBoatsTopiaIds)) { - if (log.isWarnEnabled()) { - log.warn("user " + authenticatedWaoUser.getWaoUser() + " is professional but can't read any boat"); - } - } else { - newContactsFilter.getBoatFilter().setBoatIds(new HashSet<>(canReadBoatsTopiaIds)); - } - } - - return newContactsFilter; - - } - public UpdateContactCommand newUpdateContactCommand(AuthenticatedWaoUser authenticatedWaoUser, Optional<String> optionalContactId) { //FIXME Should we apply some security rules (can create, update, import) ? Deleted: branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java =================================================================== --- branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -1,133 +0,0 @@ -package fr.ifremer.wao.services.service; - -import fr.ifremer.wao.entity.Boat; -import org.jfree.chart.JFreeChart; - -import java.util.HashMap; -import java.util.LinkedHashSet; -import java.util.Map; -import java.util.Set; -import java.util.TreeMap; - -public class ObsMerSynthesis { - - protected JFreeChart expectedVsActualObservationsByMonthsChart; - - protected JFreeChart boardingBoatsChart; - - protected int maxBoardingValue; - - protected Boat maxBoardingBoat; - - protected int boardingsCount; - - protected int invalidBoardingsCount; - - protected int validBoardingsCount; - - protected Map<String, CompanySynthesis> companySyntheses = new HashMap<>(); - - protected Set<String> sampleRowIds; - - public Map<String, CompanySynthesis> getCompanySyntheses() { - return companySyntheses; - } - - public JFreeChart getExpectedVsActualObservationsByMonthsChart() { - return expectedVsActualObservationsByMonthsChart; - } - - public void setExpectedVsActualObservationsByMonthsChart(JFreeChart expectedVsActualObservationsByMonthsChart) { - this.expectedVsActualObservationsByMonthsChart = expectedVsActualObservationsByMonthsChart; - } - - public JFreeChart getBoardingBoatsChart() { - return boardingBoatsChart; - } - - public void setBoardingBoatsChart(JFreeChart boardingBoatsChart) { - this.boardingBoatsChart = boardingBoatsChart; - } - - public int getMaxBoardingValue() { - return maxBoardingValue; - } - - public void setMaxBoardingValue(int maxBoardingValue) { - this.maxBoardingValue = maxBoardingValue; - } - - public Boat getMaxBoardingBoat() { - return maxBoardingBoat; - } - - public void setMaxBoardingBoat(Boat maxBoardingBoat) { - this.maxBoardingBoat = maxBoardingBoat; - } - - public int getBoardingsCount() { - return boardingsCount; - } - - public void setBoardingsCount(int boardingsCount) { - this.boardingsCount = boardingsCount; - } - - public int getInvalidBoardingsCount() { - return invalidBoardingsCount; - } - - public void setInvalidBoardingsCount(int invalidBoardingsCount) { - this.invalidBoardingsCount = invalidBoardingsCount; - } - - public int getValidBoardingsCount() { - return validBoardingsCount; - } - - public void setValidBoardingsCount(int validBoardingsCount) { - this.validBoardingsCount = validBoardingsCount; - } - - public Map<String, Double> getComplianceBoardingIndicator() { - Map<String, Double> complianceBoardingIndicator = new TreeMap(); - for (CompanySynthesis companySynthesis : companySyntheses.values()) { - complianceBoardingIndicator.put( - companySynthesis.getCompanyName(), - companySynthesis.getComplianceBoardingIndicator()); - } - return complianceBoardingIndicator; - } - - public void setSampleRowIds(Set<String> sampleRowIds) { - this.sampleRowIds = sampleRowIds; - } - - public Set<String> getSampleRowIds() { - return sampleRowIds; - } - - public CompanySynthesis getCompanySynthesis(String companyId) { - CompanySynthesis companySynthesis = companySyntheses.get(companyId); - if (companySynthesis == null) { - companySynthesis = new CompanySynthesis(); - companySynthesis.setCompanyId(companyId); - companySyntheses.put(companyId, companySynthesis); - } - return companySynthesis; - } - - public Set<CompanySynthesis> getCompanySynthesesOrderedByName() { - Map<String, CompanySynthesis> companySynthesesOrderedByName = new TreeMap(); - for (CompanySynthesis companySynthesis : companySyntheses.values()) { - companySynthesesOrderedByName.put( - companySynthesis.getCompanyName(), - companySynthesis); - } - return new LinkedHashSet<>(companySynthesesOrderedByName.values()); - } - - public boolean isEmpty() { - return companySyntheses.isEmpty(); - } -} Copied: branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/Synthesis.java (from rev 2075, branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSynthesis.java) =================================================================== --- branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/Synthesis.java (rev 0) +++ branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/Synthesis.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -0,0 +1,133 @@ +package fr.ifremer.wao.services.service; + +import fr.ifremer.wao.entity.Boat; +import org.jfree.chart.JFreeChart; + +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; + +public class Synthesis { + + protected JFreeChart expectedVsActualObservationsByMonthsChart; + + protected JFreeChart boardingBoatsChart; + + protected int maxBoardingValue; + + protected Boat maxBoardingBoat; + + protected int boardingsCount; + + protected int invalidBoardingsCount; + + protected int validBoardingsCount; + + protected Map<String, CompanySynthesis> companySyntheses = new HashMap<>(); + + protected Set<String> sampleRowIds; + + public Map<String, CompanySynthesis> getCompanySyntheses() { + return companySyntheses; + } + + public JFreeChart getExpectedVsActualObservationsByMonthsChart() { + return expectedVsActualObservationsByMonthsChart; + } + + public void setExpectedVsActualObservationsByMonthsChart(JFreeChart expectedVsActualObservationsByMonthsChart) { + this.expectedVsActualObservationsByMonthsChart = expectedVsActualObservationsByMonthsChart; + } + + public JFreeChart getBoardingBoatsChart() { + return boardingBoatsChart; + } + + public void setBoardingBoatsChart(JFreeChart boardingBoatsChart) { + this.boardingBoatsChart = boardingBoatsChart; + } + + public int getMaxBoardingValue() { + return maxBoardingValue; + } + + public void setMaxBoardingValue(int maxBoardingValue) { + this.maxBoardingValue = maxBoardingValue; + } + + public Boat getMaxBoardingBoat() { + return maxBoardingBoat; + } + + public void setMaxBoardingBoat(Boat maxBoardingBoat) { + this.maxBoardingBoat = maxBoardingBoat; + } + + public int getBoardingsCount() { + return boardingsCount; + } + + public void setBoardingsCount(int boardingsCount) { + this.boardingsCount = boardingsCount; + } + + public int getInvalidBoardingsCount() { + return invalidBoardingsCount; + } + + public void setInvalidBoardingsCount(int invalidBoardingsCount) { + this.invalidBoardingsCount = invalidBoardingsCount; + } + + public int getValidBoardingsCount() { + return validBoardingsCount; + } + + public void setValidBoardingsCount(int validBoardingsCount) { + this.validBoardingsCount = validBoardingsCount; + } + + public Map<String, Double> getComplianceBoardingIndicator() { + Map<String, Double> complianceBoardingIndicator = new TreeMap(); + for (CompanySynthesis companySynthesis : companySyntheses.values()) { + complianceBoardingIndicator.put( + companySynthesis.getCompanyName(), + companySynthesis.getComplianceBoardingIndicator()); + } + return complianceBoardingIndicator; + } + + public void setSampleRowIds(Set<String> sampleRowIds) { + this.sampleRowIds = sampleRowIds; + } + + public Set<String> getSampleRowIds() { + return sampleRowIds; + } + + public CompanySynthesis getCompanySynthesis(String companyId) { + CompanySynthesis companySynthesis = companySyntheses.get(companyId); + if (companySynthesis == null) { + companySynthesis = new CompanySynthesis(); + companySynthesis.setCompanyId(companyId); + companySyntheses.put(companyId, companySynthesis); + } + return companySynthesis; + } + + public Set<CompanySynthesis> getCompanySynthesesOrderedByName() { + Map<String, CompanySynthesis> companySynthesesOrderedByName = new TreeMap(); + for (CompanySynthesis companySynthesis : companySyntheses.values()) { + companySynthesesOrderedByName.put( + companySynthesis.getCompanyName(), + companySynthesis); + } + return new LinkedHashSet<>(companySynthesesOrderedByName.values()); + } + + public boolean isEmpty() { + return companySyntheses.isEmpty(); + } +} Modified: branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/SynthesisService.java =================================================================== --- branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/SynthesisService.java 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-services/src/main/java/fr/ifremer/wao/services/service/SynthesisService.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -46,55 +46,55 @@ public ContactsFilter newFilter(AuthenticatedWaoUser authenticatedWaoUser) { - ObsMerContactsService obsMerContactsService = newService(ObsMerContactsService.class); + ContactsService contactsService = newService(ObsMerContactsService.class); - ContactsFilter newFilter = obsMerContactsService.newContactFilter(authenticatedWaoUser); + ContactsFilter newFilter = contactsService.newContactFilter(authenticatedWaoUser); return newFilter; } - public ObsMerSynthesis getObsMerSynthesis(ContactsFilter filter) { + public Synthesis getObsMerSynthesis(ContactsFilter filter) { - Cache<ContactsFilter, ObsMerSynthesis> cache = serviceContext.getSynthesesCache(); + Cache<ContactsFilter, Synthesis> cache = serviceContext.getSynthesesCache(); - ObsMerSynthesis obsMerSynthesis = cache.getIfPresent(filter); + Synthesis synthesis = cache.getIfPresent(filter); - if (obsMerSynthesis == null) { + if (synthesis == null) { - obsMerSynthesis = new ObsMerSynthesis(); + synthesis = new Synthesis(); List<String> sampleRowsIds = getContactDao().getSampleRowsIds(filter); - obsMerSynthesis.setSampleRowIds(new HashSet<>(sampleRowsIds)); + synthesis.setSampleRowIds(new HashSet<>(sampleRowsIds)); - setExpectedVsActualObservationsByMonthsBarChartData(obsMerSynthesis, filter); + setExpectedVsActualObservationsByMonthsBarChartData(synthesis, filter); - setBoardingBoatsData(obsMerSynthesis, filter); + setBoardingBoatsData(synthesis, filter); - setComplianceBoardingIndicator(obsMerSynthesis, filter); + setComplianceBoardingIndicator(synthesis, filter); - setContactStatesStatistics(obsMerSynthesis, filter); + setContactStatesStatistics(synthesis, filter); - setDataInputDateReactivity(obsMerSynthesis, filter); + setDataInputDateReactivity(synthesis, filter); - setDataReliability(obsMerSynthesis, filter); + setDataReliability(synthesis, filter); - for (CompanySynthesis companySynthesis : obsMerSynthesis.getCompanySyntheses().values()) { + for (CompanySynthesis companySynthesis : synthesis.getCompanySyntheses().values()) { String companyId = companySynthesis.getCompanyId(); Company company = getCompanyDao().findByTopiaId(companyId); companySynthesis.setCompanyName(company.getName()); } - cache.put(filter, obsMerSynthesis); + cache.put(filter, synthesis); } - return obsMerSynthesis; + return synthesis; } - protected void setDataReliability(ObsMerSynthesis obsMerSynthesis, ContactsFilter filter) { + protected void setDataReliability(Synthesis synthesis, ContactsFilter filter) { ContactTopiaDao dao = getContactDao(); @@ -102,13 +102,13 @@ for (Map.Entry<String, Long> entry : reliableObservationsCount.entrySet()) { String companyId = entry.getKey(); - CompanySynthesis companySynthesis = obsMerSynthesis.getCompanySynthesis(companyId); + CompanySynthesis companySynthesis = synthesis.getCompanySynthesis(companyId); companySynthesis.setReliableObservationsCount(reliableObservationsCount.get(companyId)); } } - protected void setDataInputDateReactivity(ObsMerSynthesis obsMerSynthesis, ContactsFilter filter) { + protected void setDataInputDateReactivity(Synthesis synthesis, ContactsFilter filter) { ContactTopiaDao dao = getContactDao(); @@ -119,7 +119,7 @@ contactsDoneObservationBeginDateAndDateInputDate.asMap().entrySet()) { String companyId = entry.getKey(); - CompanySynthesis companySynthesis = obsMerSynthesis.getCompanySynthesis(companyId); + CompanySynthesis companySynthesis = synthesis.getCompanySynthesis(companyId); Collection<Pair<Date, Date>> dates = entry.getValue(); @@ -138,7 +138,7 @@ } - protected void setContactStatesStatistics(ObsMerSynthesis obsMerSynthesis, ContactsFilter filter) { + protected void setContactStatesStatistics(Synthesis synthesis, ContactsFilter filter) { ContactTopiaDao dao = getContactDao(); @@ -148,21 +148,21 @@ for (Map.Entry<String, Map<ContactState, Long>> entry : contactStatesStatistics.entrySet()) { String companyId = entry.getKey(); - CompanySynthesis companySynthesis = obsMerSynthesis.getCompanySynthesis(companyId); + CompanySynthesis companySynthesis = synthesis.getCompanySynthesis(companyId); companySynthesis.setContactsStatesStatistics(entry.getValue()); companySynthesis.setContactsCount(contactsCountsByCompany.get(companyId)); } } - protected void setComplianceBoardingIndicator(ObsMerSynthesis obsMerSynthesis, ContactsFilter filter) { + protected void setComplianceBoardingIndicator(Synthesis synthesis, ContactsFilter filter) { ContactTopiaDao dao = getContactDao(); Map<String, Double> complianceBoardingIndicator = dao.getComplianceBoardingIndicator(filter); for (Map.Entry<String, Double> entry : complianceBoardingIndicator.entrySet()) { - CompanySynthesis companySynthesis = obsMerSynthesis.getCompanySynthesis(entry.getKey()); + CompanySynthesis companySynthesis = synthesis.getCompanySynthesis(entry.getKey()); companySynthesis.setComplianceBoardingIndicator(entry.getValue()); } @@ -172,7 +172,7 @@ * Un graphique avec, pour chaque mois, deux barres qui représentent l'effort demandé * vs l'effort réalisé. */ - protected void setExpectedVsActualObservationsByMonthsBarChartData(ObsMerSynthesis obsMerSynthesis, ContactsFilter filter) { + protected void setExpectedVsActualObservationsByMonthsBarChartData(Synthesis synthesis, ContactsFilter filter) { Locale locale = serviceContext.getLocale(); @@ -227,7 +227,7 @@ JFreeChart expectedVsActualObservationsByMonthsChart = new JFreeChart(I18n.l(locale, SynthesisId.GRAPH_SAMPLING.getI18nKey()), JFreeChart.DEFAULT_TITLE_FONT, plot, true); - obsMerSynthesis.setExpectedVsActualObservationsByMonthsChart(expectedVsActualObservationsByMonthsChart); + synthesis.setExpectedVsActualObservationsByMonthsChart(expectedVsActualObservationsByMonthsChart); } @@ -242,7 +242,7 @@ * and for invalid boardings from 1 to {@code MAX_BOARDINGS}, the boat with * the max boarding and its value. */ - protected void setBoardingBoatsData(ObsMerSynthesis obsMerSynthesis, ContactsFilter filter) { + protected void setBoardingBoatsData(Synthesis synthesis, ContactsFilter filter) { Locale locale = serviceContext.getLocale(); @@ -319,11 +319,11 @@ } } - obsMerSynthesis.setMaxBoardingValue(maxBoardingCount); - obsMerSynthesis.setMaxBoardingBoat(maxBoardingBoat); - obsMerSynthesis.setBoardingsCount(boardingTotal); - obsMerSynthesis.setInvalidBoardingsCount(invalidBoardingTotal); - obsMerSynthesis.setValidBoardingsCount(boardingTotal - invalidBoardingTotal); + synthesis.setMaxBoardingValue(maxBoardingCount); + synthesis.setMaxBoardingBoat(maxBoardingBoat); + synthesis.setBoardingsCount(boardingTotal); + synthesis.setInvalidBoardingsCount(invalidBoardingTotal); + synthesis.setValidBoardingsCount(boardingTotal - invalidBoardingTotal); DefaultCategoryDataset dataset = new DefaultCategoryDataset(); @@ -350,7 +350,7 @@ JFreeChart boardingBoatsChart = new JFreeChart(I18n.l(locale, SynthesisId.GRAPH_BOARDING.getI18nKey()), JFreeChart.DEFAULT_TITLE_FONT, plot, true); - obsMerSynthesis.setBoardingBoatsChart(boardingBoatsChart); + synthesis.setBoardingBoatsChart(boardingBoatsChart); } } Modified: branches/wao-4.0-obsvente/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoApplicationContext.java =================================================================== --- branches/wao-4.0-obsvente/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoApplicationContext.java 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-services/src/test/java/fr/ifremer/wao/services/FakeWaoApplicationContext.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -12,7 +12,7 @@ import fr.ifremer.wao.services.service.BoatsFilterValuesCacheKey; import fr.ifremer.wao.services.service.InitWaoService; import fr.ifremer.wao.services.service.ObsMerSamplingPlan; -import fr.ifremer.wao.services.service.ObsMerSynthesis; +import fr.ifremer.wao.services.service.Synthesis; import fr.ifremer.wao.services.service.SamplingPlanCacheKey; import org.apache.commons.lang3.SystemUtils; import org.apache.commons.logging.Log; @@ -52,7 +52,7 @@ protected Cache<BoatsFilterValuesCacheKey, BoatsFilterValues> boatsFilterValuesCache; - protected Cache<ContactsFilter, ObsMerSynthesis> synthesisCache; + protected Cache<ContactsFilter, Synthesis> synthesisCache; public FakeWaoApplicationContext(String context, boolean initWithReferential) { this.context = context; @@ -261,7 +261,7 @@ } @Override - public Cache<ContactsFilter, ObsMerSynthesis> getSynthesesCache() { + public Cache<ContactsFilter, Synthesis> getSynthesesCache() { if (synthesisCache == null) { synthesisCache = CacheBuilder.newBuilder().build(); } Modified: branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/CacheInvalidationTopiaEntityListener.java =================================================================== --- branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/CacheInvalidationTopiaEntityListener.java 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/CacheInvalidationTopiaEntityListener.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -9,7 +9,7 @@ import fr.ifremer.wao.services.service.BoatsFilterValues; import fr.ifremer.wao.services.service.BoatsFilterValuesCacheKey; import fr.ifremer.wao.services.service.ObsMerSamplingPlan; -import fr.ifremer.wao.services.service.ObsMerSynthesis; +import fr.ifremer.wao.services.service.Synthesis; import fr.ifremer.wao.services.service.SamplingPlanCacheKey; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; @@ -36,7 +36,7 @@ protected Cache<BoatsFilterValuesCacheKey, BoatsFilterValues> boatsFilterValuesCache; - protected Cache<ContactsFilter, ObsMerSynthesis> synthesesCache; + protected Cache<ContactsFilter, Synthesis> synthesesCache; protected Set<String> dirtySampleRowIds = new HashSet<>(); @@ -53,7 +53,7 @@ public CacheInvalidationTopiaEntityListener( Cache<SamplingPlanCacheKey, ObsMerSamplingPlan> samplingPlansCache, Cache<BoatsFilterValuesCacheKey, BoatsFilterValues> boatsFilterValuesCache, - Cache<ContactsFilter, ObsMerSynthesis> synthesesCache) { + Cache<ContactsFilter, Synthesis> synthesesCache) { this.samplingPlansCache = samplingPlansCache; this.boatsFilterValuesCache = boatsFilterValuesCache; this.synthesesCache = synthesesCache; @@ -130,7 +130,7 @@ } samplingPlansCache.invalidateAll(samplingPlansCacheKeysToInvalidate); Set<ContactsFilter> synthesesCacheKeysToInvalidate = new HashSet<>(); - for (Map.Entry<ContactsFilter, ObsMerSynthesis> entry : synthesesCache.asMap().entrySet()) { + for (Map.Entry<ContactsFilter, Synthesis> entry : synthesesCache.asMap().entrySet()) { if (CollectionUtils.containsAny(entry.getValue().getSampleRowIds(), dirtySampleRowIds)) { synthesesCacheKeysToInvalidate.add(entry.getKey()); } Modified: branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java =================================================================== --- branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/DefaultWaoApplicationContext.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -36,7 +36,7 @@ import fr.ifremer.wao.services.service.BoatsFilterValuesCacheKey; import fr.ifremer.wao.services.service.InitWaoService; import fr.ifremer.wao.services.service.ObsMerSamplingPlan; -import fr.ifremer.wao.services.service.ObsMerSynthesis; +import fr.ifremer.wao.services.service.Synthesis; import fr.ifremer.wao.services.service.SamplingPlanCacheKey; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -71,7 +71,7 @@ protected Cache<BoatsFilterValuesCacheKey, BoatsFilterValues> boatsFilterValuesCache; - protected Cache<ContactsFilter, ObsMerSynthesis> synthesesCache; + protected Cache<ContactsFilter, Synthesis> synthesesCache; @Override public WaoApplicationConfig getApplicationConfig() { @@ -132,7 +132,7 @@ } @Override - public Cache<ContactsFilter, ObsMerSynthesis> getSynthesesCache() { + public Cache<ContactsFilter, Synthesis> getSynthesesCache() { if (synthesesCache == null) { synthesesCache = newCacheBuilder(100).expireAfterAccess(30, TimeUnit.DAYS).build(); } Modified: branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java =================================================================== --- branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -88,7 +88,7 @@ admin.getCompany().getTopiaId(); UserProfile userProfile = new UserProfileImpl(); userProfile.setUserRole(UserRole.ADMIN); - userProfile.setObsProgram(ObsProgram.OBSMER); + userProfile.setObsProgram(ObsProgram.OBSVENTE); userProfile.setCanWrite(true); AuthenticatedWaoUser authenticatedWaoUser = new AuthenticatedWaoUser(admin, userProfile); waoSession.setAuthenticatedWaoUser(authenticatedWaoUser); Copied: branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/action/SynthesisAction.java (from rev 2075, branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SynthesisAction.java) =================================================================== --- branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/action/SynthesisAction.java (rev 0) +++ branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/action/SynthesisAction.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -0,0 +1,67 @@ +package fr.ifremer.wao.web.action; + +import com.google.common.base.Objects; +import com.opensymphony.xwork2.Preparable; +import fr.ifremer.wao.ContactsFilter; +import fr.ifremer.wao.services.service.Synthesis; +import fr.ifremer.wao.services.service.SynthesisService; +import fr.ifremer.wao.web.WaoJspActionSupport; + +public class SynthesisAction extends WaoJspActionSupport implements Preparable { + + protected ContactsFilter filter; + + protected SynthesisService service; + + protected Synthesis synthesis; + + public void setService(SynthesisService service) { + this.service = service; + } + + public ContactsFilter getFilter() { + if (filter == null) { + prepare(); + } + return filter; + } + + @Override + public void prepare() { + + if (filter == null) { + filter = service.newFilter(getAuthenticatedWaoUser()); + } + + } + + @Override + public String execute() { + + filter = Objects.firstNonNull(session.getSynthesisFilter(), filter); + + return applyFilter(); + + } + + public String resetFilter() { + + filter = service.newFilter(getAuthenticatedWaoUser()); + + return applyFilter(); + + } + + public String applyFilter() { + + getSession().setSynthesisFilter(filter); + + synthesis = service.getObsMerSynthesis(filter); + + return SUCCESS; + } + + public Synthesis getSynthesis() { + return synthesis; + } +} Deleted: branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SynthesisAction.java =================================================================== --- branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SynthesisAction.java 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SynthesisAction.java 2014-06-20 15:20:22 UTC (rev 2077) @@ -1,67 +0,0 @@ -package fr.ifremer.wao.web.action.obsmer; - -import com.google.common.base.Objects; -import com.opensymphony.xwork2.Preparable; -import fr.ifremer.wao.ContactsFilter; -import fr.ifremer.wao.services.service.ObsMerSynthesis; -import fr.ifremer.wao.services.service.SynthesisService; -import fr.ifremer.wao.web.WaoJspActionSupport; - -public class SynthesisAction extends WaoJspActionSupport implements Preparable { - - protected ContactsFilter filter; - - protected SynthesisService service; - - protected ObsMerSynthesis synthesis; - - public void setService(SynthesisService service) { - this.service = service; - } - - public ContactsFilter getFilter() { - if (filter == null) { - prepare(); - } - return filter; - } - - @Override - public void prepare() { - - if (filter == null) { - filter = service.newFilter(getAuthenticatedWaoUser()); - } - - } - - @Override - public String execute() { - - filter = Objects.firstNonNull(session.getSynthesisFilter(), filter); - - return applyFilter(); - - } - - public String resetFilter() { - - filter = service.newFilter(getAuthenticatedWaoUser()); - - return applyFilter(); - - } - - public String applyFilter() { - - getSession().setSynthesisFilter(filter); - - synthesis = service.getObsMerSynthesis(filter); - - return SUCCESS; - } - - public ObsMerSynthesis getSynthesis() { - return synthesis; - } -} Deleted: branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/services/service/ObsMerSynthesis-conversion.properties =================================================================== --- branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/services/service/ObsMerSynthesis-conversion.properties 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/services/service/ObsMerSynthesis-conversion.properties 2014-06-20 15:20:22 UTC (rev 2077) @@ -1,2 +0,0 @@ -expectedVsActualObservationsByMonthsChart=fr.ifremer.wao.web.converter.JFreeChartToImgTagConverter -boardingBoatsChart=fr.ifremer.wao.web.converter.JFreeChartToImgTagConverter Copied: branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/services/service/Synthesis-conversion.properties (from rev 2075, branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/services/service/ObsMerSynthesis-conversion.properties) =================================================================== --- branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/services/service/Synthesis-conversion.properties (rev 0) +++ branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/services/service/Synthesis-conversion.properties 2014-06-20 15:20:22 UTC (rev 2077) @@ -0,0 +1,2 @@ +expectedVsActualObservationsByMonthsChart=fr.ifremer.wao.web.converter.JFreeChartToImgTagConverter +boardingBoatsChart=fr.ifremer.wao.web.converter.JFreeChartToImgTagConverter Copied: branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/web/action/SynthesisAction-conversion.properties (from rev 2075, branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/SynthesisAction-conversion.properties) =================================================================== --- branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/web/action/SynthesisAction-conversion.properties (rev 0) +++ branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/web/action/SynthesisAction-conversion.properties 2014-06-20 15:20:22 UTC (rev 2077) @@ -0,0 +1 @@ +filter=org.nuiton.web.struts2.converters.JsonConverter Deleted: branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/SynthesisAction-conversion.properties =================================================================== --- branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/SynthesisAction-conversion.properties 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-web/src/main/resources/fr/ifremer/wao/web/action/obsmer/SynthesisAction-conversion.properties 2014-06-20 15:20:22 UTC (rev 2077) @@ -1 +0,0 @@ -filter=org.nuiton.web.struts2.converters.JsonConverter Deleted: branches/wao-4.0-obsvente/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp =================================================================== --- branches/wao-4.0-obsvente/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp 2014-06-20 13:56:00 UTC (rev 2076) +++ branches/wao-4.0-obsvente/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp 2014-06-20 15:20:22 UTC (rev 2077) @@ -1,361 +0,0 @@ -<%-- - #%L - Wao :: Web - %% - Copyright (C) 2009 - 2014 Ifremer - %% - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - #L% - --%> -<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> -<%@taglib uri="/struts-tags" prefix="s" %> - -<content tag="synthesisMenuItemClass">active</content> - -<html> - - <head> - <title> - <s:text name="wao.ui.page.Synthesis.title"/> - </title> - - <script type="text/javascript"> - - $(document).ready(function() { - - var contactsFilterMappings = [ - <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies"> - { - filterName: 'sampleRowFilter.companyIds', - filterLabel: "<s:text name="wao.ui.entity.Company"/>", - filterValuesField: 'sampleRowsFilterValues.companies', - }, - </s:if> - { - filterName: 'sampleRowFilter.sampleRowCodes', - filterLabel: "<s:text name="wao.ui.field.SampleRow.code"/>", - filterValuesField: 'sampleRowsFilterValues.sampleRowCodes', - }, - { - filterName: 'sampleRowFilter.programNames', - filterLabel: "<s:text name="wao.ui.field.SampleRow.programName"/>", - filterValuesField: 'sampleRowsFilterValues.programNames', - }, - { - filterName: 'sampleRowFilter.fishingZoneFacadeNames', - filterLabel: "<s:text name="wao.ui.field.FishingZone.facadeName"/>", - filterValuesField: 'sampleRowsFilterValues.fishingZoneFacadeNames', - }, - { - filterName: 'sampleRowFilter.fishingZoneSectorNames', - filterLabel: "<s:text name="wao.ui.field.FishingZone.sectorName"/>", - filterValuesField: 'sampleRowsFilterValues.fishingZoneSectorNames', - }, - { - filterName: 'sampleRowFilter.fishingGearDcfIds', - filterLabel: "<s:text name="wao.ui.entity.fishingGearDCF"/>", - filterValuesField: 'sampleRowsFilterValues.fishingGearDcfs', - }, - { - filterName: 'sampleRowFilter.targetSpeciesDcfIds', - filterLabel: "<s:text name="wao.ui.entity.targetSpeciesDCF"/>", - filterValuesField: 'sampleRowsFilterValues.targetSpeciesDcfs', - }, - <s:if test="authenticatedWaoUser.authorizedToFilterOnBoats"> - { - filterName: 'boatFilter.boatIds', - filterLabel: "<s:text name="wao.ui.entity.Boat"/>", - filterValuesField: 'boatsFilterValues.boats', - minimumInputLength: 3 - }, - </s:if> - { - filterName: 'boatFilter.districtIds', - filterLabel: "<s:text name="wao.ui.field.Boat.district"/>", - filterValuesField: 'boatsFilterValues.districts' - }, - { - filterName: 'observerIds', - filterLabel: "<s:text name="wao.ui.misc.observer"/>", - filterValuesField: 'observers' - } - ]; - - filter = <s:property value="filter" escapeHtml="false"/>; - - contactsFilterController2 = new FilterController2(contactsFilterMappings, filter, WAO.OBSMER_CONTACTS_FILTER_VALUES_JSON_URL, $('#synthesis-filters-form fieldset.extra-filters')); - contactsFilterController2.init(); - - }); - - </script> - </head> - - <content tag="mainClass">large syntheses</content> - - <s:form method="GET" id="synthesis-filters-form" cssClass="filters-form"> - - <fieldset> - - <s:textfield name="filter.periodFrom" - label="%{getText('wao.ui.form.periodFrom')}" - placeholder="%{getFilterPeriodFromPlaceholder()}" - cssClass="input-small"/> - - <s:textfield name="filter.periodTo" - label="%{getText('wao.ui.form.period.to')}" - placeholder="%{getFilterPeriodToPlaceholder()}" - cssClass="input-small"/> - - <div title="<s:text name="wao.ui.form.filterOnObservationBeginDate.tooltip"/>"> - <s:checkbox name="filter.filterOnObservationBeginDate" - label="%{getText('wao.ui.form.filterOnObservationBeginDate')}"/> - </div> - - </fieldset> - - <fieldset class="extra-filters"> - - </fieldset> - - <fieldset> - - <s:checkbox name="filter.mammalsObservationOnly" - label="%{getText('wao.ui.misc.observations')}"/> - - <s:checkbox name="filter.mammalsCaptureOnly" - label="%{getText('wao.ui.field.Contact.mammalsCapture')}"/> - - <s:checkbox name="filter.commentDefinedOnly" - label="%{getText('wao.ui.field.Contact.comment')}"/> - - <s:checkbox name="filter.commentCompanyDefinedOnly" - label="%{getText('wao.ui.field.Contact.commentCompany')}"/> - - <s:checkbox name="filter.commentAdminDefinedOnly" - label="%{getText('wao.ui.field.Contact.commentAdmin')}"/> - - <s:checkbox name="filter.realVsEstimated" - label="%{getText('wao.ui.form.realTides.description')}"/> - - </fieldset> - - <div class="form-actions"> - - <s:submit type="button" action="synthesis!applyFilter" cssClass="btn btn-primary"> - <i class="icon-filter"></i> <s:text name="wao.ui.action.filter"/> - </s:submit> - - <s:submit type="button" action="synthesis!resetFilter" cssClass="btn"> - <i class="icon-trash"></i> <s:text name="wao.ui.action.reset"/> - </s:submit> - - </div> - - </s:form> - - <s:if test="synthesis.empty"> - <s:text name="wao.ui.synthesis.empty"/> - </s:if> - <s:else> - - <article> - <h2> - <s:text name="SynthesisId.GRAPH_SAMPLING"/> - </h2> - - <s:property value="synthesis.expectedVsActualObservationsByMonthsChart" escapeHtml="false"/> - </article> - - <article> - <h2> - <s:text name="SynthesisId.GRAPH_BOARDING"/> - </h2> - - <s:property value="synthesis.boardingBoatsChart" escapeHtml="false"/> - - <p> - <s:text name="wao.ui.synthesis.boarding.description"/> - </p> - - <p> - <s:text name="wao.ui.synthesis.boarding.mostUsedBoat"> - <s:param value="%{synthesis.maxBoardingValue}"/> - <s:param value="%{synthesis.maxBoardingBoat.name}"/> - <s:param value="%{synthesis.maxBoardingBoat.immatriculation}"/> - </s:text> - </p> - - <p> - <s:text name="wao.ui.synthesis.boarding.boardingCount"> - <s:param value="%{synthesis.invalidBoardingsCount}"/> - <s:param value="%{synthesis.boardingsCount}"/> - <%-- - <s:param value="%{synthesis.validBoardingsCount}"/> - --%> - </s:text> - </p> - - </article> - - <article> - <h2> - <s:text name="SynthesisId.IND_COMPLIANCE_BOARDING"/> - </h2> - - <table class="table"> - <thead> - <tr> - <th> - <s:text name="wao.ui.entity.Company"/> - </th> - <th> - <s:text name="wao.ui.synthesis.complianceBoarding.description"/> - </th> - </tr> - </thead> - <tbody> - <s:iterator value="synthesis.companySynthesesOrderedByName"> - <tr> - <td> - <s:property value="companyName"/> - </td> - <td> - <s:property value="complianceBoardingIndicator * 100"/> % - </td> - </tr> - </s:iterator> - </tbody> - </table> - - </article> - - <article> - <h2> - <s:text name="SynthesisId.IND_CONTACT_STATE"/> - </h2> - - <table class="table"> - <thead> - <tr> - <th> - <s:text name="wao.ui.entity.Company"/> - </th> - <s:iterator value="synthesis.companySynthesesOrderedByName.iterator.next().contactsStatesStatistics.keySet()" var="contactState"> - <th> - <s:text name="%{#contactState.i18nKey}"/> - </th> - </s:iterator> - <th> - <s:text name="wao.ui.misc.total"/> - </th> - </tr> - </thead> - <tbody> - <s:iterator value="synthesis.companySynthesesOrderedByName"> - <tr> - <td> - <s:property value="companyName"/> - </td> - <s:iterator value="contactsStatesStatistics"> - <td> - <s:property value="value"/> - <s:set name="percentage" value="%{value.doubleValue() / contactsCount * 100}" /> - (<s:property value="#percentage"/> %) - </td> - </s:iterator> - <td> - <s:property value="contactsCount"/> - </td> - </tr> - </s:iterator> - </tbody> - </table> - - </article> - - <article> - <h2> - <s:text name="SynthesisId.IND_ALLEGRO_REACTIVITY"/> - </h2> - - <table class="table"> - <thead> - <tr> - <th> - <s:text name="wao.ui.entity.Company"/> - </th> - <th> - <s:text name="wao.ui.synthesis.allegroReactivity.title"/> - </th> - </tr> - </thead> - <tbody> - <s:iterator value="synthesis.companySynthesesOrderedByName"> - <tr> - <td> - <s:property value="companyName"/> - </td> - <td<s:if test="dataInputDateReactivityHigh"> class="lower-than-expected"</s:if>> - <s:property value="dataInputDateReactivity"/> - <s:text name="wao.ui.unit.days"/> - </td> - </tr> - </s:iterator> - </tbody> - </table> - - <p> - <s:text name="wao.ui.synthesis.allegroReactivity.description"/> - </p> - - </article> - - <article> - - <h2> - <s:text name="SynthesisId.IND_DATA_RELIABILITY"/> - </h2> - - <table class="table"> - <thead> - <tr> - <th> - <s:text name="wao.ui.entity.Company"/> - </th> - <th> - <s:text name="wao.ui.synthesis.dataReliability.description"/> - </th> - </tr> - </thead> - <tbody> - <s:iterator value="synthesis.companySynthesesOrderedByName"> - <tr> - <td> - <s:property value="companyName"/> - </td> - <td> - <s:property value="dataReliabilityRatio * 100"/> % - </td> - </tr> - </s:iterator> - </tbody> - </table> - - </article> - - </s:else> - - -</html> Copied: branches/wao-4.0-obsvente/wao-web/src/main/webapp/WEB-INF/content/synthesis.jsp (from rev 2075, branches/wao-4.0-obsvente/wao-web/src/main/webapp/WEB-INF/content/obsmer/synthesis.jsp) =================================================================== --- branches/wao-4.0-obsvente/wao-web/src/main/webapp/WEB-INF/content/synthesis.jsp (rev 0) +++ branches/wao-4.0-obsvente/wao-web/src/main/webapp/WEB-INF/content/synthesis.jsp 2014-06-20 15:20:22 UTC (rev 2077) @@ -0,0 +1,369 @@ +<%-- + #%L + Wao :: Web + %% + Copyright (C) 2009 - 2014 Ifremer + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@taglib uri="/struts-tags" prefix="s" %> + +<content tag="synthesisMenuItemClass">active</content> + +<html> + + <head> + <title> + <s:text name="wao.ui.page.Synthesis.title"/> + </title> + + <script type="text/javascript"> + + $(document).ready(function() { + + var contactsFilterMappings = [ + <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies"> + { + filterName: 'sampleRowFilter.companyIds', + filterLabel: "<s:text name="wao.ui.entity.Company"/>", + filterValuesField: 'sampleRowsFilterValues.companies', + }, + </s:if> + { + filterName: 'sampleRowFilter.sampleRowCodes', + filterLabel: "<s:text name="wao.ui.field.SampleRow.code"/>", + filterValuesField: 'sampleRowsFilterValues.sampleRowCodes', + }, + { + filterName: 'sampleRowFilter.programNames', + filterLabel: "<s:text name="wao.ui.field.SampleRow.programName"/>", + filterValuesField: 'sampleRowsFilterValues.programNames', + }, + { + filterName: 'sampleRowFilter.fishingZoneFacadeNames', + filterLabel: "<s:text name="wao.ui.field.FishingZone.facadeName"/>", + filterValuesField: 'sampleRowsFilterValues.fishingZoneFacadeNames', + }, + { + filterName: 'sampleRowFilter.fishingZoneSectorNames', + filterLabel: "<s:text name="wao.ui.field.FishingZone.sectorName"/>", + filterValuesField: 'sampleRowsFilterValues.fishingZoneSectorNames', + }, + { + filterName: 'sampleRowFilter.fishingGearDcfIds', + filterLabel: "<s:text name="wao.ui.entity.fishingGearDCF"/>", + filterValuesField: 'sampleRowsFilterValues.fishingGearDcfs', + }, + { + filterName: 'sampleRowFilter.targetSpeciesDcfIds', + filterLabel: "<s:text name="wao.ui.entity.targetSpeciesDCF"/>", + filterValuesField: 'sampleRowsFilterValues.targetSpeciesDcfs', + }, + <s:if test="authenticatedWaoUser.authorizedToFilterOnBoats"> + { + filterName: 'boatFilter.boatIds', + filterLabel: "<s:text name="wao.ui.entity.Boat"/>", + filterValuesField: 'boatsFilterValues.boats', + minimumInputLength: 3 + }, + </s:if> + { + filterName: 'boatFilter.districtIds', + filterLabel: "<s:text name="wao.ui.field.Boat.district"/>", + filterValuesField: 'boatsFilterValues.districts' + }, + { + filterName: 'observerIds', + filterLabel: "<s:text name="wao.ui.misc.observer"/>", + filterValuesField: 'observers' + } + ]; + + filter = <s:property value="filter" escapeHtml="false"/>; + + contactsFilterController2 = new FilterController2(contactsFilterMappings, filter, WAO.OBSMER_CONTACTS_FILTER_VALUES_JSON_URL, $('#synthesis-filters-form fieldset.extra-filters')); + contactsFilterController2.init(); + + }); + + </script> + </head> + + <content tag="mainClass">large syntheses</content> + + <s:form method="GET" id="synthesis-filters-form" cssClass="filters-form"> + + <fieldset> + + <s:textfield name="filter.periodFrom" + label="%{getText('wao.ui.form.periodFrom')}" + placeholder="%{getFilterPeriodFromPlaceholder()}" + cssClass="input-small"/> + + <s:textfield name="filter.periodTo" + label="%{getText('wao.ui.form.period.to')}" + placeholder="%{getFilterPeriodToPlaceholder()}" + cssClass="input-small"/> + + <div title="<s:text name="wao.ui.form.filterOnObservationBeginDate.tooltip"/>"> + <s:checkbox name="filter.filterOnObservationBeginDate" + label="%{getText('wao.ui.form.filterOnObservationBeginDate')}"/> + </div> + + </fieldset> + + <fieldset class="extra-filters"> + + </fieldset> + + <fieldset> + + <s:checkbox name="filter.mammalsObservationOnly" + label="%{getText('wao.ui.misc.observations')}"/> + + <s:checkbox name="filter.mammalsCaptureOnly" + label="%{getText('wao.ui.field.Contact.mammalsCapture')}"/> + + <s:checkbox name="filter.commentDefinedOnly" + label="%{getText('wao.ui.field.Contact.comment')}"/> + + <s:checkbox name="filter.commentCompanyDefinedOnly" + label="%{getText('wao.ui.field.Contact.commentCompany')}"/> + + <s:checkbox name="filter.commentAdminDefinedOnly" + label="%{getText('wao.ui.field.Contact.commentAdmin')}"/> + + <s:checkbox name="filter.realVsEstimated" + label="%{getText('wao.ui.form.realTides.description')}"/> + + </fieldset> + + <div class="form-actions"> + + <s:submit type="button" action="synthesis!applyFilter" cssClass="btn btn-primary"> + <i class="icon-filter"></i> <s:text name="wao.ui.action.filter"/> + </s:submit> + + <s:submit type="button" action="synthesis!resetFilter" cssClass="btn"> + <i class="icon-trash"></i> <s:text name="wao.ui.action.reset"/> + </s:submit> + + </div> + + </s:form> + + <s:if test="synthesis.empty"> + <s:text name="wao.ui.synthesis.empty"/> + </s:if> + <s:else> + + <article> + <h2> + <s:text name="SynthesisId.GRAPH_SAMPLING"/> + </h2> + + <s:property value="synthesis.expectedVsActualObservationsByMonthsChart" escapeHtml="false"/> + </article> + + <article> + <h2> + <s:text name="SynthesisId.GRAPH_BOARDING"/> + </h2> + + <s:property value="synthesis.boardingBoatsChart" escapeHtml="false"/> + + <p> + <s:text name="wao.ui.synthesis.boarding.description"/> + </p> + + <p> + <s:text name="wao.ui.synthesis.boarding.mostUsedBoat"> + <s:param value="%{synthesis.maxBoardingValue}"/> + <s:param value="%{synthesis.maxBoardingBoat.name}"/> + <s:param value="%{synthesis.maxBoardingBoat.immatriculation}"/> + </s:text> + </p> + + <p> + <s:text name="wao.ui.synthesis.boarding.boardingCount"> + <s:param value="%{synthesis.invalidBoardingsCount}"/> + <s:param value="%{synthesis.boardingsCount}"/> + <%-- + <s:param value="%{synthesis.validBoardingsCount}"/> + --%> + </s:text> + </p> + + </article> + + <s:if test="obsMer"> + + <article> + <h2> + <s:text name="SynthesisId.IND_COMPLIANCE_BOARDING"/> + </h2> + + <table class="table"> + <thead> + <tr> + <th> + <s:text name="wao.ui.entity.Company"/> + </th> + <th> + <s:text name="wao.ui.synthesis.complianceBoarding.description"/> + </th> + </tr> + </thead> + <tbody> + <s:iterator value="synthesis.companySynthesesOrderedByName"> + <tr> + <td> + <s:property value="companyName"/> + </td> + <td> + <s:property value="complianceBoardingIndicator * 100"/> % + </td> + </tr> + </s:iterator> + </tbody> + </table> + + </article> + + </s:if> + + <article> + <h2> + <s:text name="SynthesisId.IND_CONTACT_STATE"/> + </h2> + + <table class="table"> + <thead> + <tr> + <th> + <s:text name="wao.ui.entity.Company"/> + </th> + <s:iterator value="synthesis.companySynthesesOrderedByName.iterator.next().contactsStatesStatistics.keySet()" var="contactState"> + <th> + <s:text name="%{#contactState.i18nKey}"/> + </th> + </s:iterator> + <th> + <s:text name="wao.ui.misc.total"/> + </th> + </tr> + </thead> + <tbody> + <s:iterator value="synthesis.companySynthesesOrderedByName"> + <tr> + <td> + <s:property value="companyName"/> + </td> + <s:iterator value="contactsStatesStatistics"> + <td> + <s:property value="value"/> + <s:set name="percentage" value="%{value.doubleValue() / contactsCount * 100}" /> + (<s:property value="#percentage"/> %) + </td> + </s:iterator> + <td> + <s:property value="contactsCount"/> + </td> + </tr> + </s:iterator> + </tbody> + </table> + + </article> + + <article> + <h2> + <s:text name="SynthesisId.IND_ALLEGRO_REACTIVITY"/> + </h2> + + <table class="table"> + <thead> + <tr> + <th> + <s:text name="wao.ui.entity.Company"/> + </th> + <th> + <s:text name="wao.ui.synthesis.allegroReactivity.title"/> + </th> + </tr> + </thead> + <tbody> + <s:iterator value="synthesis.companySynthesesOrderedByName"> + <tr> + <td> + <s:property value="companyName"/> + </td> + <td<s:if test="dataInputDateReactivityHigh"> class="lower-than-expected"</s:if>> + <s:property value="dataInputDateReactivity"/> + <s:text name="wao.ui.unit.days"/> + </td> + </tr> + </s:iterator> + </tbody> + </table> + + <p> + <s:text name="wao.ui.synthesis.allegroReactivity.description"/> + </p> + + </article> + + <s:if test="obsMer"> + + <article> + + <h2> + <s:text name="SynthesisId.IND_DATA_RELIABILITY"/> + </h2> + + <table class="table"> + <thead> + <tr> + <th> + <s:text name="wao.ui.entity.Company"/> + </th> + <th> + <s:text name="wao.ui.synthesis.dataReliability.description"/> + </th> + </tr> + </thead> + <tbody> + <s:iterator value="synthesis.companySynthesesOrderedByName"> + <tr> + <td> + <s:property value="companyName"/> + </td> + <td> + <s:property value="dataReliabilityRatio * 100"/> % + </td> + </tr> + </s:iterator> + </tbody> + </table> + + </article> + + </s:if> + + </s:else> + + +</html>
participants (1)
-
bleny@users.forge.codelutin.com