Author: bleny Date: 2010-11-10 20:04:41 +0000 (Wed, 10 Nov 2010) New Revision: 760 Log: add filter on target species Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties trunk/wao-business/src/main/xmi/wao.zargo trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SamplingPlan.properties trunk/wao-ui/src/main/webapp/SamplingPlan.tml Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2010-11-10 19:44:47 UTC (rev 759) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2010-11-10 20:04:41 UTC (rev 760) @@ -337,12 +337,17 @@ calendar.add(Calendar.MONTH, nbMonthsFinishedFromToday); query.addWhere(sampleRowProperty.periodEnd(), TopiaQuery.Op.GE, calendar.getTime()); } - + if (filter.getFishingGearDCF() != null) { query.addEquals(WaoQueryHelper.newDCFFiveCodeProperty().fishingGearDCF(), filter.getFishingGearDCF()); } + if (filter.getTargetSpeciesDCF() != null) { + query.addEquals(WaoQueryHelper.newDCFFiveCodeProperty().targetSpeciesDCF(), + filter.getTargetSpeciesDCF()); + } + if(logger.isDebugEnabled()) { logger.debug("sampling filter query " + query); } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2010-11-10 19:44:47 UTC (rev 759) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2010-11-10 20:04:41 UTC (rev 760) @@ -392,32 +392,23 @@ // builder.setFishingZoneProperty(fishingZoneProperty); // builder.applySamplingFilter(filter); + WaoQueryHelper.DCFFiveCodeProperty dcf5CodeProperty = WaoQueryHelper.newDCFFiveCodeProperty(); + // Add join for FishingZone TopiaQuery query = builder.applySamplingFilter(filter). addDistinct(). + setSelect(sampleRowProperty.$alias(), + fishingZoneProperty.facadeName(), + fishingZoneProperty.sectorName(), + fishingZoneProperty.districtCode()). addLeftJoin(sampleRowProperty.fishingZone(), fishingZoneProperty.$alias(), false). + addLeftJoin(sampleRowProperty.professionProperty().dcf5code(), dcf5CodeProperty.$alias(), false). // Order By facade, sector, districtCode, sampleRowCode addOrder(fishingZoneProperty.facadeName(), fishingZoneProperty.sectorName(), fishingZoneProperty.districtCode(), sampleRowProperty.code()); - - // Need fishingZone properties in Select to use them in orderBy -// addSelect(queryBuilder.getFacadeNameProperty(), -// queryBuilder.getSectorNameProperty(), -// queryBuilder.getFishingZoneDistrictProperty()); - - WaoQueryHelper.DCFFiveCodeProperty dcf5CodeProperty = WaoQueryHelper.newDCFFiveCodeProperty(); - query.addLeftJoin(sampleRowProperty.professionProperty().dcf5code(), - dcf5CodeProperty.$alias(), false); - - query.setSelect(sampleRowProperty.$alias(), - fishingZoneProperty.facadeName(), - fishingZoneProperty.sectorName(), - fishingZoneProperty.districtCode()); - query.addDistinct(); - if (log.isDebugEnabled()) { log.debug("Query : " + query); } @@ -481,8 +472,14 @@ WaoQueryHelper.SampleRowProperty sampleRowProperty = builder.initializeForSampleRow(false); + WaoQueryHelper.DCFFiveCodeProperty dcf5CodeProperty = + WaoQueryHelper.newDCFFiveCodeProperty(); + TopiaQuery query = builder.applySamplingFilter(filter). addDistinct(). + setSelect(sampleRowProperty.$alias()). + addLeftJoin(sampleRowProperty.professionProperty().dcf5code(), + dcf5CodeProperty.$alias(), false). addOrder(sampleRowProperty.code()); List<SampleRow> rows = dao.findAllByQuery(query); @@ -1094,4 +1091,15 @@ Set<String> result = new HashSet<String>(dcfGears); return result; } + + @Override + protected Set<String> executeGetDCFSpecies(TopiaContext transaction, SamplingFilter filter) throws Exception { + TopiaQuery query = WaoDAOHelper.getDCFFiveCodeDAO(transaction).createQuery(); + query.setSelect(DCFFiveCode.TARGET_SPECIES_DCF) + .addNotNull(DCFFiveCode.TARGET_SPECIES_DCF) + .addDistinct(); + List<String> dcfGears = transaction.findByQuery(query); + Set<String> result = new HashSet<String>(dcfGears); + return result; + } } Modified: trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties 2010-11-10 19:44:47 UTC (rev 759) +++ trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties 2010-11-10 20:04:41 UTC (rev 760) @@ -1,88 +1,64 @@ -# SURROUNDING NETS -DCF.gear.PS=With purse lines (purse seines) -DCF.gear.PS1=One boat operated purse seines -DCF.gear.PS2=Tow boats operated purse seines -DCF.gear.LA=Wihtout purse lines (lampara) - -# SEINE NETS -DCF.gear.SB=Beach seines -DCF.gear.SV=Boat or vessel seines -DCF.gear.SDN=Danish seines -DCF.gear.SSC=Scottish seines -DCF.gear.SPR=Pair seines -DCF.gear.SW=Seine nets (not specified) - -# TRAWLS -DCF.gear.TBB=Beam trawls -DCF.gear.OTB=Otter trawls -DCF.gear.OTM=Otter trawls -DCF.gear.OTT=Other twin trawls -DCF.gear.PT=Pair trawls (not specified) -DCF.gear.OT=Otter trawls (not specified) -DCF.gear.PTM=Pair trawls -DCF.gear.PTB=Pair trawls -DCF.gear.TBN=Nephrops trawls -DCF.gear.TBS=Shrimp trawls -DCF.gear.TMS=Shrimp trawls -DCF.gear.TB=Bottom trawls (not specified) -DCF.gear.TM=Midwater trawls (not specified) -DCF.gear.TX=Other trawls (not specified) - -# DREDGES DCF.gear.DRB=Boat dredges DCF.gear.DRH=Hand dredges - -# LIFT NETS -DCF.gear.LNP=Portable lift nets -DCF.gear.LNB=Boat-operated lift nets -DCF.gear.LNS=Shore-operated stationary lift nets -DCF.gear.LN=Lift nets (not specified) - -# FALLING GEAR +DCF.gear.FAR=Aerial traps DCF.gear.FCN=Cast nets DCF.gear.FG=Falling gear (not specified) - -# GILLNETS AND ENTANGLING NETS -DCF.gear.GNS=Set gillnets (anchored) -DCF.gear.GND=Driftnets -DCF.gear.GNC=Encircling gillnets -DCF.gear.GNF=Fixed gillnets -DCF.gear.GTR=Trammel nets -DCF.gear.GTN=Combined gillnets-trammel nets -DCF.gear.GEN=Gillnets and entangling nets (not specified) -DCF.gear.GN=Gillnets (not specified) - -# TRAPS +DCF.gear.FIX=Traps (not specified) DCF.gear.FPN=Stationary uncovered pound nets DCF.gear.FPO=Pots -DCF.gear.FYK=Fyke nets DCF.gear.FSN=Stow nets DCF.gear.FWR=Barriers, fences, weirs, etc. -DCF.gear.FAR=Aerial traps -DCF.gear.FIX=Traps (not specified) - -# LIGNES ET HAME\u00c7ONS -DCF.gear.LHP=Handlines and pole-lines (hand-operated) +DCF.gear.FYK=Fyke nets +DCF.gear.GEN=Gillnets and entangling nets (not specified) +DCF.gear.GN=Gillnets (not specified) +DCF.gear.GNC=Encircling gillnets +DCF.gear.GND=Driftnets +DCF.gear.GNF=Fixed gillnets +DCF.gear.GNS=Set gillnets (anchored) +DCF.gear.GTN=Combined gillnets-trammel nets +DCF.gear.GTR=Trammel nets +DCF.gear.HAR=Harpoons +DCF.gear.HMD=Mechanized dredges +DCF.gear.HMP=Pumps +DCF.gear.HMX=Harvesting machines (not specified) +DCF.gear.LA=Wihtout purse lines (lampara) DCF.gear.LHM=Handlines and pole-lines (mechanized) -DCF.gear.LLS=Set longlines -DCF.gear.LLD=Drifting longlines +DCF.gear.LHP=Handlines and pole-lines (hand-operated) DCF.gear.LL=Longlines (not specified) +DCF.gear.LLD=Drifting longlines +DCF.gear.LLS=Set longlines +DCF.gear.LN=Lift nets (not specified) +DCF.gear.LNB=Boat-operated lift nets +DCF.gear.LNP=Portable lift nets +DCF.gear.LNS=Shore-operated stationary lift nets DCF.gear.LTL=Trolling lines DCF.gear.LX=Hooks and lines (not specified) - -# GRAPPLING AND WOUNDING -DCF.gear.HAR=Harpoons - -# HARVESTING MACHINES -DCF.gear.HMP=Pumps -DCF.gear.HMD=Mechanized dredges -DCF.gear.HMX=Harvesting machines (not specified) - -# DIVERS DCF.gear.MIS=Miscellaneous -DCF.gear.RG=Recreational fishing gear DCF.gear.NK=Gear not know or not specified - +DCF.gear.OT=Otter trawls (not specified) +DCF.gear.OTB=Otter trawls +DCF.gear.OTM=Otter trawls +DCF.gear.OTT=Other twin trawls +DCF.gear.PS=With purse lines (purse seines) +DCF.gear.PS1=One boat operated purse seines +DCF.gear.PS2=Tow boats operated purse seines +DCF.gear.PT=Pair trawls (not specified) +DCF.gear.PTB=Pair trawls +DCF.gear.PTM=Pair trawls +DCF.gear.RG=Recreational fishing gear +DCF.gear.SB=Beach seines +DCF.gear.SDN=Danish seines +DCF.gear.SPR=Pair seines +DCF.gear.SSC=Scottish seines +DCF.gear.SV=Boat or vessel seines +DCF.gear.SW=Seine nets (not specified) +DCF.gear.TB=Bottom trawls (not specified) +DCF.gear.TBB=Beam trawls +DCF.gear.TBN=Nephrops trawls +DCF.gear.TBS=Shrimp trawls +DCF.gear.TM=Midwater trawls (not specified) +DCF.gear.TMS=Shrimp trawls +DCF.gear.TX=Other trawls (not specified) wao.business.bean.DataReliability.doubtful=doubtful wao.business.bean.DataReliability.not_reliable=not reliable wao.business.bean.DataReliability.reliable=reliable Modified: trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties 2010-11-10 19:44:47 UTC (rev 759) +++ trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties 2010-11-10 20:04:41 UTC (rev 760) @@ -1,147 +1,123 @@ -# FILETS TOURNANTS -DCF.gear.PS=Filets tournants avec coulisse (sennes coulissantes) -DCF.gear.PS1=Filets tournants, sennes coulissantes man\u0153uvr\u00e9es par un bateau -DCF.gear.PS2=Filets tournants, sennes coulissantes man\u0153uvr\u00e9es par deux bateaux -DCF.gear.LA=Filets tournants sans coulisse (filet lamparo) - -# SENNES -DCF.gear.SB=Sennes de plages -DCF.gear.SV=Sennes hal\u00e9es \u00e0 bord -DCF.gear.SDN=Sennes danoises -DCF.gear.SSC=Sennes \u00e9cossaises -DCF.gear.SPR=Sennes man\u0153uvr\u00e9es par deux bateaux -DCF.gear.SW=Sennes (non sp\u00e9cifi\u00e9es) - -# CHALUTS -DCF.gear.OTB=Chalut de fond \u00e0 panneaux -DCF.gear.OTM=Chaluts p\u00e9lagiques \u00e0 panneaux -DCF.gear.OTT=Chaluts jumeaux \u00e0 panneaux -DCF.gear.OT=Chaluts \u00e0 panneaux (non sp\u00e9cifi\u00e9) -DCF.gear.PT=Chalut-b\u0153ufs (non sp\u00e9cifi\u00e9) -DCF.gear.TBB=Chaluts \u00e0 perche -DCF.gear.PTM=Chalut-b\u0153ufs p\u00e9lagiques -DCF.gear.PTB=Chalut-b\u0153ufs de fond -DCF.gear.TBN=Chalut \u00e0 langoustines -DCF.gear.TBS=Chalut \u00e0 crevettes -DCF.gear.TMS=Chalut \u00e0 crevettes -DCF.gear.TB=Chalut de fond (non sp\u00e9cifi\u00e9) -DCF.gear.TM=Chalut p\u00e9lagique (non sp\u00e9cifi\u00e9) -DCF.gear.TX=Autre chalut (non sp\u00e9cifi\u00e9) - -# DRAGUES -DCF.gear.DRB=Dragues remorqu\u00e9es par bateau -DCF.gear.DRH=Dragues \u00e0 main - -# FILETS SOULEV\u00c9S -DCF.gear.LNP=Filets soulev\u00e9s portatifs -DCF.gear.LNB=Filets soulev\u00e9s man\u0153uvr\u00e9es du bateau -DCF.gear.LNS=Filets soulev\u00e9s fixes man\u0153uvr\u00e9es du rivage -DCF.gear.LN=Filets soulev\u00e9s (non sp\u00e9cifi\u00e9s) - -# ENGINS RETOMBANTS -DCF.gear.FCN=\u00c9perviers -DCF.gear.FG=Autres engins retombants (non-sp\u00e9cifi\u00e9s) - -# FILETS MAILLANTS ET FILETS EMMELANTS -DCF.gear.GNS=Filets maillants cal\u00e9s (ancr\u00e9s) -DCF.gear.GND=Filets maillants d\u00e9rivants (filets d\u00e9rivants) -DCF.gear.GNC=Filets maillants encerclants -DCF.gear.GNF=Filets maillants fixes (sur perches) -DCF.gear.GTR=Tr\u00e9mails -DCF.gear.GTN=Tr\u00e9mails et filets maillants combin\u00e9s -DCF.gear.GEN=Filets maillants et filets emm\u00e9lants (non sp\u00e9cifi\u00e9s) -DCF.gear.GN=Filets maillants (non sp\u00e9cifi\u00e9s) - -# PI\u00c8GES -DCF.gear.FPN=Filets-pi\u00e8ges fixes non couverts +DCF.gear.DRB=Dragues remorqu\u00E9es par bateau +DCF.gear.DRH=Dragues \u00E0 main +DCF.gear.FAR=Pi\u00E8ges a\u00E9riens +DCF.gear.FCN=\u00C9perviers +DCF.gear.FG=Autres engins retombants (non-sp\u00E9cifi\u00E9s) +DCF.gear.FIX=Pi\u00E8ges (non-sp\u00E9cifi\u00E9s) +DCF.gear.FPN=Filets-pi\u00E8ges fixes non couverts DCF.gear.FPO=Nasses (casiers) -DCF.gear.FYK=Verveux -DCF.gear.FSN=Filets \u00e0 l'\u00e9talage (diables) +DCF.gear.FSN=Filets \u00E0 l'\u00E9talage (diables) DCF.gear.FWR=Barrages, parcs, bordigues, etc. -DCF.gear.FAR=Pi\u00e8ges a\u00e9riens -DCF.gear.FIX=Pi\u00e8ges (non-sp\u00e9cifi\u00e9s) - -# LIGNES ET HAME\u00c7ONS -DCF.gear.LHP=Lignes \u00e0 main et lignes \u00e0 cannes -DCF.gear.LHM=Lignes \u00e0 main et lignes avec cannes -DCF.gear.LLS=Palangres cal\u00e9es ou semi-flottantes -DCF.gear.LLD=Palangres d\u00e9rivantes -DCF.gear.LL=Palangres (non sp\u00e9cifi\u00e9es) -DCF.gear.LTL=lignes de tra\u00eene -DCF.gear.LX=Hame\u00e7ons et lignes (non sp\u00e9cifi\u00e9s) - -# ENGINS DE P\u00caCHE PAR ACCROCHAGE OU PAR BLESSURE +DCF.gear.FYK=Verveux +DCF.gear.GEN=Filets maillants et filets emm\u00E9lants (non sp\u00E9cifi\u00E9s) +DCF.gear.GES=Tamis \u00E0 civelles +DCF.gear.GN=Filets maillants (non sp\u00E9cifi\u00E9s) +DCF.gear.GNC=Filets maillants encerclants +DCF.gear.GND=Filets maillants d\u00E9rivants (filets d\u00E9rivants) +DCF.gear.GNF=Filets maillants fixes (sur perches) +DCF.gear.GNS=Filets maillants cal\u00E9s (ancr\u00E9s) +DCF.gear.GTN=Tr\u00E9mails et filets maillants combin\u00E9s +DCF.gear.GTR=Tr\u00E9mails DCF.gear.HAR=Harpons - -# ENGINS DE R\u00c9COLTE +DCF.gear.HMD=Dragues m\u00E9canis\u00E9es DCF.gear.HMP=Pompes -DCF.gear.HMD=Dragues m\u00e9canis\u00e9es -DCF.gear.HMX=Engins de r\u00e9colte (non sp\u00e9cifi\u00e9s) - -# DIVERS +DCF.gear.HMX=Engins de r\u00E9colte (non sp\u00E9cifi\u00E9s) +DCF.gear.LA=Filets tournants sans coulisse (filet lamparo) +DCF.gear.LHM=Lignes \u00E0 main et lignes avec cannes +DCF.gear.LHP=Lignes \u00E0 main et lignes \u00E0 cannes +DCF.gear.LL=Palangres (non sp\u00E9cifi\u00E9es) +DCF.gear.LLD=Palangres d\u00E9rivantes +DCF.gear.LLS=Palangres cal\u00E9es ou semi-flottantes +DCF.gear.LN=Filets soulev\u00E9s (non sp\u00E9cifi\u00E9s) +DCF.gear.LNB=Filets soulev\u00E9s man\u0153uvr\u00E9es du bateau +DCF.gear.LNP=Filets soulev\u00E9s portatifs +DCF.gear.LNS=Filets soulev\u00E9s fixes man\u0153uvr\u00E9es du rivage +DCF.gear.LTL=lignes de tra\u00EEne +DCF.gear.LX=Hame\u00E7ons et lignes (non sp\u00E9cifi\u00E9s) DCF.gear.MIS=Divers -DCF.gear.RG=Engins de p\u00eache r\u00e9vr\u00e9ative -DCF.gear.NK=Engins inconnus ou non sp\u00e9cifi\u00e9s -DCF.gear.GES=Tamis \u00e0 civelles - -DCF.species.DEF=Esp\u00e8ces d\u00e9mersales -DCF.species.MOL=Mollusques -DCF.species.SPF=Petits p\u00e9lagiques -DCF.species.LPF=Grands p\u00e9lagiques -DCF.species.CRU=Crustac\u00e9s -DCF.species.CAT=Esp\u00e8ces catadromes -DCF.species.DWS=Esp\u00e8ces d'eaux profondes -DCF.species.FIN=Poisson plats +DCF.gear.NK=Engins inconnus ou non sp\u00E9cifi\u00E9s +DCF.gear.OT=Chaluts \u00E0 panneaux (non sp\u00E9cifi\u00E9) +DCF.gear.OTB=Chalut de fond \u00E0 panneaux +DCF.gear.OTM=Chaluts p\u00E9lagiques \u00E0 panneaux +DCF.gear.OTT=Chaluts jumeaux \u00E0 panneaux +DCF.gear.PS=Filets tournants avec coulisse (sennes coulissantes) +DCF.gear.PS1=Filets tournants, sennes coulissantes man\u0153uvr\u00E9es par un bateau +DCF.gear.PS2=Filets tournants, sennes coulissantes man\u0153uvr\u00E9es par deux bateaux +DCF.gear.PT=Chalut-b\u0153ufs (non sp\u00E9cifi\u00E9) +DCF.gear.PTB=Chalut-b\u0153ufs de fond +DCF.gear.PTM=Chalut-b\u0153ufs p\u00E9lagiques +DCF.gear.RG=Engins de p\u00EAche r\u00E9vr\u00E9ative +DCF.gear.SB=Sennes de plages +DCF.gear.SDN=Sennes danoises +DCF.gear.SPR=Sennes man\u0153uvr\u00E9es par deux bateaux +DCF.gear.SSC=Sennes \u00E9cossaises +DCF.gear.SV=Sennes hal\u00E9es \u00E0 bord +DCF.gear.SW=Sennes (non sp\u00E9cifi\u00E9es) +DCF.gear.TB=Chalut de fond (non sp\u00E9cifi\u00E9) +DCF.gear.TBB=Chaluts \u00E0 perche +DCF.gear.TBN=Chalut \u00E0 langoustines +DCF.gear.TBS=Chalut \u00E0 crevettes +DCF.gear.TM=Chalut p\u00E9lagique (non sp\u00E9cifi\u00E9) +DCF.gear.TMS=Chalut \u00E0 crevettes +DCF.gear.TX=Autre chalut (non sp\u00E9cifi\u00E9) DCF.species.ALG=Algues +DCF.species.CAT=Esp\u00E8ces catadromes +DCF.species.CRU=Crustac\u00E9s +DCF.species.DEF=Esp\u00E8ces d\u00E9mersales +DCF.species.DWS=Esp\u00E8ces d'eaux profondes +DCF.species.FIN=Poisson plats +DCF.species.LPF=Grands p\u00E9lagiques +DCF.species.MOL=Mollusques +DCF.species.SPF=Petits p\u00E9lagiques wao.business.bean.DataReliability.doubtful=douteuse wao.business.bean.DataReliability.not_reliable=non exploitable wao.business.bean.DataReliability.reliable=exploitable -wao.business.bean.DataReliability.unknown=non renseign\u00e9e -wao.business.bean.GlobalIndicatorValue.bad=P\u00e9nalit\u00e9 de niveau 1 +wao.business.bean.DataReliability.unknown=non renseign\u00E9e +wao.business.bean.GlobalIndicatorValue.bad=P\u00E9nalit\u00E9 de niveau 1 wao.business.bean.GlobalIndicatorValue.good=Bonus de niveau 1 wao.business.bean.GlobalIndicatorValue.neutral=Conforme au cahier des charges -wao.business.bean.GlobalIndicatorValue.very_bad=P\u00e9nalit\u00e9 de niveau 2 +wao.business.bean.GlobalIndicatorValue.very_bad=P\u00E9nalit\u00E9 de niveau 2 wao.business.bean.GlobalIndicatorValue.very_good=Bonus de niveau 2 -wao.business.bean.SynthesisId.allegro_reactivity=D\u00e9lais de transmission des donn\u00e9es -wao.business.bean.SynthesisId.compliance_boarding=Respect du nombre d'observateurs embarqu\u00e9s -wao.business.bean.SynthesisId.contact_state=\u00c9tats des contacts -wao.business.bean.SynthesisId.data_reliability=Qualit\u00e9 de la donn\u00e9e -wao.business.bean.SynthesisId.graph_boarding=Taux d'embarquement sur un m\u00eame navire conforme aux exigences -wao.business.bean.SynthesisId.graph_sampling=Taux de r\u00e9alisation du plan d'\u00e9chantillonage -wao.business.bean.SynthesisId.non_compliance_boarding=Non-respect du nombre d'observateurs embarqu\u00e9s -wao.error.boat.canCreateContact=Impossible de cr\u00e9er un nouveau contact pour la soci\u00e9t\u00e9 %1$s et le navire %2$s (%3$d) -wao.error.boat.getNbBoarding=Impossible de r\u00e9cup\u00e9rer le nombre d'embarquements r\u00e9els depuis le %1$s -wao.error.boatInfos.getNbBoardingForCompany=Impossible de r\u00e9cup\u00e9rer le nombre d'embarquements r\u00e9els depuis le %1$s pour la soci\u00e9t\u00e9 %2$s +wao.business.bean.SynthesisId.allegro_reactivity=D\u00E9lais de transmission des donn\u00E9es +wao.business.bean.SynthesisId.compliance_boarding=Respect du nombre d'observateurs embarqu\u00E9s +wao.business.bean.SynthesisId.contact_state=\u00C9tats des contacts +wao.business.bean.SynthesisId.data_reliability=Qualit\u00E9 de la donn\u00E9e +wao.business.bean.SynthesisId.graph_boarding=Taux d'embarquement sur un m\u00EAme navire conforme aux exigences +wao.business.bean.SynthesisId.graph_sampling=Taux de r\u00E9alisation du plan d'\u00E9chantillonage +wao.business.bean.SynthesisId.non_compliance_boarding=Non-respect du nombre d'observateurs embarqu\u00E9s +wao.error.boat.canCreateContact=Impossible de cr\u00E9er un nouveau contact pour la soci\u00E9t\u00E9 %1$s et le navire %2$s (%3$d) +wao.error.boat.getNbBoarding=Impossible de r\u00E9cup\u00E9rer le nombre d'embarquements r\u00E9els depuis le %1$s +wao.error.boatInfos.getNbBoardingForCompany=Impossible de r\u00E9cup\u00E9rer le nombre d'embarquements r\u00E9els depuis le %1$s pour la soci\u00E9t\u00E9 %2$s wao.error.context.close=Une erreur est survenue pendant la fermeture du contexte principale de ToPIA wao.error.context.encodeString= -wao.error.context.getRootContext=Une erreur est survenue pour la r\u00e9cup\u00e9ration du contexte principale de ToPIA +wao.error.context.getRootContext=Une erreur est survenue pour la r\u00E9cup\u00E9ration du contexte principale de ToPIA wao.error.context.parse=Une erreur est survenue pendant le chargement de la configuration du fichier %1$s wao.error.context.rollback=Une erreur est survenue pendant l'annulation de la transaction courante -wao.error.context.start=Une erreur est survenue pendant le d\u00e9marrage de l'application +wao.error.context.start=Une erreur est survenue pendant le d\u00E9marrage de l'application wao.error.context.stop=Une erreur est survenue pendant la fermeture de l'application -wao.error.sampleMonth.addRealTideTime=Impossible d'enregistrer le nombre de mar\u00e9es r\u00e9els pour le mois de %1$s [ligne \: %2$s] -wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire \u00e9crit par %1$s -wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de cr\u00e9er ou modifier les informations li\u00e9s au navire %1$d pour la soci\u00e9t\u00e9 %2$s -wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires s\u00e9lectionn\u00e9s +wao.error.sampleMonth.addRealTideTime=Impossible d'enregistrer le nombre de mar\u00E9es r\u00E9els pour le mois de %1$s [ligne \: %2$s] +wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire \u00E9crit par %1$s +wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de cr\u00E9er ou modifier les informations li\u00E9s au navire %1$d pour la soci\u00E9t\u00E9 %2$s +wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires s\u00E9lectionn\u00E9s wao.error.serviceBoat.getActivityCalendarLogAccessFile= wao.error.serviceBoat.getActivityCalendarLogFile= wao.error.serviceBoat.getBoat=Impossible de charger le navire -wao.error.serviceBoat.getBoatNamesStartWith=Impossible de r\u00e9cup\u00e9rer les navires avec un nom commencant par '%1$s' +wao.error.serviceBoat.getBoatNamesStartWith=Impossible de r\u00E9cup\u00E9rer les navires avec un nom commencant par '%1$s' wao.error.serviceBoat.getBoatsByFilter=Impossible de filtrer la liste des navires -wao.error.serviceBoat.getBoatsByImmatriculations=La cha\u00eene d'immatriculations est incorrect \! Chaque immatriculation doit poss\u00e9der 6 chiffres -wao.error.serviceBoat.getCompanyBoatInfos=Impossible de r\u00e9cup\u00e9rer les informations du navire immatricul\u00e9 %1$d pour la soci\u00e9t\u00e9 %2$s -wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activit\u00e9 du navire %1$s (%2$d) +wao.error.serviceBoat.getBoatsByImmatriculations=La cha\u00EEne d'immatriculations est incorrect \! Chaque immatriculation doit poss\u00E9der 6 chiffres +wao.error.serviceBoat.getCompanyBoatInfos=Impossible de r\u00E9cup\u00E9rer les informations du navire immatricul\u00E9 %1$d pour la soci\u00E9t\u00E9 %2$s +wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activit\u00E9 du navire %1$s (%2$d) wao.error.serviceBoat.getNbBoatsByFilter=Impossible de filtrer la liste des navires wao.error.serviceBoat.getShipOwnerNamesContains= -wao.error.serviceBoat.importActivityCalendarCsv=Probl\u00e8me d'import du fichier CSV des calendriers d'activit\u00e9 -wao.error.serviceBoat.importBoatCsv=Probl\u00e8me d'import du fichier CSV. V\u00e9rifiez l'en-t\u00eate du fichier \: [ NAVS_COD,CARN_NOM,CARN_LONGUEUR_HT,CARN_ANNEE,QUARTIER_IMMA,PER_COD,PER_NOM,PER_PRENOM,NAVS_ACTIVE ]. Voir documentation pour plus de d\u00e9tails. +wao.error.serviceBoat.importActivityCalendarCsv=Probl\u00E8me d'import du fichier CSV des calendriers d'activit\u00E9 +wao.error.serviceBoat.importBoatCsv=Probl\u00E8me d'import du fichier CSV. V\u00E9rifiez l'en-t\u00EAte du fichier \: [ NAVS_COD,CARN_NOM,CARN_LONGUEUR_HT,CARN_ANNEE,QUARTIER_IMMA,PER_COD,PER_NOM,PER_PRENOM,NAVS_ACTIVE ]. Voir documentation pour plus de d\u00E9tails. wao.error.serviceCartography.exportContactStatisticsKml= -wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonn\u00e9es des quartiers des navires. V\u00e9rifiez la documentation pour le bon format du fichier Kml. +wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonn\u00E9es des quartiers des navires. V\u00E9rifiez la documentation pour le bon format du fichier Kml. wao.error.serviceChart.getContactPieChartData= wao.error.serviceChart.getContactPieChartUrl= wao.error.serviceContact.exportContactCsv=Impossible d'exporter les contacts wao.error.serviceContact.getContacts=Impossible de filtrer la liste des contacts -wao.error.serviceContact.getNbContacts=Impossible de compter le nombre de contacts filtr\u00e9s +wao.error.serviceContact.getNbContacts=Impossible de compter le nombre de contacts filtr\u00E9s wao.error.serviceContact.getNewContact=Impossible d'instancier un nouveau contact wao.error.serviceContact.importContactCsv=Impossible d'importer les contacts wao.error.serviceContact.saveComment= @@ -149,54 +125,54 @@ wao.error.serviceContact.sendContactDoneEmail= wao.error.serviceContact.updateSampleMonthTidesValue= wao.error.serviceNews.getNewNews= -wao.error.serviceNews.getNews=Impossible de r\u00e9cup\u00e9rer l'ensemble des news +wao.error.serviceNews.getNews=Impossible de r\u00E9cup\u00E9rer l'ensemble des news wao.error.serviceNews.saveNews=Impossible d'enregistrer la news ayant pour titre '%1$s' wao.error.serviceReferential.getCodesDCF5Contains= wao.error.serviceReferential.getFacades=Impossible de charger la liste des facades -wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de p\u00eache -wao.error.serviceReferential.getProfessions=Impossible de charger la liste des m\u00e9tiers -wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de p\u00eache -wao.error.serviceReferential.importFishingZoneCsv=Probl\u00e8me d'import du fichier CSV. V\u00e9rifiez l'en-t\u00eate du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de d\u00e9tails. +wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de p\u00EAche +wao.error.serviceReferential.getProfessions=Impossible de charger la liste des m\u00E9tiers +wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de p\u00EAche +wao.error.serviceReferential.importFishingZoneCsv=Probl\u00E8me d'import du fichier CSV. V\u00E9rifiez l'en-t\u00EAte du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de d\u00E9tails. wao.error.serviceSampling.createSampleRowLog= -wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'\u00e9chantillon -wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'\u00e9chantillon \: %1$s -wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'\u00e9chantillonnage sur la p\u00e9riode du %1$s au %2$s +wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'\u00E9chantillon +wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'\u00E9chantillon \: %1$s +wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'\u00E9chantillonnage sur la p\u00E9riode du %1$s au %2$s wao.error.serviceSampling.getDCFGears= wao.error.serviceSampling.getDCFSpecies= wao.error.serviceSampling.getNewProfession= wao.error.serviceSampling.getNewSampleMonth= wao.error.serviceSampling.getNewSampleRow= -wao.error.serviceSampling.getNewSampleRowCode=Impossible de r\u00e9cup\u00e9rer un nouveau code pour une ligne d'\u00e9chantillonnage +wao.error.serviceSampling.getNewSampleRowCode=Impossible de r\u00E9cup\u00E9rer un nouveau code pour une ligne d'\u00E9chantillonnage wao.error.serviceSampling.getNewSampleRowLog= wao.error.serviceSampling.getPrograms=Impossible de charger la liste des programmes -wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'\u00e9chantillon ayant pour identifiant \: %1$s -wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'\u00e9chantillon ayant pour code %1$s -wao.error.serviceSampling.getSampleRowsByFilter=Impossible de r\u00e9cup\u00e9rer la liste des lignes du plan d'\u00e9chantillonnage -wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de r\u00e9cup\u00e9rer la liste des lignes du plan d'\u00e9chantillonnage -wao.error.serviceSampling.importSamplingPlanCsv=Erreur \u00e0 la ligne %1$d [CODE \= %2$s] +wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'\u00E9chantillon ayant pour identifiant \: %1$s +wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'\u00E9chantillon ayant pour code %1$s +wao.error.serviceSampling.getSampleRowsByFilter=Impossible de r\u00E9cup\u00E9rer la liste des lignes du plan d'\u00E9chantillonnage +wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de r\u00E9cup\u00E9rer la liste des lignes du plan d'\u00E9chantillonnage +wao.error.serviceSampling.importSamplingPlanCsv=Erreur \u00E0 la ligne %1$d [CODE \= %2$s] wao.error.serviceSynthesis.getAllIndicatorLogs= -wao.error.serviceSynthesis.getBoardingBoats=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es du graphique concernant les embarquements sur les navires +wao.error.serviceSynthesis.getBoardingBoats=Impossible de r\u00E9cup\u00E9rer les donn\u00E9es du graphique concernant les embarquements sur les navires wao.error.serviceSynthesis.getComplianceBoardingIndicator= -wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de r\u00e9cup\u00e9rer l'indicateur de r\u00e9activit\u00e9 sur les dates de saisies dans Allegro +wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de r\u00E9cup\u00E9rer l'indicateur de r\u00E9activit\u00E9 sur les dates de saisies dans Allegro wao.error.serviceSynthesis.getContactPieChartData= wao.error.serviceSynthesis.getContactPieChartDataByBoatDistrict= -wao.error.serviceSynthesis.getContactStateStatistics=Impossible de r\u00e9cup\u00e9rer les statistiques sur les \u00e9tats des contacts +wao.error.serviceSynthesis.getContactStateStatistics=Impossible de r\u00E9cup\u00E9rer les statistiques sur les \u00E9tats des contacts wao.error.serviceSynthesis.getDataReliability= -wao.error.serviceSynthesis.getDataSampling=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es pour le graphique dynamique des efforts de mar\u00e9es -wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es concernant les indicateurs pour la synth\u00e8se globale +wao.error.serviceSynthesis.getDataSampling=Impossible de r\u00E9cup\u00E9rer les donn\u00E9es pour le graphique dynamique des efforts de mar\u00E9es +wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de r\u00E9cup\u00E9rer les donn\u00E9es concernant les indicateurs pour la synth\u00E8se globale wao.error.serviceSynthesis.getGlobalSynthesisResult= -wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de r\u00e9cup\u00e9rer l'indicateur de non respect du nombre d'observateurs embarqu\u00e9s -wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre \u00e0 jour les param\u00e8tres de la synth\u00e8se globale +wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de r\u00E9cup\u00E9rer l'indicateur de non respect du nombre d'observateurs embarqu\u00E9s +wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre \u00E0 jour les param\u00E8tres de la synth\u00E8se globale wao.error.serviceUser.connect=Une erreur est survenue lors de la demande de connexion -wao.error.serviceUser.createDefaultAdmin=Impossible de cr\u00e9er l'administrateur par d\u00e9faut -wao.error.serviceUser.createUpdateCompany=Impossible de cr\u00e9er ou de mettre \u00e0 jour la soci\u00e9t\u00e9 -wao.error.serviceUser.createUpdateUser=Impossible de cr\u00e9er ou de mettre \u00e0 jour l'utilisateur +wao.error.serviceUser.createDefaultAdmin=Impossible de cr\u00E9er l'administrateur par d\u00E9faut +wao.error.serviceUser.createUpdateCompany=Impossible de cr\u00E9er ou de mettre \u00E0 jour la soci\u00E9t\u00E9 +wao.error.serviceUser.createUpdateUser=Impossible de cr\u00E9er ou de mettre \u00E0 jour l'utilisateur wao.error.serviceUser.deleteUser=Impossible de supprimer l'utilisateur wao.error.serviceUser.existLogin= wao.error.serviceUser.forgetPassword=Impossible d'envoyer le mail d'oubli de mot de passe -wao.error.serviceUser.getCompanies=Impossible de r\u00e9cup\u00e9rer la liste des soci\u00e9t\u00e9s +wao.error.serviceUser.getCompanies=Impossible de r\u00E9cup\u00E9rer la liste des soci\u00E9t\u00E9s wao.error.serviceUser.getCompany= wao.error.serviceUser.getNewUser=Impossible d'instancier un nouvel utilisateur -wao.error.serviceUser.getObservers=Impossible de r\u00e9cup\u00e9rer la liste des observateurs +wao.error.serviceUser.getObservers=Impossible de r\u00E9cup\u00E9rer la liste des observateurs wao.error.serviceUser.getUserRolesByLogin= -wao.error.serviceUser.getUsersByCompany=Impossible de r\u00e9cup\u00e9rer la liste des utilisateurs de la soci\u00e9t\u00e9 %1$s +wao.error.serviceUser.getUsersByCompany=Impossible de r\u00E9cup\u00E9rer la liste des utilisateurs de la soci\u00E9t\u00E9 %1$s Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java 2010-11-10 19:44:47 UTC (rev 759) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java 2010-11-10 20:04:41 UTC (rev 760) @@ -50,6 +50,8 @@ import java.util.ArrayList; import java.util.List; +import static org.nuiton.i18n.I18n._; + /** * AbstractFilteredPage * @@ -355,13 +357,28 @@ if (dcfGearSelectModel == null) { List<OptionModel> options = new ArrayList<OptionModel>(); for (String dcfGear : serviceSampling.getDCFGears(getFilter())) { - options.add(new OptionModelImpl(dcfGear + " description", dcfGear)); + options.add(new OptionModelImpl(dcfGear + " - " + + _("DCF.gear." + dcfGear), dcfGear)); } dcfGearSelectModel = new SelectModelImpl(null, options); } return dcfGearSelectModel; } + private SelectModel dcfSpeciesSelectModel; + + public SelectModel getDcfSpeciesSelectModel() throws WaoException { + if (dcfSpeciesSelectModel == null) { + List<OptionModel> options = new ArrayList<OptionModel>(); + for (String dcfSpecies : serviceSampling.getDCFSpecies(getFilter())) { + options.add(new OptionModelImpl(dcfSpecies + " - " + + _("DCF.species." + dcfSpecies), dcfSpecies)); + } + dcfSpeciesSelectModel = new SelectModelImpl(null, options); + } + return dcfSpeciesSelectModel; + } + protected abstract SamplingFilter getFilter() throws WaoException; /** Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SamplingPlan.properties =================================================================== --- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SamplingPlan.properties 2010-11-10 19:44:47 UTC (rev 759) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SamplingPlan.properties 2010-11-10 20:04:41 UTC (rev 760) @@ -31,5 +31,7 @@ facadeName-label: Fa\u00e7ade sectorName-label: Zone selectedSampleRow-label: Code ligne +fishingGearDCF-label: Engins code DCF +targetSpeciesDCF-label: Ensembles d\'esp\u00e8ces-cible code DCF sampleRow-delete-confirmMessage: \u00cates-vous s\u00fbr de vouloir supprimer d\u00e9finitivement la ligne %1$s du plan d\'\u00e9chantillonnage ? Modified: trunk/wao-ui/src/main/webapp/SamplingPlan.tml =================================================================== --- trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-11-10 19:44:47 UTC (rev 759) +++ trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-11-10 20:04:41 UTC (rev 760) @@ -116,11 +116,6 @@ </t:if> <t:label t:for="programName" /> : <select t:type="select" t:id="programName" t:model="programSelectModel" t:value="filter.programName" /> - <t:label t:for="codeDCF5" /> : - <input t:type="textfield" t:id="codeDCF5" value="filter.codeDCF5" t:mixins="Autocomplete"/> - - <t:label t:for="fishingGearDCF" /> : - <input t:type="select" t:id="fishingGearDCF" t:model="dcfGearSelectModel" value="filter.fishingGearDCF"/> </div> <div> <t:label t:for="facadeName" /> : @@ -140,7 +135,7 @@ <img src="${asset:context:img/add-16px.png}" /> </a> <ul> - <li t:type="loop" t:source="filter.sampleRows" t:value="row" t:index="sampleRowCodeIndex" t:volatile="true"> + <li style="display: inline;" t:type="loop" t:source="filter.sampleRows" t:value="row" t:index="sampleRowCodeIndex" t:volatile="true"> ${row.code} <a t:type="actionlink" t:id="removeSampleRowCode" t:context="sampleRowCodeIndex" title="Supprimer ce code de ligne" t:zone="so-sampling-sampleRowZone"> <img src="${asset:context:img/remove-22px.png}" /> @@ -150,6 +145,12 @@ </t:nuiton.subForm> </t:zone> </div> + <div> + <t:label t:for="fishingGearDCF" /> : + <input t:type="select" t:id="fishingGearDCF" t:model="dcfGearSelectModel" value="filter.fishingGearDCF"/> + <t:label t:for="targetSpeciesDCF" /> : + <input t:type="select" t:id="targetSpeciesDCF" t:model="dcfSpeciesSelectModel" value="filter.targetSpeciesDCF"/> + </div> <div class="t-beaneditor-row aright"> <input t:type="submit" class="ico search-32px" t:id="search" value="Search" title="Rechercher les lignes du plan correspondants aux filtres saisies" /> <input t:type="submit" class="ico undo" t:id="reset" value="Reset" title="Remettre les filtres par défaut" />