This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 56faee65c8e60b73ef283cc3f326d46c3d13a58e Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Apr 1 22:15:20 2015 +0200 amélioration des rapports d'import générique --- .../GenericFormatImportCruiseResult.java | 10 ++ .../GenericFormatImportOperationResult.java | 12 ++ .../genericformat/GenericFormatResultSupport.java | 10 +- .../resources/ftl/genericFormatImportReport_fr.ftl | 163 ++++++++++++--------- .../ftl/genericFormatValidateReport_fr.ftl | 16 +- 5 files changed, 133 insertions(+), 78 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportCruiseResult.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportCruiseResult.java index 2e824fc..2361f6e 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportCruiseResult.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportCruiseResult.java @@ -25,6 +25,7 @@ package fr.ifremer.tutti.service.genericformat; */ import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.referential.Vessel; import java.io.Serializable; import java.util.HashMap; @@ -98,6 +99,15 @@ public class GenericFormatImportCruiseResult implements Serializable, Iterable<G return override; } + public String getVesselName() { + Vessel vessel = cruise.getVessel(); + String result = vessel.getInternationalRegistrationCode(); + if (result==null ) { + result = vessel.getRegistrationCode(); + } + return result; + } + @Override public Iterator<GenericFormatImportOperationResult> iterator() { return fishingOperationResults.values().iterator(); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportOperationResult.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportOperationResult.java index aec4abd..5374463 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportOperationResult.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatImportOperationResult.java @@ -94,6 +94,18 @@ public class GenericFormatImportOperationResult implements Serializable { return catchBatch.getCatchTotalWeight(); } + public Float getCatchTotalRejectedWeight() { + return catchBatch.getCatchTotalRejectedWeight(); + } + + public Float getSpeciesTotalSortedWeight() { + return catchBatch.getSpeciesTotalSortedWeight(); + } + + public Float getBenthosTotalSortedWeight() { + return catchBatch.getBenthosTotalSortedWeight(); + } + public int getNbSpeciesTaxon() { return nbSpeciesBatchesVrac + nbSpeciesBatchesHorsVrac; } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatResultSupport.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatResultSupport.java index 6640891..56087d2 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatResultSupport.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/GenericFormatResultSupport.java @@ -85,6 +85,8 @@ public abstract class GenericFormatResultSupport implements Serializable { private final GenericFormatCsvFileResult accidentalCatchFileResult; + private final GenericFormatCsvFileResult attachmentsFileResult; + private String protocolOriginalName; private ProgramDataModel dataModel; @@ -107,6 +109,7 @@ public abstract class GenericFormatResultSupport implements Serializable { this.marineLitterFileResult = importContext.getMarineLitterFileResult(); this.individualObservationFileResult = importContext.getIndividualObservationFileResult(); this.accidentalCatchFileResult = importContext.getAccidentalCatchFileResult(); + this.attachmentsFileResult = importContext.getAttachmentFileResult(); this.protocolOriginalName = importContext.getProtocolOriginalName(); Set<String> archiveLayoutErrors1; if (importContext.isArchiveLayoutValid()) { @@ -134,7 +137,8 @@ public abstract class GenericFormatResultSupport implements Serializable { && catchFileResult.isValid() && marineLitterFileResult.isValid() && accidentalCatchFileResult.isValid() - && individualObservationFileResult.isValid(); + && individualObservationFileResult.isValid() + && attachmentsFileResult.isValid(); return result; } @@ -207,6 +211,10 @@ public abstract class GenericFormatResultSupport implements Serializable { return accidentalCatchFileResult; } + public GenericFormatCsvFileResult getAttachmentsFileResult() { + return attachmentsFileResult; + } + public File getReportFile() { return importRequest.getReportFile(); } diff --git a/tutti-service/src/main/resources/ftl/genericFormatImportReport_fr.ftl b/tutti-service/src/main/resources/ftl/genericFormatImportReport_fr.ftl index ed711d4..a3b858b 100644 --- a/tutti-service/src/main/resources/ftl/genericFormatImportReport_fr.ftl +++ b/tutti-service/src/main/resources/ftl/genericFormatImportReport_fr.ftl @@ -291,7 +291,7 @@ } h2 { - margin-bottom: 50pt; + margin-bottom: 20pt; } table { @@ -311,6 +311,10 @@ border-right: 1px solid #ccc; } + .operationPadding { + padding-left: 25pt; + } + tbody tr:nth-child(even) { background: ${lightGrayColor}; } @@ -319,6 +323,10 @@ background: #fff; } + .small { + font-size: 11px; + } + </style> </head> <body> @@ -352,33 +360,20 @@ <#if importConfiguration.importAttachments><li>Importer les pièces-jointes</li></#if> </ul> -<h2 class="nextPage"></h2> -<h2>Données sélectionnées à importer</h2> - -<ul> -<#list cruiseResults as cruiseResult> -<li> -<p>Campagne ${cruiseResult.label}<#if cruiseResult.override> (*)</#if> (<a href="#cruise_${cruiseResult.id}">Détails</a>) </p> -<ul> - <#list cruiseResult.iterator() as operationResult> - <li>Trait ${operationResult.label}<#if operationResult.override> (*)</#if> (<a href="#operation_${cruiseResult.id}_${operationResult.id}">Détails</a>)</li> - </#list> -</ul> -</li> -</#list> -</ul> - -<p>(*) donnée déjà existante.</p> +<h2>Protocol</h2> <#if protocolFileResult.imported && protocolFileResult.valid> <p>Un protocol nommé <span class="bold">${protocol.name}</span> a été importé et sélectionné pour l'import.</p> +<#else> +<p>Pas de protocol utilisé.</p> </#if> + <h2 class="nextPage"></h2> <h2>Fichiers importés</h2> <h3>Référentiels temporaires importés</h3> -<table align="center"> +<table> <thead> <tr> <th>Fichier</th> @@ -399,7 +394,7 @@ </table> <h3>Fichiers de données importés</h3> -<table align="center"> +<table> <thead> <tr> <th>Fichier</th> @@ -419,69 +414,103 @@ <@renderImportFileResult fileResult=marineLitterFileResult anchorName="marineLitterFileResult" showDetail=false/> <@renderImportFileResult fileResult=accidentalCatchFileResult anchorName="accidentalCatchFileResult" showDetail=false/> <@renderImportFileResult fileResult=individualObservationFileResult anchorName="individualObservationFileResult" showDetail=false/> + <@renderImportFileResult fileResult=attachmentsFileResult anchorName="attachmentsFileResult" showDetail=false/> </tbody> </table> <h2 class="nextPage"></h2> +<h2>Résumé des données importées <a name="summary_data_imported"></a> </h2> -<#macro renderCruiseResult cruiseResult> -<h2>Campagne ${cruiseResult.label} <a name="cruise_${cruiseResult.id}"></a></h2> - -<ul> - <#if cruiseResult.override> - <li>Campagne mise à jour</li> - <#else> - <li>Campagne créee</li> - </#if> - <li>Date de début : ${cruiseResult.cruise.beginDate?date?string.full}</li> - <li>Date de fin : ${cruiseResult.cruise.endDate?date?string.full}</li> - <li>Nombre de taits créés : ${cruiseResult.nbOperationsCreated}</li> - <li>Nombre de taits mis à jour : ${cruiseResult.nbOperationsUpdated}</li> - <li>Navire : ${cruiseResult.cruise.vessel.registrationCode} - ${cruiseResult.cruise.vessel.internationalRegistrationCode} </li> - <li>Engins : - <ul> - <#list cruiseResult.cruise.gear as gear> - <li>Engin importé : ${gear.label}</li> - </#list> - </ul> - </li> -</ul> - -<table align="center"> +<table> <thead> <tr> - <th>Trait</th> - <th>Valide</th> - <th>Poids total capture</th> - <th>Nb de taxons Espèce</th> - <th>Nb de taxons Benthos</th> - <th>Nb d'observations individuelles</th> - <th>Captures accidentelles</th> - <th>Macro-déchets</th> + <th>Campagne - Trait</th> + <th>Déja dans la base?</th> </tr> </thead> <tbody> - <#list cruiseResult.iterator() as operationResult> + <#list cruiseResults as cruiseResult> + <tr> + <td><a href="#cruise_${cruiseResult.id}">${cruiseResult.label}</a></td> + <td>${cruiseResult.override?string('Oui','Non')}</td> + </tr> + <#list cruiseResult.iterator() as operationResult> <tr> - <td>${operationResult.label} <a name="operation_${cruiseResult.id}_${operationResult.id}"></a></td> - <td>${operationResult.valid?string('Oui', 'Non')}</td> - <td>${operationResult.catchTotalWeight!'NA'}</td> - <td>${operationResult.nbSpeciesTaxon}</td> - <td>${operationResult.nbBenthosTaxon}</td> - <td>${operationResult.nbIndividualObservations}</td> - <td>${operationResult.withAccidentalCatches?string('Oui', 'Non')}</td> - <td>${operationResult.withMarineLitter?string('Oui', 'Non')}</td> + <td class="operationPadding">Trait ${operationResult.label}</td> + <td>${operationResult.override?string('Oui','Non')}</td> </tr> - </#list> + </#list> + </#list> </tbody> </table> +<#list cruiseResults as cruiseResult> <h2 class="nextPage"></h2> + <h2>Campagne ${cruiseResult.label} <a name="cruise_${cruiseResult.id}"></a></h2> + <ul class="small"> + <li>Date de début : ${cruiseResult.cruise.beginDate?date?string.full}</li> + <li>Date de fin : ${cruiseResult.cruise.endDate?date?string.full}</li> + <li>Nombre de taits créés : ${cruiseResult.nbOperationsCreated}</li> + <li>Nombre de taits mis à jour : ${cruiseResult.nbOperationsUpdated}</li> + <li>Navire : ${cruiseResult.vesselName!'Inconnu'} </li> + <li>Engins : + <ul> + <#list cruiseResult.cruise.gear as gear> + <li>${gear.label}</li> + </#list> + </ul> + </li> + </ul> -</#macro> + <h3>Trais importés</h3> + + <table align="center"> + <thead> + <tr> + <th class="small">Trait</th> + <th class="small">Valide</th> + <th class="small">Capture (1)</th> + <th class="small">Vrac non trié (2)</th> + <th class="small">Vrac Espèce (3)</th> + <th class="small">Vrac Benthos (4)</th> + <th class="small">Espèces (5)</th> + <th class="small">Benthos (6)</th> + <th class="small">Observations (6)</th> + <th class="small">Captures accidentelles</th> + <th class="small">Macro-déchets</th> + </tr> + </thead> + <tbody> + <#list cruiseResult.iterator() as operationResult> + <tr> + <td class="small">${operationResult.label} <a name="operation_${cruiseResult.id}_${operationResult.id}"></a></td> + <#if operationResult.valid><td class="valid"></td><#else><td class="notValid"></td></#if> + <td class="small">${operationResult.catchTotalWeight!'NA'}</td> + <td class="small">${operationResult.catchTotalRejectedWeight!'NA'}</td> + <td class="small">${operationResult.speciesTotalSortedWeight!'NA'}</td> + <td class="small">${operationResult.benthosTotalSortedWeight!'NA'}</td> + <td class="small">${operationResult.nbSpeciesTaxon}</td> + <td class="small">${operationResult.nbBenthosTaxon}</td> + <td class="small">${operationResult.nbIndividualObservations}</td> + <td class="small">${operationResult.withAccidentalCatches?string('Oui', 'Non')}</td> + <td class="small">${operationResult.withMarineLitter?string('Oui', 'Non')}</td> + </tr> + </#list> + </tbody> + </table> + + <ul class="small"> + <li>(1) Capture totale (kg)</li> + <li>(2) Vrac non trié (kg)</li> + <li>(2) Vrac Espèces isolée (kg)</li> + <li>(3) Vrac Betnhos isolé (kg)</li> + <li>(4) Nombre de taxon Espèces</li> + <li>(5) Nombre de taxon Benthos</li> + <li>(6) Nombre d'observations individuelles</li> + </ul> + + <p><a href="#summary_data_imported">Remonter au résumé des données importées</a></p> -<#list cruiseResults as cruiseResult> - <@renderCruiseResult cruiseResult=cruiseResult/> </#list> <h2 class="nextPage"></h2> @@ -490,7 +519,6 @@ <#assign fileResult = referentialTemporaryGearFileResult> <@renderReferentialImportFile fileResult=fileResult/> <#if fileResult.imported && fileResult.valid> -<p>Des engins temporaires ont été importés.</p> <@renderReferentialGearList title="Engins ajoutés" entries=fileResult.entitiesAddedEntries/> <@renderReferentialGearList title="Engins associés" entries=fileResult.entitiesLinkedEntries/> </#if> @@ -501,7 +529,6 @@ <#assign fileResult = referentialTemporaryPersonFileResult> <@renderReferentialImportFile fileResult=fileResult/> <#if fileResult.imported && fileResult.valid> -<p>Des personnes temporaires ont été importées.</p> <@renderReferentialPersonList title="Personnes ajoutées" entries=fileResult.entitiesAddedEntries/> <@renderReferentialPersonList title="Personnes associées" entries=fileResult.entitiesLinkedEntries/> </#if> @@ -512,7 +539,6 @@ <#assign fileResult = referentialTemporarySpeciesFileResult> <@renderReferentialImportFile fileResult=fileResult/> <#if fileResult.imported && fileResult.valid> -<p>Des taxons temporaires ont été importées.</p> <@renderReferentialSpeciesList title="Taxons ajoutés" entries=fileResult.entitiesAddedEntries/> <@renderReferentialSpeciesList title="Taxons associés" entries=fileResult.entitiesLinkedEntries/> </#if> @@ -523,7 +549,6 @@ <#assign fileResult = referentialTemporaryVesselFileResult> <@renderReferentialImportFile fileResult=fileResult/> <#if fileResult.imported && fileResult.valid> -<p>Des navires temporaires ont été importés.</p> <@renderReferentialVesselList title="Navires ajoutés" entries=fileResult.entitiesAddedEntries/> <@renderReferentialVesselList title="Navires associés" entries=fileResult.entitiesLinkedEntries/> </#if> diff --git a/tutti-service/src/main/resources/ftl/genericFormatValidateReport_fr.ftl b/tutti-service/src/main/resources/ftl/genericFormatValidateReport_fr.ftl index 6147716..4b27a9a 100644 --- a/tutti-service/src/main/resources/ftl/genericFormatValidateReport_fr.ftl +++ b/tutti-service/src/main/resources/ftl/genericFormatValidateReport_fr.ftl @@ -356,6 +356,7 @@ <@renderImportFileResult fileResult=marineLitterFileResult anchorName="marineLitterFileResult"/> <@renderImportFileResult fileResult=accidentalCatchFileResult anchorName="accidentalCatchFileResult"/> <@renderImportFileResult fileResult=individualObservationFileResult anchorName="individualObservationFileResult"/> + <@renderImportFileResult fileResult=attachmentsFileResult anchorName="attachmentsFileResult"/> </tbody> </table> @@ -425,7 +426,6 @@ <@renderImportFile fileResult=fileResult/> <#if fileResult.valid> <p>Des campagnes ont été validées.</p> -<strong>TODO</strong> </#if> <h2 class="nextPage"></h2> @@ -435,7 +435,6 @@ <@renderImportFile fileResult=fileResult/> <#if fileResult.valid> <p>Des mises en oeuvre d'engin ont été validées.</p> -<strong>TODO</strong> </#if> <h2 class="nextPage"></h2> @@ -445,7 +444,6 @@ <@renderImportFile fileResult=fileResult/> <#if fileResult.valid> <p>Des traits ont été validés.</p> -<strong>TODO</strong> </#if> <h2 class="nextPage"></h2> @@ -455,7 +453,6 @@ <@renderImportFile fileResult=fileResult/> <#if fileResult.valid> <p>Des caractéristiques de trait ont été validées.</p> -<strong>TODO</strong> </#if> <h2 class="nextPage"></h2> @@ -465,7 +462,6 @@ <@renderImportFile fileResult=fileResult/> <#if fileResult.valid> <p>Des lôts capture ont été validées.</p> -<strong>TODO</strong> </#if> <h2 class="nextPage"></h2> @@ -475,7 +471,6 @@ <@renderImportFile fileResult=fileResult/> <#if fileResult.valid> <p>Des macro déchets ont été validés.</p> -<strong>TODO</strong> </#if> <h2 class="nextPage"></h2> @@ -485,7 +480,6 @@ <@renderImportFile fileResult=fileResult/> <#if fileResult.valid> <p>Des captures accidentelles ont été validées.</p> -<strong>TODO</strong> </#if> <h2 class="nextPage"></h2> @@ -495,7 +489,13 @@ <@renderImportFile fileResult=fileResult/> <#if fileResult.valid> <p>Des observations individuelles ont été validées.</p> -<strong>TODO</strong> +</#if> + +<h2>Fichier des pièces jointes<a name="attachmentsFileResult"></a></h2> +<#assign fileResult = attachmentsFileResult> +<@renderImportFile fileResult=fileResult/> +<#if fileResult.valid> +<p>Des pièces-jointes ont été validées.</p> </#if> </body> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.