Wao-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- 2352 discussions
r1873 - in trunk: wao-persistence/src/main/java/fr/ifremer/wao/entity wao-persistence/src/main/xmi wao-web/src/main/java/fr/ifremer/wao/web wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer wao-web/src/main/resources/i18n wao-web/src/main/webapp/WEB-INF/content/obsmer
by bleny@users.forge.codelutin.com 09 Apr '14
by bleny@users.forge.codelutin.com 09 Apr '14
09 Apr '14
Author: bleny
Date: 2014-04-09 14:58:06 +0200 (Wed, 09 Apr 2014)
New Revision: 1873
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1873
Log:
refs #4487 enable contact creation from sampling plan
Added:
trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ElligibleBoatImpl.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/CancelBoatSelectionAction.java
Modified:
trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java
trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java
trunk/wao-persistence/src/main/xmi/wao-model.zargo
trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoActionSupport.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoSession.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatDetailsAction.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatsAction.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/CreateContactAction.java
trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boat-details.jsp
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java 2014-04-09 10:25:28 UTC (rev 1872)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java 2014-04-09 12:58:06 UTC (rev 1873)
@@ -47,9 +47,9 @@
if (sort) {
if (filter.isSortedByBoardingDate()) {
- query.setOrderByArguments(Contact.PROPERTY_OBSERVATION_BEGIN_DATE);
+ query.setOrderByArguments(Contact.PROPERTY_OBSERVATION_BEGIN_DATE + " desc");
} else {
- query.setOrderByArguments(Contact.PROPERTY_CREATION_DATE);
+ query.setOrderByArguments(Contact.PROPERTY_CREATION_DATE + " desc");
}
}
@@ -83,7 +83,7 @@
} else {
pager.setSortColumn(Contact.PROPERTY_CREATION_DATE);
}
- pager.setSortAscendant(true);
+ pager.setSortAscendant(false);
return pager;
}
Added: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ElligibleBoatImpl.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ElligibleBoatImpl.java (rev 0)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ElligibleBoatImpl.java 2014-04-09 12:58:06 UTC (rev 1873)
@@ -0,0 +1,10 @@
+package fr.ifremer.wao.entity;
+
+public class ElligibleBoatImpl extends ElligibleBoatAbstract {
+
+ @Override
+ public boolean isBoatElligible() {
+ boolean boatElligible = getCompanyActive() == null && isGlobalActive() || getCompanyActive();
+ return boatElligible;
+ }
+}
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2014-04-09 10:25:28 UTC (rev 1872)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2014-04-09 12:58:06 UTC (rev 1873)
@@ -30,8 +30,10 @@
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Date;
import java.util.LinkedHashSet;
+import java.util.LinkedList;
import java.util.List;
import java.util.Set;
@@ -278,4 +280,15 @@
stringBuffer.append(")");
return stringBuffer.toString();
}
+
+ @Override
+ public List<ElligibleBoat> getTrulyElligibleBoats() {
+ List<ElligibleBoat> trulyElligibleBoats = new LinkedList<ElligibleBoat>();
+ for (ElligibleBoat elligibleBoat : getElligibleBoat()) {
+ if (elligibleBoat.isBoatElligible()) {
+ trulyElligibleBoats.add(elligibleBoat);
+ }
+ }
+ return trulyElligibleBoats;
+ }
}
Modified: trunk/wao-persistence/src/main/xmi/wao-model.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoActionSupport.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoActionSupport.java 2014-04-09 10:25:28 UTC (rev 1872)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoActionSupport.java 2014-04-09 12:58:06 UTC (rev 1873)
@@ -44,4 +44,11 @@
this.session = session;
}
+ public void set_(String _) {
+ // ignore jQuery timestamp
+ }
+
+ public void setFragment(boolean fragment) {
+ // ignore fragment get parameter: it's managed by sitemesh decorators
+ }
}
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoSession.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoSession.java 2014-04-09 10:25:28 UTC (rev 1872)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoSession.java 2014-04-09 12:58:06 UTC (rev 1873)
@@ -43,6 +43,8 @@
protected String contactToHighlightId;
+ protected String startBoatSelectionForSampleRowId;
+
public Collection<String> getMessages() {
if (messages == null) {
messages = Lists.newLinkedList();
@@ -93,4 +95,12 @@
public String getContactToHighlightId() {
return contactToHighlightId;
}
+
+ public void setStartBoatSelectionForSampleRowId(String startBoatSelectionForSampleRowId) {
+ this.startBoatSelectionForSampleRowId = startBoatSelectionForSampleRowId;
+ }
+
+ public String getStartBoatSelectionForSampleRowId() {
+ return startBoatSelectionForSampleRowId;
+ }
}
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatDetailsAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatDetailsAction.java 2014-04-09 10:25:28 UTC (rev 1872)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatDetailsAction.java 2014-04-09 12:58:06 UTC (rev 1873)
@@ -22,8 +22,10 @@
*/
import com.google.common.base.Preconditions;
+import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.services.service.BoatDetails;
import fr.ifremer.wao.services.service.ObsMerBoatsService;
+import fr.ifremer.wao.services.service.ObsMerSamplingPlanService;
import fr.ifremer.wao.web.WaoJspActionSupport;
public class BoatDetailsAction extends WaoJspActionSupport {
@@ -32,16 +34,24 @@
protected transient ObsMerBoatsService service;
+ protected transient ObsMerSamplingPlanService obsMerSamplingPlanService;
+
protected String companyId;
protected String boatId;
protected BoatDetails boatDetails;
+ protected SampleRow startBoatSelectionForSampleRow;
+
public void setService(ObsMerBoatsService service) {
this.service = service;
}
+ public void setObsMerSamplingPlanService(ObsMerSamplingPlanService obsMerSamplingPlanService) {
+ this.obsMerSamplingPlanService = obsMerSamplingPlanService;
+ }
+
public void setCompanyId(String companyId) {
this.companyId = companyId;
}
@@ -57,6 +67,12 @@
boatDetails = service.getBoatDetails(getObsProgram(), boatId, companyId);
+ String startBoatSelectionForSampleRowId = session.getStartBoatSelectionForSampleRowId();
+
+ if (startBoatSelectionForSampleRowId != null) {
+ startBoatSelectionForSampleRow = obsMerSamplingPlanService.getSampleRow(startBoatSelectionForSampleRowId);
+ }
+
return SUCCESS;
}
@@ -65,4 +81,7 @@
return boatDetails;
}
+ public SampleRow getStartBoatSelectionForSampleRow() {
+ return startBoatSelectionForSampleRow;
+ }
}
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatsAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatsAction.java 2014-04-09 10:25:28 UTC (rev 1872)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/BoatsAction.java 2014-04-09 12:58:06 UTC (rev 1873)
@@ -24,11 +24,16 @@
import com.opensymphony.xwork2.Preparable;
import fr.ifremer.wao.BoatsFilter;
import fr.ifremer.wao.entity.Boat;
+import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.services.service.BoatsFilterValues;
import fr.ifremer.wao.services.service.ObsMerBoatsList;
import fr.ifremer.wao.services.service.ObsMerBoatsService;
+import fr.ifremer.wao.services.service.ObsMerSamplingPlanService;
import fr.ifremer.wao.services.service.PaginationBean;
import fr.ifremer.wao.web.WaoJspActionSupport;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import java.util.List;
@@ -43,8 +48,12 @@
private static final long serialVersionUID = 1L;
+ private static final Log log = LogFactory.getLog(BoatsAction.class);
+
protected transient ObsMerBoatsService service;
+ protected transient ObsMerSamplingPlanService obsMerSamplingPlanService;
+
/**
* Input pager.
*/
@@ -60,6 +69,10 @@
*/
protected ObsMerBoatsList boatList;
+ protected String startBoatSelectionForSampleRowId;
+
+ protected SampleRow startBoatSelectionForSampleRow;
+
public void setService(ObsMerBoatsService service) {
this.service = service;
}
@@ -90,10 +103,35 @@
return boatList.getPagination();
}
+ public void setStartBoatSelectionForSampleRowId(String startBoatSelectionForSampleRowId) {
+ this.startBoatSelectionForSampleRowId = startBoatSelectionForSampleRowId;
+ }
+
+ public void setObsMerSamplingPlanService(ObsMerSamplingPlanService obsMerSamplingPlanService) {
+ this.obsMerSamplingPlanService = obsMerSamplingPlanService;
+ }
+
@Override
public void prepare() {
filter = service.newBoatsFilter(getAuthenticatedWaoUser());
+
+ if (StringUtils.isNotBlank(startBoatSelectionForSampleRowId)) {
+
+ session.setStartBoatSelectionForSampleRowId(startBoatSelectionForSampleRowId);
+
+ if (log.isInfoEnabled()) {
+ log.info("user " + getAuthenticatedWaoUser().getWaoUser() + " is starting to select a boat for sample row " + startBoatSelectionForSampleRow);
+ }
+
+ }
+
+ if (session.getStartBoatSelectionForSampleRowId() != null) {
+
+ startBoatSelectionForSampleRow = obsMerSamplingPlanService.getSampleRow(session.getStartBoatSelectionForSampleRowId());
+
+ }
+
}
@Override
@@ -103,4 +141,9 @@
return SUCCESS;
}
+
+ public SampleRow getStartBoatSelectionForSampleRow() {
+ return startBoatSelectionForSampleRow;
+ }
+
}
Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/CancelBoatSelectionAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/CancelBoatSelectionAction.java (rev 0)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/CancelBoatSelectionAction.java 2014-04-09 12:58:06 UTC (rev 1873)
@@ -0,0 +1,22 @@
+package fr.ifremer.wao.web.action.obsmer;
+
+import fr.ifremer.wao.web.WaoJspActionSupport;
+import org.apache.struts2.convention.annotation.Result;
+import org.apache.struts2.convention.annotation.Results;
+
+
+@Results({
+ @Result(name="success", type="redirectAction", params = { "actionName", "boats" })
+})
+public class CancelBoatSelectionAction extends WaoJspActionSupport {
+
+ @Override
+ public String execute() {
+
+ session.setStartBoatSelectionForSampleRowId(null);
+
+ return SUCCESS;
+
+ }
+
+}
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/CreateContactAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/CreateContactAction.java 2014-04-09 10:25:28 UTC (rev 1872)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/CreateContactAction.java 2014-04-09 12:58:06 UTC (rev 1873)
@@ -34,6 +34,8 @@
Contact contact = service.createContact(getAuthenticatedWaoUser(), sampleRowId, boatId);
+ session.setStartBoatSelectionForSampleRowId(null);
+
session.setContactToHighlightId(contact.getTopiaId());
return SUCCESS;
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-04-09 10:25:28 UTC (rev 1872)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-04-09 12:58:06 UTC (rev 1873)
@@ -126,6 +126,7 @@
wao.ui.contacts.createFromBoat=Create a new contact for this boat and this sample row
wao.ui.contacts.createFromBoat.fail=Contact creation failed
wao.ui.contacts.createFromBoat.warn=Warning \:this sample-row is out of date, are your sure you want to create a new contact ?
+wao.ui.contacts.createFromBoatAndSelectedSampleRow=Create a contact for this boat and sample row %s (%s)
wao.ui.contacts.district=Boat District Code
wao.ui.contacts.division=Fishing Zone Division
wao.ui.contacts.immatriculation=Boat Immatriculation
@@ -523,6 +524,12 @@
wao.ui.synthesis.observationHours.categoryName=Hours of the day
wao.ui.synthesis.observationHours.description=Number of observations according to the time of the day (based on the observation begin date)
wao.ui.synthesis.observationHours.title=Observation hours
+wao.ui.tip.boatDetails.elligibleForSampleRowsEmpty=The boat is not associated to any sample row
+wao.ui.tip.contactAlreadyExists=You can't create a new contact since another already exists
+wao.ui.tip.inactiveBoat=You can't create a new contact with a inactive boat
+wao.ui.tip.useBoatSelectionForSampleRow=To create a contact for a sample-row for which the boat is not declared as eligible, you may create the contact from the sampling plan
+wao.ui.tip.youMustChooseBoat=You must choose a boat in the list
+wao.ui.tip.boatSelectionForSampleRowStarted=You are selecting a boat for sample row %s to create a contact. Sample row profession is %s.
wao.ui.unavailableOperation=Unavailable operation
wao.ui.unit.days=day(s)
wao.ui.unit.observers=observer(s)
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-04-09 10:25:28 UTC (rev 1872)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-04-09 12:58:06 UTC (rev 1873)
@@ -115,7 +115,7 @@
wao.ui.chart.numberObservations=Nb observations
wao.ui.chart.numberOfBoatsWithBoardings=Nombre de navires avec x embarquements
wao.ui.chooseUserProfile=Choisissez votre rôle
-wao.ui.contact.creation=Création d'u contact
+wao.ui.contact.creation=Création d'un contact
wao.ui.contact.edition=Modification du contact
wao.ui.contact.lastContact=Dernière observation concernant ce navire pour votre société (tous programmes confondus)
wao.ui.contacts.FishingZone.facadeName=Façade
@@ -126,6 +126,7 @@
wao.ui.contacts.createFromBoat=Créer un nouveau contact pour ce navire et cette ligne du plan
wao.ui.contacts.createFromBoat.fail=Création d'un nouveau contact impossible
wao.ui.contacts.createFromBoat.warn=Attention \: cette ligne du plan est arrivée à échéance, êtes-vous sûr de vouloir créer un nouveau contact ?
+wao.ui.contacts.createFromBoatAndSelectedSampleRow=Créer un nouveau contact avec ce navire pour la ligne %s (%s)
wao.ui.contacts.district=CQ
wao.ui.contacts.division=Division
wao.ui.contacts.immatriculation=N°
@@ -523,6 +524,12 @@
wao.ui.synthesis.observationHours.categoryName=Heures de la journée
wao.ui.synthesis.observationHours.description=Nombre d'observations effectuée selon l'heure d'arrivée
wao.ui.synthesis.observationHours.title=Distribution des périodes d'observation
+wao.ui.tip.boatDetails.elligibleForSampleRowsEmpty=Le navire n'est éligible pour aucune ligne du plan
+wao.ui.tip.contactAlreadyExists=Il existe déjà un contact en cours pour ce navire
+wao.ui.tip.inactiveBoat=On ne peut pas créer un contact avec un navire inactif
+wao.ui.tip.useBoatSelectionForSampleRow=Pour créer un contact avec ce navire et pour une autre ligne que celles retenues comme éligibles, vous devez vous rendre dans le plan, et pour la ligne en question, sélectionner « Créer un contact ».
+wao.ui.tip.youMustChooseBoat=Vous devez sélectionner un navire dans la liste en cliquant sur son immatriculation pour afficher les détails ici.
+wao.ui.tip.boatSelectionForSampleRowStarted=Vous êtes en mode de sélection d'un navire pour la ligne %s afin de créer un contact. Le métier de la ligne est %s.
wao.ui.unavailableOperation=Opération non-disponible
wao.ui.unit.days=jour(s)
wao.ui.unit.observers=observateur(s)
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boat-details.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boat-details.jsp 2014-04-09 10:25:28 UTC (rev 1872)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boat-details.jsp 2014-04-09 12:58:06 UTC (rev 1873)
@@ -55,12 +55,83 @@
});
$('#unlock-boat-infos-form').click(function () {
- $boatInfosForm.find('input[readOnly="true"], button').removeAttr('readOnly').removeAttr('disabled');
+ $boatInfosForm.find('input[readonly], button').removeAttr('readonly').removeAttr('disabled');
$(this).attr('disabled', 'disabled');
});
});
</script>
+<h3>
+ <s:text name="wao.ui.boats.interlocutor"/>
+</h3>
+
+<s:form id="boat-infos-form" cssClass="form-horizontal">
+
+ <s:hidden name="boatId" value="%{boatDetails.boatInfos.boat.topiaId}" />
+ <s:hidden name="companyId" value="%{boatDetails.boatInfos.company.topiaId}" />
+
+ <s:textfield name="boatInfos.contactFirstName" value="%{boatDetails.boatInfos.contactFirstName}" label="%{getText('wao.ui.field.BoatInfos.contactFirstName')}" readonly="true" />
+ <s:textfield name="boatInfos.contactLastName" value="%{boatDetails.boatInfos.contactLastName}" label="%{getText('wao.ui.field.BoatInfos.contactLastName')}" readonly="true" />
+ <s:textfield type="email" name="boatInfos.contactEmail" value="%{boatDetails.boatInfos.contactEmail}" label="%{getText('wao.ui.field.BoatInfos.contactEmail')}" readonly="true" />
+ <s:textfield type="phone" name="boatInfos.contactPhoneNumber" value="%{boatDetails.boatInfos.contactPhoneNumber}" label="%{getText('wao.ui.field.BoatInfos.contactPhoneNumber')}" readonly="true" />
+ <s:textfield type="number" name="boatInfos.dup" value="%{boatDetails.boatInfos.dup}" label="%{getText('wao.ui.field.BoatInfos.dup')}" readonly="true" />
+ <s:textfield name="boatInfos.contactAddress1" value="%{boatDetails.boatInfos.contactAddress1}" label="%{getText('wao.ui.field.BoatInfos.contactAddress1')}" readonly="true" />
+ <s:textfield name="boatInfos.contactAddress2" value="%{boatDetails.boatInfos.contactAddress2}" label="%{getText('wao.ui.field.BoatInfos.contactAddress2')}" readonly="true" />
+ <s:textfield name="boatInfos.contactPostalCode" value="%{boatDetails.boatInfos.contactPostalCode}" label="%{getText('wao.ui.field.BoatInfos.contactPostalCode')}" readonly="true" />
+ <s:textfield name="boatInfos.contactCity" value="%{boatDetails.boatInfos.contactCity}" label="%{getText('wao.ui.field.BoatInfos.contactCity')}" readonly="true" />
+ <s:textfield name="boatInfos.comment" value="%{boatDetails.boatInfos.comment}" label="%{getText('wao.ui.field.BoatInfos.comment')}" readonly="true" />
+
+ <div class="form-actions">
+ <button type="button" id="unlock-boat-infos-form" class="btn">
+ <i class="icon-edit"></i> <s:text name="wao.ui.action.edit" />
+ </button>
+
+ <button type="button" id="save-boat-infos" class="btn" disabled="disabled">
+ <i class="icon-hdd"></i> <s:text name="wao.ui.action.save" />
+ </button>
+ </div>
+
+</s:form>
+
+<h3>
+ <s:text name="wao.ui.boats.info"/>
+</h3>
+
+<table class="table">
+ <tbody>
+ <tr>
+ <th>
+ <s:text name="wao.ui.field.Boat.shipOwner"/>
+ </th>
+ <td>
+ <s:property value="boatDetails.boatInfos.boat.shipOwner.firstName"/>
+ <s:property value="boatDetails.boatInfos.boat.shipOwner.lastName"/>
+
+ <s:url action="boats" id="shipOwnerBoatsUrl">
+ <s:param name="filter.shipOwnerIds" value="boatDetails.boatInfos.boat.shipOwner.topiaId"/>
+ </s:url>
+ <s:a href="%{shipOwnerBoatsUrl}">
+ <s:text name="wao.ui.action.viewShipOwnerBoats"/>
+ </s:a>
+ </td>
+ </tr>
+ <tr>
+ <th>
+ <s:text name="wao.ui.field.Boat.boatGroup"/>
+ </th>
+ <td>
+ <s:if test="boatDetails.boatInfos.boat.boatGroup == null">
+ <s:text name="wao.ui.misc.N/A"/>
+ </s:if>
+ <s:else>
+ <s:property value="boatDetails.boatInfos.boat.boatGroup.description"/>
+ </s:else>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+
<s:if test="boatDetails.mostRecentContact != null">
<h3>
@@ -106,90 +177,61 @@
</s:if>
<h3>
- <s:text name="wao.ui.boats.interlocutor"/>
+ <s:text name="wao.ui.contact.creation"/>
</h3>
-
-<s:form id="boat-infos-form" cssClass="form-horizontal">
-
- <s:hidden name="boatId" value="%{boatDetails.boatInfos.boat.topiaId}" />
- <s:hidden name="companyId" value="%{boatDetails.boatInfos.company.topiaId}" />
-
- <s:textfield name="boatInfos.contactFirstName" value="%{boatDetails.boatInfos.contactFirstName}" label="%{getText('wao.ui.field.BoatInfos.contactFirstName')}" readOnly="true" />
- <s:textfield name="boatInfos.contactLastName" value="%{boatDetails.boatInfos.contactLastName}" label="%{getText('wao.ui.field.BoatInfos.contactLastName')}" readOnly="true" />
- <s:textfield type="email" name="boatInfos.contactEmail" value="%{boatDetails.boatInfos.contactEmail}" label="%{getText('wao.ui.field.BoatInfos.contactEmail')}" readOnly="true" />
- <s:textfield type="phone" name="boatInfos.contactPhoneNumber" value="%{boatDetails.boatInfos.contactPhoneNumber}" label="%{getText('wao.ui.field.BoatInfos.contactPhoneNumber')}" readOnly="true" />
- <s:textfield type="number" name="boatInfos.dup" value="%{boatDetails.boatInfos.dup}" label="%{getText('wao.ui.field.BoatInfos.dup')}" readOnly="true" />
- <s:textfield name="boatInfos.contactAddress1" value="%{boatDetails.boatInfos.contactAddress1}" label="%{getText('wao.ui.field.BoatInfos.contactAddress1')}" readOnly="true" />
- <s:textfield name="boatInfos.contactAddress2" value="%{boatDetails.boatInfos.contactAddress2}" label="%{getText('wao.ui.field.BoatInfos.contactAddress2')}" readOnly="true" />
- <s:textfield name="boatInfos.contactPostalCode" value="%{boatDetails.boatInfos.contactPostalCode}" label="%{getText('wao.ui.field.BoatInfos.contactPostalCode')}" readOnly="true" />
- <s:textfield name="boatInfos.contactCity" value="%{boatDetails.boatInfos.contactCity}" label="%{getText('wao.ui.field.BoatInfos.contactCity')}" readOnly="true" />
- <s:textfield name="boatInfos.comment" value="%{boatDetails.boatInfos.comment}" label="%{getText('wao.ui.field.BoatInfos.comment')}" readOnly="true" />
-
- <button type="button" id="unlock-boat-infos-form" class="btn">
- <i class="icon-edit"></i> <s:text name="wao.ui.action.edit" />
- </button>
-
- <button type="button" id="save-boat-infos" class="btn" disabled="disabled">
- <i class="icon-hdd"></i> <s:text name="wao.ui.action.save" />
- </button>
-
-</s:form>
-
-
-<h3>
- <s:text name="wao.ui.boats.associatedLine"/>
-</h3>
-<ul>
- <s:iterator value="boatDetails.elligibleForSampleRows">
- <li>
- <s:property value="code"/>
+<s:if test="boatDetails.boatInfos.boat.active">
+ <s:if test="startBoatSelectionForSampleRow == null">
+ <s:if test="boatDetails.elligibleForSampleRows.empty">
+ <s:text name="wao.ui.tip.boatDetails.elligibleForSampleRowsEmpty" />
+ </s:if>
+ <s:else>
+ <s:text name="wao.ui.boats.associatedLine"/>
+ <ul>
+ <s:iterator value="boatDetails.elligibleForSampleRows">
+ <li>
+ <s:property value="code"/>
+ <s:if test="boatDetails.newContactCreatable && authenticatedWaoUser.authorizedToCreateContact">
+ <s:url action="create-contact" id="createContactUrl">
+ <s:param name="boatId" value="boatDetails.boatInfos.boat.topiaId"/>
+ <s:param name="sampleRowId" value="topiaId"/>
+ </s:url>
+ <s:a href="%{createContactUrl}">
+ <s:text name="wao.ui.contacts.createFromBoat"/>
+ </s:a>
+ </s:if>
+ </li>
+ </s:iterator>
+ </ul>
+ </s:else>
+ <div class="alert alert-info">
+ <s:text name="wao.ui.tip.useBoatSelectionForSampleRow"/>
+ </div>
+ </s:if>
+ <s:else>
+ <s:if test="boatDetails.newContactCreatable">
<s:if test="boatDetails.newContactCreatable && authenticatedWaoUser.authorizedToCreateContact">
<s:url action="create-contact" id="createContactUrl">
<s:param name="boatId" value="boatDetails.boatInfos.boat.topiaId"/>
- <s:param name="sampleRowId" value="topiaId"/>
+ <s:param name="sampleRowId" value="startBoatSelectionForSampleRow.topiaId"/>
</s:url>
- <s:a href="%{createContactUrl}">
- <s:text name="wao.ui.contacts.createFromBoat"/>
+ <s:a href="%{createContactUrl}" cssClass="btn btn-success">
+ <i class="icon-plus"></i>
+ <s:text name="wao.ui.contacts.createFromBoatAndSelectedSampleRow">
+ <s:param value="startBoatSelectionForSampleRow.code"/>
+ <s:param value="startBoatSelectionForSampleRow.professionDescription"/>
+ </s:text>
</s:a>
</s:if>
- </li>
- </s:iterator>
-</ul>
-
-<h3>
- <s:text name="wao.ui.boats.info"/>
-</h3>
-
-<table class="table">
- <tbody>
- <tr>
- <th>
- <s:text name="wao.ui.field.Boat.shipOwner"/>
- </th>
- <td>
- <s:property value="boatDetails.boatInfos.boat.shipOwner.firstName"/>
- <s:property value="boatDetails.boatInfos.boat.shipOwner.lastName"/>
-
- <s:url action="boats" id="shipOwnerBoatsUrl">
- <s:param name="filter.shipOwnerIds" value="boatDetails.boatInfos.boat.shipOwner.topiaId"/>
- </s:url>
- <s:a href="%{shipOwnerBoatsUrl}">
- <s:text name="wao.ui.action.viewShipOwnerBoats"/>
- </s:a>
- </td>
- </tr>
- <tr>
- <th>
- <s:text name="wao.ui.field.Boat.boatGroup"/>
- </th>
- <td>
- <s:if test="boatDetails.boatInfos.boat.boatGroup == null">
- <s:text name="wao.ui.misc.N/A"/>
- </s:if>
- <s:else>
- <s:property value="boatDetails.boatInfos.boat.boatGroup.description"/>
- </s:else>
- </td>
- </tr>
- </tbody>
-</table>
+ </s:if>
+ <s:else>
+ <div class="alert">
+ <s:text name="wao.ui.tip.contactAlreadyExists"/>
+ </div>
+ </s:else>
+ </s:else>
+</s:if>
+<s:else>
+ <div class="alert">
+ <s:text name="wao.ui.tip.inactiveBoat"/>
+ </div>
+</s:else>
\ No newline at end of file
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp 2014-04-09 10:25:28 UTC (rev 1872)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/boats.jsp 2014-04-09 12:58:06 UTC (rev 1873)
@@ -59,6 +59,19 @@
<content tag="mainClass">large</content>
<content tag="boatsMenuItemClass">active</content>
+<s:if test="startBoatSelectionForSampleRow != null">
+ <div class="alert alert-info">
+ <s:text name="wao.ui.tip.boatSelectionForSampleRowStarted">
+ <s:param value="startBoatSelectionForSampleRow.code"/>
+ <s:param value="startBoatSelectionForSampleRow.professionDescription"/>
+ </s:text>
+ <s:url action="cancel-boat-selection" id="cancelBoatSelectionUrl"/>
+ <s:a href="%{cancelBoatSelectionUrl}" cssClass="btn btn-link">
+ <s:text name="wao.ui.action.cancel"/>
+ </s:a>
+ </div>
+</s:if>
+
<div id="boats-filters-list-details-layout">
<div>
@@ -256,7 +269,7 @@
<s:if test="authenticatedWaoUser.authorizedToViewBoatDetails">
<div id="boat-details">
<div class="alert alert-info">
- Vous devez sélectionner un navire dans la liste en cliquant sur son immatriculation pour afficher les détails ici.
+ <s:text name="wao.ui.tip.youMustChooseBoat" />
</div>
</div>
</s:if>
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-04-09 10:25:28 UTC (rev 1872)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-04-09 12:58:06 UTC (rev 1873)
@@ -493,8 +493,8 @@
</li>
<s:if test="authenticatedWaoUser.authorizedToCreateContact && newContactCreatable">
<li>
- <s:url action="contacts" id="createAssociatedContactUrl">
- <s:param name="sampleRowIds" value="sampleRowId" />
+ <s:url action="boats" id="createAssociatedContactUrl">
+ <s:param name="startBoatSelectionForSampleRowId" value="sampleRowId" />
</s:url>
<s:a href="%{createAssociatedContactUrl}">
<i class="icon-plus"></i> <s:text name="wao.ui.action.createAssociatedContact" />
1
0
r1872 - trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer
by tchemit@users.forge.codelutin.com 09 Apr '14
by tchemit@users.forge.codelutin.com 09 Apr '14
09 Apr '14
Author: tchemit
Date: 2014-04-09 12:25:28 +0200 (Wed, 09 Apr 2014)
New Revision: 1872
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1872
Log:
refs #4487 edit-contact (disable some form fields)
Modified:
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-contact-input.jsp
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-contact-input.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-contact-input.jsp 2014-04-09 09:38:33 UTC (rev 1871)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-contact-input.jsp 2014-04-09 10:25:28 UTC (rev 1872)
@@ -59,59 +59,61 @@
<s:textfield name="updateContactCommand.contact.boat.name"
label="%{getText('wao.ui.field.Boat.name')}"
- readonly="true"/>
+ disabled="true"/>
<s:textfield name="updateContactCommand.contact.boat.immatriculation"
value="%{'' + updateContactCommand.contact.boat.immatriculation}"
label="%{getText('wao.ui.field.Boat.immatriculation')}"
- readonly="true"/>
+ disabled="true"/>
<s:textfield name="updateContactCommand.contact.boat.districtCode"
label="%{getText('wao.ui.field.Boat.districtCode')}"
- readonly="true"/>
+ disabled="true"/>
<s:textfield name="updateContactCommand.contact.boat.boatLength"
label="%{getText('wao.ui.field.Boat.boatLength')}"
- readonly="true"/>
+ disabled="true"/>
<s:textfield name="updateContactCommand.contact.boat.buildYear"
value="%{'' + updateContactCommand.contact.boat.buildYear}"
label="%{getText('wao.ui.field.Boat.buildYear')}"
- readonly="true"/>
+ disabled="true"/>
<hr/>
<s:textfield name="updateContactCommand.contact.sampleRow.professionDescription"
label="%{getText('wao.ui.field.SampleRow.profession')}"
- readonly="true"/>
+ disabled="true"/>
<s:textfield name="updateContactCommand.contact.sampleRow.programName"
label="%{getText('wao.ui.field.SampleRow.programName')}"
- readonly="true"/>
+ disabled="true"/>
<s:textfield name="updateContactCommand.contact.sampleRow.periodBegin"
label="%{getText('wao.ui.field.SampleRow.periodBegin')}"
value="%{formatMonth(updateContactCommand.contact.sampleRow.periodBegin)}"
cssClass="input-small"
- readonly="true"/>
+ disabled="true"/>
<s:textfield name="updateContactCommand.contact.sampleRow.periodEnd"
label="%{getText('wao.ui.field.SampleRow.periodEnd')}"
value="%{formatMonth(updateContactCommand.contact.sampleRow.periodEnd)}"
cssClass="input-small"
- readonly="true"/>
+ disabled="true"/>
<hr/>
<s:textfield name="updateContactCommand.contact.creationDate"
label="%{getText('wao.ui.field.Contact.creationDate')}"
value="%{formatDate(updateContactCommand.contact.creationDate)}"
- readonly="true"/>
+ disabled="true"/>
</fieldset>
- <%--TODO Editable (cssClass edit-observers) if authenticatedWaoUser.isAuthorizedToEditContactObservers(updateContactCommand.contact)--%>
<fieldset>
<legend><s:text name="wao.ui.misc.observers"/></legend>
+ <s:set name="editObservers"
+ value="%{authenticatedWaoUser.isAuthorizedToEditContactObservers(updateContactCommand.contact)}"/>
+
<s:select name="updateContactCommand.contact.mainObserver"
value="%{updateContactCommand.contact.mainObserver.topiaId}"
label="%{getText('wao.ui.field.Contact.mainObserver')}"
list="observers"
emptyOption="true"
- cssClass="edit-observers"/>
+ disabled="%{!#editObservers}"/>
<s:if test="authenticatedWaoUser.isAuthorizedToDisplayContactSecondaryObservers(updateContactCommand.contact)">
<s:select name="updateContactCommand.contact.secondaryObservers"
@@ -119,47 +121,49 @@
label="%{getText('wao.ui.field.Contact.secondaryObservers')}"
list="observers"
multiple="true"
- cssClass="edit-observers"/>
+ disabled="%{!#editObservers}"/>
</s:if>
</fieldset>
- <%--TODO Editable (cssClass edit-observationReport) if authenticatedWaoUser.authorizedToEditObservationReport(updateContactCommand.contactcontact)--%>
<fieldset id="coordinatorFocus">
<legend><s:text name="wao.ui.misc.observationReport"/></legend>
+ <s:set name="editObservationReport"
+ value="%{authenticatedWaoUser.isAuthorizedToEditObservationReport(updateContactCommand.contact)}"/>
+
<s:textfield name="updateContactCommand.contact.observationBeginDate"
label="%{getText('wao.ui.field.Contact.beginDate')}"
value="%{formatDateTime(updateContactCommand.contact.observationBeginDate)}"
placeholder="%{getDateTimePlaceholder()}"
- cssClass="edit-observationReport"/>
+ disabled="%{!#editObservationReport}"/>
<s:textfield name="updateContactCommand.contact.observationEndDate"
label="%{getText('wao.ui.field.Contact.endDate')}"
value="%{formatDateTime(updateContactCommand.contact.observationEndDate)}"
placeholder="%{getDateTimePlaceholder()}"
- cssClass="observationReport"/>
+ disabled="%{!#editObservationReport}"/>
<s:select name="updateContactCommand.contact.contactState"
label="%{getText('wao.ui.field.Contact.contactState')}"
requiredLabel="true"
list="contactStates"
- cssClass="edit-observationReport"/>
+ disabled="%{!#editObservationReport}"/>
<s:select name="updateContactCommand.contact.contactStateMotif"
value="%{updateContactCommand.contact.contactState.topiaId}"
label="%{getText('wao.ui.field.Contact.contactStateMotif')}"
list="contactStateMotives"
emptyOption="true"
- cssClass="edit-observationReport"/>
+ disabled="%{!#editObservationReport}"/>
<s:checkbox name="updateContactCommand.contact.mammalsObservation"
label="%{getText('wao.ui.field.Contact.mammalsObservation')}"
- cssClass="edit-observationReport"/>
+ disabled="%{!#editObservationReport}"/>
<s:checkbox name="updateContactCommand.contact.mammalsCapture"
label="%{getText('wao.ui.field.Contact.mammalsCapture')}"
- cssClass="edit-observationReport"/>
+ disabled="%{!#editObservationReport}"/>
<%--TODO onclick="updateMammalsInfoBox(this);" />--%>
<%--<span style="color: red;">--%>
@@ -168,36 +172,33 @@
<s:textarea name="updateContactCommand.contact.mammalsInfo"
label="%{getText('wao.ui.field.Contact.mammalsInfo')}"
- cssClass="edit-observationReport"/>
+ disabled="%{!#editObservationReport}"/>
<s:textfield name="updateContactCommand.contact.dataInputDate"
label="%{getText('wao.ui.field.Contact.dataInputDate')}"
value="%{formatDate(updateContactCommand.contact.dataInputDate)}"
placeholder="%{getDatePlaceholder()}"
- cssClass="edit-observationReport"/>
+ disabled="%{!#editObservationReport}"/>
- <%--TODO Editable for authenticatedWaoUser.coordinator--%>
<s:select name="updateContactCommand.contact.observedDataControl"
label="%{getText('wao.ui.field.Contact.observedDataControl')}"
list="observedDataControls"
emptyOption="true"
- cssClass="edit-observationReport"/>
+ disabled="%{!#editObservationReport || !authenticatedWaoUser.coordinator}"/>
<s:textfield name="updateContactCommand.contact.restitution"
label="%{getText('wao.ui.field.Contact.restitution')}"
value="%{formatDate(updateContactCommand.contact.restitution)}"
placeholder="%{getDatePlaceholder()}"
- cssClass="edit-observationReport"/>
+ disabled="%{!#editObservationReport}"/>
<s:textarea name="updateContactCommand.contact.comment"
label="%{getText('wao.ui.field.Contact.comment')}"
- readonly="%{!authenticatedWaoUser.coordinatorOrObserver}"
- cssClass="edit-observationReport"/>
+ disabled="%{!#editObservationReport || !authenticatedWaoUser.coordinatorOrObserver}"/>
<s:textarea name="updateContactCommand.contact.commentCoordinator"
label="%{getText('wao.ui.field.Contact.commentCoordinator')}"
- readonly="%{!authenticatedWaoUser.coordinator}"
- cssClass="edit-observationReport"/>
+ disabled="%{!#editObservationReport || !authenticatedWaoUser.coordinator}"/>
</fieldset>
@@ -205,11 +206,11 @@
<legend><s:text name="wao.ui.form.programEvaluation"/></legend>
<s:if test="authenticatedWaoUser.authorizedToDisplayContactDataReliability">
- <%--TODO Editable for authenticatedWaoUser.isAuthorizedToEditContactDataReliability(updateContactCommand.contact)--%>
<s:select name="updateContactCommand.contact.dataReliability"
label="%{getText('wao.ui.field.Contact.dataReliability')}"
list="dataReliabilities"
- emptyOption="true"/>
+ emptyOption="true"
+ disabled="%{!authenticatedWaoUser.isAuthorizedToEditContactDataReliability(updateContactCommand.contact)}"/>
</s:if>
<s:textarea name="updateContactCommand.contact.commentAdmin"
1
0
r1871 - in trunk: wao-persistence/src/main/resources/i18n wao-services/src/main/java/fr/ifremer/wao/services wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer wao-web/src/main/resources/i18n wao-web/src/main/webapp/WEB-INF/content/obsmer
by tchemit@users.forge.codelutin.com 09 Apr '14
by tchemit@users.forge.codelutin.com 09 Apr '14
09 Apr '14
Author: tchemit
Date: 2014-04-09 11:38:33 +0200 (Wed, 09 Apr 2014)
New Revision: 1871
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1871
Log:
refs #4487 edit contact (security)
Modified:
trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties
trunk/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditContactAction.java
trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-contact-input.jsp
Modified: trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties
===================================================================
--- trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties 2014-04-09 06:59:21 UTC (rev 1870)
+++ trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties 2014-04-09 09:38:33 UTC (rev 1871)
@@ -138,8 +138,8 @@
fr.ifremer.wao.entity.TerrestrialDivision=Terrestrial divisions
fr.ifremer.wao.entity.TerrestrialLocation=Terrestrial locations
wao.business.other=
-wao.date.formatter=%1$td-%1$tm/%1$tY
-wao.datetime.formatter=%1$td-%1$tm/%1$tY %1$tH\:%1$tM
+wao.date.formatter=%1$td-%1$tm-%1$tY
+wao.datetime.formatter=%1$td-%1$tm-%1$tY %1$tH\:%1$tM
wao.month.formatter=%1$tm-%1$tY
wao.month.pattern=MM-yyyy
wao.time.formatter=%1$tH\:%1$tM
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java 2014-04-09 06:59:21 UTC (rev 1870)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java 2014-04-09 09:38:33 UTC (rev 1871)
@@ -215,6 +215,10 @@
return authorizedToViewBoatDetails;
}
+ public boolean isAuthorizedToEditOrDeleteContact(Contact contact) {
+ return isAuthorizedToEditContact(contact) || isAuthorizedToDeleteContact(contact);
+ }
+
public boolean isAuthorizedToEditContact(Contact contact) {
boolean canEdit = getCanWrite() &&
@@ -281,5 +285,33 @@
}
}
+ public boolean isAuthorizedToDisplayContactSecondaryObservers(Contact contact) {
+ boolean showSecondaryObservers = true;
+ if (contact.getSampleRow().isPhoneCall()) {
+ // when phoning, we are always single
+ showSecondaryObservers = false;
+ }
+ return showSecondaryObservers;
+ }
+ public boolean isAuthorizedToDisplayContactDataReliability() {
+ return isAdmin() || isCoordinator();
+ }
+
+ public boolean isAuthorizedToEditContactDataReliability(Contact contact) {
+ boolean result = isAdmin() // coordinator can see the value
+ && BooleanUtils.isTrue(contact.getValidationCompany())
+ && contact.getValidationProgram() == null;
+ return result;
+ }
+
+ public boolean isAuthorizedToEditContactObservers(Contact contact) {
+ return isCoordinatorOrObserver() &&
+ contact.getValidationProgram() == null;
+ }
+
+ public boolean isAuthorizedToEditObservationReport(Contact contact) {
+ return isCoordinatorOrObserver() &&
+ contact.getValidationCompany() == null;
+ }
}
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditContactAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditContactAction.java 2014-04-09 06:59:21 UTC (rev 1870)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditContactAction.java 2014-04-09 09:38:33 UTC (rev 1871)
@@ -25,7 +25,6 @@
import com.google.common.base.Strings;
import com.opensymphony.xwork2.Preparable;
import fr.ifremer.wao.WaoUtils;
-import fr.ifremer.wao.entity.Contact;
import fr.ifremer.wao.entity.ContactState;
import fr.ifremer.wao.entity.ContactStateMotif;
import fr.ifremer.wao.entity.DataReliability;
@@ -59,7 +58,6 @@
import fr.ifremer.wao.services.service.administration.ReferentialService;
import fr.ifremer.wao.services.service.administration.WaoUsersService;
import fr.ifremer.wao.web.WaoJspActionSupport;
-import org.apache.commons.lang3.BooleanUtils;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
@@ -289,37 +287,6 @@
}
}
- public boolean isDisplaySecondaryObservers() {
- boolean showSecondaryObservers = true;
- if (updateContactCommand.getContact().getSampleRow().isPhoneCall()) {
- // when phoning, we are always single
- showSecondaryObservers = false;
- }
- return showSecondaryObservers;
- }
-
- public boolean isDisplayDataReliability() {
- return getAuthenticatedWaoUser().isAdmin() || getAuthenticatedWaoUser().isCoordinator();
- }
-
- public boolean canEditDataReliability() {
- Contact contact = updateContactCommand.getContact();
- boolean result = getAuthenticatedWaoUser().isAdmin() // coordinator can see the value
- && BooleanUtils.isTrue(contact.getValidationCompany())
- && contact.getValidationProgram() == null;
- return result;
- }
-
- public boolean canEditObservers() {
- return getAuthenticatedWaoUser().isCoordinatorOrObserver() &&
- updateContactCommand.getContact().getValidationProgram() == null;
- }
-
- public boolean canEditObservationReport() {
- return getAuthenticatedWaoUser().isCoordinatorOrObserver() &&
- updateContactCommand.getContact().getValidationCompany() == null;
- }
-
@Override
public String execute() throws Exception {
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-04-09 06:59:21 UTC (rev 1870)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-04-09 09:38:33 UTC (rev 1871)
@@ -116,7 +116,7 @@
wao.ui.chart.numberOfBoatsWithBoardings=Number of boats with x observations
wao.ui.chooseUserProfile=Choose your user profile
wao.ui.contact.creation=Creation of a contact
-wao.ui.contact.edition=Edtion of contact %s
+wao.ui.contact.edition=Edtion of contact
wao.ui.contact.lastContact=Last observation with this boat for your company
wao.ui.contacts.FishingZone.facadeName=Fishing zone Facade
wao.ui.contacts.FishingZone.sectorName=Fishing zone Sector
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-04-09 06:59:21 UTC (rev 1870)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-04-09 09:38:33 UTC (rev 1871)
@@ -116,7 +116,7 @@
wao.ui.chart.numberOfBoatsWithBoardings=Nombre de navires avec x embarquements
wao.ui.chooseUserProfile=Choisissez votre rôle
wao.ui.contact.creation=Création d'u contact
-wao.ui.contact.edition=Modification du contact %s
+wao.ui.contact.edition=Modification du contact
wao.ui.contact.lastContact=Dernière observation concernant ce navire pour votre société (tous programmes confondus)
wao.ui.contacts.FishingZone.facadeName=Façade
wao.ui.contacts.FishingZone.sectorName=Zone
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp 2014-04-09 06:59:21 UTC (rev 1870)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp 2014-04-09 09:38:33 UTC (rev 1871)
@@ -524,7 +524,7 @@
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
- <s:if test="authenticatedWaoUser.isAuthorizedToEditContact(#contact) || authenticatedWaoUser.isAuthorizedToDeleteContact(#contact)">
+ <s:if test="authenticatedWaoUser.isAuthorizedToEditOrDeleteContact(#contact)">
<li>
<s:if test="authenticatedWaoUser.admin">
<s:set name="focusAnchor">adminFocus</s:set>
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-contact-input.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-contact-input.jsp 2014-04-09 06:59:21 UTC (rev 1870)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-contact-input.jsp 2014-04-09 09:38:33 UTC (rev 1871)
@@ -25,12 +25,10 @@
<head>
<title>
<s:if test="updateContactCommand.creation">
- <s:text name="wao.ui.sampleRow.creation"/>
+ <s:text name="wao.ui.contact.creation"/>
</s:if>
<s:else>
- <s:text name="wao.ui.contact.edition">
- <s:param value="updateContactCommand.contact.mainObserver.fullName"/>
- </s:text>
+ <s:text name="wao.ui.contact.edition"/>
</s:else>
</title>
<script>
@@ -42,15 +40,12 @@
</script>
</head>
-
<h1>
<s:if test="updateContactCommand.creation">
<s:text name="wao.ui.contact.creation"/>
</s:if>
<s:else>
- <s:text name="wao.ui.contact.edition">
- <s:param value="updateContactCommand.contact.mainObserver.fullName"/>
- </s:text>
+ <s:text name="wao.ui.contact.edition"/>
</s:else>
</h1>
@@ -60,7 +55,7 @@
<fieldset>
- <legend><s:text name="wao.ui.form.contact.boat.information"/></legend>
+ <legend><s:text name="wao.ui.misc.information"/></legend>
<s:textfield name="updateContactCommand.contact.boat.name"
label="%{getText('wao.ui.field.Boat.name')}"
@@ -79,12 +74,9 @@
value="%{'' + updateContactCommand.contact.boat.buildYear}"
label="%{getText('wao.ui.field.Boat.buildYear')}"
readonly="true"/>
- </fieldset>
- <fieldset>
+ <hr/>
- <legend><s:text name="wao.ui.form.contact.sampleRow.information"/></legend>
-
<s:textfield name="updateContactCommand.contact.sampleRow.professionDescription"
label="%{getText('wao.ui.field.SampleRow.profession')}"
readonly="true"/>
@@ -94,22 +86,23 @@
<s:textfield name="updateContactCommand.contact.sampleRow.periodBegin"
label="%{getText('wao.ui.field.SampleRow.periodBegin')}"
value="%{formatMonth(updateContactCommand.contact.sampleRow.periodBegin)}"
- readonly="true"
- cssClass="input-small"/>
+ cssClass="input-small"
+ readonly="true"/>
<s:textfield name="updateContactCommand.contact.sampleRow.periodEnd"
label="%{getText('wao.ui.field.SampleRow.periodEnd')}"
value="%{formatMonth(updateContactCommand.contact.sampleRow.periodEnd)}"
- readonly="true"
- cssClass="input-small"/>
- </fieldset>
+ cssClass="input-small"
+ readonly="true"/>
- <s:textfield name="updateContactCommand.contact.creationDate"
- label="%{getText('wao.ui.field.Contact.creationDate')}"
- value="%{formatDateTime(updateContactCommand.contact.sampleRow.periodEnd)}"
- readonly="true"/>
+ <hr/>
+ <s:textfield name="updateContactCommand.contact.creationDate"
+ label="%{getText('wao.ui.field.Contact.creationDate')}"
+ value="%{formatDate(updateContactCommand.contact.creationDate)}"
+ readonly="true"/>
+ </fieldset>
- <%--TODO Editable if canEditObservers()--%>
+ <%--TODO Editable (cssClass edit-observers) if authenticatedWaoUser.isAuthorizedToEditContactObservers(updateContactCommand.contact)--%>
<fieldset>
<legend><s:text name="wao.ui.misc.observers"/></legend>
@@ -117,49 +110,56 @@
value="%{updateContactCommand.contact.mainObserver.topiaId}"
label="%{getText('wao.ui.field.Contact.mainObserver')}"
list="observers"
- emptyOption="true"/>
+ emptyOption="true"
+ cssClass="edit-observers"/>
- <s:if test="displaySecondaryObservers">
+ <s:if test="authenticatedWaoUser.isAuthorizedToDisplayContactSecondaryObservers(updateContactCommand.contact)">
<s:select name="updateContactCommand.contact.secondaryObservers"
value="%{updateContactCommand.contact.secondaryObserversTopiaIds}"
label="%{getText('wao.ui.field.Contact.secondaryObservers')}"
list="observers"
- multiple="true"/>
+ multiple="true"
+ cssClass="edit-observers"/>
</s:if>
</fieldset>
- <%--TODO Editable if canEditObservationReport()--%>
+ <%--TODO Editable (cssClass edit-observationReport) if authenticatedWaoUser.authorizedToEditObservationReport(updateContactCommand.contactcontact)--%>
<fieldset id="coordinatorFocus">
<legend><s:text name="wao.ui.misc.observationReport"/></legend>
<s:textfield name="updateContactCommand.contact.observationBeginDate"
label="%{getText('wao.ui.field.Contact.beginDate')}"
value="%{formatDateTime(updateContactCommand.contact.observationBeginDate)}"
- placeholder="%{getDateTimePlaceholder()}"/>
+ placeholder="%{getDateTimePlaceholder()}"
+ cssClass="edit-observationReport"/>
<s:textfield name="updateContactCommand.contact.observationEndDate"
label="%{getText('wao.ui.field.Contact.endDate')}"
value="%{formatDateTime(updateContactCommand.contact.observationEndDate)}"
- placeholder="%{getDateTimePlaceholder()}"/>
+ placeholder="%{getDateTimePlaceholder()}"
+ cssClass="observationReport"/>
<s:select name="updateContactCommand.contact.contactState"
label="%{getText('wao.ui.field.Contact.contactState')}"
requiredLabel="true"
list="contactStates"
- emptyOption="true"/>
+ cssClass="edit-observationReport"/>
<s:select name="updateContactCommand.contact.contactStateMotif"
value="%{updateContactCommand.contact.contactState.topiaId}"
label="%{getText('wao.ui.field.Contact.contactStateMotif')}"
list="contactStateMotives"
- emptyOption="true"/>
+ emptyOption="true"
+ cssClass="edit-observationReport"/>
<s:checkbox name="updateContactCommand.contact.mammalsObservation"
- label="%{getText('wao.ui.field.Contact.mammalsObservation')}"/>
+ label="%{getText('wao.ui.field.Contact.mammalsObservation')}"
+ cssClass="edit-observationReport"/>
<s:checkbox name="updateContactCommand.contact.mammalsCapture"
- label="%{getText('wao.ui.field.Contact.mammalsCapture')}"/>
+ label="%{getText('wao.ui.field.Contact.mammalsCapture')}"
+ cssClass="edit-observationReport"/>
<%--TODO onclick="updateMammalsInfoBox(this);" />--%>
<%--<span style="color: red;">--%>
@@ -167,48 +167,54 @@
<%--</span>--%>
<s:textarea name="updateContactCommand.contact.mammalsInfo"
- label="%{getText('wao.ui.field.Contact.mammalsInfo')}"/>
+ label="%{getText('wao.ui.field.Contact.mammalsInfo')}"
+ cssClass="edit-observationReport"/>
<s:textfield name="updateContactCommand.contact.dataInputDate"
label="%{getText('wao.ui.field.Contact.dataInputDate')}"
value="%{formatDate(updateContactCommand.contact.dataInputDate)}"
- placeholder="%{getDatePlaceholder()}"/>
+ placeholder="%{getDatePlaceholder()}"
+ cssClass="edit-observationReport"/>
<%--TODO Editable for authenticatedWaoUser.coordinator--%>
<s:select name="updateContactCommand.contact.observedDataControl"
label="%{getText('wao.ui.field.Contact.observedDataControl')}"
list="observedDataControls"
- emptyOption="true"/>
+ emptyOption="true"
+ cssClass="edit-observationReport"/>
<s:textfield name="updateContactCommand.contact.restitution"
label="%{getText('wao.ui.field.Contact.restitution')}"
value="%{formatDate(updateContactCommand.contact.restitution)}"
- placeholder="%{getDatePlaceholder()}"/>
+ placeholder="%{getDatePlaceholder()}"
+ cssClass="edit-observationReport"/>
- <%--TODO Editable for authenticatedWaoUser.coordinatorOrObserver--%>
<s:textarea name="updateContactCommand.contact.comment"
- label="%{getText('wao.ui.field.Contact.comment')}"/>
+ label="%{getText('wao.ui.field.Contact.comment')}"
+ readonly="%{!authenticatedWaoUser.coordinatorOrObserver}"
+ cssClass="edit-observationReport"/>
- <%--TODO Editable for authenticatedWaoUser.coordinator--%>
<s:textarea name="updateContactCommand.contact.commentCoordinator"
- label="%{getText('wao.ui.field.Contact.commentCoordinator')}"/>
+ label="%{getText('wao.ui.field.Contact.commentCoordinator')}"
+ readonly="%{!authenticatedWaoUser.coordinator}"
+ cssClass="edit-observationReport"/>
</fieldset>
<fieldset name="adminFocus">
<legend><s:text name="wao.ui.form.programEvaluation"/></legend>
- <%--TODO Editable for canEditDataReliability()--%>
- <s:if test="displayDataReliability">
+ <s:if test="authenticatedWaoUser.authorizedToDisplayContactDataReliability">
+ <%--TODO Editable for authenticatedWaoUser.isAuthorizedToEditContactDataReliability(updateContactCommand.contact)--%>
<s:select name="updateContactCommand.contact.dataReliability"
label="%{getText('wao.ui.field.Contact.dataReliability')}"
list="dataReliabilities"
emptyOption="true"/>
</s:if>
- <%--TODO Editable for authenticatedWaoUser.admin--%>
<s:textarea name="updateContactCommand.contact.commentAdmin"
- label="%{getText('wao.ui.field.Contact.commentAdmin')}"/>
+ label="%{getText('wao.ui.field.Contact.commentAdmin')}"
+ readonly="%{!authenticatedWaoUser.admin}"/>
</fieldset>
<div class="form-actions">
1
0
09 Apr '14
See <http://ci.codelutin.com/jenkins/job/wao-nightly/28/changes>
Changes:
[Tony CHEMIT] refs #4487 recompute sample rows tides when contact is modified or created
[Tony CHEMIT] refs #4487 fix some exception names and api
[Tony CHEMIT] refs #4487 remove bad link
[Tony CHEMIT] refs #4487 validation of a contact + improve import i18n message in exception
[Tony CHEMIT] add method to translate I18nAble
[Tony CHEMIT] fix serializable on exceptions
[Tony CHEMIT] use new topia api
[bleny] refs #4490 fix query generation for boats registration code filter
[bleny] refs #4490 add boat infos form
[Tony CHEMIT] refs #4487 fix filterValues for observedDataControl
[Tony CHEMIT] refs #4487 fix filterValues for completeSampling + contactStateMotif
[bleny] refs #4483 add link to contacts for each sample row in sampling-plan
[bleny] review filters (obsProgram) criteria, introduce isFilled and abstract classes for Filter and FilterValues
[bleny] in layout deal with active menu items
------------------------------------------
[...truncated 472 lines...]
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] Scan 243 files header done in 241.371ms.
[INFO]
* uptodate header on 69 files.
* add header on 174 files.
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ wao-persistence ---
[INFO] Compiling 209 source files to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>:[43,82] formatMonth(java.util.Date) in fr.ifremer.wao.WaoUtils has been deprecated
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>:[43,47] formatMonth(java.util.Date) in fr.ifremer.wao.WaoUtils has been deprecated
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>:[49,90] formatMonth(java.util.Date) in fr.ifremer.wao.WaoUtils has been deprecated
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>:[397,48] formatDate(java.util.Date) in fr.ifremer.wao.WaoUtils has been deprecated
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>:[400,70] formatDate(java.util.Date) in fr.ifremer.wao.WaoUtils has been deprecated
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>:[401,70] formatDate(java.util.Date) in fr.ifremer.wao.WaoUtils has been deprecated
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>: Some input files use unchecked or unsafe operations.
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- animal-sniffer-maven-plugin:1.10:check (default) @ wao-persistence ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java17:1.0
[INFO]
[INFO] --- jredmine-maven-plugin:1.6:generate-changes (jredmine-generate-changes) @ wao-persistence ---
[INFO] Skipping goal (skipGenerateChanges flag is on).
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (generate-surefire-workdir) @ wao-persistence ---
[INFO] Executing tasks
main:
[mkdir] Created dir: <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] Executed tasks
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ wao-persistence ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ wao-persistence ---
[INFO] Compiling 1 source file to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO]
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ wao-persistence ---
[INFO] Surefire report directory: <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running fr.ifremer.wao.entity.SampleRowLogImplTest
2014/04/08 12:08:25 DEBUG (SampleRowLogImplTest.java:78) testNewSampleRowLog Le nombre d'observateurs est de 0
Le durée moyenne d'une marée est de 0.0
La ligne est sur la période du 03/2011 au 06/2011
Le métier de la ligne est
2014/04/08 12:08:26 DEBUG (SampleRowLogImplTest.java:94) testCompareSampleRowToItself
2014/04/08 12:08:26 DEBUG (SampleRowLogImplTest.java:118) testModifySampleRow La durée moyenne d'une marée est passé de 0.0 jours à 1.0
La ligne est désormais associée au programme programName
La date de fin est passée de 06/2011 à 07/2011
Les zones de pêches suivantes ont été ajoutées : null - null - IV
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.138 sec - in fr.ifremer.wao.entity.SampleRowLogImplTest
Results :
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
[JENKINS] Recording test results
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ wao-persistence ---
[INFO] Building jar: <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO]
[INFO] >>> maven-source-plugin:2.2.1:jar (attach-sources) @ wao-persistence >>>
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (ensure-no-container-api) @ wao-persistence ---
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (check-project-files) @ wao-persistence ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:share-server-secret (get-redmine-login) @ wao-persistence ---
[INFO] Skipping goal (runOnce flag is on and goal was already executed).
[INFO]
[INFO] --- eugene-maven-plugin:2.7.3:generate (generate-entities) @ wao-persistence ---
[INFO] Process phase [zargo] for one entry.
[INFO] Expanding 1 xmi file(s) from <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…>
[INFO] Copy file <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/sr…> to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] No file generated.
[INFO] Process phase [xmi] for one entry.
[INFO] Processing XSL tranformation on <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…> for 1 file(s).
[INFO] No file generated.
[INFO] Process phase [model] for one entry.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:126) beforeReadFile - No properties provider filled, will instanciate a new default one
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:577) getObjectElements - Invalid tagvalue [fr.ifremer.wao.entity.Boat.attribute.boatDistrict.tagValue.lazy] : Element 'boatDistrict' of type 'attribute' on classifier 'fr.ifremer.wao.entity.Boat' is null.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:577) getObjectElements - Invalid tagvalue [fr.ifremer.wao.entity.WaoUser.attribute.SampleRow.tagValue.inverse] : Element 'SampleRow' of type 'attribute' on classifier 'fr.ifremer.wao.entity.WaoUser' is null.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:459) loadTagValue - Invalid tag value [fr.ifremer.wao.entity.WaoUser.attribute.allegroWallet.tagValue.unique] : this tagvalue 'unique' is unkown.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:294) loadModelTagValue - Invalid model tag value [model.tagValue.copyright] : the tagvalue 'copyright' is unkown.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:294) loadModelTagValue - Invalid model tag value [model.tagValue.exceptionClass] : the tagvalue 'exceptionClass' is unkown.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:294) loadModelTagValue - Invalid model tag value [model.tagValue.java.lang.String] : the tagvalue 'java.lang.String' is unkown.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:303) loadModelTagValue - Invalid model tag value [model.tagValue.useEnumerationName] : this tagvalue 'useEnumerationName' can not be apply on the model.
INFO [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:270) loadModelProperties - 32 tag values were succesfull imported from <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO] No file generated.
[INFO] Apply generator TopiaMetaTransformer
WARN [pool-1-thread-1 for channel] (TopiaMetaTransformer.java:110) validateModel - [VALIDATION] [getUserProfile([fr.ifremer.wao.entity.ObsProgram obsProgram<<[]>> tagvalue: {}])<<[]>> throws [] tagvalue: {}] Operation name getUserProfile is already reserved for a getter/setter of an entity attribute
WARN [pool-1-thread-1 for channel] (TopiaMetaTransformer.java:110) validateModel - [VALIDATION] [setDCF5Code([java.lang.String codes<<[]>> tagvalue: {}, java.lang.String separatorRegex<<[]>> tagvalue: {}])<<[]>> throws [] tagvalue: {}] Operation name setDCF5Code is already reserved for a getter/setter of an entity attribute
WARN [pool-1-thread-1 for channel] (TopiaMetaTransformer.java:110) validateModel - [VALIDATION] [getSampleMonth([java.util.Date date<<[]>> tagvalue: {}])<<[]>> throws [] tagvalue: {}] Operation name getSampleMonth is already reserved for a getter/setter of an entity attribute
WARN [pool-1-thread-1 for channel] (TopiaMetaTransformer.java:110) validateModel - [VALIDATION] [setLogText([fr.ifremer.wao.entity.SampleRow oldSampleRow<<[]>> tagvalue: {}, fr.ifremer.wao.entity.SampleRow newSampleRow<<[]>> tagvalue: {}])<<[]>> throws [] tagvalue: {}] Operation name setLogText is already reserved for a getter/setter of an entity attribute
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.WaoUserImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.FishingGearDCFImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TerrestrialDivisionImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.DCF5CodeImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleRowImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.BoatImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ContactImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.IndicatorImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ContactStateMotifImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TerrestrialLocationImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.BoatGroupImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.CompanyImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.IndicatorLevelImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.FishingZoneImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleMonthImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.FleetImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.UserProfileImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TargetSpeciesDCFImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ObsDebCodeImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleRowLogImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.NewsImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.WaoUserTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TerrestrialDivisionTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleRowTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.BoatTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ContactTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TerrestrialLocationTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ElligibleBoatTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleMonthTopiaDao], already found in class-path.
[WARNING] Failed to getClass for org.apache.maven.plugin.source.SourceJarMojo
[INFO]
[INFO] <<< maven-source-plugin:2.2.1:jar (attach-sources) @ wao-persistence <<<
[INFO]
[INFO] --- maven-source-plugin:2.2.1:jar (attach-sources) @ wao-persistence ---
[INFO] Building jar: <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO]
[INFO] --- maven-javadoc-plugin:2.9.1:jar (attach-javadocs) @ wao-persistence ---
[INFO] Building jar: <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/wao-persistence/ta…>
[INFO]
[INFO] --- maven-site-plugin:3.3:attach-descriptor (attach-descriptor) @ wao-persistence ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:share-server-secret (get-pgp-passphrase) @ wao-persistence ---
[INFO] Exporting server [gpg-signer] username in ${gpg.keyname}
[INFO] Exporting server [gpg-signer] password in ${gpg.passphrase}
[INFO]
[INFO] --- helper-maven-plugin:2.1:collect-files (collect-build-artifacts) @ wao-persistence ---
[INFO] Loaded <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/target/collect-art…>
[INFO] Copying wao-persistence-4.0-SNAPSHOT.jar to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/target/collect/fr.…>
[INFO] Copying THIRD-PARTY.properties to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/target/collect/fr.…>
[INFO] Copying wao-persistence-4.0-SNAPSHOT-sources.jar to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/target/collect/fr.…>
[INFO] Copying wao-persistence-4.0-SNAPSHOT-javadoc.jar to <http://ci.codelutin.com/jenkins/job/wao-nightly/ws/trunk/target/collect/fr.…>
[INFO]
[INFO] --- helper-maven-plugin:2.1:collect-files (collect-build-attachements) @ wao-persistence ---
[WARNING] Skipping goal (No file to collect).
[INFO]
[INFO] --- maven-gpg-plugin:1.5:sign (sign-artifacts) @ wao-persistence ---
[INFO]
[INFO] --- maven-dependency-plugin:2.8:analyze-only (analyze) @ wao-persistence ---
[INFO] Used declared dependencies found:
[INFO] org.nuiton.topia:topia-persistence:jar:3.0-SNAPSHOT:compile
[INFO] org.hibernate:hibernate-core:jar:4.3.5.Final:compile
[INFO] org.nuiton:nuiton-utils:jar:3.0-SNAPSHOT:compile
[INFO] org.nuiton:nuiton-config:jar:3.0-alpha-2:compile
[INFO] org.nuiton.i18n:nuiton-i18n:jar:3.0:compile
[INFO] org.apache.commons:commons-lang3:jar:3.3:compile
[INFO] commons-logging:commons-logging:jar:1.1.3:compile
[INFO] org.apache.commons:commons-collections4:jar:4.0:compile
[INFO] com.google.guava:guava:jar:16.0.1:compile
[INFO] junit:junit:jar:4.11:test
[WARNING] Used undeclared dependencies found:
[WARNING] commons-collections:commons-collections:jar:3.2.1:compile
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Wao ............................................... SUCCESS [ 8.459 s]
[INFO] Wao :: Persistence ................................ FAILURE [ 25.722 s]
[INFO] Wao :: Services ................................... SKIPPED
[INFO] Wao :: Web ........................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 36.088 s
[INFO] Finished at: 2014-04-08T00:08:35+01:00
[INFO] Final Memory: 60M/690M
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:analyze-only (analyze) on project wao-persistence: Dependency problems found -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:analyze-only (analyze) on project wao-persistence: Dependency problems found
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.jvnet.hudson.maven3.launcher.Maven31Launcher.main(Maven31Launcher.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
at jenkins.maven3.agent.Maven31Main.launch(Maven31Main.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:134)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:69)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:328)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.apache.maven.plugin.MojoExecutionException: Dependency problems found
at org.apache.maven.plugin.dependency.analyze.AbstractAnalyzeMojo.execute(AbstractAnalyzeMojo.java:188)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 30 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :wao-persistence
Sending e-mails to: wao-commits(a)list.forge.codelutin.com leny(a)codelutin.com chemit+codelutin-ci(a)codelutin.com
channel stopped
Skipping sonar analysis due to bad build status FAILURE
1
2
Build failed in Jenkins: wao-nightly » Wao :: Persistence #28
by admin+ci-codelutin.com@codelutin.com 09 Apr '14
by admin+ci-codelutin.com@codelutin.com 09 Apr '14
09 Apr '14
See <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
Changes:
[Tony CHEMIT] add method to translate I18nAble
[Tony CHEMIT] fix serializable on exceptions
[Tony CHEMIT] use new topia api
[bleny] refs #4490 fix query generation for boats registration code filter
[bleny] review filters (obsProgram) criteria, introduce isFilled and abstract classes for Filter and FilterValues
------------------------------------------
[...truncated 232 lines...]
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] - adding license header on file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] Scan 243 files header done in 241.371ms.
[INFO]
* uptodate header on 69 files.
* add header on 174 files.
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ wao-persistence ---
[INFO] Compiling 209 source files to <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>:[43,82] formatMonth(java.util.Date) in fr.ifremer.wao.WaoUtils has been deprecated
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>:[43,47] formatMonth(java.util.Date) in fr.ifremer.wao.WaoUtils has been deprecated
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>:[49,90] formatMonth(java.util.Date) in fr.ifremer.wao.WaoUtils has been deprecated
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>:[397,48] formatDate(java.util.Date) in fr.ifremer.wao.WaoUtils has been deprecated
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>:[400,70] formatDate(java.util.Date) in fr.ifremer.wao.WaoUtils has been deprecated
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>:[401,70] formatDate(java.util.Date) in fr.ifremer.wao.WaoUtils has been deprecated
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>: Some input files use unchecked or unsafe operations.
[WARNING] <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- animal-sniffer-maven-plugin:1.10:check (default) @ wao-persistence ---
[INFO] Checking unresolved references to org.codehaus.mojo.signature:java17:1.0
[INFO]
[INFO] --- jredmine-maven-plugin:1.6:generate-changes (jredmine-generate-changes) @ wao-persistence ---
[INFO] Skipping goal (skipGenerateChanges flag is on).
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (generate-surefire-workdir) @ wao-persistence ---
[INFO] Executing tasks
main:
[mkdir] Created dir: <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] Executed tasks
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ wao-persistence ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ wao-persistence ---
[INFO] Compiling 1 source file to <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO]
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ wao-persistence ---
[INFO] Surefire report directory: <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running fr.ifremer.wao.entity.SampleRowLogImplTest
2014/04/08 12:08:25 DEBUG (SampleRowLogImplTest.java:78) testNewSampleRowLog Le nombre d'observateurs est de 0
Le durée moyenne d'une marée est de 0.0
La ligne est sur la période du 03/2011 au 06/2011
Le métier de la ligne est
2014/04/08 12:08:26 DEBUG (SampleRowLogImplTest.java:94) testCompareSampleRowToItself
2014/04/08 12:08:26 DEBUG (SampleRowLogImplTest.java:118) testModifySampleRow La durée moyenne d'une marée est passé de 0.0 jours à 1.0
La ligne est désormais associée au programme programName
La date de fin est passée de 06/2011 à 07/2011
Les zones de pêches suivantes ont été ajoutées : null - null - IV
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.138 sec - in fr.ifremer.wao.entity.SampleRowLogImplTest
Results :
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
[JENKINS] Recording test results
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ wao-persistence ---
[INFO] Building jar: <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO]
[INFO] >>> maven-source-plugin:2.2.1:jar (attach-sources) @ wao-persistence >>>
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (ensure-no-container-api) @ wao-persistence ---
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (check-project-files) @ wao-persistence ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:share-server-secret (get-redmine-login) @ wao-persistence ---
[INFO] Skipping goal (runOnce flag is on and goal was already executed).
[INFO]
[INFO] --- eugene-maven-plugin:2.7.3:generate (generate-entities) @ wao-persistence ---
[INFO] Process phase [zargo] for one entry.
[INFO] Expanding 1 xmi file(s) from <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] Copy file <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…> to <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] No file generated.
[INFO] Process phase [xmi] for one entry.
[INFO] Processing XSL tranformation on <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…> for 1 file(s).
[INFO] No file generated.
[INFO] Process phase [model] for one entry.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:126) beforeReadFile - No properties provider filled, will instanciate a new default one
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:577) getObjectElements - Invalid tagvalue [fr.ifremer.wao.entity.Boat.attribute.boatDistrict.tagValue.lazy] : Element 'boatDistrict' of type 'attribute' on classifier 'fr.ifremer.wao.entity.Boat' is null.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:577) getObjectElements - Invalid tagvalue [fr.ifremer.wao.entity.WaoUser.attribute.SampleRow.tagValue.inverse] : Element 'SampleRow' of type 'attribute' on classifier 'fr.ifremer.wao.entity.WaoUser' is null.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:459) loadTagValue - Invalid tag value [fr.ifremer.wao.entity.WaoUser.attribute.allegroWallet.tagValue.unique] : this tagvalue 'unique' is unkown.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:294) loadModelTagValue - Invalid model tag value [model.tagValue.copyright] : the tagvalue 'copyright' is unkown.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:294) loadModelTagValue - Invalid model tag value [model.tagValue.exceptionClass] : the tagvalue 'exceptionClass' is unkown.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:294) loadModelTagValue - Invalid model tag value [model.tagValue.java.lang.String] : the tagvalue 'java.lang.String' is unkown.
WARN [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:303) loadModelTagValue - Invalid model tag value [model.tagValue.useEnumerationName] : this tagvalue 'useEnumerationName' can not be apply on the model.
INFO [pool-1-thread-1 for channel] (AbstractObjectModelReader.java:270) loadModelProperties - 32 tag values were succesfull imported from <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO] No file generated.
[INFO] Apply generator TopiaMetaTransformer
WARN [pool-1-thread-1 for channel] (TopiaMetaTransformer.java:110) validateModel - [VALIDATION] [getUserProfile([fr.ifremer.wao.entity.ObsProgram obsProgram<<[]>> tagvalue: {}])<<[]>> throws [] tagvalue: {}] Operation name getUserProfile is already reserved for a getter/setter of an entity attribute
WARN [pool-1-thread-1 for channel] (TopiaMetaTransformer.java:110) validateModel - [VALIDATION] [setDCF5Code([java.lang.String codes<<[]>> tagvalue: {}, java.lang.String separatorRegex<<[]>> tagvalue: {}])<<[]>> throws [] tagvalue: {}] Operation name setDCF5Code is already reserved for a getter/setter of an entity attribute
WARN [pool-1-thread-1 for channel] (TopiaMetaTransformer.java:110) validateModel - [VALIDATION] [getSampleMonth([java.util.Date date<<[]>> tagvalue: {}])<<[]>> throws [] tagvalue: {}] Operation name getSampleMonth is already reserved for a getter/setter of an entity attribute
WARN [pool-1-thread-1 for channel] (TopiaMetaTransformer.java:110) validateModel - [VALIDATION] [setLogText([fr.ifremer.wao.entity.SampleRow oldSampleRow<<[]>> tagvalue: {}, fr.ifremer.wao.entity.SampleRow newSampleRow<<[]>> tagvalue: {}])<<[]>> throws [] tagvalue: {}] Operation name setLogText is already reserved for a getter/setter of an entity attribute
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.WaoUserImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.FishingGearDCFImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TerrestrialDivisionImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.DCF5CodeImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleRowImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.BoatImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ContactImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.IndicatorImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ContactStateMotifImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TerrestrialLocationImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.BoatGroupImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.CompanyImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.IndicatorLevelImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.FishingZoneImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleMonthImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.FleetImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.UserProfileImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TargetSpeciesDCFImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ObsDebCodeImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleRowLogImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.NewsImpl], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.WaoUserTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TerrestrialDivisionTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleRowTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.BoatTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ContactTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.TerrestrialLocationTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.ElligibleBoatTopiaDao], already found in class-path.
INFO [pool-1-thread-1 for channel] (ObjectModelTransformerToJava.java:998) isInClassPath - Will not generate [fr.ifremer.wao.entity.SampleMonthTopiaDao], already found in class-path.
[WARNING] Failed to getClass for org.apache.maven.plugin.source.SourceJarMojo
[INFO]
[INFO] <<< maven-source-plugin:2.2.1:jar (attach-sources) @ wao-persistence <<<
[INFO]
[INFO] --- maven-source-plugin:2.2.1:jar (attach-sources) @ wao-persistence ---
[INFO] Building jar: <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO]
[INFO] --- maven-javadoc-plugin:2.9.1:jar (attach-javadocs) @ wao-persistence ---
[INFO] Building jar: <http://ci.codelutin.com/jenkins/job/wao-nightly/fr.ifremer$wao-persistence/…>
[INFO]
[INFO] --- maven-site-plugin:3.3:attach-descriptor (attach-descriptor) @ wao-persistence ---
[INFO]
[INFO] --- helper-maven-plugin:2.1:share-server-secret (get-pgp-passphrase) @ wao-persistence ---
[INFO] Exporting server [gpg-signer] username in ${gpg.keyname}
[INFO] Exporting server [gpg-signer] password in ${gpg.passphrase}
[INFO]
[INFO] --- helper-maven-plugin:2.1:collect-files (collect-build-artifacts) @ wao-persistence ---
[INFO] Loaded /var/local/forge/data/codelutin.com/jenkins/workspace/wao-nightly/trunk/target/collect-artifacts.txt
[INFO] Copying wao-persistence-4.0-SNAPSHOT.jar to /var/local/forge/data/codelutin.com/jenkins/workspace/wao-nightly/trunk/target/collect/fr.ifremer--wao-persistence/wao-persistence-4.0-SNAPSHOT.jar
[INFO] Copying THIRD-PARTY.properties to /var/local/forge/data/codelutin.com/jenkins/workspace/wao-nightly/trunk/target/collect/fr.ifremer--wao-persistence/THIRD-PARTY.properties
[INFO] Copying wao-persistence-4.0-SNAPSHOT-sources.jar to /var/local/forge/data/codelutin.com/jenkins/workspace/wao-nightly/trunk/target/collect/fr.ifremer--wao-persistence/wao-persistence-4.0-SNAPSHOT-sources.jar
[INFO] Copying wao-persistence-4.0-SNAPSHOT-javadoc.jar to /var/local/forge/data/codelutin.com/jenkins/workspace/wao-nightly/trunk/target/collect/fr.ifremer--wao-persistence/wao-persistence-4.0-SNAPSHOT-javadoc.jar
[INFO]
[INFO] --- helper-maven-plugin:2.1:collect-files (collect-build-attachements) @ wao-persistence ---
[WARNING] Skipping goal (No file to collect).
[INFO]
[INFO] --- maven-gpg-plugin:1.5:sign (sign-artifacts) @ wao-persistence ---
[INFO]
[INFO] --- maven-dependency-plugin:2.8:analyze-only (analyze) @ wao-persistence ---
[INFO] Used declared dependencies found:
[INFO] org.nuiton.topia:topia-persistence:jar:3.0-SNAPSHOT:compile
[INFO] org.hibernate:hibernate-core:jar:4.3.5.Final:compile
[INFO] org.nuiton:nuiton-utils:jar:3.0-SNAPSHOT:compile
[INFO] org.nuiton:nuiton-config:jar:3.0-alpha-2:compile
[INFO] org.nuiton.i18n:nuiton-i18n:jar:3.0:compile
[INFO] org.apache.commons:commons-lang3:jar:3.3:compile
[INFO] commons-logging:commons-logging:jar:1.1.3:compile
[INFO] org.apache.commons:commons-collections4:jar:4.0:compile
[INFO] com.google.guava:guava:jar:16.0.1:compile
[INFO] junit:junit:jar:4.11:test
[WARNING] Used undeclared dependencies found:
[WARNING] commons-collections:commons-collections:jar:3.2.1:compile
[JENKINS] Archiving disabled
1
2
r1870 - trunk/wao-persistence/src/main/java/fr/ifremer/wao
by tchemit@users.forge.codelutin.com 09 Apr '14
by tchemit@users.forge.codelutin.com 09 Apr '14
09 Apr '14
Author: tchemit
Date: 2014-04-09 08:59:21 +0200 (Wed, 09 Apr 2014)
New Revision: 1870
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1870
Log:
use collections4
Modified:
trunk/wao-persistence/src/main/java/fr/ifremer/wao/BoatsFilter.java
trunk/wao-persistence/src/main/java/fr/ifremer/wao/ContactsFilter.java
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/BoatsFilter.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/BoatsFilter.java 2014-04-08 17:20:53 UTC (rev 1869)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/BoatsFilter.java 2014-04-09 06:59:21 UTC (rev 1870)
@@ -22,7 +22,7 @@
*/
import fr.ifremer.wao.entity.ObsProgram;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.Objects;
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/ContactsFilter.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/ContactsFilter.java 2014-04-08 17:20:53 UTC (rev 1869)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/ContactsFilter.java 2014-04-09 06:59:21 UTC (rev 1870)
@@ -27,7 +27,7 @@
import fr.ifremer.wao.entity.ObservationType;
import fr.ifremer.wao.entity.ObservedDataControl;
import fr.ifremer.wao.entity.SamplingStrategy;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import java.util.Date;
import java.util.Objects;
1
0
r1869 - in trunk: wao-services/src/main/java/fr/ifremer/wao/services/service/administration wao-services/src/main/resources/i18n wao-web/src/main/java/fr/ifremer/wao/web wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer wao-web/src/main/resources/i18n wao-web/src/main/webapp/WEB-INF/content/obsmer
by tchemit@users.forge.codelutin.com 08 Apr '14
by tchemit@users.forge.codelutin.com 08 Apr '14
08 Apr '14
Author: tchemit
Date: 2014-04-08 19:20:53 +0200 (Tue, 08 Apr 2014)
New Revision: 1869
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1869
Log:
ref #4487 edit contact
Modified:
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/WaoUsersService.java
trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties
trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties
trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditContactAction.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ValidateContactJsonAction.java
trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp
trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-contact-input.jsp
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java 2014-04-08 16:28:52 UTC (rev 1868)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java 2014-04-08 17:20:53 UTC (rev 1869)
@@ -430,7 +430,7 @@
/**
* @param contactState if null, return motifs for all contact states
*/
- public List<ContactStateMotif> getAllContactStateMotifs(ContactState contactState) throws Exception {
+ public List<ContactStateMotif> getAllContactStateMotifs(ContactState contactState) {
ContactStateMotifTopiaDao dao = getPersistenceContext().getContactStateMotifDao();
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/WaoUsersService.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/WaoUsersService.java 2014-04-08 16:28:52 UTC (rev 1868)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/WaoUsersService.java 2014-04-08 17:20:53 UTC (rev 1869)
@@ -71,6 +71,25 @@
}
+ public List<WaoUser> getActiveWaoUsers(Optional<String> optionalCompanyId) {
+
+ WaoUserTopiaDao dao = getWaoUserDao();
+
+ TopiaQueryBuilderAddCriteriaOrRunQueryStep<WaoUser> query = dao.newQueryBuilder();
+
+ if (optionalCompanyId.isPresent()) {
+ query.addTopiaIdEquals(WaoUser.PROPERTY_COMPANY, optionalCompanyId.get());
+ }
+ query.addEquals(WaoUser.PROPERTY_ACTIVE, true);
+
+ query.setOrderByArguments(WaoUser.PROPERTY_LOGIN);
+
+ List<WaoUser> waoUsers = query.findAll();
+
+ return waoUsers;
+
+ }
+
public WaoUser getWaoUser(String waoUserId) {
WaoUserTopiaDao dao = getWaoUserDao();
Modified: trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties
===================================================================
--- trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-04-08 16:28:52 UTC (rev 1868)
+++ trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-04-08 17:20:53 UTC (rev 1869)
@@ -32,6 +32,8 @@
wao.import.boat.failure.missing.port=The port is required
wao.import.contact.failure.boatMissing=You need to precise the plate number of the boat associated to the contact
wao.import.contact.failure.dataInputDateAfterObservationEndDate=La date de saisie des données doit être postérieure à la date de fin d'observation
+wao.import.contact.failure.dataInputDateAfterToday=
+wao.import.contact.failure.dataInputDateBeforeObservationEndDate=
wao.import.contact.failure.dataInputDateBeforeToday=La date de saisie des données doit être antérieur à la date du jour
wao.import.contact.failure.districtMissing=You need to precise the boat district
wao.import.contact.failure.duplicatedMainObserverInSecondaryObservers=Main observer can not be also a secondary observer
@@ -45,7 +47,6 @@
wao.import.contact.failure.missingDataReliability=You must provide data reliability before validating
wao.import.contact.failure.missingHoursOfBeginEndObservation=You must provide accurate time for the beginning and the end of observation
wao.import.contact.failure.missingMainObserver=Il faut au moins un observateur référant
-wao.import.failure.wrongValue=Unable to parse value '%S'. Possible values are %s
wao.import.contact.failure.missingObservationArea=Il faut préciser un lieu d'observation
wao.import.contact.failure.missingObservationBeginDate=La date de début de marée est obligatoire pour l'état '%s'
wao.import.contact.failure.missingObservationEndDate=La date de fin d'observation est obligatoire pour l'état '%s'
@@ -71,6 +72,7 @@
wao.import.failure.wrongLocationType='%s' is not a valid location type, allowed values are %s
wao.import.failure.wrongObsDebCode=There is no profession code having code '%s'
wao.import.failure.wrongUser=There is no user with login '%s'
+wao.import.failure.wrongValue=Unable to parse value '%S'. Possible values are %s
wao.import.invalid.latitude=a latitude must be contained in range %s. ('%s' argument given)
wao.import.invalid.longitude=a longitude must be contained in range %s. ('%s' argument given)
wao.import.sampleRow.failure.fishingZoneMissing=You must precise at least one fishing zone
Modified: trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties
===================================================================
--- trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-04-08 16:28:52 UTC (rev 1868)
+++ trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-04-08 17:20:53 UTC (rev 1869)
@@ -30,35 +30,34 @@
wao.import.boat.failure.invalid.locationCode=Le code '%s' n'est pas un code de lieu valide
wao.import.boat.failure.missing.port=Il faut préciser un port
wao.import.contact.failure.boatMissing=Il faut préciser l'immatriculation du navire associé au contact
+wao.import.contact.failure.dataInputDateAfterToday=La date de saisie des données doit être antérieure à la date du jour
wao.import.contact.failure.dataInputDateBeforeObservationEndDate=La date de saisie des données doit être postérieure à la date de fin d'observation
-wao.import.contact.failure.dataInputDateAfterToday=La date de saisie des données doit être antérieure à la date du jour
wao.import.contact.failure.districtMissing=Il faut préciser le code d'un quartier maritime
wao.import.contact.failure.duplicatedMainObserverInSecondaryObservers=L'utilisateur référant ne doit pas se trouver aussi parmi les observateurs secondaires
-wao.import.contact.failure.invalidObservationBeginDate=Ligne %s : La date de début de la marée doit correspondre à un mois valide (non vide) de la ligne
+wao.import.contact.failure.invalidObservationBeginDate=Ligne %s \: La date de début de la marée doit correspondre à un mois valide (non vide) de la ligne
wao.import.contact.failure.locationTypeMissing=Le type du lieu doit être renseigné
-wao.import.contact.failure.mismatchCompanyForObserver=Ligne %s : L'observateur %s n'est pas membre de la société %s
-wao.import.contact.failure.missingComment=Ligne %s : Il faut préciser un commentaire pour l'état '%s'
-wao.import.contact.failure.missingCommentAdmin=Ligne %s : Il faut préciser dans le commentaire administrateur pourquoi la donnée est '%s'
-wao.import.contact.failure.missingContactStateMotif=Ligne %s : Il faut préciser un motif de refus
-wao.import.contact.failure.missingDataInputDate=Ligne %s : Il faut préciser une date de saisie des données en plus de la date de transmission de la restitution
-wao.import.contact.failure.missingDataReliability=Ligne %s : Il faut préciser la qualité de la donnée avant de valider
+wao.import.contact.failure.mismatchCompanyForObserver=Ligne %s \: L'observateur %s n'est pas membre de la société %s
+wao.import.contact.failure.missingComment=Ligne %s \: Il faut préciser un commentaire pour l'état '%s'
+wao.import.contact.failure.missingCommentAdmin=Ligne %s \: Il faut préciser dans le commentaire administrateur pourquoi la donnée est '%s'
+wao.import.contact.failure.missingContactStateMotif=Ligne %s \: Il faut préciser un motif de refus
+wao.import.contact.failure.missingDataInputDate=Ligne %s \: Il faut préciser une date de saisie des données en plus de la date de transmission de la restitution
+wao.import.contact.failure.missingDataReliability=Ligne %s \: Il faut préciser la qualité de la donnée avant de valider
wao.import.contact.failure.missingHoursOfBeginEndObservation=Il faut préciser les heures exactes de début et de fin d'observation
-wao.import.contact.failure.missingMainObserver=Ligne %s : Il faut au moins un observateur référant
-wao.import.failure.wrongValue=Valeur '%s' non reconnue. Valeurs possibles : %s
+wao.import.contact.failure.missingMainObserver=Ligne %s \: Il faut au moins un observateur référant
wao.import.contact.failure.missingObservationArea=Il faut préciser un lieu d'observation
-wao.import.contact.failure.missingObservationBeginDate=Ligne %s : La date de début de marée est obligatoire pour l'état '%s'
-wao.import.contact.failure.missingObservationEndDate=Ligne %s : La date de fin d'observation est obligatoire pour l'état '%s'
-wao.import.contact.failure.missingObservedDataControl=Ligne %s : Il faut préciser une valeur pour le contrôle des données observées
-wao.import.contact.failure.missingObserver=Ligne %s : Il ne peut y avoir aucun observateur pour l'état '%s'
-wao.import.contact.failure.missingRestitution=Ligne %s : Il faut préciser une date de transmission de la restitution de la donnée avant de valider
-wao.import.contact.failure.not.updatable=Ligne %s : Vous n'avez pas les droits suffisants pour modifier le contact
-wao.import.contact.failure.observationEndDateAfterToday=Ligne %s : La date de fin de la marée ne peut pas être postérieure à la date du jour
-wao.import.contact.failure.observationEndDateBeforeBeginDate=Ligne %s : La date de fin d'observation ne peut pas être antérieure à celle du début
+wao.import.contact.failure.missingObservationBeginDate=Ligne %s \: La date de début de marée est obligatoire pour l'état '%s'
+wao.import.contact.failure.missingObservationEndDate=Ligne %s \: La date de fin d'observation est obligatoire pour l'état '%s'
+wao.import.contact.failure.missingObservedDataControl=Ligne %s \: Il faut préciser une valeur pour le contrôle des données observées
+wao.import.contact.failure.missingObserver=Ligne %s \: Il ne peut y avoir aucun observateur pour l'état '%s'
+wao.import.contact.failure.missingRestitution=Ligne %s \: Il faut préciser une date de transmission de la restitution de la donnée avant de valider
+wao.import.contact.failure.not.updatable=Ligne %s \: Vous n'avez pas les droits suffisants pour modifier le contact
+wao.import.contact.failure.observationEndDateAfterToday=Ligne %s \: La date de fin de la marée doit être antérieure à la date du jour
+wao.import.contact.failure.observationEndDateBeforeBeginDate=Ligne %s \: La date de fin d'observation doit être postérieure à celle du début
wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associée
wao.import.contact.failure.terrestrialLocationMissing=Il manque le code du lieu
-wao.import.contact.failure.transmissionDateBeforeDataInputDate=Ligne %s : Il faut que la date de transmission de la restitution soit après la date de saisie des données
+wao.import.contact.failure.transmissionDateBeforeDataInputDate=Ligne %s \: La date de transmission de la restitution doit être postérieure à la date de saisie des données
wao.import.contact.failure.unkwonCompany=Il n'y a pas de société ayant pour nom '%s'
-wao.import.contact.failure.unwantedContactStateMotif=Ligne %s : Il ne faut pas préciser de motif de refus
+wao.import.contact.failure.unwantedContactStateMotif=Ligne %s \: Il ne faut pas préciser de motif de refus
wao.import.contact.failure.wrongBoat=Il n'y a pas de navire avec l'immatriculation '%s'
wao.import.contact.failure.wrongColor=Le code couleur '%s' n'est pas valide, il doit être composé de six caractères sans dièze voir http\://fr.wikipedia.org/wiki/Couleurs_du_Web
wao.import.contact.failure.wrongContactStateMotifCode=Le code '%s' n'est pas un code de motif de refus valide
@@ -70,6 +69,7 @@
wao.import.failure.wrongLocationType='%s' n'est pas un type de lieu valide, les valeurs admises sont %s
wao.import.failure.wrongObsDebCode=Il n'y a pas de code métier ayant pour code '%s'
wao.import.failure.wrongUser=Il n'y a pas d'utilisateur ayant pour identifiant '%s'
+wao.import.failure.wrongValue=Valeur '%s' non reconnue. Valeurs possibles \: %s
wao.import.invalid.latitude=La latitude doit être dans l'intervalle %s (valeur actuelle %s)
wao.import.invalid.longitude=La longitude doit être dans l'intervalle %s (valeur actuelle %s)
wao.import.sampleRow.failure.fishingZoneMissing=Il faut préciser au moins une zone de pêche
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java 2014-04-08 16:28:52 UTC (rev 1868)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java 2014-04-08 17:20:53 UTC (rev 1869)
@@ -64,15 +64,15 @@
}
public String formatMonth(Date date) {
- return WaoUtils.formatMonth(getLocale(), date);
+ return date == null ? "" : WaoUtils.formatMonth(getLocale(), date);
}
public String formatDate(Date date) {
- return WaoUtils.formatDate(getLocale(), date);
+ return date == null ? "" : WaoUtils.formatDate(getLocale(), date);
}
public String formatDateTime(Date date) {
- return WaoUtils.formatDateTime(getLocale(), date);
+ return date == null ? "" : WaoUtils.formatDateTime(getLocale(), date);
}
public boolean isGoogleAnalyticsEnabled() {
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditContactAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditContactAction.java 2014-04-08 16:28:52 UTC (rev 1868)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/EditContactAction.java 2014-04-08 17:20:53 UTC (rev 1869)
@@ -25,9 +25,15 @@
import com.google.common.base.Strings;
import com.opensymphony.xwork2.Preparable;
import fr.ifremer.wao.WaoUtils;
+import fr.ifremer.wao.entity.Contact;
+import fr.ifremer.wao.entity.ContactState;
+import fr.ifremer.wao.entity.ContactStateMotif;
+import fr.ifremer.wao.entity.DataReliability;
+import fr.ifremer.wao.entity.ObservedDataControl;
+import fr.ifremer.wao.entity.WaoUser;
import fr.ifremer.wao.services.AuthenticatedWaoUser;
+import fr.ifremer.wao.services.service.ContactDataInputDateAfterTodayException;
import fr.ifremer.wao.services.service.ContactDataInputDateBeforeObservationEndDateException;
-import fr.ifremer.wao.services.service.ContactDataInputDateAfterTodayException;
import fr.ifremer.wao.services.service.ContactNotUpdatableException;
import fr.ifremer.wao.services.service.ContactObservationEndDateAfterTodayException;
import fr.ifremer.wao.services.service.ContactObservationEndDateBeforeBeginDateException;
@@ -50,10 +56,19 @@
import fr.ifremer.wao.services.service.ObsMerContactsService;
import fr.ifremer.wao.services.service.UnwantedContactContactStateMotifException;
import fr.ifremer.wao.services.service.UpdateContactCommand;
+import fr.ifremer.wao.services.service.administration.ReferentialService;
+import fr.ifremer.wao.services.service.administration.WaoUsersService;
import fr.ifremer.wao.web.WaoJspActionSupport;
+import org.apache.commons.lang3.BooleanUtils;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
+import java.util.Date;
+import java.util.EnumMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
/**
* Created on 4/6/14.
*
@@ -70,14 +85,36 @@
*/
protected Optional<String> optionalContactId = Optional.absent();
+ protected Map<String, String> observers;
+
+ protected Map<ContactState, String> contactStates;
+
+ protected Map<String, String> contactStateMotives;
+
+ protected Map<ObservedDataControl, String> observedDataControls;
+
+ protected Map<DataReliability, String> dataReliabilities;
+
protected transient ObsMerContactsService service;
+ protected transient WaoUsersService waoUsersService;
+
+ protected transient ReferentialService referentialService;
+
protected UpdateContactCommand updateContactCommand;
public void setService(ObsMerContactsService service) {
this.service = service;
}
+ public void setWaoUsersService(WaoUsersService waoUsersService) {
+ this.waoUsersService = waoUsersService;
+ }
+
+ public void setReferentialService(ReferentialService referentialService) {
+ this.referentialService = referentialService;
+ }
+
public void setContactId(String contactId) {
this.optionalContactId = Optional.fromNullable(Strings.emptyToNull(contactId));
}
@@ -93,10 +130,78 @@
return updateContactCommand;
}
+ public Map<String, String> getObservers() {
+ if (observers == null) {
+ prepare();
+ }
+ return observers;
+ }
+
+ public Map<ContactState, String> getContactStates() {
+ if (contactStates == null) {
+ prepare();
+ }
+ return contactStates;
+ }
+
+ public Map<String, String> getContactStateMotives() {
+ if (contactStateMotives == null) {
+ prepare();
+ }
+ return contactStateMotives;
+ }
+
+ public Map<ObservedDataControl, String> getObservedDataControls() {
+ if (observedDataControls == null) {
+ prepare();
+ }
+ return observedDataControls;
+ }
+
+ public Map<DataReliability, String> getDataReliabilities() {
+ if (dataReliabilities == null) {
+ prepare();
+ }
+ return dataReliabilities;
+ }
+
+ public String getDateTimePlaceholder() {
+ return formatDateTime(new Date());
+ }
+
+ public String getDatePlaceholder() {
+ return formatDate(new Date());
+ }
+
@Override
public void prepare() {
updateContactCommand = service.newUpdateContactCommand(getAuthenticatedWaoUser(), optionalContactId);
+
+ observers = new TreeMap<>();
+ List<WaoUser> waoUsers = waoUsersService.getActiveWaoUsers(Optional.of(getAuthenticatedWaoUser().getCompany().getTopiaId()));
+ for (WaoUser waoUser : waoUsers) {
+ observers.put(waoUser.getTopiaId(), waoUser.getFullName());
+ }
+ contactStates = new EnumMap<>(ContactState.class);
+ for (ContactState contactState : ContactState.getAllowedStates(getAuthenticatedWaoUser().getObsProgram())) {
+ contactStates.put(contactState, WaoUtils.l(getLocale(), contactState));
+ }
+
+ contactStateMotives = new TreeMap<>();
+ for (ContactStateMotif contactStateMotif : referentialService.getAllContactStateMotifs(null)) {
+ contactStateMotives.put(contactStateMotif.getTopiaId(), contactStateMotif.getName());
+ }
+
+ observedDataControls = new EnumMap<>(ObservedDataControl.class);
+ for (ObservedDataControl observedDataControl : ObservedDataControl.values()) {
+ observedDataControls.put(observedDataControl, WaoUtils.l(getLocale(), observedDataControl));
+ }
+
+ dataReliabilities = new EnumMap<>(DataReliability.class);
+ for (DataReliability dataReliability : DataReliability.values()) {
+ dataReliabilities.put(dataReliability, WaoUtils.l(getLocale(), dataReliability));
+ }
}
@Override
@@ -110,101 +215,111 @@
session.addErrorMessages(t("wao.ui.contacts.validation.failure.not.updatable"));
} catch (UnwantedContactContactStateMotifException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.unwantedContactStateMotif"));
+ addFieldError("updateContactCommand.contact.contactStateMotif", t("wao.ui.form.Contact.error.unwantedContactStateMotif"));
} catch (MissingContactNbObservantsException e) {
String state = WaoUtils.l(getLocale(), e.getContact().getContactState());
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.missingObserver", state));
+ addFieldError("updateContactCommand.contact.nbObservants", t("wao.ui.form.Contact.error.missingObserver", state));
} catch (MissingContactObservationEndDateException e) {
String state = WaoUtils.l(getLocale(), e.getContact().getContactState());
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.missingObservationEndDate", state));
+ addFieldError("updateContactCommand.contact.observationEndDate", t("wao.ui.form.Contact.error.missingObservationEndDate", state));
} catch (ContactDataInputDateBeforeObservationEndDateException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.dataInputDateBeforeObservationEndDate"));
+ addFieldError("updateContactCommand.contact.dataInputDate", t("wao.ui.form.Contact.error.dataInputDateBeforeObservationEndDate"));
} catch (InvalidContactObservationBeginDateException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.invalidObservationBeginDate"));
+ addFieldError("updateContactCommand.contact.observationBeginDate", t("wao.ui.form.Contact.error.invalidObservationBeginDate"));
} catch (MissingContactRestitutionException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.missingRestitution"));
+ addFieldError("updateContactCommand.contact.restitution", t("wao.ui.form.Contact.error.missingRestitution"));
} catch (ContactDataInputDateAfterTodayException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.dataInputDateAfterToday"));
+ addFieldError("updateContactCommand.contact.dataInputDate", t("wao.ui.form.Contact.error.dataInputDateAfterToday"));
} catch (MissingContactCommentException e) {
String state = WaoUtils.l(getLocale(), e.getContact().getContactState());
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.missingComment", state));
+ addFieldError("updateContactCommand.contact.comment", t("wao.ui.form.Contact.error.missingComment", state));
} catch (MismatchContactMainObserverCompanyException e) {
String companyName = e.getCompany().getName();
String observerLogin = e.getObserver().getLogin();
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.mismatchCompanyForObserver", observerLogin, companyName));
+ addFieldError("updateContactCommand.contact.mainObserver", t("wao.ui.form.Contact.error.mismatchCompanyForObserver", observerLogin, companyName));
} catch (ContactRestitutionDateBeforeDataInputDateException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.transmissionDateBeforeDataInputDate"));
+ addFieldError("updateContactCommand.contact.restitution", t("wao.ui.form.Contact.error.transmissionDateBeforeDataInputDate"));
} catch (ContactObservationEndDateBeforeBeginDateException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.observationEndDateBeforeBeginDate"));
+ addFieldError("updateContactCommand.contact.observationEndDate", t("wao.ui.form.Contact.error.observationEndDateBeforeBeginDate"));
} catch (DuplicatedContactMainObserverInSecondaryObserversException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.duplicatedMainObserverInSecondaryObservers"));
+ addFieldError("updateContactCommand.contact.secondaryObservers", t("wao.ui.form.Contact.error.duplicatedMainObserverInSecondaryObservers"));
} catch (MissingContactDataReliabilityException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.missingDataReliability"));
+ addFieldError("updateContactCommand.contact.dataReliability", t("wao.ui.form.Contact.error.missingDataReliability"));
} catch (MismatchContactSecondaryObserverCompanyException e) {
String companyName = e.getCompany().getName();
String observerLogin = e.getObserver().getLogin();
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.mismatchCompanyForObserver", observerLogin, companyName));
+ addFieldError("updateContactCommand.contact.secondaryObservers", t("wao.ui.form.Contact.error.mismatchCompanyForObserver", observerLogin, companyName));
} catch (MissingContactObservedDataControlException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.missingObservedDataControl"));
+ addFieldError("updateContactCommand.contact.observedDataControl", t("wao.ui.form.Contact.error.missingObservedDataControl"));
} catch (MissingContactStateMotifException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.missingContactStateMotif"));
+ addFieldError("updateContactCommand.contact.contactStateMotif", t("wao.ui.form.Contact.error.missingContactStateMotif"));
} catch (MissingContactDataInputDateException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.missingDataInputDate"));
+ addFieldError("updateContactCommand.contact.dataInputDate", t("wao.ui.form.Contact.error.missingDataInputDate"));
} catch (MissingContactMainObserverException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.missingMainObserver"));
+ addFieldError("updateContactCommand.contact.mainObserver", t("wao.ui.form.Contact.error.missingMainObserver"));
} catch (MissingContactCommentAdminException e) {
String dataReliability = WaoUtils.l(getLocale(), e.getContact().getDataReliability());
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.missingCommentAdmin", dataReliability));
+ addFieldError("updateContactCommand.contact.commentAdmin", t("wao.ui.form.Contact.error.missingCommentAdmin", dataReliability));
} catch (ContactObservationEndDateAfterTodayException e) {
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.observationEndDateAfterToday"));
+ addFieldError("updateContactCommand.contact.observationEndDate", t("wao.ui.form.Contact.error.observationEndDateAfterToday"));
} catch (MissingContactObservationBeginDateException e) {
String state = WaoUtils.l(getLocale(), e.getContact().getContactState());
- //TODO fix field
- addFieldError("updateContactCommand.contact.", t("wao.ui.form.Contact.error.missingObservationBeginDate", state));
+ addFieldError("updateContactCommand.contact.observationBeginDate", t("wao.ui.form.Contact.error.missingObservationBeginDate", state));
}
}
+ public boolean isDisplaySecondaryObservers() {
+ boolean showSecondaryObservers = true;
+ if (updateContactCommand.getContact().getSampleRow().isPhoneCall()) {
+ // when phoning, we are always single
+ showSecondaryObservers = false;
+ }
+ return showSecondaryObservers;
+ }
+
+ public boolean isDisplayDataReliability() {
+ return getAuthenticatedWaoUser().isAdmin() || getAuthenticatedWaoUser().isCoordinator();
+ }
+
+ public boolean canEditDataReliability() {
+ Contact contact = updateContactCommand.getContact();
+ boolean result = getAuthenticatedWaoUser().isAdmin() // coordinator can see the value
+ && BooleanUtils.isTrue(contact.getValidationCompany())
+ && contact.getValidationProgram() == null;
+ return result;
+ }
+
+ public boolean canEditObservers() {
+ return getAuthenticatedWaoUser().isCoordinatorOrObserver() &&
+ updateContactCommand.getContact().getValidationProgram() == null;
+ }
+
+ public boolean canEditObservationReport() {
+ return getAuthenticatedWaoUser().isCoordinatorOrObserver() &&
+ updateContactCommand.getContact().getValidationCompany() == null;
+ }
+
@Override
public String execute() throws Exception {
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ValidateContactJsonAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ValidateContactJsonAction.java 2014-04-08 16:28:52 UTC (rev 1868)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/ValidateContactJsonAction.java 2014-04-08 17:20:53 UTC (rev 1869)
@@ -168,78 +168,79 @@
try {
service.preValidate(authenticatedWaoUser, updateContactCommand, true);
} catch (ContactNotUpdatableException e) {
- errorMessage = t("wao.ui.contacts.validation.failure.not.updatable");
+ session.addErrorMessages(t("wao.ui.contacts.validation.failure.not.updatable"));
+
} catch (UnwantedContactContactStateMotifException e) {
- errorMessage = t("wao.import.contact.failure.unwantedContactStateMotif");
+ errorMessage = t("wao.ui.form.Contact.error.unwantedContactStateMotif");
} catch (MissingContactNbObservantsException e) {
String state = WaoUtils.l(getLocale(), e.getContact().getContactState());
- errorMessage = t("wao.import.contact.failure.missingObserver", state);
+ errorMessage = t("wao.ui.form.Contact.error.missingObserver", state);
} catch (MissingContactObservationEndDateException e) {
String state = WaoUtils.l(getLocale(), e.getContact().getContactState());
- errorMessage = t("wao.import.contact.failure.missingObservationEndDate", state);
+ errorMessage = t("wao.ui.form.Contact.error.missingObservationEndDate", state);
} catch (ContactDataInputDateBeforeObservationEndDateException e) {
- errorMessage = t("wao.import.contact.failure.dataInputDateAfterObservationEndDate");
+ errorMessage = t("wao.ui.form.Contact.error.dataInputDateBeforeObservationEndDate");
} catch (InvalidContactObservationBeginDateException e) {
- errorMessage = t("wao.import.contact.failure.invalidObservationBeginDate");
+ errorMessage = t("wao.ui.form.Contact.error.invalidObservationBeginDate");
} catch (MissingContactRestitutionException e) {
- errorMessage = t("wao.import.contact.failure.missingRestitution");
+ errorMessage = t("wao.ui.form.Contact.error.missingRestitution");
} catch (ContactDataInputDateAfterTodayException e) {
- errorMessage = t("wao.import.contact.failure.dataInputDateAfterObservationEndDate");
+ errorMessage = t("wao.ui.form.Contact.error.dataInputDateAfterToday");
} catch (MissingContactCommentException e) {
String state = WaoUtils.l(getLocale(), e.getContact().getContactState());
- errorMessage = t("wao.import.contact.failure.missingComment", state);
+ errorMessage = t("wao.ui.form.Contact.error.missingComment", state);
} catch (MismatchContactMainObserverCompanyException e) {
String companyName = e.getCompany().getName();
String observerLogin = e.getObserver().getLogin();
- errorMessage = t("wao.import.contact.failure.mismatchCompanyForObserver", observerLogin, companyName);
+ errorMessage = t("wao.ui.form.Contact.error.mismatchCompanyForObserver", observerLogin, companyName);
} catch (ContactRestitutionDateBeforeDataInputDateException e) {
- errorMessage = t("wao.import.contact.failure.transmissionDateBeforeDataInputDate");
+ errorMessage = t("wao.ui.form.Contact.error.transmissionDateBeforeDataInputDate");
} catch (ContactObservationEndDateBeforeBeginDateException e) {
- errorMessage = t("wao.import.contact.failure.observationEndDateBeforeBeginDate");
+ errorMessage = t("wao.ui.form.Contact.error.observationEndDateBeforeBeginDate");
} catch (DuplicatedContactMainObserverInSecondaryObserversException e) {
- errorMessage = t("wao.import.contact.failure.duplicatedMainObserverInSecondaryObservers");
+ errorMessage = t("wao.ui.form.Contact.error.duplicatedMainObserverInSecondaryObservers");
} catch (MissingContactDataReliabilityException e) {
- errorMessage = t("wao.import.contact.failure.missingDataReliability");
+ errorMessage = t("wao.ui.form.Contact.error.missingDataReliability");
} catch (MismatchContactSecondaryObserverCompanyException e) {
String companyName = e.getCompany().getName();
String observerLogin = e.getObserver().getLogin();
- errorMessage = t("wao.import.contact.failure.mismatchCompanyForObserver", observerLogin, companyName);
+ errorMessage = t("wao.ui.form.Contact.error.mismatchCompanyForObserver", observerLogin, companyName);
} catch (MissingContactObservedDataControlException e) {
- errorMessage = t("wao.import.contact.failure.missingObservedDataControl");
+ errorMessage = t("wao.ui.form.Contact.error.missingObservedDataControl");
} catch (MissingContactStateMotifException e) {
- errorMessage = t("wao.import.contact.failure.missingContactStateMotif");
+ errorMessage = t("wao.ui.form.Contact.error.missingContactStateMotif");
} catch (MissingContactDataInputDateException e) {
- errorMessage = t("wao.import.contact.failure.missingDataInputDate");
+ errorMessage = t("wao.ui.form.Contact.error.missingDataInputDate");
} catch (MissingContactMainObserverException e) {
- errorMessage = t("wao.import.contact.failure.missingMainObserver");
+ errorMessage = t("wao.ui.form.Contact.error.missingMainObserver");
} catch (MissingContactCommentAdminException e) {
String dataReliability = WaoUtils.l(getLocale(), e.getContact().getDataReliability());
- errorMessage = t("wao.import.contact.failure.missingCommentAdmin", dataReliability);
+ errorMessage = t("wao.ui.form.Contact.error.missingCommentAdmin", dataReliability);
} catch (ContactObservationEndDateAfterTodayException e) {
- errorMessage = t("wao.import.contact.failure.observationEndDateAfterToday");
+ errorMessage = t("wao.ui.form.Contact.error.observationEndDateAfterToday");
} catch (MissingContactObservationBeginDateException e) {
String state = WaoUtils.l(getLocale(), e.getContact().getContactState());
- errorMessage = t("wao.import.contact.failure.missingObservationBeginDate", state);
+ errorMessage = t("wao.ui.form.Contact.error.missingObservationBeginDate", state);
} catch (Exception e) {
if (log.isErrorEnabled()) {
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-04-08 16:28:52 UTC (rev 1868)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-04-08 17:20:53 UTC (rev 1869)
@@ -5,25 +5,6 @@
wao.import.boatGroups.success=Import boats successful
wao.import.boats.prompt=Import boat groups
wao.import.boats.success=Import boat groups successful
-wao.import.contact.failure.dataInputDateAfterObservationEndDate=
-wao.import.contact.failure.duplicatedMainObserverInSecondaryObservers=
-wao.import.contact.failure.invalidObservationBeginDate=
-wao.import.contact.failure.mismatchCompanyForObserver=
-wao.import.contact.failure.missingComment=
-wao.import.contact.failure.missingCommentAdmin=
-wao.import.contact.failure.missingContactStateMotif=
-wao.import.contact.failure.missingDataInputDate=
-wao.import.contact.failure.missingDataReliability=
-wao.import.contact.failure.missingMainObserver=
-wao.import.contact.failure.missingObservationBeginDate=
-wao.import.contact.failure.missingObservationEndDate=
-wao.import.contact.failure.missingObservedDataControl=
-wao.import.contact.failure.missingObserver=
-wao.import.contact.failure.missingRestitution=
-wao.import.contact.failure.observationEndDateAfterToday=
-wao.import.contact.failure.observationEndDateBeforeBeginDate=
-wao.import.contact.failure.transmissionDateBeforeDataInputDate=
-wao.import.contact.failure.unwantedContactStateMotif=
wao.import.contactStateMotives.prompt=Import contact state motives
wao.import.contactStateMotives.success=Import contact state motives successful
wao.import.fishingZones.prompt=Import fishing zones
@@ -289,6 +270,26 @@
wao.ui.form.Company.error.nameMustBeUnique=Company name must be unique
wao.ui.form.Company.title.creation=Create a new company
wao.ui.form.Company.title.edition=Edit company %s
+wao.ui.form.Contact.error.dataInputDateAfterToday=
+wao.ui.form.Contact.error.dataInputDateBeforeObservationEndDate=
+wao.ui.form.Contact.error.duplicatedMainObserverInSecondaryObservers=
+wao.ui.form.Contact.error.invalidObservationBeginDate=
+wao.ui.form.Contact.error.mismatchCompanyForObserver=
+wao.ui.form.Contact.error.missingComment=
+wao.ui.form.Contact.error.missingCommentAdmin=
+wao.ui.form.Contact.error.missingContactStateMotif=
+wao.ui.form.Contact.error.missingDataInputDate=
+wao.ui.form.Contact.error.missingDataReliability=
+wao.ui.form.Contact.error.missingMainObserver=
+wao.ui.form.Contact.error.missingObservationBeginDate=
+wao.ui.form.Contact.error.missingObservationEndDate=
+wao.ui.form.Contact.error.missingObservedDataControl=
+wao.ui.form.Contact.error.missingObserver=
+wao.ui.form.Contact.error.missingRestitution=
+wao.ui.form.Contact.error.observationEndDateAfterToday=
+wao.ui.form.Contact.error.observationEndDateBeforeBeginDate=
+wao.ui.form.Contact.error.transmissionDateBeforeDataInputDate=
+wao.ui.form.Contact.error.unwantedContactStateMotif=
wao.ui.form.SampleRow.boatsDescription=This field contains registration numbers of the ships that areeligible for this ligne. You can use any separator to separate numbers (space, dot, line-return, comma)
wao.ui.form.SampleRow.error.codeMustBeUnique=Sample row code must be unique
wao.ui.form.SampleRow.error.missingDcf5Codes=You must provide at least one DCF5 code
@@ -321,6 +322,8 @@
wao.ui.form.authentication.title=WAO authentication
wao.ui.form.boardingFrom=Boardings since
wao.ui.form.boatName.placeholder=Name of boat
+wao.ui.form.contact.boat.information=Informations sur le bateau
+wao.ui.form.contact.sampleRow.information=Informations sur la ligne du plan d'échantillonage
wao.ui.form.contactsFile=Contacts file
wao.ui.form.definePasswordManually=Define password manually
wao.ui.form.editComment=Edit comment
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-04-08 16:28:52 UTC (rev 1868)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-04-08 17:20:53 UTC (rev 1869)
@@ -139,26 +139,6 @@
wao.ui.contacts.validation.to.accept.state.success=Le contact a été accepté avec succès
wao.ui.contacts.validation.to.reject.state.success=Le contact a été rejeté avec succès
wao.ui.contacts.validation.to.unvalidate.state.success=Le contact a été invalidé avec succès
-wao.ui.form.Contact.error.dataInputDateBeforeObservationEndDate=La date de saisie des données doit être postérieure à la date de fin d'observation
-wao.ui.form.Contact.error.dataInputDateAfterToday=La date de saisie des données doit être antérieure à la date du jour
-wao.ui.form.Contact.error.duplicatedMainObserverInSecondaryObservers=L'utilisateur référant ne doit pas se trouver aussi parmi les observateurs secondaires
-wao.ui.form.Contact.error.invalidObservationBeginDate=La date de début de la marée doit correspondre à un mois valide (non vide) de la ligne
-wao.ui.form.Contact.error.mismatchCompanyForObserver=L'observateur %s n'est pas membre de la société %s
-wao.ui.form.Contact.error.missingComment=Il faut préciser un commentaire pour l'état '%s'
-wao.ui.form.Contact.error.missingCommentAdmin=Il faut préciser dans le commentaire administrateur pourquoi la donnée est '%s'
-wao.ui.form.Contact.error.missingContactStateMotif=Il faut préciser un motif de refus
-wao.ui.form.Contact.error.missingDataInputDate=Il faut préciser une date de saisie des données en plus de la date de transmission de la restitution
-wao.ui.form.Contact.error.missingDataReliability=Il faut préciser la qualité de la donnée avant de valider
-wao.ui.form.Contact.error.missingMainObserver=Il faut au moins un observateur référant
-wao.ui.form.Contact.error.missingObservationBeginDate=La date de début de marée est obligatoire pour l'état '%s'
-wao.ui.form.Contact.error.missingObservationEndDate=La date de fin d'observation est obligatoire pour l'état '%s'
-wao.ui.form.Contact.error.missingObservedDataControl=Il faut préciser une valeur pour le contrôle des données observées
-wao.ui.form.Contact.error.missingObserver=Il ne peut y avoir aucun observateur pour l'état '%s'
-wao.ui.form.Contact.error.missingRestitution=Il faut préciser une date de transmission de la restitution de la donnée avant de valider
-wao.ui.form.Contact.error.observationEndDateAfterToday=La date de fin de la marée ne peut pas être postérieure à la date du jour
-wao.ui.form.Contact.error.observationEndDateBeforeBeginDate=La date de fin d'observation ne peut pas être antérieure à celle du début
-wao.ui.form.Contact.error.transmissionDateBeforeDataInputDate=Il faut que la date de transmission de la restitution soit après la date de saisie des données
-wao.ui.form.Contact.error.unwantedContactStateMotif=Il ne faut pas préciser de motif de refus
wao.ui.disclaimer=Le site de « SUIVI DU REALISE DU PLAN D'ECHANTILLONNAGE DES OBSERVATIONS A LA MER » a fait l'objet d'une déclaration à la CNIL sous le numéro suivant \: 1414476
wao.ui.disclaimer.boats=Les données saisies dans cette page sont la propriété exclusive de la société. En dehors de la société, 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
@@ -290,6 +270,26 @@
wao.ui.form.Company.error.nameMustBeUnique=Le nom de la société doit être unique
wao.ui.form.Company.title.creation=Création d'une société
wao.ui.form.Company.title.edition=Modification de la société %s
+wao.ui.form.Contact.error.dataInputDateAfterToday=La date de saisie des données doit être antérieure à la date du jour
+wao.ui.form.Contact.error.dataInputDateBeforeObservationEndDate=La date de saisie des données doit être postérieure à la date de fin d'observation
+wao.ui.form.Contact.error.duplicatedMainObserverInSecondaryObservers=L'utilisateur référant ne doit pas se trouver aussi parmi les observateurs secondaires
+wao.ui.form.Contact.error.invalidObservationBeginDate=La date de début de la marée doit correspondre à un mois valide (non vide) de la ligne
+wao.ui.form.Contact.error.mismatchCompanyForObserver=L'observateur %s n'est pas membre de la société %s
+wao.ui.form.Contact.error.missingComment=Il faut préciser un commentaire pour l'état '%s'
+wao.ui.form.Contact.error.missingCommentAdmin=Il faut préciser dans le commentaire administrateur pourquoi la donnée est '%s'
+wao.ui.form.Contact.error.missingContactStateMotif=Il faut préciser un motif de refus
+wao.ui.form.Contact.error.missingDataInputDate=Il faut préciser une date de saisie des données en plus de la date de transmission de la restitution
+wao.ui.form.Contact.error.missingDataReliability=Il faut préciser la qualité de la donnée avant de valider
+wao.ui.form.Contact.error.missingMainObserver=Il faut au moins un observateur référant
+wao.ui.form.Contact.error.missingObservationBeginDate=La date de début de marée est obligatoire pour l'état '%s'
+wao.ui.form.Contact.error.missingObservationEndDate=La date de fin d'observation est obligatoire pour l'état '%s'
+wao.ui.form.Contact.error.missingObservedDataControl=Il faut préciser une valeur pour le contrôle des données observées
+wao.ui.form.Contact.error.missingObserver=Il ne peut y avoir aucun observateur pour l'état '%s'
+wao.ui.form.Contact.error.missingRestitution=Il faut préciser une date de transmission de la restitution de la donnée avant de valider
+wao.ui.form.Contact.error.observationEndDateAfterToday=La date de fin de la marée ne peut pas être postérieure à la date du jour
+wao.ui.form.Contact.error.observationEndDateBeforeBeginDate=La date de fin d'observation ne peut pas être antérieure à celle du début
+wao.ui.form.Contact.error.transmissionDateBeforeDataInputDate=Il faut que la date de transmission de la restitution soit après la date de saisie des données
+wao.ui.form.Contact.error.unwantedContactStateMotif=Il ne faut pas préciser de motif de refus
wao.ui.form.SampleRow.boatsDescription=Ce champs correspond aux immatriculations des navires qui sont éligibles pour cette ligne. Vous pouvez utiliser n'importe quel séparateur pour séparer les immatriculations (virgule, point, espace ou saut de ligne)
wao.ui.form.SampleRow.error.codeMustBeUnique=Le code de la ligne doit être unique
wao.ui.form.SampleRow.error.missingDcf5Codes=Il faut préciser au moins un code DCF5
@@ -322,6 +322,8 @@
wao.ui.form.authentication.title=Identification WAO
wao.ui.form.boardingFrom=Sollicitations du navire depuis le
wao.ui.form.boatName.placeholder=Nom du bateau
+wao.ui.form.contact.boat.information=Informations sur le bateau
+wao.ui.form.contact.sampleRow.information=Informations sur la ligne du plan d'échantillonage
wao.ui.form.contactsFile=Fichier des contacts
wao.ui.form.definePasswordManually=définir manuellement
wao.ui.form.editComment=Commentaire sur la modification
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp 2014-04-08 16:28:52 UTC (rev 1868)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/contacts.jsp 2014-04-08 17:20:53 UTC (rev 1869)
@@ -526,8 +526,15 @@
<ul class="dropdown-menu">
<s:if test="authenticatedWaoUser.isAuthorizedToEditContact(#contact) || authenticatedWaoUser.isAuthorizedToDeleteContact(#contact)">
<li>
- <s:url action="edit-contact!input" id="editContactUrl">
+ <s:if test="authenticatedWaoUser.admin">
+ <s:set name="focusAnchor">adminFocus</s:set>
+ </s:if>
+ <s:else>
+ <s:set name="focusAnchor">coordinatorFocus</s:set>
+ </s:else>
+ <s:url action="edit-contact!input" id="editContactUrl" anchor='%{focusAnchor}'>
<s:param name="contactId" value="topiaId"/>
+
</s:url>
<s:a href="%{editContactUrl}">
<i class="icon-edit"></i> <s:text name="wao.ui.action.editOrDeleteContact"/>
Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-contact-input.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-contact-input.jsp 2014-04-08 16:28:52 UTC (rev 1868)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/edit-contact-input.jsp 2014-04-08 17:20:53 UTC (rev 1869)
@@ -18,14 +18,14 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
#L%
--%>
-<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<title>
<s:if test="updateContactCommand.creation">
- <s:text name="wao.ui.sampleRow.creation" />
+ <s:text name="wao.ui.sampleRow.creation"/>
</s:if>
<s:else>
<s:text name="wao.ui.contact.edition">
@@ -35,7 +35,7 @@
</title>
<script>
- $(document).ready(function() {
+ $(document).ready(function () {
});
@@ -45,7 +45,7 @@
<h1>
<s:if test="updateContactCommand.creation">
- <s:text name="wao.ui.contact.creation" />
+ <s:text name="wao.ui.contact.creation"/>
</s:if>
<s:else>
<s:text name="wao.ui.contact.edition">
@@ -54,54 +54,181 @@
</s:else>
</h1>
-<s:if test="updateContactCommand.observationAlreadyStarted">
- <div class="alert">
- <s:text name="wao.ui.form.SampleRow.warn.observationAlreadyStarted" />
- </div>
-</s:if>
-
<s:form>
- <s:hidden name="sampleRowId" value="%{sampleRowId}" />
+ <s:hidden name="contactId" value="%{contactId}"/>
<fieldset>
- <legend><s:text name="wao.ui.field.SampleRow.profession" /></legend>
+ <legend><s:text name="wao.ui.form.contact.boat.information"/></legend>
+ <s:textfield name="updateContactCommand.contact.boat.name"
+ label="%{getText('wao.ui.field.Boat.name')}"
+ readonly="true"/>
+ <s:textfield name="updateContactCommand.contact.boat.immatriculation"
+ value="%{'' + updateContactCommand.contact.boat.immatriculation}"
+ label="%{getText('wao.ui.field.Boat.immatriculation')}"
+ readonly="true"/>
+ <s:textfield name="updateContactCommand.contact.boat.districtCode"
+ label="%{getText('wao.ui.field.Boat.districtCode')}"
+ readonly="true"/>
+ <s:textfield name="updateContactCommand.contact.boat.boatLength"
+ label="%{getText('wao.ui.field.Boat.boatLength')}"
+ readonly="true"/>
+ <s:textfield name="updateContactCommand.contact.boat.buildYear"
+ value="%{'' + updateContactCommand.contact.boat.buildYear}"
+ label="%{getText('wao.ui.field.Boat.buildYear')}"
+ readonly="true"/>
+ </fieldset>
+ <fieldset>
+
+ <legend><s:text name="wao.ui.form.contact.sampleRow.information"/></legend>
+
+ <s:textfield name="updateContactCommand.contact.sampleRow.professionDescription"
+ label="%{getText('wao.ui.field.SampleRow.profession')}"
+ readonly="true"/>
+ <s:textfield name="updateContactCommand.contact.sampleRow.programName"
+ label="%{getText('wao.ui.field.SampleRow.programName')}"
+ readonly="true"/>
+ <s:textfield name="updateContactCommand.contact.sampleRow.periodBegin"
+ label="%{getText('wao.ui.field.SampleRow.periodBegin')}"
+ value="%{formatMonth(updateContactCommand.contact.sampleRow.periodBegin)}"
+ readonly="true"
+ cssClass="input-small"/>
+ <s:textfield name="updateContactCommand.contact.sampleRow.periodEnd"
+ label="%{getText('wao.ui.field.SampleRow.periodEnd')}"
+ value="%{formatMonth(updateContactCommand.contact.sampleRow.periodEnd)}"
+ readonly="true"
+ cssClass="input-small"/>
</fieldset>
- <s:if test=" ! updateContactCommand.creation">
+ <s:textfield name="updateContactCommand.contact.creationDate"
+ label="%{getText('wao.ui.field.Contact.creationDate')}"
+ value="%{formatDateTime(updateContactCommand.contact.sampleRow.periodEnd)}"
+ readonly="true"/>
- <fieldset>
- <legend><s:text name="wao.ui.form.editComment" /></legend>
+ <%--TODO Editable if canEditObservers()--%>
+ <fieldset>
+ <legend><s:text name="wao.ui.misc.observers"/></legend>
- <s:text name="wao.ui.form.editionAuthor" /> <s:property value="updateContactCommand.sampleRowLog.author.fullName" />
+ <s:select name="updateContactCommand.contact.mainObserver"
+ value="%{updateContactCommand.contact.mainObserver.topiaId}"
+ label="%{getText('wao.ui.field.Contact.mainObserver')}"
+ list="observers"
+ emptyOption="true"/>
- <s:textarea name="updateContactCommand.contact.comment" label="%{getText('wao.ui.form.editComment')}" requiredLabel="true" />
+ <s:if test="displaySecondaryObservers">
+ <s:select name="updateContactCommand.contact.secondaryObservers"
+ value="%{updateContactCommand.contact.secondaryObserversTopiaIds}"
+ label="%{getText('wao.ui.field.Contact.secondaryObservers')}"
+ list="observers"
+ multiple="true"/>
+ </s:if>
- </fieldset>
+ </fieldset>
- </s:if>
+ <%--TODO Editable if canEditObservationReport()--%>
+ <fieldset id="coordinatorFocus">
+ <legend><s:text name="wao.ui.misc.observationReport"/></legend>
+ <s:textfield name="updateContactCommand.contact.observationBeginDate"
+ label="%{getText('wao.ui.field.Contact.beginDate')}"
+ value="%{formatDateTime(updateContactCommand.contact.observationBeginDate)}"
+ placeholder="%{getDateTimePlaceholder()}"/>
+
+ <s:textfield name="updateContactCommand.contact.observationEndDate"
+ label="%{getText('wao.ui.field.Contact.endDate')}"
+ value="%{formatDateTime(updateContactCommand.contact.observationEndDate)}"
+ placeholder="%{getDateTimePlaceholder()}"/>
+
+ <s:select name="updateContactCommand.contact.contactState"
+ label="%{getText('wao.ui.field.Contact.contactState')}"
+ requiredLabel="true"
+ list="contactStates"
+ emptyOption="true"/>
+
+ <s:select name="updateContactCommand.contact.contactStateMotif"
+ value="%{updateContactCommand.contact.contactState.topiaId}"
+ label="%{getText('wao.ui.field.Contact.contactStateMotif')}"
+ list="contactStateMotives"
+ emptyOption="true"/>
+
+ <s:checkbox name="updateContactCommand.contact.mammalsObservation"
+ label="%{getText('wao.ui.field.Contact.mammalsObservation')}"/>
+
+ <s:checkbox name="updateContactCommand.contact.mammalsCapture"
+ label="%{getText('wao.ui.field.Contact.mammalsCapture')}"/>
+ <%--TODO onclick="updateMammalsInfoBox(this);" />--%>
+
+ <%--<span style="color: red;">--%>
+ <%--<s:text name="wao.ui.page.ContactForm.mammalsInfo.disclaimer"/>--%>
+ <%--</span>--%>
+
+ <s:textarea name="updateContactCommand.contact.mammalsInfo"
+ label="%{getText('wao.ui.field.Contact.mammalsInfo')}"/>
+
+ <s:textfield name="updateContactCommand.contact.dataInputDate"
+ label="%{getText('wao.ui.field.Contact.dataInputDate')}"
+ value="%{formatDate(updateContactCommand.contact.dataInputDate)}"
+ placeholder="%{getDatePlaceholder()}"/>
+
+ <%--TODO Editable for authenticatedWaoUser.coordinator--%>
+ <s:select name="updateContactCommand.contact.observedDataControl"
+ label="%{getText('wao.ui.field.Contact.observedDataControl')}"
+ list="observedDataControls"
+ emptyOption="true"/>
+
+ <s:textfield name="updateContactCommand.contact.restitution"
+ label="%{getText('wao.ui.field.Contact.restitution')}"
+ value="%{formatDate(updateContactCommand.contact.restitution)}"
+ placeholder="%{getDatePlaceholder()}"/>
+
+ <%--TODO Editable for authenticatedWaoUser.coordinatorOrObserver--%>
+ <s:textarea name="updateContactCommand.contact.comment"
+ label="%{getText('wao.ui.field.Contact.comment')}"/>
+
+ <%--TODO Editable for authenticatedWaoUser.coordinator--%>
+ <s:textarea name="updateContactCommand.contact.commentCoordinator"
+ label="%{getText('wao.ui.field.Contact.commentCoordinator')}"/>
+
+ </fieldset>
+
+ <fieldset name="adminFocus">
+ <legend><s:text name="wao.ui.form.programEvaluation"/></legend>
+
+ <%--TODO Editable for canEditDataReliability()--%>
+ <s:if test="displayDataReliability">
+ <s:select name="updateContactCommand.contact.dataReliability"
+ label="%{getText('wao.ui.field.Contact.dataReliability')}"
+ list="dataReliabilities"
+ emptyOption="true"/>
+ </s:if>
+
+ <%--TODO Editable for authenticatedWaoUser.admin--%>
+ <s:textarea name="updateContactCommand.contact.commentAdmin"
+ label="%{getText('wao.ui.field.Contact.commentAdmin')}"/>
+ </fieldset>
+
<div class="form-actions">
- <s:url action="contacts" id="contactsUrl" />
+ <s:url action="contacts" id="contactsUrl"/>
<s:a href="%{contactsUrl}" cssClass="btn">
- <i class="icon-chevron-left"></i> <s:text name="wao.ui.action.cancel" />
+ <i class="icon-chevron-left"></i> <s:text name="wao.ui.action.cancel"/>
</s:a>
- <s:if test=" authenticatedWaoUser.isAuthorizedToEditContact(updateContactCommand.contact)">
+ <s:if test="authenticatedWaoUser.isAuthorizedToEditContact(updateContactCommand.contact)">
<s:submit type="button" cssClass="btn">
- <i class="icon-hdd"></i> <s:text name="wao.ui.action.save" />
+ <i class="icon-hdd"></i> <s:text name="wao.ui.action.save"/>
</s:submit>
</s:if>
- <s:if test=" ! updateContactCommand.creation && authenticatedWaoUser.isAuthorizedToDeleteContact(updateContactCommand.contact)">
+ <s:if
+ test=" ! updateContactCommand.creation && authenticatedWaoUser.isAuthorizedToDeleteContact(updateContactCommand.contact)">
<s:url action="delete-contact" id="deleteContactUrl">
- <s:param name="contactId" value="contactId" />
+ <s:param name="contactId" value="contactId"/>
</s:url>
<s:a href="%{deleteContactUrl}" cssClass="btn pull-right">
- <i class="icon-trash"></i> <s:text name="wao.ui.action.deleteContact" />
+ <i class="icon-trash"></i> <s:text name="wao.ui.action.deleteContact"/>
</s:a>
</s:if>
</div>
1
0
08 Apr '14
Jenkins build became unstable: wao-ci » Wao :: Services #123
by admin+ci-codelutin.com@codelutin.com 08 Apr '14
by admin+ci-codelutin.com@codelutin.com 08 Apr '14
08 Apr '14
r1868 - in trunk/wao-services/src: main/java/fr/ifremer/wao/services test/java/fr/ifremer/wao/services/service test/resources/import
by tchemit@users.forge.codelutin.com 08 Apr '14
by tchemit@users.forge.codelutin.com 08 Apr '14
08 Apr '14
Author: tchemit
Date: 2014-04-08 18:28:52 +0200 (Tue, 08 Apr 2014)
New Revision: 1868
Url: http://forge.codelutin.com/projects/wao/repository/revisions/1868
Log:
refs #4487 fix contacts import tests
Modified:
trunk/wao-services/src/main/java/fr/ifremer/wao/services/ObsMerFixtures.java
trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerContactsServiceTest.java
trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanServiceTest.java
trunk/wao-services/src/test/resources/import/contacts.csv
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/ObsMerFixtures.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/ObsMerFixtures.java 2014-04-08 16:24:07 UTC (rev 1867)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/ObsMerFixtures.java 2014-04-08 16:28:52 UTC (rev 1868)
@@ -140,20 +140,8 @@
}
public AuthenticatedWaoUser admin() {
-// WaoUserTopiaDao waoUserDao = serviceContext.getPersistenceContext().getWaoUserDao();
WaoUser admin = getWaoUser("admin");
UserProfile userProfile = getUserProfile("admin");
-// admin.setCompany(ifremer());
-// admin.setLogin("admin");
-// admin.setActive(true);
-// UserProfileTopiaDao userProfileDao = serviceContext.getPersistenceContext().getUserProfileDao();
-// UserProfile userProfile = new UserProfileImpl();
-// userProfile.setUserRole(UserRole.ADMIN);
-// userProfile.setObsProgram(ObsProgram.OBSMER);
-// userProfile.setCanWrite(true);
-// userProfileDao.create(userProfile);
-// admin.addUserProfile(userProfile);
-// waoUserDao.create(admin);
AuthenticatedWaoUser authenticatedWaoUser = new AuthenticatedWaoUser(admin, userProfile);
return authenticatedWaoUser;
}
@@ -161,19 +149,6 @@
public AuthenticatedWaoUser jmichmuche() {
WaoUser jmichmuche = getWaoUser("jmichmuche");
UserProfile userProfile = getUserProfile("jmichmuche");
-// WaoUserTopiaDao waoUserDao = serviceContext.getPersistenceContext().getWaoUserDao();
-// WaoUser jmichmuche = new WaoUserImpl();
-// jmichmuche.setCompany(ifremer());
-// jmichmuche.setLogin("jmichmuche");
-// jmichmuche.setActive(true);
-// UserProfileTopiaDao userProfileDao = serviceContext.getPersistenceContext().getUserProfileDao();
-// UserProfile userProfile = new UserProfileImpl();
-// userProfile.setUserRole(UserRole.COORDINATOR);
-// userProfile.setObsProgram(ObsProgram.OBSMER);
-// userProfile.setCanWrite(true);
-// userProfileDao.create(userProfile);
-// jmichmuche.addUserProfile(userProfile);
-// waoUserDao.create(jmichmuche);
AuthenticatedWaoUser authenticatedWaoUser = new AuthenticatedWaoUser(jmichmuche, userProfile);
return authenticatedWaoUser;
}
Modified: trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerContactsServiceTest.java
===================================================================
--- trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerContactsServiceTest.java 2014-04-08 16:24:07 UTC (rev 1867)
+++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerContactsServiceTest.java 2014-04-08 16:28:52 UTC (rev 1868)
@@ -29,9 +29,9 @@
import org.apache.commons.logging.LogFactory;
import org.junit.Assert;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.nuiton.topia.persistence.pager.TopiaPagerBean;
+import org.nuiton.util.DateUtil;
import java.io.InputStream;
@@ -72,16 +72,18 @@
ObsMerContactsList contactsList = service.getContactsList(filter, pager);
}
- //FIXME finish to code samplingPlan import to make this works
- @Ignore
@Test
public void testImportContacts() {
fixtures.samplingPlan();
fixtures.jmichmuche();
fixtures.navires();
+ // today must be after the observation end date
+ serviceContext.setDate(DateUtil.createDate(1, 2, 2011));
+
InputStream input = null;
try {
+
Assert.assertEquals(0, service.getContactDao().count());
input = getClass().getResourceAsStream("/import/contacts.csv");
service.importContacts(fixtures.admin(), input);
Modified: trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanServiceTest.java
===================================================================
--- trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanServiceTest.java 2014-04-08 16:24:07 UTC (rev 1867)
+++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanServiceTest.java 2014-04-08 16:28:52 UTC (rev 1868)
@@ -26,6 +26,7 @@
import fr.ifremer.wao.entity.SampleMonth;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.services.AbstractWaoServiceTest;
+import fr.ifremer.wao.services.FakeWaoServiceContext;
import fr.ifremer.wao.services.ObsMerFixtures;
import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
@@ -160,6 +161,12 @@
@Test
public void testRecomputeSampleRowEstimatedAndRealTides() throws Exception {
+ FakeWaoServiceContext serviceContext = newServiceContext();
+
+ // today must be after the observation end date (for contacts import)
+ serviceContext.setDate(DateUtil.createDate(1, 2, 2011));
+ fixtures = new ObsMerFixtures(serviceContext);
+
fixtures.contacts();
SampleRow sampleRow = serviceContext.getPersistenceContext().getSampleRowDao().forCodeEquals("2010_M0011").findUnique();
Modified: trunk/wao-services/src/test/resources/import/contacts.csv
===================================================================
--- trunk/wao-services/src/test/resources/import/contacts.csv 2014-04-08 16:24:07 UTC (rev 1867)
+++ trunk/wao-services/src/test/resources/import/contacts.csv 2014-04-08 16:28:52 UTC (rev 1868)
@@ -1,2 +1,3 @@
CONTACT_ID;CONTACT_DATE_CREATION;CONTACT_OBSERVATEUR_PRINCIPAL;CONTACT_OBSERVATEURS_SECONDAIRES;CONTACT_ETAT;CONTACT_DEBUT_OBSERVATION;CONTACT_FIN_OBSERVATION;CONTACT_SAISIE_DONNEES;CONTACT_COMMENTAIRE_OBSERVATEUR;CONTACT_COMMENTAIRE_COORDINATEUR;CONTACT_COMMENTAIRE_PROGRAMME;PLAN_CODE;NAVIRE_IMMATRICULATION;CONTACT_VALIDATION_SOCIETE;CONTACT_VALIDATION_PROGRAMME;CONTACT_QUALITE_DONNEE;CONTACT_OBSERVATION_MAMMIFERE;CONTACT_CAPTURE_ACCIDENTELLE;CONTACT_ETAT_MOTIF_CODE;CONTACT_ETAT_MOTIF_NOM;CONTACT_TRANSMISSION_RESTITUTION;CONTACT_DONNEES_ALLEGRO_VALIDEES
-;01/03/2011 10:24;jmichmuche;;CONTACT_DEFINITELY_REFUSED;;;;ne veut plus collaborer;;;2010_M0001;174258;?;?;UNKNOWN;N;N;REFUS_PROFESSION;;;
+;01/03/2011 10:24;jmichmuche;;Refus définitif;;;;ne veut plus collaborer;;;2010_M0001;174258;?;?;Inconnue;N;N;REFUS_PROFESSION;;;
+;01/03/2011 10:24;jmichmuche;;Observation réalisée;01/11/2010 10:24;02/11/2010 10:24;;ne veut plus collaborer;;;2010_M0001;174258;?;?;Inconnue;N;N;;;;
1
0