[Suiviobsmer-commits] r1141 - in trunk: wao-business/src/main/java/fr/ifremer/wao/io/csv2 wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/resources/i18n wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/resources/fr/ifremer/wao/ui/components wao-ui/src/main/resources/i18n wao-ui/src/main/webapp
Author: bleny Date: 2011-04-05 15:45:38 +0000 (Tue, 05 Apr 2011) New Revision: 1141 Log: add sample row form in obsdeb sampling plan Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Export.java trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.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-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/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 trunk/wao-ui/src/main/webapp/SampleRowForm.tml trunk/wao-ui/src/main/webapp/SamplingPlan.tml Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Export.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Export.java 2011-04-05 15:21:12 UTC (rev 1140) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Export.java 2011-04-05 15:45:38 UTC (rev 1141) @@ -70,6 +70,8 @@ boolean valueNeedQuotes = formattedValue.contains(separator) || formattedValue.contains("\n"); if (valueNeedQuotes) { + // escape '"' char to prevent + formattedValue = formattedValue.replaceAll("\"", "\"\""); formattedValue = "\"" + formattedValue + "\""; } csv.append(formattedValue).append(separator); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java 2011-04-05 15:21:12 UTC (rev 1140) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java 2011-04-05 15:45:38 UTC (rev 1141) @@ -25,6 +25,7 @@ import fr.ifremer.wao.bean.ValidationResult; import fr.ifremer.wao.bean.ValidationResultImpl; import org.nuiton.util.StringUtil; +import org.nuiton.util.TimeLog; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,6 +47,8 @@ private static final Logger log = LoggerFactory.getLogger(Import.class); + private static final TimeLog timeLog = new TimeLog(Import.class, 250, 1000); + protected ImportModel<E> model; protected CsvReader reader; @@ -163,12 +166,16 @@ public Iterator<E> startImport() throws IOException { + long startValidateCSV = timeLog.getTime(); + ValidationResult validationResult = validateCsv(); if ( ! validationResult.isSuccess()) { throw new IOException(validationResult.getMessage()); } + timeLog.log(startValidateCSV, "validate CSV", "done"); + readFirstLine(); Iterator<E> result = new Iterator<E>() { @@ -189,9 +196,15 @@ lineNumber += 1; + long time = timeLog.getTime(); + E element = model.newEmptyInstance(); + time = timeLog.log(time, "newEmptyInstance"); + for (ImportableColumn field : getNonIgnoredHeaders()) { + + time = timeLog.log(time, "readValue", "read value for field " + field.getHeaderName()); String value; try { value = reader.get(field.getHeaderName()); @@ -199,6 +212,7 @@ reader.close(); throw new RuntimeException(WaoUtils.translate(n_("csv.import.error.unableToReadField"), field.getHeaderName(), lineNumber), e); } + time = timeLog.log(time, "readValue", "end read"); // contravariance ftw Object parsedValue; @@ -209,11 +223,15 @@ field.getHeaderName(), lineNumber), e); } + time = timeLog.log(time, "parseValue"); + try { field.setValue(element, parsedValue); } catch (Exception e) { throw new RuntimeException(WaoUtils.translate(n_("csv.import.error.unableToSetValue"), parsedValue, element.toString(), lineNumber), e); } + + time = timeLog.log(time, "setValue"); } lastElement = element; @@ -224,6 +242,11 @@ reader.close(); throw new RuntimeException(WaoUtils.translate(n_("csv.import.error.unableToReadLine"), lineNumber + 1), e); } + + if (log.isTraceEnabled()) { + log.trace(timeLog.getCallCount().toString()); + } + return lastElement; } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-04-05 15:21:12 UTC (rev 1140) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-04-05 15:45:38 UTC (rev 1141) @@ -92,6 +92,7 @@ import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.DateUtil; import org.nuiton.util.StringUtil; +import org.nuiton.util.TimeLog; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; import org.slf4j.Logger; @@ -131,6 +132,8 @@ private static final Logger log = LoggerFactory.getLogger(ServiceContactImpl.class); + private static final TimeLog timeLog = new TimeLog(ServiceContactImpl.class, 250, 1000); + private WaoContext context; public void setContext(WaoContext context) { @@ -841,11 +844,15 @@ protected boolean createOrUpdateContact(TopiaContext transaction, ConnectedUser connectedUser, Contact contact) throws TopiaException, WaoBusinessException { + long contactUpdateWithValidationStartTime = timeLog.getTime(); + ValidationResult contactValidationResult = executeValidateContact(transaction, contact); if ( ! contactValidationResult.isSuccess()) { throw new WaoBusinessException(contactValidationResult.getMessage()); } + long contactUpdateStartTime = timeLog.getTime(); + ContactDAO dao = WaoDAOHelper.getContactDAO(transaction); Contact contactFound = null; if (contact.getTopiaId() != null) { @@ -892,6 +899,12 @@ } } + if (log.isTraceEnabled()) { + timeLog.log(contactUpdateWithValidationStartTime, "createOrUpdateContact with validation"); + timeLog.log(contactUpdateStartTime, "createOrUpdateContact without validation"); + log.trace("times for update contact : " + timeLog.getCallCount().toString()); + } + return contactCanBeUpdated; } @@ -934,6 +947,8 @@ boolean useNewMethod = true; if (useNewMethod) { + long initImportStart = timeLog.getTime(); + // Some DAO WaoUserDAO waoUserDAO = WaoDAOHelper.getWaoUserDAO(transaction); TerrestrialLocationDAO terrestrialLocationDAO = WaoDAOHelper.getTerrestrialLocationDAO(transaction); @@ -958,16 +973,24 @@ try { Iterator<Contact> contactIterator = contactImport.startImport(); + + long importStart = timeLog.log(initImportStart, "init contact import"); + while (contactIterator.hasNext()) { Contact contact; + long contactStart = timeLog.getTime(); + + long contactRead; try { contact = contactIterator.next(); + contactRead = timeLog.log(contactStart, "contact read"); } catch (RuntimeException e) { throw new WaoBusinessException(e.getMessage() + " " + e.getCause().getMessage()); } boolean contactUpdated = createOrUpdateContact(transaction, user, contact); + timeLog.log(contactRead, "contact database update"); if (contactUpdated) { result.incNbImported(); @@ -975,6 +998,13 @@ result.incNbRefused(); } } + + timeLog.log(importStart, "contact import"); + + if (log.isTraceEnabled()) { + log.trace("times for import contacts " + timeLog.getCallCount().toString()); + } + transaction.commitTransaction(); } catch (WaoBusinessException e) { 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-05 15:21:12 UTC (rev 1140) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-04-05 15:45:38 UTC (rev 1141) @@ -99,6 +99,7 @@ import org.nuiton.util.DateUtil; import org.nuiton.util.PeriodDates; import org.nuiton.util.StringUtil; +import org.nuiton.util.TimeLog; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderModelBuilder; import org.slf4j.Logger; @@ -134,6 +135,8 @@ private static final Logger log = LoggerFactory.getLogger(ServiceSamplingImpl.class); + private static final TimeLog timeLog = new TimeLog(ServiceSamplingImpl.class, 250, 1000); + private WaoContext context; public void setContext(WaoContext context) { @@ -639,6 +642,11 @@ // load specific field result.getTerrestrialLocation(); } + + if (result.getObsProgram() == ObsProgram.OBSDEB) { + result.sizeObservers(); + result.getObservationUnit(); + } } return result; @@ -995,12 +1003,21 @@ while (it.hasNext()) { SampleRow sampleRow = null; try { + + long startReadLine = timeLog.getTime(); + sampleRow = it.next(); sampleRow.clearSampleMonth(); + long startUpdateDatabase = timeLog.log(startReadLine, "end read csv line"); + SampleRowLog sampleRowLog = executeGetNewSampleRowLog(sampleRow, connectedUser); executeCreateUpdateSampleRow(transaction, sampleRow, new ArrayList<Boat>(), sampleRowLog); result.incNbImported(); + + timeLog.log(startUpdateDatabase, "end update database"); + timeLog.log(startReadLine, "import one line"); + } catch (Exception e) { errorArgs.add(-1); errorArgs.add(sampleRow == null ? "" : sampleRow.getCode()); @@ -1011,6 +1028,11 @@ } transaction.commitTransaction(); + + if (log.isTraceEnabled()) { + log.trace("times for import sample rows " + timeLog.getCallCount().toString()); + } + } finally { IOUtils.closeQuietly(input); } 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 2011-04-05 15:21:12 UTC (rev 1140) +++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-04-05 15:45:38 UTC (rev 1141) @@ -173,6 +173,7 @@ wao.error.serviceNews.getNews= wao.error.serviceNews.saveNews= wao.error.serviceReferential.getAllContactStateMotifs= +wao.error.serviceReferential.getAllObservationUnits= wao.error.serviceReferential.getAllTerrestrialDistricts= wao.error.serviceReferential.getAllTerrestrialLocations= wao.error.serviceReferential.getCodesDCF5Contains= 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-05 15:21:12 UTC (rev 1140) +++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-04-05 15:45:38 UTC (rev 1141) @@ -173,6 +173,7 @@ 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= wao.error.serviceReferential.getAllTerrestrialDistricts= wao.error.serviceReferential.getAllTerrestrialLocations= wao.error.serviceReferential.getCodesDCF5Contains= 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-05 15:21:12 UTC (rev 1140) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-04-05 15:45:38 UTC (rev 1141) @@ -38,10 +38,12 @@ import fr.ifremer.wao.ui.services.SampleRowModelFactory; import org.apache.tapestry5.ComponentResources; import org.apache.tapestry5.StreamResponse; +import org.apache.tapestry5.annotations.InjectComponent; import org.apache.tapestry5.annotations.Persist; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.annotations.SessionState; import org.apache.tapestry5.beaneditor.BeanModel; +import org.apache.tapestry5.corelib.components.Zone; import org.apache.tapestry5.grid.GridDataSource; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.services.BeanModelSource; @@ -69,6 +71,45 @@ @Property private ConnectedUser connectedUser; + /********* Page layout ***********/ + + @Persist + private Boolean showFilters; + + @InjectComponent + private Zone filtersZone; + + @Persist + private Boolean showImportExport; + + @InjectComponent + private Zone importExportZone; + + public boolean getShowFilters() { + if (showFilters == null) { + showFilters = getFilterManager().getFilter().isPeriodFilteredOnly(); + } + return showFilters; + } + + public boolean getShowImportExport() { + if (showImportExport == null) { + showImportExport = false; + } + return showImportExport; + } + + public Zone onActionFromShowFilters() { + showFilters = ! getShowFilters(); + return filtersZone; + } + + public Zone onActionFromShowImportExport() { + showImportExport = ! getShowImportExport(); + return importExportZone; + } + + /********* FILTERS ********/ @Persist @@ -105,6 +146,13 @@ return obsdebSamplingPlanModel; } + /************ ACTIONS ***************/ + + public boolean canEditSampleRow() { + boolean canEditSampleRow = connectedUser.isAdmin() || connectedUser.isCoordinator(); + return canEditSampleRow; + } + /********** IMPORT / EXPORT *********/ public ImportEngine getSamplingPlanImportEngine() { 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-05 15:21:12 UTC (rev 1140) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2011-04-05 15:45:38 UTC (rev 1141) @@ -43,7 +43,9 @@ import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.entity.SampleRowLog; import fr.ifremer.wao.entity.TargetSpeciesDCF; +import fr.ifremer.wao.entity.TerrestrialDivision; import fr.ifremer.wao.entity.TerrestrialLocation; +import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.service.ServiceBoat; import fr.ifremer.wao.service.ServiceReferential; import fr.ifremer.wao.service.ServiceSampling; @@ -55,6 +57,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.iterators.ArrayListIterator; import org.apache.commons.lang.StringUtils; +import org.apache.tapestry5.Block; import org.apache.tapestry5.ComponentResources; import org.apache.tapestry5.EventContext; import org.apache.tapestry5.Field; @@ -185,6 +188,23 @@ return user.getProfile().getObsProgram() == ObsProgram.OBSVENTE; } + @Inject + private Block obsDebBlock; + + @Inject + private Block obsMerVenteBlock; + + public Block getProgramBlock() { + Block block; + // what we show depends on the program + if (ObsProgram.OBSDEB.equals(sampleRow.getObsProgram())) { + block = obsDebBlock; + } else { + // form suitable for both ObsMer and ObsVente + block = obsMerVenteBlock; + } + return block; + } /*************************** PROFESSION ***********************************/ /** Select model which contains all professions **/ @@ -530,6 +550,18 @@ } } + /************** OBSDEB ***********/ + + public List<WaoUser> getObservers() { + List<WaoUser> observers = serviceUser.getObservers(user.getCompany(), true); + return observers; + } + + public List<TerrestrialDivision> getObservationUnits() { + List<TerrestrialDivision> observationUnits = serviceReferential.getAllObservationUnits(); + return observationUnits; + } + /*************************** SAMPLE ROW ***********************************/ private String sampleRowId; 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-05 15:21:12 UTC (rev 1140) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.tml 2011-04-05 15:45:38 UTC (rev 1141) @@ -50,7 +50,7 @@ <t:if test="filterManager.user.obsDeb"> <!-- filter fields only for obsdeb--> <div> - <label for="observationUnit">${message:wao.ui.entity.SampleRow.observationUnit}</label> + <label for="observationUnit">${message:wao.ui.field.SampleRow.observationUnit}</label> <t:topiaEntitySelector t:id="observationUnit" t:clazzName="TerrestrialDivision" t:labelPropertyName="description" 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-05 15:21:12 UTC (rev 1140) +++ trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-04-05 15:45:38 UTC (rev 1141) @@ -64,7 +64,7 @@ wao.ui.entity.Contact=Contact wao.ui.entity.FishingZone=Fishing zones wao.ui.entity.SampleRow=Sample row -wao.ui.entity.SampleRow.observationUnit=Observation unit +wao.ui.entity.SampleRow.day= wao.ui.entity.TerrestrialLocation=Place wao.ui.entity.fishingGearDCF=Gear DCF code wao.ui.entity.targetSpeciesDCF=Target species DCF code 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-05 15:21:12 UTC (rev 1140) +++ trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-04-05 15:45:38 UTC (rev 1141) @@ -1,204 +1,204 @@ wao.ui.action.acceptContact=Valider le contact wao.ui.action.add=Ajouter -wao.ui.action.addNewContactFromBoat=Cr\u00e9er un nouveau contact pour ce navire et la ligne s\u00e9lectionn\u00e9e dans les filtres -wao.ui.action.back=Revenier \u00e0 l'\u00e9cran pr\u00e9c\u00e9dent +wao.ui.action.addNewContactFromBoat=Cr\u00E9er un nouveau contact pour ce navire et la ligne s\u00E9lectionn\u00E9e dans les filtres +wao.ui.action.back=Revenier \u00E0 l'\u00E9cran pr\u00E9c\u00E9dent wao.ui.action.cancel=Annuler wao.ui.action.changeLocale=Changer de langue wao.ui.action.contactAdmin=Contacter un responsable ObsMer -wao.ui.action.create=Cr\u00e9er -wao.ui.action.createCompany=Cr\u00e9er une soci\u00e9t\u00e9 -wao.ui.action.createUser=Cr\u00e9er un utilisateur +wao.ui.action.create=Cr\u00E9er +wao.ui.action.createCompany=Cr\u00E9er une soci\u00E9t\u00E9 +wao.ui.action.createUser=Cr\u00E9er un utilisateur wao.ui.action.delete=Supprimer -wao.ui.action.deleteCompany=Supprimer la soci\u00e9t\u00e9 -wao.ui.action.deleteCompany.confirm=\u00cates-vous s\u00fbr de vouloir supprimer la soci\u00e9t\u00e9 ? +wao.ui.action.deleteCompany=Supprimer la soci\u00E9t\u00E9 +wao.ui.action.deleteCompany.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer la soci\u00E9t\u00E9 ? wao.ui.action.deleteContact=Supprimer le contact -wao.ui.action.deleteContact.confirm=\u00cates-vous s\u00fbr de vouloir supprimer d\u00e9finitivement ce contact ? +wao.ui.action.deleteContact.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer d\u00E9finitivement ce contact ? wao.ui.action.deleteNews=Supprimer la nouvelle -wao.ui.action.deleteNews.confirm=\u00cates-vous s\u00fbr de vouloir supprimer d\u00e9finitivement cette nouvelle ? +wao.ui.action.deleteNews.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer d\u00E9finitivement cette nouvelle ? wao.ui.action.deleteSampleRow=Supprimer la ligne du plan -wao.ui.action.deleteSampleRow.confirm=\u00cates-vous s\u00fbr de vouloir supprimer la ligne %s du plan ? +wao.ui.action.deleteSampleRow.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer la ligne %s du plan ? wao.ui.action.deleteUser=Supprimer l'utilisateur -wao.ui.action.deleteUser.confirm=\u00cates-vous s\u00fbr de vouloir supprimer l'utilisateur ? +wao.ui.action.deleteUser.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer l'utilisateur ? wao.ui.action.edit=Modifier wao.ui.action.enlargeView=Agrandir la vue -wao.ui.action.exportBoats=Exporter les $s navires avec leurs informations priv\u00e9es +wao.ui.action.exportBoats=Exporter les $s navires avec leurs informations priv\u00E9es wao.ui.action.filter=Filtrer wao.ui.action.hideFilters=Masquer les filtres wao.ui.action.login=Connexion -wao.ui.action.logout=D\u00e9connexion -wao.ui.action.reduceView=R\u00e9duire la vue -wao.ui.action.refresh=Rafra\u00eechir +wao.ui.action.logout=D\u00E9connexion +wao.ui.action.reduceView=R\u00E9duire la vue +wao.ui.action.refresh=Rafra\u00EEchir wao.ui.action.refuseContact=Refuser le contact wao.ui.action.remove=Retirer -wao.ui.action.resetFields=Remettre le formulaire \u00e0 z\u00e9ro +wao.ui.action.resetFields=Remettre le formulaire \u00E0 z\u00E9ro wao.ui.action.revert=Annuler wao.ui.action.runExport=Lancer l'export wao.ui.action.runImport=Lancer l'import wao.ui.action.runSearch=Lancer la recherche wao.ui.action.save=Enregistrer -wao.ui.action.showDetails=Voir les d\u00e9tails +wao.ui.action.showDetails=Voir les d\u00E9tails wao.ui.action.showFilters=Afficher les filtres wao.ui.action.unvalidateContact=Invalider le contact wao.ui.action.viewIndicatorsHistory=Voir l'historique des modifications des indicateurs wao.ui.boatList=Liste de %s navires wao.ui.boatinfo.title=Informations sur %s -wao.ui.boats.associatedLine=Ligne(s) du plan associ\u00e9e(s) \u00e0 ce navire -wao.ui.boats.nbObservations=%s observation(s) dont %s avec votre soci\u00e9t\u00e9 -wao.ui.cartography.help=Cliquez sur les graphiques pour avoir le d\u00e9tail. -wao.ui.cartography.title=R\u00e9partition des contacts par quartier des navires -wao.ui.cartography.title.company=R\u00e9partition des contacts par quartier des navires pour la soci\u00e9t\u00e9 %s +wao.ui.boats.associatedLine=Ligne(s) du plan associ\u00E9e(s) \u00E0 ce navire +wao.ui.boats.nbObservations=%s observation(s) dont %s avec votre soci\u00E9t\u00E9 +wao.ui.cartography.help=Cliquez sur les graphiques pour avoir le d\u00E9tail. +wao.ui.cartography.title=R\u00E9partition des contacts par quartier des navires +wao.ui.cartography.title.company=R\u00E9partition des contacts par quartier des navires pour la soci\u00E9t\u00E9 %s wao.ui.chart.boardingsSince=Nombre de sollicitations depuis le %s wao.ui.chart.numberBoats=Nb navires wao.ui.chart.numberObservations=Nb observations wao.ui.chart.numberOfBoatsWithBoardings=Nombre de navires avec x embarquements -wao.ui.contact.lastContact=Derni\u00e8re observation concernant ce navire pour votre soci\u00e9t\u00e9 (tous programmes confondus) -wao.ui.contacts.createFromBoat=Cr\u00e9er un nouveau contact pour ce navire et cette ligne du plan -wao.ui.contacts.createFromBoat.fail=Cr\u00e9ation d'un nouveau contact impossible -wao.ui.contacts.createFromBoat.warn=Attention \: cette ligne du plan est arriv\u00e9e \u00e0 \u00e9ch\u00e9ance, \u00eates-vous s\u00fbr de vouloir cr\u00e9er un nouveau contact ? -wao.ui.disclaimer=Le site de \u00ab SUIVI DU REALISE DU PLAN D'ECHANTILLONNAGE DES OBSERVATIONS A LA MER \u00bb a fait l'objet d'une d\u00e9claration \u00e0 la CNIL sous le num\u00e9ro suivant \: 1414476 -wao.ui.disclaimer.boats=Les donn\u00e9es saisies dans cette page sont la propri\u00e9t\u00e9 exclusive de la soci\u00e9t\u00e9. En dehors de la soci\u00e9t\u00e9, seul l'administrateur peut les consulter pour des questions de maintenance sur le site. L'administrateur est une personne de l'Ifremer. +wao.ui.contact.lastContact=Derni\u00E8re observation concernant ce navire pour votre soci\u00E9t\u00E9 (tous programmes confondus) +wao.ui.contacts.createFromBoat=Cr\u00E9er un nouveau contact pour ce navire et cette ligne du plan +wao.ui.contacts.createFromBoat.fail=Cr\u00E9ation d'un nouveau contact impossible +wao.ui.contacts.createFromBoat.warn=Attention \: cette ligne du plan est arriv\u00E9e \u00E0 \u00E9ch\u00E9ance, \u00EAtes-vous s\u00FBr de vouloir cr\u00E9er un nouveau contact ? +wao.ui.disclaimer=Le site de \u00AB SUIVI DU REALISE DU PLAN D'ECHANTILLONNAGE DES OBSERVATIONS A LA MER \u00BB a fait l'objet d'une d\u00E9claration \u00E0 la CNIL sous le num\u00E9ro suivant \: 1414476 +wao.ui.disclaimer.boats=Les donn\u00E9es saisies dans cette page sont la propri\u00E9t\u00E9 exclusive de la soci\u00E9t\u00E9. En dehors de la soci\u00E9t\u00E9, seul l'administrateur peut les consulter pour des questions de maintenance sur le site. L'administrateur est une personne de l'Ifremer. wao.ui.email=Adresse e-mail wao.ui.entity.Boat=Navire wao.ui.entity.Boats=Navires -wao.ui.entity.Company=Soci\u00e9t\u00e9 +wao.ui.entity.Company=Soci\u00E9t\u00E9 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.observationUnit=Unit\u00e9 d'observation +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 +wao.ui.entity.targetSpeciesDCF=Ensembles d'esp\u00E8ces-cible code DCF wao.ui.field.Boat.boatLength=Longueur -wao.ui.field.Boat.buildYear=Ann\u00e9e de construction +wao.ui.field.Boat.buildYear=Ann\u00E9e de construction wao.ui.field.Boat.districtCode=Quartier wao.ui.field.Boat.immatriculation=Immatriculation wao.ui.field.Boat.name=Nom wao.ui.field.Boat.shipOwner=Armateur wao.ui.field.BoatDistrict.code=Code quartier -wao.ui.field.BoatInfos.dup=Capacit\u00e9 d'accueil du navire en personnels sp\u00e9cialis\u00e9s +wao.ui.field.BoatInfos.dup=Capacit\u00E9 d'accueil du navire en personnels sp\u00E9cialis\u00E9s wao.ui.field.Company.active=Active wao.ui.field.Company.name=Nom -wao.ui.field.Contact.beginDate=D\u00e9but d'observation +wao.ui.field.Contact.beginDate=D\u00E9but d'observation wao.ui.field.Contact.comment=Commentaire observateur wao.ui.field.Contact.commentAdmin=Commentaire programme wao.ui.field.Contact.commentCoordinator=Commentaire coordinateur -wao.ui.field.Contact.completeSampling=\u00c9chantillonnage complet -wao.ui.field.Contact.contactState=\u00c9tat du contact +wao.ui.field.Contact.completeSampling=\u00C9chantillonnage complet +wao.ui.field.Contact.contactState=\u00C9tat du contact wao.ui.field.Contact.contactStateMotif=Motif du refus wao.ui.field.Contact.contactStateMotifs=Motifs de refus -wao.ui.field.Contact.creationDate=Date de cr\u00e9ation du contact -wao.ui.field.Contact.dataInputDate=Saisie des donn\u00e9es dans Allegro -wao.ui.field.Contact.dataReliability=Qualit\u00e9 des donn\u00e9es +wao.ui.field.Contact.creationDate=Date de cr\u00E9ation du contact +wao.ui.field.Contact.dataInputDate=Saisie des donn\u00E9es dans Allegro +wao.ui.field.Contact.dataReliability=Qualit\u00E9 des donn\u00E9es wao.ui.field.Contact.endDate=Fin d'observation -wao.ui.field.Contact.mainObserver=Observateur r\u00e9f\u00e9rent +wao.ui.field.Contact.mainObserver=Observateur r\u00E9f\u00E9rent wao.ui.field.Contact.mammalsCapture=Capture accidentelle -wao.ui.field.Contact.mammalsInfo=Noms scientifiques et nombres d'individus des esp\u00e8ces captur\u00e9es +wao.ui.field.Contact.mammalsInfo=Noms scientifiques et nombres d'individus des esp\u00E8ces captur\u00E9es wao.ui.field.Contact.mammalsObservation=Observation exceptionnelle wao.ui.field.Contact.nbObservants=Nombre d'observateurs -wao.ui.field.Contact.samplingStrategy=Strat\u00e9gie d'\u00e9chantillonnage suivie +wao.ui.field.Contact.samplingStrategy=Strat\u00E9gie d'\u00E9chantillonnage suivie wao.ui.field.Contact.secondaryObservers=Observateurs wao.ui.field.Contact.terrestrialLocation=Lieu d'observation -wao.ui.field.Contact.validationCompany=Validation soci\u00e9t\u00e9 +wao.ui.field.Contact.validationCompany=Validation soci\u00E9t\u00E9 wao.ui.field.Contact.validationProgram=Validation programme -wao.ui.field.FishingZone.facadeName=Fa\u00e7ade +wao.ui.field.FishingZone.facadeName=Fa\u00E7ade wao.ui.field.FishingZone.sectorName=Zone wao.ui.field.SampleRow.code=Code ligne wao.ui.field.SampleRow.comment=Commentaire wao.ui.field.SampleRow.dCF5Code=Codes wao.ui.field.SampleRow.day=Jour wao.ui.field.SampleRow.dcf5Code=Code DCF Niv. 5 -wao.ui.field.SampleRow.fishingZones=Zone(s) de p\u00eache -wao.ui.field.SampleRow.libelle=Libell\u00e9 +wao.ui.field.SampleRow.fishingZones=Zone(s) de p\u00EAche +wao.ui.field.SampleRow.libelle=Libell\u00E9 wao.ui.field.SampleRow.meshSize=Maillage -wao.ui.field.SampleRow.observationUnit=Unit\u00e9 d'observation +wao.ui.field.SampleRow.observationUnit=Unit\u00E9 d'observation wao.ui.field.SampleRow.observers=Observateurs wao.ui.field.SampleRow.other=Autre -wao.ui.field.SampleRow.periodBegin=D\u00e9but +wao.ui.field.SampleRow.periodBegin=D\u00E9but wao.ui.field.SampleRow.periodEnd=Fin -wao.ui.field.SampleRow.profession=M\u00e9tier -wao.ui.field.SampleRow.professionCode=Code m\u00e9tier +wao.ui.field.SampleRow.profession=M\u00E9tier +wao.ui.field.SampleRow.professionCode=Code m\u00E9tier wao.ui.field.SampleRow.programName=Programme -wao.ui.field.SampleRow.samplingStrategy=Strat\u00e9gie d'\u00e9chantillonnage +wao.ui.field.SampleRow.samplingStrategy=Strat\u00E9gie d'\u00E9chantillonnage wao.ui.field.SampleRow.size=Taille du navire -wao.ui.field.SampleRow.species=Esp\u00e8ces cibles +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.User.firstName=Pr\u00e9nom +wao.ui.field.User.firstName=Pr\u00E9nom wao.ui.field.User.lastName=Nom wao.ui.field.User.login=Identifiant -wao.ui.field.UserProfile.userRole=R\u00f4le +wao.ui.field.UserProfile.userRole=R\u00F4le wao.ui.field.WaoUser.login=Identifiant wao.ui.field.WaoUser.mammalsNotifications=Recevoir les notifications de captures accidentelles wao.ui.field.WaoUser.password=Mot de passe wao.ui.filters.filters=Filtres de recherche -wao.ui.filters.refresh=Rafra\u00eechir les champs du filtre -wao.ui.forgotPassword=Mot de passe oubli\u00e9 ? -wao.ui.form.SampleRow.boatsDescription=Ce champs correspond aux immatriculations des navires qui sont \u00e9ligibles pour cette ligne. Vous pouvez utiliser n'importe quel s\u00e9parateur pour s\u00e9parer les immatriculations (virgule, point, espace ou saut de ligne) -wao.ui.form.SampleRow.missingBeginDate=Date de d\u00e9but manquante pour g\u00e9n\u00e9rer le code de la ligne \! -wao.ui.form.SampleRow.others=Autres donn\u00e9es de la ligne d'\u00e9chantillonnage +wao.ui.filters.refresh=Rafra\u00EEchir les champs du filtre +wao.ui.forgotPassword=Mot de passe oubli\u00E9 ? +wao.ui.form.SampleRow.boatsDescription=Ce champs correspond aux immatriculations des navires qui sont \u00E9ligibles pour cette ligne. Vous pouvez utiliser n'importe quel s\u00E9parateur pour s\u00E9parer les immatriculations (virgule, point, espace ou saut de ligne) +wao.ui.form.SampleRow.missingBeginDate=Date de d\u00E9but manquante pour g\u00E9n\u00E9rer le code de la ligne \! +wao.ui.form.SampleRow.others=Autres donn\u00E9es de la ligne d'\u00E9chantillonnage wao.ui.form.SampleRow.program=Programme de rattachement et effort d'observation par mois wao.ui.form.addComment=Ajouter un commentaire -wao.ui.form.addRole=Ajouter ce r\u00f4le +wao.ui.form.addRole=Ajouter ce r\u00F4le wao.ui.form.boardingFrom=Sollicitations du navire depuis le wao.ui.form.contactsFile=Fichier des contacts -wao.ui.form.definePasswordManually=d\u00e9finir manuellement +wao.ui.form.definePasswordManually=d\u00E9finir manuellement wao.ui.form.editComment=Commentaire sur la modification wao.ui.form.editionAuthor=Auteur de la modification -wao.ui.form.estimatedTides=Voir l'effort d'observations estim\u00e9 -wao.ui.form.estimatedTides.description=L'effort d'observations estim\u00e9 \u00e9quivaut au nombre de contacts valid\u00e9s ou non par la soci\u00e9t\u00e9. Les contacts refus\u00e9s par le programme ne sont pas pris en compte. -wao.ui.form.generatePassword=G\u00e9n\u00e9rer le mot de passe +wao.ui.form.estimatedTides=Voir l'effort d'observations estim\u00E9 +wao.ui.form.estimatedTides.description=L'effort d'observations estim\u00E9 \u00E9quivaut au nombre de contacts valid\u00E9s ou non par la soci\u00E9t\u00E9. Les contacts refus\u00E9s par le programme ne sont pas pris en compte. +wao.ui.form.generatePassword=G\u00E9n\u00E9rer le mot de passe wao.ui.form.otherBoatInfos=Autres informations sur le navire -wao.ui.form.period=P\u00e9riode +wao.ui.form.period=P\u00E9riode wao.ui.form.period.from=du wao.ui.form.period.to=au -wao.ui.form.periodFrom=P\u00e9riode du -wao.ui.form.periodFromTo=P\u00e9riode du %s au %s +wao.ui.form.periodFrom=P\u00E9riode du +wao.ui.form.periodFromTo=P\u00E9riode du %s au %s wao.ui.form.program=Programme -wao.ui.form.programEvaluation=\u00c9valuation programme +wao.ui.form.programEvaluation=\u00C9valuation programme wao.ui.form.readOnly=lecture seule wao.ui.form.removeRole=retirer ce role -wao.ui.form.repeatPassword=R\u00e9p\u00e9ter le mot de passe -wao.ui.form.roles=R\u00f4les -wao.ui.form.sortByTideBegin=Trier par date de d\u00e9but d'observation (du plus r\u00e9cent au plus ancien) -wao.ui.import.activityCalendarImportLabel=de l'import des calendriers d'activit\u00e9 -wao.ui.import.activityCalendarImportRunning=Import des calendriers d'activit\u00e9 en cours. Vous pouvez continuer \u00e0 naviguer sur le site en attendant la fin du chargement. -wao.ui.import.activityCalendarLabel=des calendriers d'activit\u00e9 -wao.ui.import.activityCalendarUserAccessesLabel=des acc\u00e8s utilisateurs aux calendriers d'activit\u00e9 -wao.ui.import.boatDistrictLabel=des coordonn\u00e9es des quartiers des navires +wao.ui.form.repeatPassword=R\u00E9p\u00E9ter le mot de passe +wao.ui.form.roles=R\u00F4les +wao.ui.form.sortByTideBegin=Trier par date de d\u00E9but d'observation (du plus r\u00E9cent au plus ancien) +wao.ui.import.activityCalendarImportLabel=de l'import des calendriers d'activit\u00E9 +wao.ui.import.activityCalendarImportRunning=Import des calendriers d'activit\u00E9 en cours. Vous pouvez continuer \u00E0 naviguer sur le site en attendant la fin du chargement. +wao.ui.import.activityCalendarLabel=des calendriers d'activit\u00E9 +wao.ui.import.activityCalendarUserAccessesLabel=des acc\u00E8s utilisateurs aux calendriers d'activit\u00E9 +wao.ui.import.boatDistrictLabel=des coordonn\u00E9es des quartiers des navires wao.ui.import.boatsLabel=des navires wao.ui.import.description=Fichier %s %s \: -wao.ui.import.fishingZoneLabel=des zones de p\u00eaches +wao.ui.import.fishingZoneLabel=des zones de p\u00EAches wao.ui.import.fullDescription=Import %s (format %s avec encodage UTF-8) wao.ui.import.longTitle=Import/Export CSV (UTF-8) -wao.ui.import.samplingPlanLabel=du plan d'\u00e9chantillonnage -wao.ui.import.terrestrialDivisionsLabel=du r\u00e9f\u00e9rentiel de stratification spatiale (ObsDeb) +wao.ui.import.samplingPlanLabel=du plan d'\u00E9chantillonnage +wao.ui.import.terrestrialDivisionsLabel=du r\u00E9f\u00E9rentiel de stratification spatiale (ObsDeb) wao.ui.import.terrestrialLocationsLabel=des lieux terrestres wao.ui.import.title=Import %s wao.ui.indicator.andMore=%s et plus wao.ui.indicator.bounds=Bornes -wao.ui.indicator.coefficient=Pond\u00e9ration +wao.ui.indicator.coefficient=Pond\u00E9ration wao.ui.indicator.editions=Modifications wao.ui.indicator.indicator=Indicateur -wao.ui.indicator.legend=En jaune, la position actuelle de la soci\u00e9t\u00e9 selon cet indicateur. +wao.ui.indicator.legend=En jaune, la position actuelle de la soci\u00E9t\u00E9 selon cet indicateur. wao.ui.indicator.levels=Niveaux -wao.ui.indicator.useRightDecimalSymbol=Attention \u00e0 bien utiliser ',' et non '.' pour les d\u00e9cimales +wao.ui.indicator.useRightDecimalSymbol=Attention \u00E0 bien utiliser ',' et non '.' pour les d\u00E9cimales wao.ui.indicators.coefficientsSum=Total coefficient -wao.ui.indicators.title=Indicateurs qualit\u00e9s prestataires +wao.ui.indicators.title=Indicateurs qualit\u00E9s prestataires wao.ui.invalidLogin=Identifiant invalide -wao.ui.layout.userDescription=Vous \u00eates %s de la soci\u00e9t\u00e9 %s (%s) +wao.ui.layout.userDescription=Vous \u00EAtes %s de la soci\u00E9t\u00E9 %s (%s) wao.ui.message.chooseProfile=Choisissez dans la liste votre profil de connexion \: -wao.ui.misc.METIER=M\u00c9TIER -wao.ui.misc.N/A=non renseign\u00e9e -wao.ui.misc.accepted=Accept\u00e9 -wao.ui.misc.advancedSearch=Recherche avanc\u00e9e +wao.ui.misc.METIER=M\u00C9TIER +wao.ui.misc.N/A=non renseign\u00E9e +wao.ui.misc.accepted=Accept\u00E9 +wao.ui.misc.advancedSearch=Recherche avanc\u00E9e wao.ui.misc.by=par wao.ui.misc.changeOn=Modification du wao.ui.misc.comment=Commentaire -wao.ui.misc.commentAddedOn=Commentaire ajout\u00e9 le +wao.ui.misc.commentAddedOn=Commentaire ajout\u00E9 le wao.ui.misc.comments=Commentaires -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.companies=Soci\u00E9t\u00E9s +wao.ui.misc.createdOnF=Cr\u00E9\u00E9e le +wao.ui.misc.creating=En cours de cr\u00E9ation wao.ui.misc.export=Export wao.ui.misc.export.longTitle=Export CSV wao.ui.misc.import-export=Import/export @@ -208,7 +208,7 @@ wao.ui.misc.logFile.description=Afficher le fichier de log de %s wao.ui.misc.no=Non wao.ui.misc.noComment=aucun commentaire -wao.ui.misc.notValidated=Non valid\u00e9 +wao.ui.misc.notValidated=Non valid\u00E9 wao.ui.misc.observationReport=Compte-rendu d'observation wao.ui.misc.observations=Observations wao.ui.misc.observer=Observateur @@ -218,69 +218,69 @@ wao.ui.misc.other=Autre wao.ui.misc.otherInfos=Autre information wao.ui.misc.others=Autres -wao.ui.misc.refused=R\u00e9fus\u00e9 +wao.ui.misc.refused=R\u00E9fus\u00E9 wao.ui.misc.since=depuis le wao.ui.misc.total=Total -wao.ui.misc.undefined=Non-d\u00e9fini -wao.ui.misc.validated=Valid\u00e9 +wao.ui.misc.undefined=Non-d\u00E9fini +wao.ui.misc.validated=Valid\u00E9 wao.ui.misc.yes=Oui -wao.ui.nContactsFound=%s contacts trouv\u00e9s +wao.ui.nContactsFound=%s contacts trouv\u00E9s wao.ui.news.content=Texte wao.ui.news.title=Titre wao.ui.page.Administration.title=Administration wao.ui.page.Boats.title=Navires wao.ui.page.Cartography.title=Cartographie -wao.ui.page.ContactForm.mammalsInfo.disclaimer=Attention, toutes les informations saisies seront transmises \u00e0 des personnels ext\u00e9rieurs, soyez riguoureux dans la description de la capture accidentelle +wao.ui.page.ContactForm.mammalsInfo.disclaimer=Attention, toutes les informations saisies seront transmises \u00E0 des personnels ext\u00E9rieurs, soyez riguoureux dans la description de la capture accidentelle wao.ui.page.ContactForm.title=Modification d'un contact wao.ui.page.Contacts.title=Contacts wao.ui.page.Index.title=Accueil -wao.ui.page.SamplingPlan.title=Plan d'\u00e9chantillonnage -wao.ui.page.Synthesis.title=Synth\u00e8se +wao.ui.page.SamplingPlan.title=Plan d'\u00E9chantillonnage +wao.ui.page.Synthesis.title=Synth\u00E8se wao.ui.page.UserProfileForm.title=Gestion du profil -wao.ui.publishedByProgram=Publi\u00e9e par le programme -wao.ui.publishedByYourCompany=Publi\u00e9e par la soci\u00e9t\u00e9 -wao.ui.sampleRow.creation=Cr\u00e9ation d'une ligne du plan d'\u00e9chantillonnage +wao.ui.publishedByProgram=Publi\u00E9e par le programme +wao.ui.publishedByYourCompany=Publi\u00E9e par la soci\u00E9t\u00E9 +wao.ui.sampleRow.creation=Cr\u00E9ation d'une ligne du plan d'\u00E9chantillonnage wao.ui.sampleRow.edition=Modification de la ligne %s wao.ui.sampleRowLog.title=Historique de la ligne %s wao.ui.samplingPlan.actions=Actions -wao.ui.samplingPlan.actual=r\u00e9alis\u00e9 -wao.ui.samplingPlan.addSampleRow=Ajouter une ligne au plan d'\u00e9chantillonnage -wao.ui.samplingPlan.averageTideTime=Dur\u00e9e moyenne d'une mar\u00e9e (J.) -wao.ui.samplingPlan.effort=Effort d'observation en nombre de mar\u00e9es -wao.ui.samplingPlan.estimated=estim\u00e9 -wao.ui.samplingPlan.expected=planifi\u00e9 -wao.ui.samplingPlan.export=Exporter le plan d'\u00e9chantillonnage du %s au %s +wao.ui.samplingPlan.actual=r\u00E9alis\u00E9 +wao.ui.samplingPlan.addSampleRow=Ajouter une ligne au plan d'\u00E9chantillonnage +wao.ui.samplingPlan.averageTideTime=Dur\u00E9e moyenne d'une mar\u00E9e (J.) +wao.ui.samplingPlan.effort=Effort d'observation en nombre de mar\u00E9es +wao.ui.samplingPlan.estimated=estim\u00E9 +wao.ui.samplingPlan.expected=planifi\u00E9 +wao.ui.samplingPlan.export=Exporter le plan d'\u00E9chantillonnage du %s au %s wao.ui.samplingPlan.fishingZoneInfo=Zone autre(s) info(s) wao.ui.samplingPlan.months=Mois wao.ui.samplingPlan.nbObservants=Nb. d'observateurs -wao.ui.samplingPlan.program=Programme ou r\u00e8glement rattachement -wao.ui.samplingPlan.sampledProfessions=M\u00e9tiers \u00e9chantillonn\u00e9s -wao.ui.samplingPlan.showActual=Afficher l'effort d'observations r\u00e9alis\u00e9 pour les contacts valid\u00e9s seulement -wao.ui.samplingPlan.showExpected=Afficher l'effort d'observations estim\u00e9 pour les contacts valid\u00e9s ou non par la soci\u00e9t\u00e9 -wao.ui.samplingPlan.title=Plan d'\u00e9chantillonnage -wao.ui.synthesis.allegroReactivity.description=Ce r\u00e9sultat est une moyenne du nombre de jours entre la date de saisie des donn\u00e9es et la date de fin d'observation. -wao.ui.synthesis.allegroReactivity.title=R\u00e9activit\u00e9 quant \u00e0 la saisie des donn\u00e9es +wao.ui.samplingPlan.program=Programme ou r\u00E8glement rattachement +wao.ui.samplingPlan.sampledProfessions=M\u00E9tiers \u00E9chantillonn\u00E9s +wao.ui.samplingPlan.showActual=Afficher l'effort d'observations r\u00E9alis\u00E9 pour les contacts valid\u00E9s seulement +wao.ui.samplingPlan.showExpected=Afficher l'effort d'observations estim\u00E9 pour les contacts valid\u00E9s ou non par la soci\u00E9t\u00E9 +wao.ui.samplingPlan.title=Plan d'\u00E9chantillonnage +wao.ui.synthesis.allegroReactivity.description=Ce r\u00E9sultat est une moyenne du nombre de jours entre la date de saisie des donn\u00E9es et la date de fin d'observation. +wao.ui.synthesis.allegroReactivity.title=R\u00E9activit\u00E9 quant \u00E0 la saisie des donn\u00E9es wao.ui.synthesis.boarding.boardingCount=Au total, %s observations invalides sur %s observations. -wao.ui.synthesis.boarding.description=Ces r\u00e9sultats ne concernent que les lignes du plan d'\u00e9chantillonnage ayant une dur\u00e9e moyenne de mar\u00e9es inf\u00e9rieure ou \u00e9gale \u00e0 48h. -wao.ui.synthesis.boarding.mostUsedBoat=Navire le plus sollicit\u00e9 avec %s observations (tous programmes confondus) \: %s (%s) +wao.ui.synthesis.boarding.description=Ces r\u00E9sultats ne concernent que les lignes du plan d'\u00E9chantillonnage ayant une dur\u00E9e moyenne de mar\u00E9es inf\u00E9rieure ou \u00E9gale \u00E0 48h. +wao.ui.synthesis.boarding.mostUsedBoat=Navire le plus sollicit\u00E9 avec %s observations (tous programmes confondus) \: %s (%s) wao.ui.synthesis.boarding.title=Sollicitations des navires -wao.ui.synthesis.complianceBoarding.description=Respect du nombre pr\u00e9vu d'observateurs pour chaque mar\u00e9e r\u00e9alis\u00e9e. -wao.ui.synthesis.complianceBoarding.title=Respect du nombre d'observateurs embarqu\u00e9s -wao.ui.synthesis.contactsStates.description=Ces r\u00e9sultats concernent l'ensemble des \u00e9tats des contacts except\u00e9 ceux qui ont \u00e9t\u00e9 refus\u00e9s par le programme. -wao.ui.synthesis.contactsStates.title=\u00c9tats des contacts -wao.ui.synthesis.dataReliability.description=Pourcentage du nombre de mar\u00e9es exploitables par rapport nombre de mar\u00e9e r\u00e9alis\u00e9es. -wao.ui.synthesis.dataReliability.title=Qualit\u00e9 de la donn\u00e9e -wao.ui.synthesis.dataSampling.title=Donn\u00e9es des mar\u00e9es (r\u00e9alis\u00e9 / planifi\u00e9) -wao.ui.synthesis.globalSynthesis.globalResult=Bilan de la synth\u00e8se global -wao.ui.synthesis.globalSynthesis.title=Synth\u00e8se globale -wao.ui.synthesis.globalSynthesis.title.estimated=Synth\u00e8se globale (selon estimations) -wao.ui.synthesis.log.description=Cette page pr\u00e9sente toutes les modifications effectu\u00e9es depuis l'origine qui portent sur les bornes de chaque niveaux ainsi que les coefficients de chaque indicateurs. -wao.ui.synthesis.log.empty=Aucune modification n'a \u00e9t\u00e9 apport\u00e9e \u00e0 ce jour +wao.ui.synthesis.complianceBoarding.description=Respect du nombre pr\u00E9vu d'observateurs pour chaque mar\u00E9e r\u00E9alis\u00E9e. +wao.ui.synthesis.complianceBoarding.title=Respect du nombre d'observateurs embarqu\u00E9s +wao.ui.synthesis.contactsStates.description=Ces r\u00E9sultats concernent l'ensemble des \u00E9tats des contacts except\u00E9 ceux qui ont \u00E9t\u00E9 refus\u00E9s par le programme. +wao.ui.synthesis.contactsStates.title=\u00C9tats des contacts +wao.ui.synthesis.dataReliability.description=Pourcentage du nombre de mar\u00E9es exploitables par rapport nombre de mar\u00E9e r\u00E9alis\u00E9es. +wao.ui.synthesis.dataReliability.title=Qualit\u00E9 de la donn\u00E9e +wao.ui.synthesis.dataSampling.title=Donn\u00E9es des mar\u00E9es (r\u00E9alis\u00E9 / planifi\u00E9) +wao.ui.synthesis.globalSynthesis.globalResult=Bilan de la synth\u00E8se global +wao.ui.synthesis.globalSynthesis.title=Synth\u00E8se globale +wao.ui.synthesis.globalSynthesis.title.estimated=Synth\u00E8se globale (selon estimations) +wao.ui.synthesis.log.description=Cette page pr\u00E9sente toutes les modifications effectu\u00E9es depuis l'origine qui portent sur les bornes de chaque niveaux ainsi que les coefficients de chaque indicateurs. +wao.ui.synthesis.log.empty=Aucune modification n'a \u00E9t\u00E9 apport\u00E9e \u00E0 ce jour wao.ui.synthesis.log.entry.author=Auteur de la modification -wao.ui.synthesis.log.entry.comment=Commentaire associ\u00e9 +wao.ui.synthesis.log.entry.comment=Commentaire associ\u00E9 wao.ui.synthesis.log.entry.date=Date de la modification -wao.ui.synthesis.log.entry.summary=Modifications effectu\u00e9es -wao.ui.synthesis.log.title=Historique des modifications des param\u00e8tres de la synth\u00e8se globale -wao.ui.unavailableOperation=Op\u00e9ration non-disponible +wao.ui.synthesis.log.entry.summary=Modifications effectu\u00E9es +wao.ui.synthesis.log.title=Historique des modifications des param\u00E8tres de la synth\u00E8se globale +wao.ui.unavailableOperation=Op\u00E9ration non-disponible wao.ui.userList=Liste des utilisateurs wao.ui.validLogin=Identifiant valide Modified: trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml =================================================================== --- trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-04-05 15:21:12 UTC (rev 1140) +++ trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-04-05 15:45:38 UTC (rev 1141) @@ -25,22 +25,26 @@ 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="fleft actions-top"> - <span> - <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> - </span> + <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> <div style="clear: both;" /> - <t:samplingFilterComponent t:id="samplingFilter" - t:visibleOnStartup="true" - t:filterManager="filterManager" - t:legendMsg="${message:wao.ui.misc.advancedSearch}"/> + <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:samplingFilterComponent t:id="samplingFilter" + t:visibleOnStartup="true" + t:filterManager="filterManager" + t:legendMsg="${message:wao.ui.misc.advancedSearch}" /> + </t:zone> - <t:importFieldSet t:label="${message:wao.ui.import.samplingPlanLabel}" t:engine="samplingPlanImportEngine" /> <div t:type="grid" t:source="sampleRows" t:row="sampleRow" t:model="obsdebSamplingPlanModel" t:rowsPerPage="50"> <!-- code --> @@ -76,6 +80,15 @@ <a t:type="pagelink" t:page="sampleRowHistoric" t:context="sampleRow.code" title="${format:wao.ui.sampleRowLog.title=sampleRow.code}"> <img src="${asset:context:}/img/clock-22px.png" alt="${format:wao.ui.sampleRowLog.title=sampleRow.code}" /> </a> + <t:if t:test="canEditSampleRow()"> + <a t:type="pagelink" t:page="sampleRowForm" t:context="sampleRow.topiaId" title="${message:wao.ui.action.edit}" > + <img src="${asset:context:}/img/edit.png" alt="${message:wao.ui.action.edit}" /> + </a> + <!--a t:type="actionlink" t:id="deleteSampleRow" t:context="rowIndex" title="${message:wao.ui.action.deleteSampleRow}" + t:mixins="nuiton/confirm" t:message="${format:wao.ui.action.deleteSampleRow.confirm=row.code}"> + <img src="${asset:context:}/img/delete2.png" alt="${message:wao.ui.action.deleteSampleRow}" /> + </a--> + </t:if> </p:actionsCell> </div> Modified: trunk/wao-ui/src/main/webapp/SampleRowForm.tml =================================================================== --- trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2011-04-05 15:21:12 UTC (rev 1140) +++ trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2011-04-05 15:45:38 UTC (rev 1141) @@ -40,190 +40,226 @@ <t:zone t:id="globalZone" t:update="show"> <form t:type="form" t:id="sampleRowForm" t:zone="globalZone"> - <!-- PROFESSION --> - <fieldset> - <legend>${message:wao.ui.field.SampleRow.profession}</legend> - <t:if t:test="sampleRow.hasSampleMonthRealTideTime()"> - <!-- DISPLAY --> - <t:beandisplay t:id="professionDisplay" t:model="professionModel" t:object="sampleRow.profession" - t:include="meshSize, size, other, libelle, species" /> - <p:else> - <!-- EDITION --> - <div class="select"> - <label for="professionSelect">${message:wao.ui.field.SampleRow.professionCode} :</label> - <input t:type="select" t:id="professionSelect" t:model="professionSelectModel" - t:value="professionId" /> - <input t:type="submit" class="ico add" t:id="addNewProfession" value="${message:wao.ui.action.create}" /> - </div> - <div class="t-beaneditor"> - <t:beaneditor t:id="professionEditor" t:object="sampleRow.profession" - t:include="meshSize, size, other, libelle, species" /> - </div> - <div class="t-beaneditor"> - <div class="t-beaneditor-row"> - <label for="dcf5codes">${message:wao.ui.field.SampleRow.dcf5Code}</label><input t:type="textfield" t:value="dcf5codes" t:id="dcf5codes" /> + <t:delegate to="programBlock" /> + + <t:block t:id="obsDebBlock"> + <fieldset class="t-beaneditor"> + <legend>${message:wao.ui.misc.information}</legend> + <div class="t-beaneditor-row"> + <label for="day">${message:wao.ui.field.SampleRow.day}</label> + <input t:type="datefield" t:id="day" class="date" value="sampleRow.day" /> + </div> + <div class="acenter"> + <label for="observationUnit">${message:wao.ui.field.SampleRow.observationUnit}</label> + </div> + <div class="acenter"> + <t:topiaEntitySelector t:id="observationUnit" + t:clazzName="TerrestrialDivision" + t:labelPropertyName="description" + t:values="observationUnits" + t:selectedValue="sampleRow.observationUnit" /> + </div> + <div class="acenter"> + <label for="observers">${message:wao.ui.field.SampleRow.observers}</label> + </div> + <div class="acenter"> + <t:topiaEntitySelector t:id="observers" + t:multiple="true" + t:clazzName="WaoUser" + t:labelPropertyName="fullName" + t:values="observers" + t:selectedValues="sampleRow.observers" + size="6"/> + </div> + </fieldset> + </t:block> + + <t:block t:id="obsMerVenteBlock"> + <!-- PROFESSION --> + <fieldset> + <legend>${message:wao.ui.field.SampleRow.profession}</legend> + <t:if t:test="sampleRow.hasSampleMonthRealTideTime()"> + <!-- DISPLAY --> + <t:beandisplay t:id="professionDisplay" t:model="professionModel" t:object="sampleRow.profession" + t:include="meshSize, size, other, libelle, species" /> + <p:else> + <!-- EDITION --> + <div class="select"> + <label for="professionSelect">${message:wao.ui.field.SampleRow.professionCode} :</label> + <input t:type="select" t:id="professionSelect" t:model="professionSelectModel" + t:value="professionId" /> + <input t:type="submit" class="ico add" t:id="addNewProfession" value="${message:wao.ui.action.create}" /> </div> - </div> - </p:else> - </t:if> - </fieldset> + <div class="t-beaneditor"> + <t:beaneditor t:id="professionEditor" t:object="sampleRow.profession" + t:include="meshSize, size, other, libelle, species" /> + </div> + <div class="t-beaneditor"> + <div class="t-beaneditor-row"> + <label for="dcf5codes">${message:wao.ui.field.SampleRow.dcf5Code}</label><input t:type="textfield" t:value="dcf5codes" t:id="dcf5codes" /> + </div> + </div> + </p:else> + </t:if> + </fieldset> - <!-- FISHING ZONES --> - <fieldset id="so-samplerow-form-fishingzone"> - <legend>${message:wao.ui.field.SampleRow.fishingZones}</legend> - <t:if t:test="sampleRow.hasSampleMonthRealTideTime()"> - <!-- DISPLAY --> - <ul> - <li t:type="loop" t:source="fishingZones" t:volatile="true" t:value="fishingZone"> - ${fishingZone.code} - </li> - </ul> - <p:else> - <!-- EDITION --> - <div class="select"> - <t:label t:for="fishingZoneSelect" />* : - <input t:type="select" t:id="fishingZoneSelect" t:model="fishingZoneSelectModel" - t:value="fishingZoneId" /> - <input t:type="submit" class="ico add" t:id="addFishingZone" value="${message:wao.ui.action.add}" /> - </div> - <div class="clearfix fishingzone-row" t:type="loop" volatile="true" t:source="fishingZones" - t:value="fishingZone" t:index="indexFishingZone"> - <div class="fleft width50"> - <input t:type="submit" class="ico remove" t:context="indexFishingZone" t:id="removeFishingZone" t:defer="false" value="${message:wao.ui.action.remove}" /> - </div> - <div class="fleft"> + <!-- FISHING ZONES --> + <fieldset id="so-samplerow-form-fishingzone"> + <legend>${message:wao.ui.field.SampleRow.fishingZones}</legend> + <t:if t:test="sampleRow.hasSampleMonthRealTideTime()"> + <!-- DISPLAY --> + <ul> + <li t:type="loop" t:source="fishingZones" t:volatile="true" t:value="fishingZone"> ${fishingZone.code} + </li> + </ul> + <p:else> + <!-- EDITION --> + <div class="select"> + <t:label t:for="fishingZoneSelect" />* : + <input t:type="select" t:id="fishingZoneSelect" t:model="fishingZoneSelectModel" + t:value="fishingZoneId" /> + <input t:type="submit" class="ico add" t:id="addFishingZone" value="${message:wao.ui.action.add}" /> </div> - </div> - </p:else> + <div class="clearfix fishingzone-row" t:type="loop" volatile="true" t:source="fishingZones" + t:value="fishingZone" t:index="indexFishingZone"> + <div class="fleft width50"> + <input t:type="submit" class="ico remove" t:context="indexFishingZone" t:id="removeFishingZone" t:defer="false" value="${message:wao.ui.action.remove}" /> + </div> + <div class="fleft"> + ${fishingZone.code} + </div> + </div> + </p:else> + </t:if> + <div class="t-beaneditor-row"> + <label for="fishingZonesInfos">${message:wao.ui.misc.otherInfos}</label> + <input t:type="textfield" class="width300" t:id="fishingZonesInfos" value="sampleRow.fishingZonesInfos" /> + </div> + </fieldset> + + <t:if test="user.obsVente"> + <fieldset> + <legend>${message:wao.ui.entity.TerrestrialLocation}</legend> + <t:if t:test="sampleRow.hasSampleMonthRealTideTime()"> + <p class="acenter"> + <label for="terrestrialLocation">${message:wao.ui.field.SampleRow.terrestrialLocation}</label> + ${sampleRow.terrestrialLocation.description} + </p> + <p class="acenter"> + <label for="terrestrialLocationInfos">${message:wao.ui.misc.otherInfos}</label> + ${sampleRow.terrestrialLocationInfos} + </p> + <p:else> <!-- edit --> + <div class="select"> + <label for="terrestrialLocation"> + ${message:wao.ui.field.SampleRow.terrestrialLocation} + </label> + <input t:id="terrestrialLocation" + t:type="select" + t:model="terrestrialLocationSelectModel" + t:value="terrestrialLocationId" + t:validate="required" /> + </div> + <div class="select"> + <label for="terrestrialLocationInfos"> + ${message:wao.ui.misc.otherInfos} + </label> + <input t:type="textfield" class="width300" t:id="terrestrialLocationInfos" value="sampleRow.terrestrialLocationInfos" /> + </div> + </p:else> + </t:if> + </fieldset> </t:if> - <div class="t-beaneditor-row"> - <label for="fishingZonesInfos">${message:wao.ui.misc.otherInfos}</label> - <input t:type="textfield" class="width300" t:id="fishingZonesInfos" value="sampleRow.fishingZonesInfos" /> - </div> - </fieldset> - <t:if test="user.obsVente"> + <!-- PROGRAM and SAMPLE MONTHS --> <fieldset> - <legend>${message:wao.ui.entity.TerrestrialLocation}</legend> + <legend>${message:wao.ui.form.SampleRow.program}</legend> <t:if t:test="sampleRow.hasSampleMonthRealTideTime()"> - <p class="acenter"> - <label for="terrestrialLocation">${message:wao.ui.field.SampleRow.terrestrialLocation}</label> - ${sampleRow.terrestrialLocation.description} - </p> - <p class="acenter"> - <label for="terrestrialLocationInfos">${message:wao.ui.misc.otherInfos}</label> - ${sampleRow.terrestrialLocationInfos} - </p> - <p:else> <!-- edit --> + <!-- DISPLAY PROGRAM --> + <dl class="t-beandisplay"> + <dt>${message:wao.ui.field.SampleRow.programName}</dt> + <dd>${sampleRow.programName}</dd> + </dl> + <p:else> + <!-- EDITION PROGRAM --> <div class="select"> - <label for="terrestrialLocation"> - ${message:wao.ui.field.SampleRow.terrestrialLocation} - </label> - <input t:id="terrestrialLocation" - t:type="select" - t:model="terrestrialLocationSelectModel" - t:value="terrestrialLocationId" - t:validate="required" /> + <t:label t:for="program" />* : + <input t:type="select" t:id="program" t:model="programSelectModel" value="programId" /> + <!--<input t:type="submit" class="ico search" t:id="searchProgram" value="Search" + title="Afficher les détails du programme"/>--> + ${message:wao.ui.misc.or} <input t:type="textfield" t:id="programName" value="programName" /> </div> - <div class="select"> - <label for="terrestrialLocationInfos"> - ${message:wao.ui.misc.otherInfos} - </label> - <input t:type="textfield" class="width300" t:id="terrestrialLocationInfos" value="sampleRow.terrestrialLocationInfos" /> - </div> </p:else> </t:if> + <!-- EDITION PROGRAM PERIOD --> + <div class="select"> + <label for="programPeriodBegin">${message:wao.ui.form.period} * :</label> + ${message:wao.ui.form.period.from} <input t:type="datefield" t:id="programPeriodBegin" value="period.fromDate" /> + ${message:wao.ui.form.period.to} <input t:type="datefield" t:id="programPeriodEnd" value="period.thruDate" /> + <input t:type="submit" class="ico refresh" t:id="refreshMonths" value="Refresh" title="Rafraîchir les mois"/> + </div> + <!-- EDITION SAMPLE MONTHS --> + <div id="so-samplerow-form-months" class="acenter"> + <table> + <tr class="firstRow"> + <td t:type="loop" class="acenter" volatile="true" t:source="sampleMonths" t:value="sampleMonth" t:index="monthIndex"> + <t:output value="sampleMonth.periodDate" format="dateFormat" /> + </td> + </tr> + <tr> + <td t:type="loop" class="acenter" volatile="true" t:source="sampleMonths" t:value="sampleMonth"> + <input t:type="textfield" class="width40${monthStyle}" t:id="sampleMonth" value="sampleMonth.expectedTidesValue" /> + </td> + </tr> + </table> + </div> </fieldset> - </t:if> - - <!-- PROGRAM and SAMPLE MONTHS --> - <fieldset> - <legend>${message:wao.ui.form.SampleRow.program}</legend> - <t:if t:test="sampleRow.hasSampleMonthRealTideTime()"> - <!-- DISPLAY PROGRAM --> - <dl class="t-beandisplay"> - <dt>${message:wao.ui.field.SampleRow.programName}</dt> - <dd>${sampleRow.programName}</dd> - </dl> - <p:else> - <!-- EDITION PROGRAM --> - <div class="select"> - <t:label t:for="program" />* : - <input t:type="select" t:id="program" t:model="programSelectModel" value="programId" /> - <!--<input t:type="submit" class="ico search" t:id="searchProgram" value="Search" - title="Afficher les détails du programme"/>--> - ${message:wao.ui.misc.or} <input t:type="textfield" t:id="programName" value="programName" /> - </div> - </p:else> - </t:if> - <!-- EDITION PROGRAM PERIOD --> - <div class="select"> - <label for="programPeriodBegin">${message:wao.ui.form.period} * :</label> - ${message:wao.ui.form.period.from} <input t:type="datefield" t:id="programPeriodBegin" value="period.fromDate" /> - ${message:wao.ui.form.period.to} <input t:type="datefield" t:id="programPeriodEnd" value="period.thruDate" /> - <input t:type="submit" class="ico refresh" t:id="refreshMonths" value="Refresh" title="Rafraîchir les mois"/> - </div> - <!-- EDITION SAMPLE MONTHS --> - <div id="so-samplerow-form-months" class="acenter"> - <table> - <tr class="firstRow"> - <td t:type="loop" class="acenter" volatile="true" t:source="sampleMonths" t:value="sampleMonth" t:index="monthIndex"> - <t:output value="sampleMonth.periodDate" format="dateFormat" /> - </td> - </tr> - <tr> - <td t:type="loop" class="acenter" volatile="true" t:source="sampleMonths" t:value="sampleMonth"> - <input t:type="textfield" class="width40${monthStyle}" t:id="sampleMonth" value="sampleMonth.expectedTidesValue" /> - </td> - </tr> - </table> - </div> - </fieldset> - <!-- OTHER DATA : nbObservants, averageTideTime, company, boats, comment --> - <fieldset id="so-samplerow-form-other"> - <legend>${message:wao.ui.form.SampleRow.others}</legend> - <div class="t-beaneditor"> - <t:beaneditor t:id="sampleRowEditor" t:object="sampleRow" t:model="sampleRowModel"> - <p:code> - <label>${message:wao.ui.field.SampleRow.code}</label> - <!--${sampleRow.code}--> - <t:if t:test="sampleRow.code"> - <strong>${sampleRow.code}</strong> - <p:else> - <span class="code-missing"> - ${message:wao.ui.form.SampleRow.missingBeginDate} - </span> - </p:else> - </t:if> - </p:code> - <p:company> - <t:label t:for="company" /> - <t:if t:test="sampleRow.hasSampleMonthRealTideTime()"> - ${sampleRow.company.name} - <p:else> - <input t:type="select" t:id="company" t:model="companySelectModel" value="companyId" /> - </p:else> - </t:if> - </p:company> - <p:boats> - <t:label t:for="boats" /> - <input t:type="textarea" t:id="boats" cols="40" rows="2" value="immatriculations" /> - <span t:type="ck/Tooltip" title="Aide" t:value="${message:wao.ui.form.SampleRow.boatsDescription}" t:effect="appear"> - <img src="${asset:context:}/img/help-22px.png" alt="Aide" /> - </span> - </p:boats> - <p:comment> - <t:label t:for="comment" /> - <input t:type="textarea" t:id="comment" cols="40" rows="3" value="sampleRow.comment" /> - </p:comment> - <p:samplingStrategy> - <t:label t:for="samplingStrategy" /> - <input t:type="select" t:id="samplingStrategy" value="sampleRow.samplingStrategy" t:validate="required" /> - </p:samplingStrategy> - </t:beaneditor> - </div> - </fieldset> + <!-- OTHER DATA : nbObservants, averageTideTime, company, boats, comment --> + <fieldset id="so-samplerow-form-other"> + <legend>${message:wao.ui.form.SampleRow.others}</legend> + <div class="t-beaneditor"> + <t:beaneditor t:id="sampleRowEditor" t:object="sampleRow" t:model="sampleRowModel"> + <p:code> + <label>${message:wao.ui.field.SampleRow.code}</label> + <!--${sampleRow.code}--> + <t:if t:test="sampleRow.code"> + <strong>${sampleRow.code}</strong> + <p:else> + <span class="code-missing"> + ${message:wao.ui.form.SampleRow.missingBeginDate} + </span> + </p:else> + </t:if> + </p:code> + <p:company> + <t:label t:for="company" /> + <t:if t:test="sampleRow.hasSampleMonthRealTideTime()"> + ${sampleRow.company.name} + <p:else> + <input t:type="select" t:id="company" t:model="companySelectModel" value="companyId" /> + </p:else> + </t:if> + </p:company> + <p:boats> + <t:label t:for="boats" /> + <input t:type="textarea" t:id="boats" cols="40" rows="2" value="immatriculations" /> + <span t:type="ck/Tooltip" title="Aide" t:value="${message:wao.ui.form.SampleRow.boatsDescription}" t:effect="appear"> + <img src="${asset:context:}/img/help-22px.png" alt="Aide" /> + </span> + </p:boats> + <p:comment> + <t:label t:for="comment" /> + <input t:type="textarea" t:id="comment" cols="40" rows="3" value="sampleRow.comment" /> + </p:comment> + <p:samplingStrategy> + <t:label t:for="samplingStrategy" /> + <input t:type="select" t:id="samplingStrategy" value="sampleRow.samplingStrategy" t:validate="required" /> + </p:samplingStrategy> + </t:beaneditor> + </div> + </fieldset> + </t:block> <fieldset class="clearfix"> <t:errors t:banner="message:errors-banner"/> <p><label>${message:wao.ui.form.editionAuthor} : </label>${sampleRowLog.author.fullName}</p> @@ -236,7 +272,6 @@ <input t:type="submit" t:id="cancelSave" class="ico undo" value="${message:wao.ui.action.revert}" title="${message:wao.ui.action.revert}" /> </div> </fieldset> - </form> </t:zone> Modified: trunk/wao-ui/src/main/webapp/SamplingPlan.tml =================================================================== --- trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2011-04-05 15:21:12 UTC (rev 1140) +++ trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2011-04-05 15:45:38 UTC (rev 1141) @@ -296,8 +296,8 @@ </t:unless> </t:unless> <t:if t:test="canEditSampleRow()"> - <a t:type="pagelink" t:page="sampleRowForm" t:context="row.topiaId"> - <img src="${asset:context:}/img/edit.png" alt="Modifier" title="Modifier la ligne"/> + <a t:type="pagelink" t:page="sampleRowForm" t:context="row.topiaId" title="${message:wao.ui.action.edit}"> + <img src="${asset:context:}/img/edit.png" alt="${message:wao.ui.action.edit}" /> </a> <t:unless t:test="row.hasSampleMonthRealTideTime()"> <a t:type="actionlink" t:id="deleteSampleRow" t:context="rowIndex" title="${message:wao.ui.action.deleteSampleRow}"
participants (1)
-
bleny@users.labs.libre-entreprise.org