[Suiviobsmer-commits] r1168 - in trunk: wao-business/src/main/java/fr/ifremer/wao wao-business/src/main/java/fr/ifremer/wao/entity wao-business/src/main/java/fr/ifremer/wao/io/csv2/models wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/resources/i18n wao-business/src/test/java/fr/ifremer/wao/service wao-ui/src/main/java/fr/ifremer/wao/ui/components wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/java/fr/ifremer/wao/ui/services wao-ui/src/main/resources/fr/ifremer/wao/ui/
Author: bleny Date: 2011-04-11 09:16:57 +0000 (Mon, 11 Apr 2011) New Revision: 1168 Log: observer view in obsdeb sampling plan ; boats layout Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/SampleRowModelFactory.java trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.tml trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-04-11 09:16:57 UTC (rev 1168) @@ -393,6 +393,11 @@ query.addEquals(sampleRowProperty.observationUnit(), filter.getObservationUnit()); } + if (filter.getObserver() != null) { + query.addInElements(":sampleRowObserver", sampleRowProperty.observers()); + query.addParam("sampleRowObserver", filter.getObserver()); + } + if (logger.isDebugEnabled()) { logger.debug("sampling filter query " + query); } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2011-04-11 09:16:57 UTC (rev 1168) @@ -416,20 +416,24 @@ @Override public void setDCF5Code(String codes, String separatorRegex) { - String[] splitCodes = codes.split(separatorRegex); - List<DCF5Code> dcfFives = new ArrayList<DCF5Code>(splitCodes.length); - for (String code : splitCodes) { - String[] codeParts = code.split("_"); - DCF5Code dcfFive = new DCF5CodeImpl(); + if (StringUtils.isBlank(codes)) { + setDCF5Code(null); + } else { + String[] splitCodes = codes.split(separatorRegex); + List<DCF5Code> dcfFives = new ArrayList<DCF5Code>(splitCodes.length); + for (String code : splitCodes) { + String[] codeParts = code.split("_"); + DCF5Code dcfFive = new DCF5CodeImpl(); - dcfFive.setFishingGearDCF(new FishingGearDCFImpl(codeParts[0])); - if (codeParts.length == 2) { - dcfFive.setTargetSpeciesDCF(new TargetSpeciesDCFImpl(codeParts[1])); + dcfFive.setFishingGearDCF(new FishingGearDCFImpl(codeParts[0])); + if (codeParts.length == 2) { + dcfFive.setTargetSpeciesDCF(new TargetSpeciesDCFImpl(codeParts[1])); + } + + dcfFives.add(dcfFive); } - - dcfFives.add(dcfFive); + setDCF5Code(dcfFives); } - setDCF5Code(dcfFives); } @Override Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java 2011-04-11 09:16:57 UTC (rev 1168) @@ -420,7 +420,6 @@ protected void compareObservers() { Collection<WaoUser> oldObservers; - Collection<WaoUser> newObservers = newRow.getObservers(); if (oldRow == null) { oldObservers = Collections.emptyList(); @@ -428,6 +427,11 @@ oldObservers = oldRow.getObservers(); } + Collection<WaoUser> newObservers = newRow.getObservers(); + if (newObservers == null) { + newObservers = Collections.emptyList(); + } + List<String> removedObservers = new LinkedList<String>(); List<String> addedObservers = new LinkedList<String>(); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java 2011-04-11 09:16:57 UTC (rev 1168) @@ -131,7 +131,11 @@ @Override public String format(Company company) { - return company.getName(); + String companyName = ""; + if (company != null) { + companyName = company.getName(); + } + return companyName; } @Override @@ -139,10 +143,13 @@ if (indexedCompanies == null) { indexedCompanies = WaoUtils.projectPropertyUnique(companies, Company.PROPERTY_NAME); } - Company company = indexedCompanies.get(companyName.trim()); - if (company == null) { - throw new IllegalArgumentException("Il n'y a pas de société ayant pour nom '" - + companyName + "'"); + Company company = null; + if (StringUtils.isNotBlank(companyName)) { + company = indexedCompanies.get(companyName.trim()); + if (company == null) { + throw new IllegalArgumentException("Il n'y a pas de société ayant pour nom '" + + companyName + "'"); + } } return company; } 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 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-04-11 09:16:57 UTC (rev 1168) @@ -266,7 +266,9 @@ row.setDCF5Code(insertOrSelect(transaction, row.getDCF5Code())); } - updateElligibleBoats(transaction, row, boats); + if (row.getObsProgram() != ObsProgram.OBSDEB) { + updateElligibleBoats(transaction, row, boats); + } SampleRowDAO dao = WaoDAOHelper.getSampleRowDAO(transaction); @@ -1420,24 +1422,31 @@ protected SamplingFilter executeNewSamplingFilter(TopiaContext transaction, ConnectedUser connectedUser) { SamplingFilter samplingFilter = new SamplingFilterImpl(); - // 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 + // all users can see only rows for the program they are logged for + ObsProgram obsProgram = connectedUser.getProfile().getObsProgram(); + samplingFilter.setObsProgram(obsProgram); + + // We don't want to see all rows but the ones important for today Date fromDate = context.getCurrentDate(); Date toDate = context.getCurrentDate(); - if (DateUtil.getMonth(fromDate) < 3) { - fromDate = DateUtils.addMonths(fromDate, -6); - toDate = DateUtils.addMonths(toDate, 6); + if (connectedUser.isObsDeb() && connectedUser.isObserver()) { + // observer only need to see what he has to do in the next weeks + toDate = DateUtils.addMonths(toDate, 1); } else { - fromDate = DateUtil.setFirstDayOfYear(fromDate); - toDate = DateUtil.setLastDayOfYear(toDate); + // 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 (DateUtil.getMonth(fromDate) < 3) { + fromDate = DateUtils.addMonths(fromDate, -6); + toDate = DateUtils.addMonths(toDate, 6); + } else { + fromDate = DateUtil.setFirstDayOfYear(fromDate); + toDate = DateUtil.setLastDayOfYear(toDate); + } } fromDate = DateUtil.setMinTimeOfDay(fromDate); toDate = DateUtil.setMaxTimeOfDay(toDate); - ObsProgram obsProgram = connectedUser.getProfile().getObsProgram(); - samplingFilter.setObsProgram(obsProgram); - samplingFilter.setPeriod(new PeriodDates(fromDate, toDate)); samplingFilter.setEstimatedTides(true); @@ -1447,10 +1456,14 @@ samplingFilter.setCompany(connectedUser.getCompany()); } - if (ObsProgram.OBSDEB == obsProgram && connectedUser.isObserver()) { + if (connectedUser.isObsDeb() && connectedUser.isObserver()) { samplingFilter.setObserver(connectedUser.getUser()); } + if (connectedUser.isObsDeb() && connectedUser.isObserver()) { + samplingFilter.setOrderBy(SampleRow.PROPERTY_DAY); + } + return samplingFilter; } 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 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-04-11 09:16:57 UTC (rev 1168) @@ -1,168 +1,168 @@ ContactPieChartConstant.OTHER=Autres -ContactPieChartConstant.REALIZED=R\u00e9alis\u00e9s -ContactPieChartConstant.REFUSED=Refus\u00e9s -ContactState.CONTACT_DEFINITELY_REFUSED=Refus d\u00e9finitif +ContactPieChartConstant.REALIZED=R\u00E9alis\u00E9s +ContactPieChartConstant.REFUSED=Refus\u00E9s +ContactState.CONTACT_DEFINITELY_REFUSED=Refus d\u00E9finitif ContactState.CONTACT_REFUSED=Refus ContactState.CONTACT_START=Contact pris -ContactState.OBSERVATION_CANCELLED=Annul\u00e9e -ContactState.OBSERVATION_DONE=Observation r\u00e9alis\u00e9e -ContactState.OBSERVATION_EXPECTED=Observation programm\u00e9e -DataReliability.CORRECTION_ASKED=Correction demand\u00e9e +ContactState.OBSERVATION_CANCELLED=Annul\u00E9e +ContactState.OBSERVATION_DONE=Observation r\u00E9alis\u00E9e +ContactState.OBSERVATION_EXPECTED=Observation programm\u00E9e +DataReliability.CORRECTION_ASKED=Correction demand\u00E9e DataReliability.DOUBTFUL=Douteuse -DataReliability.NOT_PROVIDED=Non contr\u00f4l\u00e9e +DataReliability.NOT_PROVIDED=Non contr\u00F4l\u00E9e DataReliability.NOT_RELIABLE=Non exploitable DataReliability.RELIABLE=Exploitable DataReliability.UNKNOWN=Inconnue -GlobalIndicatorValue.BAD=P\u00e9nalit\u00e9 de niveau 1 +GlobalIndicatorValue.BAD=P\u00E9nalit\u00E9 de niveau 1 GlobalIndicatorValue.GOOD=Bonus de niveau 1 GlobalIndicatorValue.NEUTRAL=Conforme au cahier des charges -GlobalIndicatorValue.VERY_BAD=P\u00e9nalit\u00e9 de niveau 2 +GlobalIndicatorValue.VERY_BAD=P\u00E9nalit\u00E9 de niveau 2 GlobalIndicatorValue.VERY_GOOD=Bonus de niveau 2 -LocationType.AUCTION=Cri\u00e9e +LocationType.AUCTION=Cri\u00E9e LocationType.PORT=Port ObsProgram.OBSDEB=ObsDeb ObsProgram.OBSMER=ObsMer ObsProgram.OBSVENTE=ObsVente -SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultan\u00e9 \: Toutes esp\u00e8ces commerciales -SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00e9 \: esp\u00e8ces G1+G2 -SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00e9 \: esp\u00e8ces G1 -SamplingStrategy.SPECIFIC_STOCK=Stock sp\u00e9cifique -SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un m\u00eame navire conforme aux exigences -SynthesisId.GRAPH_SAMPLING=Taux de r\u00e9alisation du plan d'\u00e9chantillonage -SynthesisId.IND_ALLEGRO_REACTIVITY=D\u00e9lais de transmission des donn\u00e9es -SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqu\u00e9s -SynthesisId.IND_CONTACT_STATE=\u00c9tats des contacts -SynthesisId.IND_DATA_RELIABILITY=Qualit\u00e9 de la donn\u00e9e +SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultan\u00E9 \: Toutes esp\u00E8ces commerciales +SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1+G2 +SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1 +SamplingStrategy.SPECIFIC_STOCK=Stock sp\u00E9cifique +SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un m\u00EAme navire conforme aux exigences +SynthesisId.GRAPH_SAMPLING=Taux de r\u00E9alisation du plan d'\u00E9chantillonage +SynthesisId.IND_ALLEGRO_REACTIVITY=D\u00E9lais de transmission des donn\u00E9es +SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqu\u00E9s +SynthesisId.IND_CONTACT_STATE=\u00C9tats des contacts +SynthesisId.IND_DATA_RELIABILITY=Qualit\u00E9 de la donn\u00E9e UserRole.ADMIN=Administrateur UserRole.COORDINATOR=Coordinateur -UserRole.GUEST=Invit\u00e9 +UserRole.GUEST=Invit\u00E9 UserRole.OBSERVER=Observateur UserRole.PROFESSIONAL=Professionnel csv.import.error.missingMandatoryHeaders=Les champs obligatoires %s sont manquants -csv.import.error.unableToParseValue=Erreur lors de l'interpr\u00e9tation de la valeur '%s' (colonne '%s', ligne %s) -csv.import.error.unableToReadField=Impossible de lire la colonne '%s' \u00e0 la ligne %s +csv.import.error.unableToParseValue=Erreur lors de l'interpr\u00E9tation de la valeur '%s' (colonne '%s', ligne %s) +csv.import.error.unableToReadField=Impossible de lire la colonne '%s' \u00E0 la ligne %s csv.import.error.unableToReadLine=Impossible de lire la ligne %s -csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entit\u00e9 '%s', ligne %s) +csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entit\u00E9 '%s', ligne %s) csv.import.error.unrecognizedHeaders=Les champs %s ne sont pas reconnus. Les champs possibles sont %s. -fr.ifremer.wao.entity.FishingGearDCF.=Non sp\u00e9cifi\u00e9 -fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorqu\u00e9es par bateau -fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues \u00e0 main -fr.ifremer.wao.entity.FishingGearDCF.FAR=Pi\u00e8ges a\u00e9riens -fr.ifremer.wao.entity.FishingGearDCF.FCN=\u00c9perviers -fr.ifremer.wao.entity.FishingGearDCF.FG=Autres engins retombants (non-sp\u00e9cifi\u00e9s) -fr.ifremer.wao.entity.FishingGearDCF.FIX=Pi\u00e8ges (non-sp\u00e9cifi\u00e9s) -fr.ifremer.wao.entity.FishingGearDCF.FPN=Filets-pi\u00e8ges fixes non couverts +fr.ifremer.wao.entity.FishingGearDCF.=Non sp\u00E9cifi\u00E9 +fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorqu\u00E9es par bateau +fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues \u00E0 main +fr.ifremer.wao.entity.FishingGearDCF.FAR=Pi\u00E8ges a\u00E9riens +fr.ifremer.wao.entity.FishingGearDCF.FCN=\u00C9perviers +fr.ifremer.wao.entity.FishingGearDCF.FG=Autres engins retombants (non-sp\u00E9cifi\u00E9s) +fr.ifremer.wao.entity.FishingGearDCF.FIX=Pi\u00E8ges (non-sp\u00E9cifi\u00E9s) +fr.ifremer.wao.entity.FishingGearDCF.FPN=Filets-pi\u00E8ges fixes non couverts fr.ifremer.wao.entity.FishingGearDCF.FPO=Nasses (casiers) -fr.ifremer.wao.entity.FishingGearDCF.FSN=Filets \u00e0 l'\u00e9talage (diables) +fr.ifremer.wao.entity.FishingGearDCF.FSN=Filets \u00E0 l'\u00E9talage (diables) fr.ifremer.wao.entity.FishingGearDCF.FWR=Barrages, parcs, bordigues, etc. fr.ifremer.wao.entity.FishingGearDCF.FYK=Verveux -fr.ifremer.wao.entity.FishingGearDCF.GEN=Filets maillants et filets emm\u00e9lants (non sp\u00e9cifi\u00e9s) -fr.ifremer.wao.entity.FishingGearDCF.GES=Tamis \u00e0 civelles -fr.ifremer.wao.entity.FishingGearDCF.GN=Filets maillants (non sp\u00e9cifi\u00e9s) +fr.ifremer.wao.entity.FishingGearDCF.GEN=Filets maillants et filets emm\u00E9lants (non sp\u00E9cifi\u00E9s) +fr.ifremer.wao.entity.FishingGearDCF.GES=Tamis \u00E0 civelles +fr.ifremer.wao.entity.FishingGearDCF.GN=Filets maillants (non sp\u00E9cifi\u00E9s) fr.ifremer.wao.entity.FishingGearDCF.GNC=Filets maillants encerclants -fr.ifremer.wao.entity.FishingGearDCF.GND=Filets maillants d\u00e9rivants (filets d\u00e9rivants) +fr.ifremer.wao.entity.FishingGearDCF.GND=Filets maillants d\u00E9rivants (filets d\u00E9rivants) fr.ifremer.wao.entity.FishingGearDCF.GNF=Filets maillants fixes (sur perches) -fr.ifremer.wao.entity.FishingGearDCF.GNS=Filets maillants cal\u00e9s (ancr\u00e9s) -fr.ifremer.wao.entity.FishingGearDCF.GT=Tr\u00e9mailleurs -fr.ifremer.wao.entity.FishingGearDCF.GTN=Tr\u00e9mails et filets maillants combin\u00e9s -fr.ifremer.wao.entity.FishingGearDCF.GTR=Tr\u00e9mails +fr.ifremer.wao.entity.FishingGearDCF.GNS=Filets maillants cal\u00E9s (ancr\u00E9s) +fr.ifremer.wao.entity.FishingGearDCF.GT=Tr\u00E9mailleurs +fr.ifremer.wao.entity.FishingGearDCF.GTN=Tr\u00E9mails et filets maillants combin\u00E9s +fr.ifremer.wao.entity.FishingGearDCF.GTR=Tr\u00E9mails fr.ifremer.wao.entity.FishingGearDCF.HAR=Harpons -fr.ifremer.wao.entity.FishingGearDCF.HMD=Dragues m\u00e9canis\u00e9es +fr.ifremer.wao.entity.FishingGearDCF.HMD=Dragues m\u00E9canis\u00E9es fr.ifremer.wao.entity.FishingGearDCF.HMP=Pompes -fr.ifremer.wao.entity.FishingGearDCF.HMX=Engins de r\u00e9colte (non sp\u00e9cifi\u00e9s) +fr.ifremer.wao.entity.FishingGearDCF.HMX=Engins de r\u00E9colte (non sp\u00E9cifi\u00E9s) fr.ifremer.wao.entity.FishingGearDCF.LA=Filets tournants sans coulisse (filet lamparo) -fr.ifremer.wao.entity.FishingGearDCF.LHM=Lignes \u00e0 main et lignes avec cannes -fr.ifremer.wao.entity.FishingGearDCF.LHP=Lignes \u00e0 main et lignes \u00e0 cannes -fr.ifremer.wao.entity.FishingGearDCF.LL=Palangres (non sp\u00e9cifi\u00e9es) -fr.ifremer.wao.entity.FishingGearDCF.LLD=Palangres d\u00e9rivantes -fr.ifremer.wao.entity.FishingGearDCF.LLS=Palangres cal\u00e9es ou semi-flottantes -fr.ifremer.wao.entity.FishingGearDCF.LN=Filets soulev\u00e9s (non sp\u00e9cifi\u00e9s) -fr.ifremer.wao.entity.FishingGearDCF.LNB=Filets soulev\u00e9s man\u0153uvr\u00e9es du bateau -fr.ifremer.wao.entity.FishingGearDCF.LNP=Filets soulev\u00e9s portatifs -fr.ifremer.wao.entity.FishingGearDCF.LNS=Filets soulev\u00e9s fixes man\u0153uvr\u00e9es du rivage -fr.ifremer.wao.entity.FishingGearDCF.LTL=lignes de tra\u00eene -fr.ifremer.wao.entity.FishingGearDCF.LX=Hame\u00e7ons et lignes (non sp\u00e9cifi\u00e9s) +fr.ifremer.wao.entity.FishingGearDCF.LHM=Lignes \u00E0 main et lignes avec cannes +fr.ifremer.wao.entity.FishingGearDCF.LHP=Lignes \u00E0 main et lignes \u00E0 cannes +fr.ifremer.wao.entity.FishingGearDCF.LL=Palangres (non sp\u00E9cifi\u00E9es) +fr.ifremer.wao.entity.FishingGearDCF.LLD=Palangres d\u00E9rivantes +fr.ifremer.wao.entity.FishingGearDCF.LLS=Palangres cal\u00E9es ou semi-flottantes +fr.ifremer.wao.entity.FishingGearDCF.LN=Filets soulev\u00E9s (non sp\u00E9cifi\u00E9s) +fr.ifremer.wao.entity.FishingGearDCF.LNB=Filets soulev\u00E9s man\u0153uvr\u00E9es du bateau +fr.ifremer.wao.entity.FishingGearDCF.LNP=Filets soulev\u00E9s portatifs +fr.ifremer.wao.entity.FishingGearDCF.LNS=Filets soulev\u00E9s fixes man\u0153uvr\u00E9es du rivage +fr.ifremer.wao.entity.FishingGearDCF.LTL=lignes de tra\u00EEne +fr.ifremer.wao.entity.FishingGearDCF.LX=Hame\u00E7ons et lignes (non sp\u00E9cifi\u00E9s) fr.ifremer.wao.entity.FishingGearDCF.MIS=Divers -fr.ifremer.wao.entity.FishingGearDCF.NK=Engins inconnus ou non sp\u00e9cifi\u00e9s -fr.ifremer.wao.entity.FishingGearDCF.OT=Chaluts \u00e0 panneaux (non sp\u00e9cifi\u00e9) -fr.ifremer.wao.entity.FishingGearDCF.OTB=Chalut de fond \u00e0 panneaux -fr.ifremer.wao.entity.FishingGearDCF.OTM=Chaluts p\u00e9lagiques \u00e0 panneaux -fr.ifremer.wao.entity.FishingGearDCF.OTT=Chaluts jumeaux \u00e0 panneaux +fr.ifremer.wao.entity.FishingGearDCF.NK=Engins inconnus ou non sp\u00E9cifi\u00E9s +fr.ifremer.wao.entity.FishingGearDCF.OT=Chaluts \u00E0 panneaux (non sp\u00E9cifi\u00E9) +fr.ifremer.wao.entity.FishingGearDCF.OTB=Chalut de fond \u00E0 panneaux +fr.ifremer.wao.entity.FishingGearDCF.OTM=Chaluts p\u00E9lagiques \u00E0 panneaux +fr.ifremer.wao.entity.FishingGearDCF.OTT=Chaluts jumeaux \u00E0 panneaux fr.ifremer.wao.entity.FishingGearDCF.PS=Filets tournants avec coulisse (sennes coulissantes) -fr.ifremer.wao.entity.FishingGearDCF.PS1=Filets tournants, sennes coulissantes man\u0153uvr\u00e9es par un bateau -fr.ifremer.wao.entity.FishingGearDCF.PS2=Filets tournants, sennes coulissantes man\u0153uvr\u00e9es par deux bateaux -fr.ifremer.wao.entity.FishingGearDCF.PT=Chalut-b\u0153ufs (non sp\u00e9cifi\u00e9) +fr.ifremer.wao.entity.FishingGearDCF.PS1=Filets tournants, sennes coulissantes man\u0153uvr\u00E9es par un bateau +fr.ifremer.wao.entity.FishingGearDCF.PS2=Filets tournants, sennes coulissantes man\u0153uvr\u00E9es par deux bateaux +fr.ifremer.wao.entity.FishingGearDCF.PT=Chalut-b\u0153ufs (non sp\u00E9cifi\u00E9) fr.ifremer.wao.entity.FishingGearDCF.PTB=Chalut-b\u0153ufs de fond -fr.ifremer.wao.entity.FishingGearDCF.PTM=Chalut-b\u0153ufs p\u00e9lagiques -fr.ifremer.wao.entity.FishingGearDCF.RG=Engins de p\u00eache r\u00e9vr\u00e9ative +fr.ifremer.wao.entity.FishingGearDCF.PTM=Chalut-b\u0153ufs p\u00E9lagiques +fr.ifremer.wao.entity.FishingGearDCF.RG=Engins de p\u00EAche r\u00E9vr\u00E9ative fr.ifremer.wao.entity.FishingGearDCF.SB=Sennes de plages fr.ifremer.wao.entity.FishingGearDCF.SDN=Sennes danoises -fr.ifremer.wao.entity.FishingGearDCF.SPR=Sennes man\u0153uvr\u00e9es par deux bateaux -fr.ifremer.wao.entity.FishingGearDCF.SSC=Sennes \u00e9cossaises -fr.ifremer.wao.entity.FishingGearDCF.SV=Sennes hal\u00e9es \u00e0 bord -fr.ifremer.wao.entity.FishingGearDCF.SW=Sennes (non sp\u00e9cifi\u00e9es) -fr.ifremer.wao.entity.FishingGearDCF.TB=Chalut de fond (non sp\u00e9cifi\u00e9) -fr.ifremer.wao.entity.FishingGearDCF.TBB=Chaluts \u00e0 perche -fr.ifremer.wao.entity.FishingGearDCF.TBN=Chalut \u00e0 langoustines -fr.ifremer.wao.entity.FishingGearDCF.TBS=Chalut \u00e0 crevettes -fr.ifremer.wao.entity.FishingGearDCF.TM=Chalut p\u00e9lagique (non sp\u00e9cifi\u00e9) -fr.ifremer.wao.entity.FishingGearDCF.TMS=Chalut \u00e0 crevettes -fr.ifremer.wao.entity.FishingGearDCF.TX=Autre chalut (non sp\u00e9cifi\u00e9) -fr.ifremer.wao.entity.TargetSpeciesDCF.=Non sp\u00e9cifi\u00e9 +fr.ifremer.wao.entity.FishingGearDCF.SPR=Sennes man\u0153uvr\u00E9es par deux bateaux +fr.ifremer.wao.entity.FishingGearDCF.SSC=Sennes \u00E9cossaises +fr.ifremer.wao.entity.FishingGearDCF.SV=Sennes hal\u00E9es \u00E0 bord +fr.ifremer.wao.entity.FishingGearDCF.SW=Sennes (non sp\u00E9cifi\u00E9es) +fr.ifremer.wao.entity.FishingGearDCF.TB=Chalut de fond (non sp\u00E9cifi\u00E9) +fr.ifremer.wao.entity.FishingGearDCF.TBB=Chaluts \u00E0 perche +fr.ifremer.wao.entity.FishingGearDCF.TBN=Chalut \u00E0 langoustines +fr.ifremer.wao.entity.FishingGearDCF.TBS=Chalut \u00E0 crevettes +fr.ifremer.wao.entity.FishingGearDCF.TM=Chalut p\u00E9lagique (non sp\u00E9cifi\u00E9) +fr.ifremer.wao.entity.FishingGearDCF.TMS=Chalut \u00E0 crevettes +fr.ifremer.wao.entity.FishingGearDCF.TX=Autre chalut (non sp\u00E9cifi\u00E9) +fr.ifremer.wao.entity.TargetSpeciesDCF.=Non sp\u00E9cifi\u00E9 fr.ifremer.wao.entity.TargetSpeciesDCF.ALG=Algues -fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Esp\u00e8ces catadromes -fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustac\u00e9s +fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Esp\u00E8ces catadromes +fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustac\u00E9s fr.ifremer.wao.entity.TargetSpeciesDCF.CSJ=Coquilles Saint-Jacques -fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Esp\u00e8ces d\u00e9mersales -fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Esp\u00e8ces d'eaux profondes +fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Esp\u00E8ces d\u00E9mersales +fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Esp\u00E8ces d'eaux profondes fr.ifremer.wao.entity.TargetSpeciesDCF.FIN=Poisson plats -fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands p\u00e9lagiques +fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands p\u00E9lagiques fr.ifremer.wao.entity.TargetSpeciesDCF.MOL=Mollusques -fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits p\u00e9lagiques -wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut pr\u00e9ciser dans le commentaire administrateur pourquoi la donn\u00e9e est '%s' -wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut pr\u00e9ciser la qualit\u00e9 de la donn\u00e9e avant de valider +fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits p\u00E9lagiques +wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut pr\u00E9ciser dans le commentaire administrateur pourquoi la donn\u00E9e est '%s' +wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut pr\u00E9ciser la qualit\u00E9 de la donn\u00E9e avant de valider wao.business.entity.UserProfile.description=%s sur %s%s -wao.business.mammalsCapture.mail.message=Bonjour,\n\nUn observateur du programme Obsmer a renseign\u00e9 dans WAO l'information suivante \:\n\nMar\u00e9e \: %s\nM\u00e9tier \: %s\n\nCapture accidentelle \:\n%s\n\nCordialement,\n\nLe programme Obsmer\nhttp\://www.ifremer.fr/wao +wao.business.mammalsCapture.mail.message=Bonjour,\n\nUn observateur du programme Obsmer a renseign\u00E9 dans WAO l'information suivante \:\n\nMar\u00E9e \: %s\nM\u00E9tier \: %s\n\nCapture accidentelle \:\n%s\n\nCordialement,\n\nLe programme Obsmer\nhttp\://www.ifremer.fr/wao wao.business.mammalsCapture.mail.subject=Obsmer WAO\: Information sur capture accidentelle wao.business.other=Autre wao.business.readOnly=(lecture seule) -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.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.getPossibleValuesForFilter= 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.serviceBoat.newBoatFilter= wao.error.serviceCartography.exportContactMotifsStatisticsKml= 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.getContact=Impossible de trouver le contact 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.getPossibleValuesForFilter= wao.error.serviceContact.importContactCsv=Impossible d'importer les contacts @@ -173,7 +173,7 @@ wao.error.serviceContact.updateSampleMonthTidesValue= wao.error.serviceContact.validateContact= 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.getAllContactStateMotifs= wao.error.serviceReferential.getAllObservationUnits= @@ -181,72 +181,72 @@ wao.error.serviceReferential.getAllTerrestrialLocations= 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.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.getTerrestrialDistrict= wao.error.serviceReferential.importContactStateMotifs= -wao.error.serviceReferential.importDCFcodes=Impossible de cr\u00e9er le r\u00e9f\u00e9rentiel des codes DCF -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.importDCFcodes=Impossible de cr\u00E9er le r\u00E9f\u00E9rentiel des codes DCF +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.importInitialContactStateMotifs= wao.error.serviceReferential.importTerrestrialDivisions= wao.error.serviceReferential.importTerrestrialLocations= wao.error.serviceReferential.updateAllContactStatesMotifs= wao.error.serviceSampling.countSampleRows= 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.getPossibleValuesForFilter= 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.serviceSampling.newSamplingFilter= wao.error.serviceSampling.validateSampleRow= 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.getContactStateMotifsPieChartDataByBoatDistrict= -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.deleteCompany=Impossible de supprimer la soci\u00e9t\u00e9 ou de v\u00e9rifier les contraintes de suppression +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.deleteCompany=Impossible de supprimer la soci\u00E9t\u00E9 ou de v\u00E9rifier les contraintes de suppression 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.import.contact.failure.boatMissing=Il faut pr\u00e9ciser l'immatriculation du navire associ\u00e9 au contact -wao.import.contact.failure.locationTypeMissing=Le type du lieu doit \u00eatre renseign\u00e9 -wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associ\u00e9e +wao.error.serviceUser.getUsersByCompany=Impossible de r\u00E9cup\u00E9rer la liste des utilisateurs de la soci\u00E9t\u00E9 %1$s +wao.import.contact.failure.boatMissing=Il faut pr\u00E9ciser l'immatriculation du navire associ\u00E9 au contact +wao.import.contact.failure.locationTypeMissing=Le type du lieu doit \u00EAtre renseign\u00E9 +wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associ\u00E9e wao.import.contact.failure.terrestrialLocationMissing=Il manque le code du lieu wao.import.contact.failure.wrongBoat=Il n'y a pas de navire avec l'immatriculation '%s' wao.import.contact.failure.wrongSampleRowCode=Il n'y a pas de ligne du plan avec le code '%s' wao.import.contact.failure.wrongTerrestrialLocation=Il n'y a pas de lieu de type '%s' ayant pour code '%s' wao.import.failure.wrongUser=Il n'y a pas d'utilisateur ayant pour identifiant '%s' -wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut \u00eatre associ\u00e9 \u00e0 la ligne %s car il doit observer, le m\u00eame jour, pour la ligne %s +wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut \u00EAtre associ\u00E9 \u00E0 la ligne %s car il doit observer, le m\u00EAme jour, pour la ligne %s Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java 2011-04-11 09:16:57 UTC (rev 1168) @@ -351,7 +351,6 @@ } @Test - @Ignore("not yet implemented") public void observerCanReadSamplingPlan() throws IOException, WaoBusinessException { // first, the coordinator must add observers coordinatorCanAddObserversViaImport(); @@ -359,7 +358,7 @@ // as an observer, i can get the sampling plan ServiceSampling serviceSampling = manager.getServiceSampling(); - manager.setCurrentDate(DateUtil.createDate(25, 1, 2010)); + manager.setCurrentDate(DateUtil.createDate(10, 2, 2010)); SamplingFilter samplingFilter = serviceSampling.newSamplingFilter(joshAsObserver()); Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java 2011-04-11 09:16:57 UTC (rev 1168) @@ -126,4 +126,14 @@ public String getLegendMsg() { return legendMsg; } + + public String getFormatForPeriod() { + String format; + if (getUser().isObsDeb()) { + format = "dd/MM/yyyy"; + } else { + format = "MM/yyyy"; + } + return format; + } } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-04-11 09:16:57 UTC (rev 1168) @@ -50,6 +50,8 @@ import java.io.IOException; import java.io.InputStream; +import java.text.DateFormat; +import java.text.SimpleDateFormat; @RequiresAuthentication(allowedPrograms = {ObsProgram.OBSDEB}) public class ObsDebSamplingPlan { @@ -65,6 +67,15 @@ @Inject private ServiceSampling serviceSampling; + private DateFormat dateFormat; + + public DateFormat getDateFormat() { + if (dateFormat == null) { + dateFormat = new SimpleDateFormat("dd/MM/YYYY"); + } + return dateFormat; + } + /********* Session ************/ @SessionState @@ -76,17 +87,17 @@ @Persist private Boolean showFilters; - @InjectComponent - private Zone filtersZone; +// @InjectComponent +// private Zone filtersZone; @Persist private Boolean showImportExport; - @InjectComponent - private Zone importExportZone; +// @InjectComponent +// private Zone importExportZone; @InjectComponent - private SamplingFilterComponent filterComponent; + private SamplingFilterComponent samplingFilter; public ServiceSampling getServiceSampling() { return serviceSampling; @@ -94,7 +105,7 @@ public boolean getShowFilters() { if (showFilters == null) { - showFilters = filterComponent.getFilter().isPeriodFilteredOnly(); + showFilters = samplingFilter.getFilter().isPeriodFilteredOnly(); } return showFilters; } @@ -108,12 +119,14 @@ public Zone onActionFromShowFilters() { showFilters = ! getShowFilters(); - return filtersZone; + //return filtersZone; + return null; } public Zone onActionFromShowImportExport() { showImportExport = ! getShowImportExport(); - return importExportZone; + //return importExportZone; + return null; } /********* GRID ********/ @@ -125,7 +138,7 @@ public GridDataSource getSampleRows() { if (sampleRows == null) { - sampleRows = new SampleRowDataSource(filterComponent.getFilter(), serviceSampling); + sampleRows = new SampleRowDataSource(samplingFilter.getFilter(), serviceSampling); } return sampleRows; } @@ -166,7 +179,7 @@ public InputStream getStream() throws IOException { InputStream csv = null; try { - csv = serviceSampling.exportSamplingPlanCsv(connectedUser, filterComponent.getFilter()); + csv = serviceSampling.exportSamplingPlanCsv(connectedUser, samplingFilter.getFilter()); } catch (WaoException eee) { throw new IOException(eee); } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2011-04-11 09:16:57 UTC (rev 1168) @@ -105,7 +105,10 @@ * * @author fdesbois <fdesbois at codelutin.com> */ - at RequiresAuthentication(allowedRoles = UserRole.ADMIN, readOnlyAllowed = false) + at RequiresAuthentication(allowedRoles = { UserRole.ADMIN, + UserRole.COORDINATOR // for ObsDeb only + }, + readOnlyAllowed = false) @Import(stylesheet = "context:css/sampling.css") public class SampleRowForm { @@ -831,25 +834,35 @@ if (cancel) { return this; } - if (!edited && !periodChanged) { + if (!edited && !periodChanged) { - // No company change possible when sampleRow has real tide time - if (!getSampleRow().hasSampleMonthRealTideTime()) { - // Save company - Company company = getCompanySelectModel().findObject(companyId); - getSampleRow().setCompany(company); + if (user.isAdmin()) { // in obsDeb, coordinator may not change company + // No company change possible when sampleRow has real tide time + if (!getSampleRow().hasSampleMonthRealTideTime()) { + // Save company + Company company = getCompanySelectModel().findObject(companyId); + getSampleRow().setCompany(company); + } } - // Save sampleMonths - getSampleRow().setSampleMonth(getSampleMonths()); + if (getSampleRow().getObsProgram() != ObsProgram.OBSDEB) { - // save dcf5 codes - getSampleRow().setDCF5Code(getDcf5codes(), ", "); + // Save sampleMonths + getSampleRow().setSampleMonth(getSampleMonths()); + // save dcf5 codes + getSampleRow().setDCF5Code(getDcf5codes(), ", "); + + } + serviceSampling.createUpdateSampleRow(sampleRow, boats, getSampleRowLog()); - samplingPlan.setSelectedRowId(sampleRow.getTopiaId()); - return samplingPlan; + if (user.isObsDeb()) { + return ObsDebSamplingPlan.class; + } else { + samplingPlan.setSelectedRowId(sampleRow.getTopiaId()); + return samplingPlan; + } } else { // Reinitialize professionId for select to avoid selection from existing Profession professionId = null; Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/SampleRowModelFactory.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/SampleRowModelFactory.java 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/SampleRowModelFactory.java 2011-04-11 09:16:57 UTC (rev 1168) @@ -25,6 +25,7 @@ import fr.ifremer.wao.WaoUtils; import fr.ifremer.wao.bean.ConnectedUser; +import fr.ifremer.wao.entity.Company; import fr.ifremer.wao.entity.Contact; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.entity.WaoUser; @@ -36,6 +37,8 @@ import org.nuiton.util.StringUtil; import java.lang.annotation.Annotation; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.LinkedList; import java.util.List; import java.util.Observer; @@ -81,6 +84,52 @@ protected void initModel() { add(SampleRow.PROPERTY_CODE); + + if (connectedUser.isAdmin()) { + add("company", new SampleRowReaderPropertyConduit() { + + @Override + public String getValue(SampleRow sampleRow) { + String companyName = ""; + if (sampleRow.getCompany() != null) { + companyName = sampleRow.getCompany().getName(); + } + return companyName; + } + }); + } + + if (connectedUser.isObserver()) { + add("year", new SampleRowReaderPropertyConduit() { + + protected DateFormat weekFormat = new SimpleDateFormat("yyyy"); + + @Override + public String getValue(SampleRow sampleRow) { + return weekFormat.format(sampleRow.getDay()); + } + }); + add("week", new SampleRowReaderPropertyConduit() { + + protected DateFormat weekFormat = new SimpleDateFormat("w"); + + @Override + public String getValue(SampleRow sampleRow) { + return weekFormat.format(sampleRow.getDay()); + } + }); + add("dayOfWeek", new SampleRowReaderPropertyConduit() { + + protected DateFormat weekFormat = new SimpleDateFormat("EEEE", WaoUtils.getCurrentLocale()); + + @Override + public String getValue(SampleRow sampleRow) { + return weekFormat.format(sampleRow.getDay()); + } + }); + + } + add(SampleRow.PROPERTY_DAY, new SampleRowReaderPropertyConduit() { @Override @@ -88,9 +137,20 @@ return WaoUtils.formatDate(sampleRow.getDay()); } }); + if (connectedUser.isObserver()) { + add("subPopulation", new SampleRowReaderPropertyConduit() { + @Override + public String getValue(SampleRow sampleRow) { + String subPopulation = sampleRow.getObservationUnit().getSubPopulationCode() + + " - " + + sampleRow.getObservationUnit().getSubPopulationName(); + return subPopulation; + } + }); + } add(SampleRow.PROPERTY_OBSERVATION_UNIT); add(SampleRow.PROPERTY_COMMENT); - if (connectedUser.isCoordinator()) { + if (connectedUser.isCoordinatorOrObserver()) { add(SampleRow.PROPERTY_OBSERVERS, new SampleRowReaderPropertyConduit() { /** Observers full names separated by comma */ Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml =================================================================== --- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml 2011-04-11 09:16:57 UTC (rev 1168) @@ -28,8 +28,8 @@ <form t:type="form" t:id="filtersForm" t:zone="so-filters-form" action="post"> <t:errors /> - <div style="width: 0px;"> - <div class="acenter" style="width: 0px; white-space: nowrap;"> + <div> + <div class="acenter" style="white-space: nowrap;"> <label for="facadeName">${message:wao.ui.field.FishingZone.facadeName} :</label> <t:simpleSelector t:id="facadeName" t:values="possibleValuesForFilter.facadeNamesAsList" Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.tml =================================================================== --- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.tml 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.tml 2011-04-11 09:16:57 UTC (rev 1168) @@ -23,10 +23,10 @@ --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter"> - <div t:type="zone" t:id="filtersZone" t:visible="prop:filtersVisible" id="so-sampling-filters"> + <div t:type="zone" t:id="filtersZone" t:visible="prop:filtersVisible" id="so-sampling-filters" style="margin: 10px; padding: 10px;"> <fieldset> <legend>${legendMsg}</legend> - <div class="so-filters-form"> + <div class="so-filters-form" style="padding: 10px;"> <form t:type="form" t:id="filtersForm" t:zone="so-sampling-filters" action="post"> <t:errors/> <div style="float: left; margin-right: 15px;"> @@ -41,47 +41,54 @@ </div> <div> <label for="periodBegin">${message:wao.ui.form.periodFrom}</label> - <input t:type="datefield" class="width70" t:id="periodBegin" t:value="filter.period.fromDate" t:format="MM/yyyy" - t:validate="required"/> + <input t:type="datefield" + class="width70" + t:id="periodBegin" + t:value="filter.period.fromDate" + t:format="${formatForPeriod}" + t:validate="required"/> <label for="periodEnd">${message:wao.ui.form.period.to} </label> - <input t:type="datefield" class="width70" t:id="periodEnd" t:value="filter.period.thruDate" t:format="MM/yyyy" - t:validate="required"/> + <input t:type="datefield" + class="width70" + t:id="periodEnd" + t:value="filter.period.thruDate" + t:format="${formatForPeriod}" + t:validate="required" /> </div> + <div> + <t:if t:test="user.admin"> + <label for="company">${message:wao.ui.entity.Company} :</label> + <t:topiaEntitySelector t:id="company" + t:clazzName="Company" + t:labelPropertyName="name" + t:values="possibleValuesForFilter.companiesAsList" + t:selectedValue="filter.company"/> + </t:if> + <t:unless test="user.obsDeb"> + <label for="programName">${message:wao.ui.field.SampleRow.programName} :</label> + <t:simpleSelector t:id="programName" + t:values="possibleValuesForFilter.programsAsList" + t:selectedValue="filter.programName"/> + </t:unless> + </div> <t:if test="user.obsDeb"> <!-- filter fields only for obsdeb--> - <div> - <label for="observationUnit">${message:wao.ui.field.SampleRow.observationUnit}</label> - <t:topiaEntitySelector t:id="observationUnit" - t:clazzName="TerrestrialDivision" - t:labelPropertyName="description" - t:values="possibleValuesForFilter.observationUnitsAsList" - t:selectedValue="filter.observationUnit" /> - </div> - <div> + <label for="observationUnit">${message:wao.ui.field.SampleRow.observationUnit}</label> + <t:topiaEntitySelector t:id="observationUnit" + t:clazzName="TerrestrialDivision" + t:labelPropertyName="description" + t:values="possibleValuesForFilter.observationUnitsAsList" + t:selectedValue="filter.observationUnit" /> + <t:if test="user.coordinator"> <label for="observer">${message:wao.ui.field.SampleRow.observers}</label> <t:topiaEntitySelector t:id="observer" t:clazzName="WaoUser" t:labelPropertyName="fullName" t:values="possibleValuesForFilter.observersAsList" t:selectedValue="filter.observer" /> - </div> + </t:if> <p:else> <!-- filter field for ObsMer and ObsVente --> - <div> - <t:if t:test="user.admin"> - <label for="company">${message:wao.ui.entity.Company} :</label> - <t:topiaEntitySelector t:id="company" - t:clazzName="Company" - t:labelPropertyName="name" - t:values="possibleValuesForFilter.companiesAsList" - t:selectedValue="filter.company"/> - </t:if> - <label for="programName">${message:wao.ui.field.SampleRow.programName} :</label> - <t:simpleSelector t:id="programName" - t:values="possibleValuesForFilter.programsAsList" - t:selectedValue="filter.programName"/> - - </div> <div class="filterRow" t:type="zone" t:id="sampleRowZone" t:update="show"> <label for="facadeName">${message:wao.ui.field.FishingZone.facadeName} :</label> <t:simpleSelector t:id="facadeName" Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties =================================================================== --- trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-04-11 09:16:57 UTC (rev 1168) @@ -104,7 +104,8 @@ wao.ui.field.FishingZone.sectorName=Sector wao.ui.field.SampleRow.code=Line code wao.ui.field.SampleRow.comment=Comment -wao.ui.field.SampleRow.dCF5Code= +wao.ui.field.SampleRow.company=Company +wao.ui.field.SampleRow.dCF5Code=DCF5 Codes wao.ui.field.SampleRow.day=Day wao.ui.field.SampleRow.dcf5Code=DCF5 code wao.ui.field.SampleRow.fishingZones=Fishing zone(s) @@ -123,6 +124,7 @@ wao.ui.field.SampleRow.species=Species wao.ui.field.SampleRow.terrestrialLocation=Maritime district wao.ui.field.SampleRow.terrestrialLocationInfos=Terrestrial Location Infos +wao.ui.field.TerrestrialDivision.subPopulation=Sub-population wao.ui.field.User.firstName=First name wao.ui.field.User.lastName=Last name wao.ui.field.User.login=Login @@ -199,8 +201,10 @@ wao.ui.misc.companies=Companies wao.ui.misc.createdOnF=Created on wao.ui.misc.creating=Creating... +wao.ui.misc.dayOfWeek=Day wao.ui.misc.export=Export wao.ui.misc.export.longTitle=CSV export +wao.ui.misc.import=Import wao.ui.misc.import-export=Import/export wao.ui.misc.import-export.longTitle=CSV import/export (UTF-8) wao.ui.misc.information=Information @@ -223,6 +227,8 @@ wao.ui.misc.total=Total wao.ui.misc.undefined=Undefined wao.ui.misc.validated=Validated +wao.ui.misc.week=Week +wao.ui.misc.year=Year wao.ui.misc.yes=Yes wao.ui.nContactsFound=%s contacts found wao.ui.news.content=Text Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties =================================================================== --- trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-04-11 09:16:57 UTC (rev 1168) @@ -64,7 +64,6 @@ wao.ui.entity.Contact=Contact wao.ui.entity.FishingZone=Zones de p\u00EAche wao.ui.entity.SampleRow=Ligne du plan d'\u00E9chantillonnage -wao.ui.entity.SampleRow.day= wao.ui.entity.TerrestrialLocation=Lieu wao.ui.entity.fishingGearDCF=Engin code DCF wao.ui.entity.targetSpeciesDCF=Ensembles d'esp\u00E8ces-cible code DCF @@ -104,6 +103,7 @@ wao.ui.field.FishingZone.sectorName=Zone wao.ui.field.SampleRow.code=Code ligne wao.ui.field.SampleRow.comment=Commentaire +wao.ui.field.SampleRow.company=Soci\u00E9t\u00E9 wao.ui.field.SampleRow.dCF5Code=Codes wao.ui.field.SampleRow.day=Jour wao.ui.field.SampleRow.dcf5Code=Code DCF Niv. 5 @@ -123,6 +123,7 @@ wao.ui.field.SampleRow.species=Esp\u00E8ces cibles wao.ui.field.SampleRow.terrestrialLocation=Quartier maritime wao.ui.field.SampleRow.terrestrialLocationInfos=Autre(s) info(s) +wao.ui.field.TerrestrialDivision.subPopulation=Sous-population wao.ui.field.User.firstName=Pr\u00E9nom wao.ui.field.User.lastName=Nom wao.ui.field.User.login=Identifiant @@ -199,8 +200,10 @@ wao.ui.misc.companies=Soci\u00E9t\u00E9s wao.ui.misc.createdOnF=Cr\u00E9\u00E9e le wao.ui.misc.creating=En cours de cr\u00E9ation +wao.ui.misc.dayOfWeek=Jour wao.ui.misc.export=Export wao.ui.misc.export.longTitle=Export CSV +wao.ui.misc.import=Import wao.ui.misc.import-export=Import/export wao.ui.misc.import-export.longTitle=Import/export CSV (UTF-8) wao.ui.misc.information=Informations @@ -223,6 +226,8 @@ wao.ui.misc.total=Total wao.ui.misc.undefined=Non-d\u00E9fini wao.ui.misc.validated=Valid\u00E9 +wao.ui.misc.week=Semaine +wao.ui.misc.year=Ann\u00E9e wao.ui.misc.yes=Oui wao.ui.nContactsFound=%s contacts trouv\u00E9s wao.ui.news.content=Texte Modified: trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml =================================================================== --- trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-04-11 08:37:43 UTC (rev 1167) +++ trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-04-11 09:16:57 UTC (rev 1168) @@ -25,45 +25,81 @@ xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter"> <h1 class="fleft">${message:wao.ui.samplingPlan.title}</h1> - <div class="clear: left; actions-top"> - <t:actionlink t:id="showFilters" t:zone="filtersZone">${message:wao.ui.misc.advancedSearch}</t:actionlink> - <t:actionlink t:id="showImportExport" t:zone="importExportZone">${message:wao.ui.misc.import-export}</t:actionlink> + <div style="clear: left;" class="actions-top"> + <t:actionlink t:id="showFilters" t:zone="filtersZone"> + ${message:wao.ui.misc.advancedSearch} + </t:actionlink> + <t:unless test="connectedUser.observer"> + <t:actionlink t:id="showImport"> + ${message:wao.ui.misc.import} + </t:actionlink> + </t:unless> + <t:actionlink t:id="exportSamplingPlan"> + ${message:wao.ui.misc.export} + </t:actionlink> </div> <div style="clear: both;" /> - <t:zone t:id="importExportZone" t:visible="showImportExport"> + <!--<t:zone t:id="importExportZone" t:visible="showImportExport">--> <t:importFieldSet t:label="${message:wao.ui.import.samplingPlanLabel}" t:engine="samplingPlanImportEngine" /> - <a t:type="actionlink" t:id="exportSamplingPlan"> <!-- title="${format:wao.ui.samplingPlan.export=dateFormat.format(period.fromDate),dateFormat.format(period.thruDate)}" --> - <img src="${asset:context:}/img/file-export-22px.png" alt="${message:wao.ui.action.runExport}" /> - </a> - </t:zone> - <t:zone t:id="filtersZone" t:visible="showFilters"> + <!--/t:zone--> + <!--t:zone t:id="filtersZone" t:visible="showFilters"--> <t:samplingFilterComponent t:id="samplingFilter" - t:visibleOnStartup="true" t:user="connectedUser" t:serviceSampling="serviceSampling" t:legendMsg="${message:wao.ui.misc.advancedSearch}" /> - </t:zone> + <!--/t:zone--> - <div t:type="grid" t:source="sampleRows" t:row="sampleRow" t:model="obsdebSamplingPlanModel" t:rowsPerPage="50"> + <div t:type="grid" + t:source="sampleRows" + t:row="sampleRow" + t:model="obsdebSamplingPlanModel" + t:rowsPerPage="50" + style="margin-top: 20px;"> + <!-- code --> <p:codeHeader> ${message:wao.ui.field.SampleRow.code} </p:codeHeader> + <!-- company --> + <p:companyHeader> + ${message:wao.ui.field.SampleRow.company} + </p:companyHeader> + + <!-- year --> + <p:yearHeader> + ${message:wao.ui.misc.year} + </p:yearHeader> + + <!-- week --> + <p:weekHeader> + ${message:wao.ui.misc.week} + </p:weekHeader> + + <!-- day of week --> + <p:dayOfWeekHeader> + ${message:wao.ui.misc.dayOfWeek} + </p:dayOfWeekHeader> + <!-- day --> <p:dayHeader> ${message:wao.ui.field.SampleRow.day} </p:dayHeader> <!-- observation unit --> + <p:subPopulationHeader> + ${message:wao.ui.field.TerrestrialDivision.subPopulation} + </p:subPopulationHeader> + + <!-- observation unit --> <p:observationUnitHeader> ${message:wao.ui.field.SampleRow.observationUnit} </p:observationUnitHeader> - <!-- observation unit --> + <!-- observers --> <p:observersHeader> ${message:wao.ui.field.SampleRow.observers} </p:observersHeader>
participants (1)
-
bleny@users.labs.libre-entreprise.org