Author: fdesbois Date: 2010-01-13 13:42:12 +0000 (Wed, 13 Jan 2010) New Revision: 191 Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java trunk/suiviobsmer-ui/src/main/webapp/css/sampling.css Log: Evol #1979 : all error messages for Contact import Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java 2010-01-13 11:27:45 UTC (rev 190) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java 2010-01-13 13:42:12 UTC (rev 191) @@ -347,7 +347,7 @@ } public static String read(CsvReader reader, ImportHeader header) throws IOException { - return reader.get(header.name().trim()); + return reader.get(header.name()).trim(); } public static int readInt(CsvReader reader, ImportHeader header) throws IOException { Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-13 11:27:45 UTC (rev 190) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-13 13:42:12 UTC (rev 191) @@ -35,6 +35,8 @@ import org.nuiton.topia.framework.TopiaQuery; import fr.ifremer.suiviobsmer.bean.states.ContactStateEnum; import fr.ifremer.suiviobsmer.bean.ContactFilter; +import fr.ifremer.suiviobsmer.bean.ImportResults; +import fr.ifremer.suiviobsmer.bean.ImportResultsImpl; import fr.ifremer.suiviobsmer.entity.Boat; import fr.ifremer.suiviobsmer.entity.BoatDAO; import fr.ifremer.suiviobsmer.entity.Company; @@ -333,9 +335,9 @@ } @Override - public int importContactCsv(User user, InputStream input) throws SuiviObsmerException { + public ImportResults importContactCsv(User user, InputStream input) throws SuiviObsmerException { TopiaContext transaction = null; - int result = 0; + ImportResults result = new ImportResultsImpl(); int currRow = 1; try { transaction = rootContext.beginTransaction(); @@ -474,26 +476,27 @@ contact.setMammalsCapture(mammalsCapture); contact.setMammalsObservation(mammalsObsv); - result++; + result.incNbImported(); - } else if (log.isWarnEnabled()) { - log.warn("Import contact ligne " + currRow + " : " + - "Navire inexistant avec l'immatriculation : " + boatImmatriculation); + } else { + result.addError(currRow, "Navire inexistant avec l'immatriculation : " + boatImmatriculation); + result.incNbRefused(); } - } else if (log.isWarnEnabled()) { - log.warn("Import contact ligne " + currRow + " : " + - "Ligne d'échantillon inexistante ou incompatible avec la société pour le code : " + rowCode); + } else { + result.addError(currRow, "Ligne d'échantillon inexistante ou incompatible avec la société " + + "pour le code : " + rowCode); + result.incNbRefused(); } - } else if (log.isErrorEnabled()) { - log.error("Import contact ligne " + currRow + " : " + - "Cette utilisateur n'est lié à aucune société : " + user); + } else { + result.addError(currRow, "Cette utilisateur n'est lié à aucune société : " + user.getFullName()); + result.incNbRefused(); } - } else if (log.isWarnEnabled()) { - log.warn("Import contact ligne " + currRow + " : " + - "Utilisateur inexistant avec l'identifiant : " + observerId); + } else { + result.addError(currRow, "Utilisateur inexistant avec l'identifiant : " + observerId); + result.incNbRefused(); } - if (result % 1000 == 0) { + if (result.getNbRowsImported() % 1000 == 0) { transaction.commitTransaction(); tic = ImportHelper.logTimeAndMemory(log, tic, "contacts ligne " + currRow); } @@ -505,8 +508,7 @@ } catch (ParseException eee) { SuiviObsmerContext.serviceException(transaction, "Erreur ligne " + currRow + " : " + - "Le format des dates est incorrect, il doit être de la forme : JJ/MM/AAAA " + - "(ou JJ/MM/AAAA HH:MM:SS pour la date de création d'un contact existant)", eee); + "Le format des dates est incorrect, il doit être de la forme : JJ/MM/AAAA", eee); } catch (Exception eee) { SuiviObsmerContext.serviceException(transaction, "Impossible d'importer les contacts", eee); Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo =================================================================== (Binary files differ) Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-13 11:27:45 UTC (rev 190) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-13 13:42:12 UTC (rev 191) @@ -27,6 +27,7 @@ import fr.ifremer.suiviobsmer.bean.ContactFilter; import fr.ifremer.suiviobsmer.bean.ContactFilterImpl; import fr.ifremer.suiviobsmer.bean.ContactState; +import fr.ifremer.suiviobsmer.bean.ImportResults; import fr.ifremer.suiviobsmer.entity.Boat; import fr.ifremer.suiviobsmer.entity.Contact; import fr.ifremer.suiviobsmer.entity.SampleRow; @@ -71,7 +72,6 @@ import org.apache.tapestry5.services.BeanModelSource; import org.apache.tapestry5.services.Response; import org.apache.tapestry5.upload.services.UploadedFile; -import org.nuiton.util.DateUtils; import org.slf4j.Logger; /** @@ -259,10 +259,14 @@ void onSuccessFromImportContacts() throws SuiviObsmerException { //importBoatsForm.clearErrors(); try { - int result = serviceContact.importContactCsv(user, contactsCsvFile.getStream()); + ImportResults result = serviceContact.importContactCsv(user, contactsCsvFile.getStream()); // Suppress persitant list of contacts contacts = null; - layout.getFeedBack().addInfo(result + " contacts importés"); + layout.getFeedBack().addInfo(result.getNbRowsImported() + " contacts importés, " + + result.getNbRowsRefused() + " refusés."); + for (String error : result.getErrors()) { + layout.getFeedBack().addInfo(error); + } } catch (SuiviObsmerBusinessException eee) { layout.getFeedBack().addError(eee.getMessage()); } Modified: trunk/suiviobsmer-ui/src/main/webapp/css/sampling.css =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/css/sampling.css 2010-01-13 11:27:45 UTC (rev 190) +++ trunk/suiviobsmer-ui/src/main/webapp/css/sampling.css 2010-01-13 13:42:12 UTC (rev 191) @@ -80,11 +80,11 @@ color: white; } -div#so-sampling table tbody td.month span.real-warning-inf { +div#so-sampling table tbody span.real-warning-inf { color: red; } -div#so-sampling table tbody td.month span.real-warning-sup { +div#so-sampling table tbody span.real-warning-sup { color: blue; }