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
December 2010
- 3 participants
- 58 discussions
[Suiviobsmer-commits] r865 - in trunk: wao-business/src/main/java/fr/ifremer/wao wao-business/src/main/xmi wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/java/fr/ifremer/wao/ui/services wao-ui/src/main/resources/fr/ifremer/wao/ui/pages wao-ui/src/main/webapp
by bleny@users.labs.libre-entreprise.org 29 Dec '10
by bleny@users.labs.libre-entreprise.org 29 Dec '10
29 Dec '10
Author: bleny
Date: 2010-12-29 16:27:19 +0000 (Wed, 29 Dec 2010)
New Revision: 865
Log:
add ObsVente new columns in contacts page
refactor ContactModelFactory
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java
trunk/wao-business/src/main/xmi/wao.zargo
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ContactModelFactory.java
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/Contacts.properties
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SamplingPlan.properties
trunk/wao-ui/src/main/webapp/SamplingPlan.tml
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2010-12-28 16:55:24 UTC (rev 864)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2010-12-29 16:27:19 UTC (rev 865)
@@ -368,6 +368,10 @@
query.addEquals(sampleRowProperty.obsProgramOrdinal(), filter.getObsProgram().ordinal());
}
+ if (filter.getSamplingStrategy() != null) {
+ query.addEquals(sampleRowProperty.samplingStrategyOrdinal(), filter.getSamplingStrategy().ordinal());
+ }
+
if(logger.isDebugEnabled()) {
logger.debug("sampling filter query " + query);
}
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-12-28 16:55:24 UTC (rev 864)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-12-29 16:27:19 UTC (rev 865)
@@ -54,14 +54,7 @@
import org.apache.tapestry5.Field;
import org.apache.tapestry5.RenderSupport;
import org.apache.tapestry5.StreamResponse;
-import org.apache.tapestry5.annotations.Environmental;
-import org.apache.tapestry5.annotations.IncludeJavaScriptLibrary;
-import org.apache.tapestry5.annotations.IncludeStylesheet;
-import org.apache.tapestry5.annotations.InjectComponent;
-import org.apache.tapestry5.annotations.Log;
-import org.apache.tapestry5.annotations.Persist;
-import org.apache.tapestry5.annotations.Property;
-import org.apache.tapestry5.annotations.SessionState;
+import org.apache.tapestry5.annotations.*;
import org.apache.tapestry5.beaneditor.BeanModel;
import org.apache.tapestry5.corelib.components.Form;
import org.apache.tapestry5.corelib.components.Zone;
@@ -93,8 +86,8 @@
*/
@SuppressWarnings({"UnusedDeclaration"})
@RequiresAuthentication(allowedRoles = {UserRole.ADMIN, UserRole.COORDINATOR, UserRole.OBSERVER})
- at IncludeStylesheet("context:css/contacts.css")
- at IncludeJavaScriptLibrary("context:js/contacts.js")
+ at Import(stylesheet = "context:css/contacts.css")
+//@IncludeJavaScriptLibrary("context:js/contacts.js")
public class Contacts extends AbstractFilteredPage {
@Inject
@@ -138,8 +131,8 @@
*/
@Log
void afterRender() {
- addCommentScript();
- addSendEmailScript();
+ //addCommentScript();
+ //addSendEmailScript();
}
/**************************** CONTACT FILTERS *****************************/
@@ -311,12 +304,8 @@
@Inject
private ComponentResources resources;
- @Inject
- private ContactModelFactory contactModelFactory;
-
@Persist
private ContactDataSource contacts;
-// private Map<String, Contact> contacts;
@Property
private Contact contact;
@@ -346,15 +335,10 @@
public BeanModel<Contact> getContactModel() {
if (contactModel == null) {
+ ContactModelFactory contactModelFactory = new ContactModelFactory(
+ user.getProfile().getObsProgram(), user.getProfile().getUserRole(), fullView);
- if (user.isAdmin() || user.isCoordinator()) {
- contactModel = fullView ?
- contactModelFactory.buildAdminContactModel(beanModelSource, resources) :
- contactModelFactory.buildCoordinatorContactModel(beanModelSource, resources);
- } else {
- contactModel =
- contactModelFactory.buildContactModel(beanModelSource, resources);
- }
+ contactModel = contactModelFactory.newModel(beanModelSource, resources);
}
return contactModel;
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ContactModelFactory.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ContactModelFactory.java 2010-12-28 16:55:24 UTC (rev 864)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ContactModelFactory.java 2010-12-29 16:27:19 UTC (rev 865)
@@ -24,20 +24,23 @@
package fr.ifremer.wao.ui.services;
+import fr.ifremer.wao.bean.ObsProgram;
+import fr.ifremer.wao.bean.UserRole;
import fr.ifremer.wao.entity.Contact;
import fr.ifremer.wao.entity.FishingZone;
import fr.ifremer.wao.entity.WaoUser;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.PropertyConduit;
import org.apache.tapestry5.beaneditor.BeanModel;
-import org.apache.tapestry5.beaneditor.RelativePosition;
import org.apache.tapestry5.services.BeanModelSource;
import org.nuiton.topia.persistence.TopiaEntity;
import java.lang.annotation.Annotation;
/**
- * ContactModelFactory
+ * This class is used in {@link fr.ifremer.wao.ui.pages.Contacts} page to fix
+ * what column can be see (depending on view option, role, program), and how
+ * to display the content in each column.
*
* Created: 18 nov. 2009
*
@@ -45,487 +48,300 @@
*/
public class ContactModelFactory {
- /**
- * @param beanModelSource used to construct BeanModel<Contact>
- * @param resources used to construct BeanModel<Contact>
- * @return BeanModel<Contact> with new params
- */
- public BeanModel<Contact> buildContactModel(BeanModelSource beanModelSource, ComponentResources resources) {
- BeanModel<Contact> contactModel = beanModelSource.createDisplayModel(Contact.class, resources.getMessages());
+ protected UserRole userRole;
+ protected ObsProgram obsProgram;
+ protected boolean fullView;
- // New properties for contactModel
- contactModel.add("createdBy", null);
-// contactModel.add(Contact.SAMPLE_ROW, getSampleRowPropertyConduit());
-// contactModel.add(Contact.BOAT, getBoatPropertyConduit());
- contactModel.add(Contact.PROPERTY_SAMPLE_ROW, null);
- contactModel.add(Contact.PROPERTY_BOAT, null);
- contactModel.add("mammals", null);
- contactModel.add("validation", null);
- contactModel.add("actions", null);
+ /** the model the factory will build */
+ protected BeanModel<Contact> model;
- contactModel.include(
- "createdBy",
- TopiaEntity.TOPIA_CREATE_DATE,
- Contact.PROPERTY_SAMPLE_ROW,
- Contact.PROPERTY_BOAT,
- Contact.PROPERTY_STATE,
- Contact.PROPERTY_OBSERVATION_BEGIN_DATE,
- Contact.PROPERTY_OBSERVATION_END_DATE,
- Contact.PROPERTY_NB_OBSERVANTS,
- "mammals",
- Contact.PROPERTY_COMMENT,
- Contact.PROPERTY_DATA_INPUT_DATE,
- "validation",
- "actions");
-
- contactModel.get(TopiaEntity.TOPIA_CREATE_DATE).sortable(false);
- contactModel.get(Contact.PROPERTY_STATE).sortable(false);
- contactModel.get(Contact.PROPERTY_OBSERVATION_BEGIN_DATE).sortable(false);
- contactModel.get(Contact.PROPERTY_OBSERVATION_END_DATE).sortable(false);
- contactModel.get(Contact.PROPERTY_NB_OBSERVANTS).sortable(false);
- contactModel.get(Contact.PROPERTY_DATA_INPUT_DATE).sortable(false);
- contactModel.get(Contact.PROPERTY_COMMENT).sortable(false);
-
- return contactModel;
+ public ContactModelFactory(ObsProgram obsProgram, UserRole userRole, boolean fullView) {
+ this.userRole = userRole;
+ this.obsProgram = obsProgram;
+ this.fullView = fullView;
}
- public BeanModel<Contact> buildCoordinatorContactModel(BeanModelSource beanModelSource, ComponentResources resources) {
- BeanModel<Contact> contactModel = buildContactModel(beanModelSource, resources);
- contactModel.add(RelativePosition.AFTER, "validation", Contact.PROPERTY_COMMENT_COORDINATOR, getCommentCoordinatorPropertyConduit());
- contactModel.add(RelativePosition.AFTER, Contact.PROPERTY_COMMENT_COORDINATOR, Contact.PROPERTY_COMMENT_ADMIN, getCommentAdminPropertyConduit());
- contactModel.get(Contact.PROPERTY_COMMENT_COORDINATOR).sortable(false);
- contactModel.get(Contact.PROPERTY_COMMENT_ADMIN).sortable(false);
- contactModel.add(RelativePosition.BEFORE, "actions", "dataReliability", getDataReliabilityPropertyConduit());
- contactModel.get("dataReliability").sortable(false);
- return contactModel;
+ /** add a property in the model and make it not sortable
+ * @param property the name of the property to add
+ * @param conduit a PropertyConduit to get the String representation of the
+ * value of the property, may be null if toString can be used */
+ protected void addNonSortableProperty(String property, PropertyConduit conduit) {
+ model.add(property, conduit);
+ model.get(property).sortable(false);
}
- public BeanModel<Contact> buildAdminContactModel(BeanModelSource beanModelSource, ComponentResources resources) {
- BeanModel<Contact> contactModel = buildCoordinatorContactModel(beanModelSource, resources);
- contactModel.exclude("createdBy");
- contactModel.add(RelativePosition.AFTER, TopiaEntity.TOPIA_CREATE_DATE, "observer", getUserPropertyConduit());
- contactModel.add(RelativePosition.AFTER, "observer", WaoUser.PROPERTY_COMPANY, getCompanyPropertyConduit());
- contactModel.add(RelativePosition.AFTER, Contact.PROPERTY_SAMPLE_ROW, "program", getProgramPropertyConduit());
- contactModel.add(RelativePosition.AFTER, "program", "professionCode", getProfessionCodePropertyConduit());
- contactModel.add(RelativePosition.AFTER, "professionCode", "professionLibelle", getProfessionLibellePropertyConduit());
- contactModel.add(RelativePosition.AFTER, "professionLibelle", "professionSpecies", getProfessionSpeciesPropertyConduit());
- contactModel.add(RelativePosition.AFTER, "professionSpecies", "fishingZoneFacade", getFishingZoneFacadePropertyConduit());
- contactModel.add(RelativePosition.AFTER, "fishingZoneFacade", "fishingZoneSector", getFishingZoneSectorPropertyConduit());
- contactModel.add(RelativePosition.AFTER, "fishingZoneSector", "fishingZoneDivision", getFishingZoneDivisionPropertyConduit());
- contactModel.add(RelativePosition.AFTER, Contact.PROPERTY_BOAT, "boatImmatriculation", getBoatImmatriculationPropertyConduit());
- contactModel.add(RelativePosition.AFTER, "boatImmatriculation", "boatDistrictCode", getBoatDistrictCodePropertyConduit());
+ /** add ALL properties to the bean model. */
+ protected void initModel() {
- contactModel.get("observer").sortable(false);
- contactModel.get(WaoUser.PROPERTY_COMPANY).sortable(false);
- contactModel.get("program").sortable(false);
- contactModel.get("professionCode").sortable(false);
- contactModel.get("professionLibelle").sortable(false);
- contactModel.get("professionSpecies").sortable(false);
- contactModel.get("fishingZoneFacade").sortable(false);
- contactModel.get("fishingZoneSector").sortable(false);
- contactModel.get("fishingZoneDivision").sortable(false);
- contactModel.get("boatImmatriculation").sortable(false);
- contactModel.get("boatDistrictCode").sortable(false);
+ // order is meaningful, properties will be displayed in columns from left to right
-// contactModel.add(RelativePosition.AFTER, TopiaEntity.TOPIA_CREATE_DATE, "observer", null);
-// contactModel.add(RelativePosition.AFTER, "observer", User.COMPANY, null);
-// contactModel.add(RelativePosition.AFTER, Contact.SAMPLE_ROW, "program", null);
-// contactModel.add(RelativePosition.AFTER, "program", "professionCode", null);
-// contactModel.add(RelativePosition.AFTER, "professionCode", "professionLibelle", null);
-// contactModel.add(RelativePosition.AFTER, "professionLibelle", "professionSpecies", null);
-// contactModel.add(RelativePosition.AFTER, "professionSpecies", "fishingZoneFacade", null);
-// contactModel.add(RelativePosition.AFTER, "fishingZoneFacade", "fishingZoneSector", null);
-// contactModel.add(RelativePosition.AFTER, "fishingZoneSector", "fishingZoneDivision", null);
-// contactModel.add(RelativePosition.AFTER, Contact.BOAT, "boatImmatriculation", null);
-// contactModel.add(RelativePosition.AFTER, "boatImmatriculation", "boatDistrictCode", null);
- return contactModel;
+ addNonSortableProperty(TopiaEntity.TOPIA_CREATE_DATE, null);
+ addNonSortableProperty(Contact.PROPERTY_MAIN_OBSERVER, getUserPropertyConduit());
+ addNonSortableProperty(WaoUser.PROPERTY_COMPANY, getCompanyPropertyConduit());
+ addNonSortableProperty(Contact.PROPERTY_SAMPLE_ROW, getSampleRowPropertyConduit());
+ addNonSortableProperty("program", getProgramPropertyConduit());
+ addNonSortableProperty("professionCode", getProfessionCodePropertyConduit());
+ addNonSortableProperty("professionLibelle", getProfessionLibellePropertyConduit());
+ addNonSortableProperty("professionSpecies", getProfessionSpeciesPropertyConduit());
+ addNonSortableProperty("expectedSamplingStrategy", getExpectedSamplingStrategyPropertyConduit());
+ addNonSortableProperty("fishingZoneFacade", getFishingZoneFacadePropertyConduit());
+ addNonSortableProperty("fishingZoneSector", getFishingZoneSectorPropertyConduit());
+ addNonSortableProperty("fishingZoneDivision", getFishingZoneDivisionPropertyConduit());
+ addNonSortableProperty(Contact.PROPERTY_BOAT, getBoatPropertyConduit());
+ addNonSortableProperty("boatImmatriculation", getBoatImmatriculationPropertyConduit());
+ addNonSortableProperty("boatDistrictCode", getBoatDistrictCodePropertyConduit());
+ addNonSortableProperty(Contact.PROPERTY_STATE, null);
+ addNonSortableProperty(Contact.PROPERTY_OBSERVATION_BEGIN_DATE, null);
+ addNonSortableProperty(Contact.PROPERTY_OBSERVATION_END_DATE, null);
+ addNonSortableProperty(Contact.PROPERTY_NB_OBSERVANTS, null);
+ addNonSortableProperty("mammals", null);
+ addNonSortableProperty("actualSamplingStrategy", getActualSamplingStrategyPropertyConduit());
+ addNonSortableProperty(Contact.PROPERTY_COMPLETE_SAMPLING, null);
+ addNonSortableProperty(Contact.PROPERTY_COMMENT, null);
+ addNonSortableProperty(Contact.PROPERTY_DATA_INPUT_DATE, null);
+ addNonSortableProperty("validation", null);
+ addNonSortableProperty(Contact.PROPERTY_COMMENT_COORDINATOR, getCommentCoordinatorPropertyConduit());
+ addNonSortableProperty(Contact.PROPERTY_COMMENT_ADMIN, getCommentAdminPropertyConduit());
+ addNonSortableProperty("dataReliability", getDataReliabilityPropertyConduit());
+ addNonSortableProperty("actions", null);
}
- public PropertyConduit getUserPropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getMainObserver().getFullName();
- }
-
- @Override
- public void set(Object arg0, Object arg1) {
- }
+ /** remove properties from model depending on role, program, and fullView */
+ protected void filterModel() {
- @Override
- public Class getPropertyType() {
- return String.class;
- }
+ if (obsProgram == ObsProgram.OBSMER) {
+ model.exclude("expectedSamplingStrategy",
+ "actualSamplingStrategy",
+ Contact.PROPERTY_COMPLETE_SAMPLING);
+ }
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
- }
-
- public PropertyConduit getCompanyPropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getMainObserver().getCompany().getName();
- }
+ if (obsProgram == ObsProgram.OBSVENTE) {
+ model.exclude("dataReliability");
+ }
- @Override
- public void set(Object arg0, Object arg1) {
- }
+ if (userRole != UserRole.ADMIN || ! fullView) {
+ model.exclude("observer",
+ WaoUser.PROPERTY_COMPANY,"program","professionCode", "professionLibelle",
+ "professionSpecies", "fishingZoneFacade", "fishingZoneSector",
+ "fishingZoneDivision", "boatImmatriculation", "boatDistrictCode");
+ }
- @Override
- public Class getPropertyType() {
- return String.class;
- }
+ if (userRole != UserRole.ADMIN && userRole != UserRole.COORDINATOR) {
+ model.exclude(Contact.PROPERTY_COMMENT_COORDINATOR,
+ Contact.PROPERTY_COMMENT_ADMIN, "dataReliability");
+ }
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
- }
-
- public PropertyConduit getSampleRowPropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getSampleRow().getCode();
- }
+ }
- @Override
- public void set(Object arg0, Object arg1) {
- }
+ public BeanModel<Contact> newModel(BeanModelSource beanModelSource, ComponentResources resources) {
+ model = beanModelSource.createDisplayModel(Contact.class, resources.getMessages());
- @Override
- public Class getPropertyType() {
- return String.class;
- }
+ // reset, so next adds will not throw an exception about already existing property
+ model.include();
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
- }
+ initModel();
- public PropertyConduit getBoatPropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getBoat().getName();
- }
+ filterModel();
- @Override
- public void set(Object arg0, Object arg1) {
- }
+ return model;
+ }
- @Override
- public Class getPropertyType() {
- return String.class;
- }
+ /** put in common some implementation of PropertyConduit interface. */
+ protected static abstract class ContactReaderPropertyConduit implements PropertyConduit {
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
- }
+ public abstract String getValue(Contact contact);
- public PropertyConduit getProgramPropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getSampleRow().getProgramName();
- }
+ @Override
+ public String get(Object instance) {
+ // cast and delegate
+ Contact contact = (Contact) instance;
+ return getValue(contact);
+ }
- @Override
- public void set(Object arg0, Object arg1) {
- }
+ /** all value returned are string */
+ @Override
+ public Class getPropertyType() {
+ return String.class;
+ }
- @Override
- public Class getPropertyType() {
- return String.class;
- }
+ /** should never be called */
+ @Override
+ public void set(Object instance, Object value) {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
+ /** should never be called */
+ @Override
+ public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {
+ throw new UnsupportedOperationException();
+ }
}
- public PropertyConduit getProfessionCodePropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getSampleRow().getProfessionDescription();
- }
+ protected PropertyConduit getUserPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getMainObserver().getFullName();
+ }
+ };
+ }
+
+ protected PropertyConduit getCompanyPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getMainObserver().getCompany().getName();
+ }
+ };
+ }
+
+ protected PropertyConduit getSampleRowPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getSampleRow().getCode();
+ }
+ };
+ }
- @Override
- public void set(Object arg0, Object arg1) {
- }
+ protected PropertyConduit getBoatPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getBoat().getName();
+ }
+ };
+ }
- @Override
- public Class getPropertyType() {
- return String.class;
- }
+ protected PropertyConduit getProgramPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getSampleRow().getProgramName();
+ }
+ };
+ }
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
+ protected PropertyConduit getProfessionCodePropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getSampleRow().getProfessionDescription();
+ }
+ };
}
- public PropertyConduit getProfessionLibellePropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getSampleRow().getProfession().getLibelle();
- }
+ protected PropertyConduit getProfessionLibellePropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getSampleRow().getProfession().getLibelle();
+ }
+ };
+ }
- @Override
- public void set(Object arg0, Object arg1) {
- }
+ protected PropertyConduit getProfessionSpeciesPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getSampleRow().getProfession().getSpecies();
+ }
+ };
+ }
- @Override
- public Class getPropertyType() {
- return String.class;
- }
+ protected PropertyConduit getFishingZoneFacadePropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getSampleRow().getFacade();
+ }
+ };
+ }
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
+ protected PropertyConduit getFishingZoneSectorPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getSampleRow().getSectors();
+ }
+ };
}
- public PropertyConduit getProfessionSpeciesPropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getSampleRow().getProfession().getSpecies();
+ protected PropertyConduit getFishingZoneDivisionPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ String result = "";
+ for (FishingZone zone : contact.getSampleRow().getFishingZone()) {
+ result += zone.getDistrictCode() + " ";
}
-
- @Override
- public void set(Object arg0, Object arg1) {
- }
-
- @Override
- public Class getPropertyType() {
- return String.class;
- }
-
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
+ return result;
+ }
+ };
}
- public PropertyConduit getFishingZoneFacadePropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getSampleRow().getFacade();
- }
-
- @Override
- public void set(Object arg0, Object arg1) {
- }
-
- @Override
- public Class getPropertyType() {
- return String.class;
- }
-
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
+ protected PropertyConduit getBoatImmatriculationPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return String.valueOf(contact.getBoat().getImmatriculation());
+ }
+ };
}
- public PropertyConduit getFishingZoneSectorPropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getSampleRow().getSectors();
- }
-
- @Override
- public void set(Object arg0, Object arg1) {
- }
-
- @Override
- public Class getPropertyType() {
- return String.class;
- }
-
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
+ protected PropertyConduit getBoatDistrictCodePropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getBoat().getDistrictCode();
+ }
+ };
}
- public PropertyConduit getFishingZoneDivisionPropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- String result = "";
- for (FishingZone zone : contact.getSampleRow().getFishingZone()) {
- result += zone.getDistrictCode() + " ";
- }
- return result;
- }
-
- @Override
- public void set(Object arg0, Object arg1) {
- }
-
- @Override
- public Class getPropertyType() {
- return String.class;
- }
-
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
+ protected PropertyConduit getCommentCoordinatorPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getCommentCoordinator();
+ }
+ };
}
- public PropertyConduit getBoatImmatriculationPropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getBoat().getImmatriculation();
- }
-
- @Override
- public void set(Object arg0, Object arg1) {
- }
-
- @Override
- public Class getPropertyType() {
- return String.class;
- }
-
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
+ protected PropertyConduit getCommentAdminPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getCommentAdmin();
+ }
+ };
}
- public PropertyConduit getBoatDistrictCodePropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getBoat().getDistrictCode();
- }
-
- @Override
- public void set(Object arg0, Object arg1) {
- }
-
- @Override
- public Class getPropertyType() {
- return String.class;
- }
-
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
+ protected PropertyConduit getDataReliabilityPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getDataReliability().toString();
+ }
+ };
}
- public PropertyConduit getCommentCoordinatorPropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getCommentCoordinator();
- }
-
- @Override
- public void set(Object arg0, Object arg1) {
- }
-
- @Override
- public Class getPropertyType() {
- return String.class;
- }
-
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
+ protected PropertyConduit getActualSamplingStrategyPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getSamplingStrategy().toString();
+ }
+ };
}
- public PropertyConduit getCommentAdminPropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact)arg0;
- return contact.getCommentAdmin();
- }
-
- @Override
- public void set(Object arg0, Object arg1) {
- }
-
- @Override
- public Class getPropertyType() {
- return String.class;
- }
-
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
+ protected PropertyConduit getExpectedSamplingStrategyPropertyConduit() {
+ return new ContactReaderPropertyConduit() {
+ @Override
+ public String getValue(Contact contact) {
+ return contact.getSampleRow().getSamplingStrategy().toString();
+ }
+ };
}
- public PropertyConduit getDataReliabilityPropertyConduit() {
- return new PropertyConduit() {
- @Override
- public Object get(Object arg0) {
- Contact contact = (Contact) arg0;
- return contact.getDataReliability();
- }
- @Override
- public void set(Object arg0, Object arg1) {
- }
-
- @Override
- public Class getPropertyType() {
- return String.class;
- }
-
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> arg0) {
- return null;
- }
- };
- }
}
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/Contacts.properties
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/Contacts.properties 2010-12-28 16:55:24 UTC (rev 864)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/Contacts.properties 2010-12-29 16:27:19 UTC (rev 865)
@@ -61,6 +61,10 @@
commentCoordinator-label: Commentaire soci\u00e9t\u00e9
dataReliability-label: Qualit\u00e9 de la donn\u00e9e
sortedByBoardingDate-label: Trier par date de d\u00e9but de mar\u00e9e (du plus r\u00e9cent au plus ancien)
+expectedSamplingStrategy-label: Strat\u00e9gie d'\u00e9chantillonnage attendue
+actualSamplingStrategy-label: Strat\u00e9gie d'\u00e9chantillonnage utilis\u00e9e
+completeSampling-label: \u00c9chantillonnage complet
+
# Form labels
contactsForm-errors-banner: Le contact n'a pas \u00e9t\u00e9 sauvegard\u00e9 \u00e0 cause des erreurs suivantes :
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SamplingPlan.properties
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SamplingPlan.properties 2010-12-28 16:55:24 UTC (rev 864)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SamplingPlan.properties 2010-12-29 16:27:19 UTC (rev 865)
@@ -33,5 +33,6 @@
selectedSampleRow-label: Code ligne
fishingGearDCF-label: Engins code DCF
targetSpeciesDCF-label: Ensembles d\'esp\u00e8ces-cible code DCF
+samplingStrategy-label: Strat\u00e9gie d'\u00e9chantillonnage
sampleRow-delete-confirmMessage: \u00cates-vous s\u00fbr de vouloir supprimer d\u00e9finitivement la ligne %1$s du plan d\'\u00e9chantillonnage ?
Modified: trunk/wao-ui/src/main/webapp/SamplingPlan.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-12-28 16:55:24 UTC (rev 864)
+++ trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-12-29 16:27:19 UTC (rev 865)
@@ -127,6 +127,10 @@
<input t:type="select" t:id="fishingGearDCF" t:model="dcfGearSelectModel" value="fishingGearDCFId"/>
<t:label t:for="targetSpeciesDCF" /> :
<input t:type="select" t:id="targetSpeciesDCF" t:model="dcfSpeciesSelectModel" value="targetSpeciesDCFId"/>
+ <t:if test="showObsVente()">
+ <t:label t:for="samplingStrategy" />
+ <input t:type="select" t:id="samplingStrategy" value="filter.samplingStrategy" />
+ </t:if>
</div>
<div class="t-beaneditor-row aright">
<input t:type="submit" class="ico search-32px" t:id="search" value="Search" title="Rechercher les lignes du plan correspondants aux filtres saisies" />
1
0
28 Dec '10
Author: bleny
Date: 2010-12-28 16:55:24 +0000 (Tue, 28 Dec 2010)
New Revision: 864
Log:
add sampling strategy in business + UI for sampleRows
Added:
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java
trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties
trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties
trunk/wao-business/src/main/xmi/wao.zargo
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SampleRowForm.properties
trunk/wao-ui/src/main/webapp/SampleRowForm.tml
trunk/wao-ui/src/main/webapp/SamplingPlan.tml
trunk/wao-ui/src/main/webapp/WEB-INF/app.properties
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-12-28 16:55:24 UTC (rev 864)
@@ -690,4 +690,16 @@
queries.add("ALTER TABLE Contact RENAME tideBeginDate TO observationBeginDate");
queries.add("ALTER TABLE Contact RENAME tideEndDate TO observationEndDate");
}
+
+ @Override
+ protected void addSampleRowAndContactsObsVenteColumns_2_0(List<String> queries) {
+ queries.add("ALTER TABLE SampleRow ADD samplingStrategyOrdinal SMALLINT;");
+ queries.add("ALTER TABLE Contact ADD samplingStrategyOrdinal SMALLINT;");
+
+ // for all ObsMer sampleRows and contacts, set samplingStrategy to SIMULTANEOUS_ALL_SPECIES
+ queries.add("UPDATE SampleRow SET samplingStrategyOrdinal=2 WHERE ObsProgramOrdinal=0");
+ queries.add("UPDATE Contact SET samplingStrategyOrdinal=2 WHERE ObsProgramOrdinal=0");
+
+ queries.add("ALTER TABLE Contact ADD completeSampling BOOLEAN;");
+ }
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-12-28 16:55:24 UTC (rev 864)
@@ -119,6 +119,8 @@
protected abstract void renameContactsColumnsToCommonName_2_0(List<String> queries);
+ protected abstract void addSampleRowAndContactsObsVenteColumns_2_0(List<String> queries);
+
protected static final Version[] VERSIONS = new Version[] {
VersionUtil.valueOf("1.0"),
VersionUtil.valueOf("1.1"),
@@ -423,6 +425,8 @@
renameContactsColumnsToCommonName_2_0(queries);
+ addSampleRowAndContactsObsVenteColumns_2_0(queries);
+
String[] strings = queries.toArray(new String[queries.size()]);
executeSQL(tx, true, true, strings);
}
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java 2010-12-28 16:55:24 UTC (rev 864)
@@ -0,0 +1,31 @@
+package fr.ifremer.wao.bean;
+
+import static org.nuiton.i18n.I18n._;
+import static org.nuiton.i18n.I18n.n_;
+
+public enum SamplingStrategy {
+
+ SIMULTANEOUS_G1_SPECIES(n_("fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_SPECIES")),
+ SIMULTANEOUS_G1_G2_SPECIES(n_("fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES")),
+ SIMULTANEOUS_ALL_SPECIES(n_("fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_ALL_SPECIES")),
+ SPECIFIC_STOCK(n_("fr.ifremer.wao.bean.SamplingStrategy.SPECIFIC_STOCK"));
+
+ protected String i18nkey;
+
+ SamplingStrategy(String i18nkey) {
+ this.i18nkey = i18nkey;
+ }
+
+ public String toString() {
+ return _(i18nkey);
+ }
+
+ public static SamplingStrategy valueOf(int samplingStrategyOrdinal) {
+ for (SamplingStrategy samplingStrategy : values()) {
+ if (samplingStrategy.ordinal() == samplingStrategyOrdinal) {
+ return samplingStrategy;
+ }
+ }
+ return null;
+ }
+}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2010-12-28 16:55:24 UTC (rev 864)
@@ -27,6 +27,7 @@
import fr.ifremer.wao.bean.ContactState;
import fr.ifremer.wao.bean.DataReliability;
import fr.ifremer.wao.bean.ObsProgram;
+import fr.ifremer.wao.bean.SamplingStrategy;
import org.nuiton.util.DateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -113,4 +114,14 @@
public void setObsProgram(ObsProgram obsProgram) {
setObsProgramOrdinal(obsProgram.ordinal());
}
+
+ @Override
+ public SamplingStrategy getSamplingStrategy() {
+ return SamplingStrategy.valueOf(getSamplingStrategyOrdinal());
+ }
+
+ @Override
+ public void setSamplingStrategy(SamplingStrategy samplingStrategy) {
+ setSamplingStrategyOrdinal(samplingStrategy.ordinal());
+ }
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2010-12-28 16:55:24 UTC (rev 864)
@@ -26,6 +26,7 @@
import fr.ifremer.wao.WaoUtils;
import fr.ifremer.wao.bean.ObsProgram;
+import fr.ifremer.wao.bean.SamplingStrategy;
import fr.ifremer.wao.service.ServiceSampling;
import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils;
@@ -431,4 +432,14 @@
public void setObsProgram(ObsProgram obsProgram) {
setObsProgramOrdinal(obsProgram.ordinal());
}
+
+ @Override
+ public SamplingStrategy getSamplingStrategy() {
+ return SamplingStrategy.valueOf(getSamplingStrategyOrdinal());
+ }
+
+ @Override
+ public void setSamplingStrategy(SamplingStrategy samplingStrategy) {
+ setSamplingStrategyOrdinal(samplingStrategy.ordinal());
+ }
}
Modified: trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties 2010-12-28 16:55:24 UTC (rev 864)
@@ -1,3 +1,7 @@
+fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=
+fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=
+fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_SPECIES=
+fr.ifremer.wao.bean.SamplingStrategy.SPECIFIC_STOCK=
fr.ifremer.wao.entity.FishingGearDCF.=Not specified
fr.ifremer.wao.entity.FishingGearDCF.DRB=Boat dredges
fr.ifremer.wao.entity.FishingGearDCF.DRH=Hand dredges
Modified: trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties 2010-12-28 16:55:24 UTC (rev 864)
@@ -1,6 +1,10 @@
fr.ifremer.wao.bean.ObsProgram.OBSDEB=ObsDeb
fr.ifremer.wao.bean.ObsProgram.OBSMER=ObsMer
fr.ifremer.wao.bean.ObsProgram.OBSVENTE=ObsVente
+fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultan\u00E9 \: Toutes esp\u00E8ces commerciales
+fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1+G2
+fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1
+fr.ifremer.wao.bean.SamplingStrategy.SPECIFIC_STOCK=Stock sp\u00E9cifique
fr.ifremer.wao.bean.UserRole.ADMIN=Administrateur
fr.ifremer.wao.bean.UserRole.COORDINATOR=Coordinateur
fr.ifremer.wao.bean.UserRole.GUEST=Invit\u00E9
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-12-28 16:55:24 UTC (rev 864)
@@ -46,6 +46,8 @@
import java.util.LinkedHashMap;
import java.util.Map;
+import static org.nuiton.i18n.I18n._;
+
/**
* Layout
*
@@ -145,8 +147,7 @@
menuItems = new LinkedHashMap<String, String>();
for (Class page : pagesInMenu) {
if (serviceAuthentication.isAllowed(page)) {
- // menuItems.put(page.getSimpleName(), _(page.getName()));
- menuItems.put(page.getSimpleName(), page.getSimpleName());
+ menuItems.put(page.getSimpleName(), _(page.getName()));
}
}
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2010-12-28 16:55:24 UTC (rev 864)
@@ -26,10 +26,7 @@
import fr.ifremer.wao.WaoBusinessException;
import fr.ifremer.wao.WaoException;
-import fr.ifremer.wao.bean.ConnectedUser;
-import fr.ifremer.wao.bean.SamplingFilter;
-import fr.ifremer.wao.bean.SamplingFilterImpl;
-import fr.ifremer.wao.bean.UserRole;
+import fr.ifremer.wao.bean.*;
import fr.ifremer.wao.entity.Boat;
import fr.ifremer.wao.entity.Company;
import fr.ifremer.wao.entity.DCF5Code;
@@ -56,12 +53,7 @@
import org.apache.tapestry5.Field;
import org.apache.tapestry5.OptionModel;
import org.apache.tapestry5.SelectModel;
-import org.apache.tapestry5.annotations.IncludeStylesheet;
-import org.apache.tapestry5.annotations.InjectComponent;
-import org.apache.tapestry5.annotations.Log;
-import org.apache.tapestry5.annotations.Persist;
-import org.apache.tapestry5.annotations.Property;
-import org.apache.tapestry5.annotations.SessionState;
+import org.apache.tapestry5.annotations.*;
import org.apache.tapestry5.beaneditor.BeanModel;
import org.apache.tapestry5.corelib.components.Form;
import org.apache.tapestry5.internal.OptionModelImpl;
@@ -89,7 +81,8 @@
* @author fdesbois <fdesbois at codelutin.com>
*/
@RequiresAuthentication(allowedRoles = UserRole.ADMIN, readOnlyAllowed = false)
- at IncludeStylesheet("context:css/sampling.css")
+//@IncludeStylesheet("context:css/sampling.css")
+ at Import(stylesheet = "context:css/sampling.css")
public class SampleRowForm {
@Inject
@@ -535,6 +528,10 @@
}
} else {
sampleRow = serviceSampling.getNewSampleRow();
+ sampleRow.setObsProgram(user.getProfile().getObsProgram());
+ if (sampleRow.getObsProgram() == ObsProgram.OBSMER) {
+ sampleRow.setSamplingStrategy(SamplingStrategy.SIMULTANEOUS_ALL_SPECIES);
+ }
}
propertyChange = new WaoPropertyChangeListener();
}
@@ -554,6 +551,9 @@
sampleRowModel.add("company", null);
sampleRowModel.add("boats", null);
sampleRowModel.include("code", "company", "nbObservants", "averageTideTime", "boats", "comment");
+ if (user.getProfile().getObsProgram() == ObsProgram.OBSVENTE) {
+ sampleRowModel.add("samplingStrategy");
+ }
}
return sampleRowModel;
}
@@ -692,6 +692,12 @@
String rowCode = serviceSampling.getNewSampleRowCode(periodBegin);
getSampleRow().setCode(rowCode);
}
+
+ if (sampleRow.getSamplingStrategy() == SamplingStrategy.SPECIFIC_STOCK) {
+ if (StringUtils.isEmpty(getSampleRow().getProfession().getSpecies())) {
+ sampleRowForm.recordError("Pour ce choix de stratégie d'échantillonnage, il faut préciser les espèces cibles");
+ }
+ }
}
} catch (WaoBusinessException eee) {
sampleRowForm.recordError(eee.getMessage());
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2010-12-28 16:55:24 UTC (rev 864)
@@ -26,10 +26,7 @@
import fr.ifremer.wao.WaoBusinessException;
import fr.ifremer.wao.WaoException;
-import fr.ifremer.wao.bean.ConnectedUser;
-import fr.ifremer.wao.bean.FacadeRow;
-import fr.ifremer.wao.bean.SamplingFilter;
-import fr.ifremer.wao.bean.SamplingFilterImpl;
+import fr.ifremer.wao.bean.*;
import fr.ifremer.wao.entity.DCF5Code;
import fr.ifremer.wao.entity.FishingZone;
import fr.ifremer.wao.entity.SampleMonth;
@@ -564,7 +561,11 @@
}
public int getNbColumnsForOther() {
- return 4;
+ int nbColumnsForOther = 4;
+ if (showObsVente()) {
+ nbColumnsForOther += 1; // add sampling strategy
+ }
+ return nbColumnsForOther;
}
public int getNbColumnsTotal() {
@@ -612,6 +613,10 @@
return new SimpleDateFormat("MM/yyyy");
}
+ public boolean showObsVente() {
+ return user.getProfile().getObsProgram() == ObsProgram.OBSVENTE;
+ }
+
/** ------------------------- ACTIONS ---------------------------------- **/
/**
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2010-12-28 16:55:24 UTC (rev 864)
@@ -64,7 +64,7 @@
</div>
<div id="user-infos" class="fleft">
Vous êtes <strong>${currentUser.fullName}</strong> de la société <strong>${currentUser.company.name}</strong>
- (${accessText})
+ (${currentUser.profile.description})
</div>
<div id="user-actions" class="fright">
<a t:type="pagelink" t:page="index" title="Page d'accueil">
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SampleRowForm.properties
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SampleRowForm.properties 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/SampleRowForm.properties 2010-12-28 16:55:24 UTC (rev 864)
@@ -46,6 +46,7 @@
nbObservants-label: Nombre d'observateurs
averageTideTime-label: Dur\u00e9e moyenne d'une mar\u00e9e
comment-label: Commentaire sur la ligne
+samplingStrategy-label: Stat\u00e9gie d'\u00e9chantillonnage
# FORM
errors-banner: La ligne n'a pas \u00e9t\u00e9 sauvegard\u00e9 \u00e0 cause des erreurs suivantes :
Modified: trunk/wao-ui/src/main/webapp/SampleRowForm.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2010-12-28 16:55:24 UTC (rev 864)
@@ -199,6 +199,10 @@
<t:label t:for="comment" />
<input t:type="textarea" t:id="comment" cols="40" rows="3" value="sampleRow.comment" />
</p:comment>
+ <p:samplingStrategy>
+ <t:label t:for="samplingStrategy" />
+ <input t:type="select" t:id="samplingStrategy" value="sampleRow.samplingStrategy" t:validate="required" />
+ </p:samplingStrategy>
</t:beaneditor>
</div>
</fieldset>
Modified: trunk/wao-ui/src/main/webapp/SamplingPlan.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-12-28 16:55:24 UTC (rev 864)
@@ -38,7 +38,7 @@
<a t:type="actionlink" t:id="exportSamplingPlan">
<img src="${asset:context:}/img/file-export-22px.png" alt="Export CSV"
title="Exporter le plan d'échantillonnage du ${dateFormat.format(period.fromDate)} au ${dateFormat.format(period.thruDate)}" />
- </a>
+ </a>
</span>
<t:unless t:test="user.guest">
<span>
@@ -65,7 +65,7 @@
title="Agrandir le plan d'échantillonnage"/>
</p:else>
</t:if>
- </a>
+ </a>
</span>
<t:if t:test="canEditSampleRow()">
<span>
@@ -74,9 +74,9 @@
</a>
</span>
</t:if>
- </t:if>
+ </t:if>
</div>
- </div>
+ </div>
<div>
Pour la pédiode du <t:output value="period.fromDate" format="dateFormat" /> au <t:output value="period.thruDate" format="dateFormat" />
<a t:type="actionlink" t:id="showFilters" t:zone="so-sampling-filters" class="display-form"><img src="${asset:context:img/search.png}" /> recherche avancée</a>
@@ -177,6 +177,9 @@
<td class="width50 bright">total</td>
<td class="width60">Durée moyenne d'une marée (J.)</td>
<td class="width60">Nb. d'observateurs</td>
+ <t:if test="showObsVente()">
+ <td class="width60 bright">Stratégie d'échantillonnage</td>
+ </t:if>
<td class="width60 bright">Commentaire</td>
<td class="bright">Actions</td>
</tr>
@@ -272,6 +275,11 @@
</td>
<td class="width60 acenter"><t:output t:value="row.averageTideTime" t:format="numberFormat" /></td>
<td class="width60 acenter">${row.nbObservants}</td>
+ <t:if test="showObsVente()">
+ <td class="width60 acenter">
+ ${row.samplingStrategy}
+ </td>
+ </t:if>
<td class="width60 acenter bright">
<t:if t:test="row.comment">
<span t:type="ck/Tooltip" title="Commentaire" t:value="prop:rowComment" t:effect="appear">
Modified: trunk/wao-ui/src/main/webapp/WEB-INF/app.properties
===================================================================
--- trunk/wao-ui/src/main/webapp/WEB-INF/app.properties 2010-12-28 09:56:05 UTC (rev 863)
+++ trunk/wao-ui/src/main/webapp/WEB-INF/app.properties 2010-12-28 16:55:24 UTC (rev 864)
@@ -38,3 +38,7 @@
DataReliability.RELIABLE: Exploitable
DataReliability.NOT_PROVIDED: Non contr\u00f4l\u00e9e
+SamplingStrategy.SIMULTANEOUS_G1_SPECIES: Simultan\u00e9 : esp\u00e8ces G1
+SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES: Simultan\u00e9 : esp\u00e8ces G1+G2
+SamplingStrategy.SIMULTANEOUS_ALL_SPECIES: Toutes esp\u00e8ces commerciales
+SamplingStrategy.SPECIFIC_STOCK: Stock sp\u00e9cifique
1
0
[Suiviobsmer-commits] r863 - in trunk: wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/test/java/fr/ifremer/wao wao-business/src/test/java/fr/ifremer/wao/service wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/webapp
by bleny@users.labs.libre-entreprise.org 28 Dec '10
by bleny@users.labs.libre-entreprise.org 28 Dec '10
28 Dec '10
Author: bleny
Date: 2010-12-28 09:56:05 +0000 (Tue, 28 Dec 2010)
New Revision: 863
Log:
fix multiple observers form
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
trunk/wao-business/src/test/java/fr/ifremer/wao/AbstractServiceTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ContactForm.java
trunk/wao-ui/src/main/webapp/ContactForm.tml
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2010-12-27 14:29:24 UTC (rev 862)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2010-12-28 09:56:05 UTC (rev 863)
@@ -333,6 +333,9 @@
Contact.PROPERTY_SAMPLE_ROW
);
+ destination.clearSecondaryObservers();
+ destination.addAllSecondaryObservers(source.getSecondaryObservers());
+
// Update the change
dao.update(destination);
}
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/AbstractServiceTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/AbstractServiceTest.java 2010-12-27 14:29:24 UTC (rev 862)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/AbstractServiceTest.java 2010-12-28 09:56:05 UTC (rev 863)
@@ -23,8 +23,24 @@
import fr.ifremer.wao.bean.ContactState;
import fr.ifremer.wao.bean.UserRole;
-import fr.ifremer.wao.entity.*;
-import fr.ifremer.wao.service.*;
+import fr.ifremer.wao.entity.Boat;
+import fr.ifremer.wao.entity.BoatDAO;
+import fr.ifremer.wao.entity.Company;
+import fr.ifremer.wao.entity.CompanyDAO;
+import fr.ifremer.wao.entity.Contact;
+import fr.ifremer.wao.entity.ContactDAO;
+import fr.ifremer.wao.entity.ContactImpl;
+import fr.ifremer.wao.entity.ElligibleBoat;
+import fr.ifremer.wao.entity.ElligibleBoatDAO;
+import fr.ifremer.wao.entity.SampleRow;
+import fr.ifremer.wao.entity.SampleRowDAO;
+import fr.ifremer.wao.entity.WaoUser;
+import fr.ifremer.wao.entity.WaoUserDAO;
+import fr.ifremer.wao.service.ServiceBoat;
+import fr.ifremer.wao.service.ServiceContact;
+import fr.ifremer.wao.service.ServiceReferential;
+import fr.ifremer.wao.service.ServiceSampling;
+import fr.ifremer.wao.service.ServiceSamplingImpl;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java 2010-12-27 14:29:24 UTC (rev 862)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java 2010-12-28 09:56:05 UTC (rev 863)
@@ -8,12 +8,12 @@
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* #L%
@@ -26,6 +26,7 @@
import fr.ifremer.wao.bean.ContactFilter;
import fr.ifremer.wao.bean.ContactFilterImpl;
import fr.ifremer.wao.bean.UserRole;
+import fr.ifremer.wao.entity.Company;
import fr.ifremer.wao.entity.Contact;
import fr.ifremer.wao.entity.ContactImpl;
import fr.ifremer.wao.entity.WaoUser;
@@ -80,26 +81,46 @@
log.info("test 2 : Bad filter, no contact is returned");
WaoUser observer2 = createUser("marge",
UserRole.OBSERVER, findDefaultCompany());
-
+
filter.setObserver(observer2);
results = service.getContacts(filter);
Assert.assertEquals(0, results.size());
}
- @Test
- public void testSaveContact() throws TopiaException {
+ @Test(expected = NullPointerException.class)
+ public void failOnSavingContactWithNullSampleRow() throws Throwable {
Contact contact = new ContactImpl();
WaoUser observer = createDefaultObserver();
contact.setMainObserver(observer);
-
try {
service.saveContact(contact, false);
Assert.fail();
} catch (WaoException eee) {
-
+ throw eee.getCause();
}
}
+
+ @Test
+ public void testSaveContactWithMultipleObservers() throws TopiaException {
+ Contact contact = createDefaultContact();
+
+ Company company = createCompany("Boite");
+ contact.addSecondaryObservers(createUser("toto", UserRole.OBSERVER, company));
+ contact.addSecondaryObservers(createUser("titi", UserRole.OBSERVER, company));
+
+ service.saveContact(contact, false);
+
+ Contact savedContact = service.getContact(contact.getTopiaId());
+ Assert.assertEquals(2, savedContact.getSecondaryObservers().size());
+
+ contact.clearSecondaryObservers();
+ service.saveContact(contact, false);
+ savedContact = service.getContact(contact.getTopiaId());
+ Assert.assertEquals(0, savedContact.getSecondaryObservers().size());
+ }
+
+
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ContactForm.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ContactForm.java 2010-12-27 14:29:24 UTC (rev 862)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ContactForm.java 2010-12-28 09:56:05 UTC (rev 863)
@@ -479,7 +479,8 @@
if (logger.isDebugEnabled()) {
logger.debug("Contact save : " + contact);
- // logger.debug("Contact sendEmail : " + sendEmail);
+ logger.debug("secondary observers : " + contact.getSecondaryObservers());
+ logger.debug("Contact sendEmail : " + sendEmail);
}
serviceContact.saveContact(contact, false);
Modified: trunk/wao-ui/src/main/webapp/ContactForm.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/ContactForm.tml 2010-12-27 14:29:24 UTC (rev 862)
+++ trunk/wao-ui/src/main/webapp/ContactForm.tml 2010-12-28 09:56:05 UTC (rev 863)
@@ -77,25 +77,23 @@
<input t:type="select" t:id="mainObserver" t:model="observerSelectModel" t:validate="required" t:value="mainObserverId" />
</div>
<t:zone t:id="observersFormZone" t:visible="true" t:update="show">
- <t:nuiton.subForm t:visible="refreshObserversForm">
- <div class="t-beaneditor-row">
- <t:label t:for="secondaryObserver" />
- <input t:type="select" t:id="secondaryObserver" t:model="observerSelectModel" t:value="selectedSecondaryObserverId" t:mixins="ck/onEvent" t:event="change" />
- <a t:type="actionlink" t:id="addSecondaryObserver" title="Ajouter un observateur" t:zone="observersFormZone">
- <img src="${asset:context:img/add-16px.png}" />
- </a>
- <div class="t-beaneditor-row" style="position: relative; left: 250px;">
- <ul>
- <li t:type="loop" t:source="secondaryObservers" t:value="observer" t:index="secondaryObserverIndex" t:volatile="true">
- ${observer.fullName}
- <a t:type="actionlink" t:id="removeSecondaryObserver" t:context="secondaryObserverIndex" title="Supprimer cet observateur" t:zone="observersFormZone">
- <img src="${asset:context:img/remove-22px.png}" />
- </a>
- </li>
- </ul>
- </div>
+ <div class="t-beaneditor-row">
+ <t:label t:for="secondaryObserver" />
+ <input t:type="select" t:id="secondaryObserver" t:model="observerSelectModel" t:value="selectedSecondaryObserverId" t:mixins="ck/onEvent" t:event="change" />
+ <a t:type="actionlink" t:id="addSecondaryObserver" title="Ajouter un observateur" t:zone="observersFormZone">
+ <img src="${asset:context:img/add-16px.png}" />
+ </a>
+ <div class="t-beaneditor-row" style="position: relative; left: 250px;">
+ <ul>
+ <li t:type="loop" t:source="secondaryObservers" t:value="observer" t:index="secondaryObserverIndex" t:volatile="true">
+ ${observer.fullName}
+ <a t:type="actionlink" t:id="removeSecondaryObserver" t:context="secondaryObserverIndex" title="Supprimer cet observateur" t:zone="observersFormZone">
+ <img src="${asset:context:img/remove-22px.png}" />
+ </a>
+ </li>
+ </ul>
</div>
- </t:nuiton.subForm>
+ </div>
</t:zone>
</t:block>
@@ -168,7 +166,7 @@
</div>
<div class="t-beaneditor-row">
<t:label t:for="nbObservants" />
- <input t:type="textfield" t:id="nbObservants" t:value="contact.nbObservants" t:validate="required"/>
+ <input t:type="textfield" t:id="nbObservants" t:value="contact.nbObservants" t:validate="required" size="2" />
</div>
<div class="t-beaneditor-row">
<t:label t:for="beginDate" />
1
0
[Suiviobsmer-commits] r862 - in trunk/wao-ui/src/main: java/fr/ifremer/wao/ui/components resources/fr/ifremer/wao/ui/components webapp/css
by bleny@users.labs.libre-entreprise.org 27 Dec '10
by bleny@users.labs.libre-entreprise.org 27 Dec '10
27 Dec '10
Author: bleny
Date: 2010-12-27 14:29:24 +0000 (Mon, 27 Dec 2010)
New Revision: 862
Log:
refactor menu generation depending on profile
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml
trunk/wao-ui/src/main/webapp/css/main.css
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-12-24 16:32:31 UTC (rev 861)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-12-27 14:29:24 UTC (rev 862)
@@ -25,7 +25,12 @@
package fr.ifremer.wao.ui.components;
import fr.ifremer.wao.bean.ConnectedUser;
+import fr.ifremer.wao.ui.pages.Administration;
+import fr.ifremer.wao.ui.pages.Boats;
+import fr.ifremer.wao.ui.pages.Contacts;
import fr.ifremer.wao.ui.pages.Index;
+import fr.ifremer.wao.ui.pages.SamplingPlan;
+import fr.ifremer.wao.ui.pages.Synthesis;
import fr.ifremer.wao.ui.services.ServiceAuthentication;
import fr.ifremer.wao.ui.services.WaoManager;
import org.apache.tapestry5.BindingConstants;
@@ -38,6 +43,9 @@
import org.apache.tapestry5.services.Request;
import org.slf4j.Logger;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
/**
* Layout
*
@@ -122,6 +130,29 @@
return this.contentFeedback;
}
+ /*************************** MAIN MENU ************************************/
+
+ /** Page links and link title. */
+ private Map<String, String> menuItems;
+
+ @Property
+ private Map.Entry<String, String> menuItem;
+
+ public Map getMenuItems() {
+ if (menuItems == null) {
+ Class[] pagesInMenu = new Class[] { SamplingPlan.class, Boats.class,
+ Contacts.class, Synthesis.class, Administration.class};
+ menuItems = new LinkedHashMap<String, String>();
+ for (Class page : pagesInMenu) {
+ if (serviceAuthentication.isAllowed(page)) {
+ // menuItems.put(page.getSimpleName(), _(page.getName()));
+ menuItems.put(page.getSimpleName(), page.getSimpleName());
+ }
+ }
+ }
+ return menuItems;
+ }
+
public String getAdminClass() {
return !isAdministrationHidden() ? " admin" : "";
}
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2010-12-24 16:32:31 UTC (rev 861)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2010-12-27 14:29:24 UTC (rev 862)
@@ -83,7 +83,14 @@
</a>
</div>
</div>
+
<ul class="clearfix" id="so-menu">
+ <li t:type="loop" source="menuItems.entrySet()" value="menuItem">
+ <a href="${contextPath}/${menuItem.key}">${menuItem.value}</a>
+ </li>
+ </ul>
+
+ <!--ul class="clearfix" id="so-menu">
<li class="link${adminClass} ${samplingSelected}" onclick="location.href='${contextPath}/samplingPlan'"
title="Plan d'échantillonnage">
Plan d'Echantillonnage
@@ -102,7 +109,7 @@
Synthèse
</li>
<p:else>
- <!-- Menu disabled for Guest user -->
+ <!- Menu disabled for Guest user ->
<li class="disabled" title="Liste des navires inaccessible">
Navires
</li>
@@ -129,7 +136,7 @@
</p:else>
</t:if>
</t:unless>
- </ul>
+ </ul-->
<div id="${contentId}">
<t:feedback t:id="contentFeedback" t:autoClear="false"/>
Modified: trunk/wao-ui/src/main/webapp/css/main.css
===================================================================
--- trunk/wao-ui/src/main/webapp/css/main.css 2010-12-24 16:32:31 UTC (rev 861)
+++ trunk/wao-ui/src/main/webapp/css/main.css 2010-12-27 14:29:24 UTC (rev 862)
@@ -137,65 +137,39 @@
padding-right: 40px;
}
-/* MENU */
-ul#so-menu {
- width: 80%;
- height: 40px;
+#so-menu {
+ width: 800px;
+ margin-top: 7px;
margin-left: auto;
margin-right: auto;
- margin-top: 7px;
+ display: table;
}
-ul#so-menu li {
- list-style-type: none;
+#so-menu li {
+ display: table-cell;
text-align: center;
- float:left;
+ padding: 0px;
}
-ul#so-menu li.link {
- background-color: #DEE7EC;
- padding: 5px;
- width: 23%;
+#so-menu li:first-child {
+ margin-left: 0px;
}
-ul#so-menu li.disabled {
- background-color: #e5e5e5;
- color: white;
- padding: 5px;
- width: 23%;
+#so-menu a {
+ color: black;
+ display: block;
+ width: inherit;
+ background-color: #DEE7EC;
+ padding: 7px;
+ text-decoration: none;
+ margin-left: 15px;
}
-ul#so-menu li.admin {
- width: 18% !important;
-}
-
-/* Separation */
-ul#so-menu li.sep {
- height: 12px;
- width: 0.8%;
- background-color: #007CC2;
-}
-/* Home */
-ul#so-menu li.home {
- padding: 4px 0 0 2px;
- width: 25px;
-}
-
-ul#so-menu li.selected {
+#so-menu a:hover, #so-menu a:active, #so-menu a:focus {
background-color: #133852;
- border-top: 3px solid #007CC2;
- border-bottom: 3px solid #007CC2;
color: white;
}
-ul#so-menu li.link:hover {
- background-color: #133852;
- border-top: 3px solid #007CC2;
- border-bottom: 3px solid #007CC2;
- color: white;
- cursor: pointer;
-}
-
div#so-footer {
margin-top: 20px;
margin-bottom: 20px;
@@ -216,3 +190,4 @@
div#so-footer p.cnil {
font-size: 0.7em;
}
+
1
0
[Suiviobsmer-commits] r861 - trunk/wao-business/src/main/java/fr/ifremer/wao/bean
by bleny@users.labs.libre-entreprise.org 24 Dec '10
by bleny@users.labs.libre-entreprise.org 24 Dec '10
24 Dec '10
Author: bleny
Date: 2010-12-24 16:32:31 +0000 (Fri, 24 Dec 2010)
New Revision: 861
Log:
make indicators viewable only for ObsMer (admin)
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java 2010-12-24 15:55:29 UTC (rev 860)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java 2010-12-24 16:32:31 UTC (rev 861)
@@ -88,7 +88,9 @@
Boolean indicatorsAreActivated = Boolean.parseBoolean(WaoProperty.SHOW_INDICATORS.getValue());
if (BooleanUtils.isTrue(indicatorsAreActivated)) {
- test = isAdmin() || isCoordinator();
+ test = ObsProgram.OBSMER.equals(getProfile().getObsProgram())
+ && isAdmin() || isCoordinator();
+
}
return test;
1
0
[Suiviobsmer-commits] r860 - trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages
by bleny@users.labs.libre-entreprise.org 24 Dec '10
by bleny@users.labs.libre-entreprise.org 24 Dec '10
24 Dec '10
Author: bleny
Date: 2010-12-24 15:55:29 +0000 (Fri, 24 Dec 2010)
New Revision: 860
Log:
make profiles edition program-independant
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2010-12-24 15:10:34 UTC (rev 859)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2010-12-24 15:55:29 UTC (rev 860)
@@ -32,10 +32,21 @@
import fr.ifremer.wao.bean.GlobalIndicatorValue;
import fr.ifremer.wao.bean.GlobalSynthesisParameters;
import fr.ifremer.wao.bean.UserRole;
-import fr.ifremer.wao.entity.*;
+import fr.ifremer.wao.entity.Company;
+import fr.ifremer.wao.entity.CompanyImpl;
+import fr.ifremer.wao.entity.Indicator;
+import fr.ifremer.wao.entity.IndicatorLevel;
+import fr.ifremer.wao.entity.UserProfile;
+import fr.ifremer.wao.entity.UserProfileImpl;
+import fr.ifremer.wao.entity.WaoUser;
import fr.ifremer.wao.io.ImportResults;
import fr.ifremer.wao.io.ImportResultsImpl;
-import fr.ifremer.wao.service.*;
+import fr.ifremer.wao.service.ServiceBoat;
+import fr.ifremer.wao.service.ServiceCartography;
+import fr.ifremer.wao.service.ServiceReferential;
+import fr.ifremer.wao.service.ServiceSampling;
+import fr.ifremer.wao.service.ServiceSynthesis;
+import fr.ifremer.wao.service.ServiceUser;
import fr.ifremer.wao.ui.components.Layout;
import fr.ifremer.wao.ui.data.ErrorReport;
import fr.ifremer.wao.ui.data.GenericSelectModel;
@@ -48,7 +59,14 @@
import org.apache.tapestry5.OptionModel;
import org.apache.tapestry5.RenderSupport;
import org.apache.tapestry5.SelectModel;
-import org.apache.tapestry5.annotations.*;
+import org.apache.tapestry5.annotations.Environmental;
+import org.apache.tapestry5.annotations.IncludeJavaScriptLibrary;
+import org.apache.tapestry5.annotations.IncludeStylesheet;
+import org.apache.tapestry5.annotations.InjectComponent;
+import org.apache.tapestry5.annotations.Log;
+import org.apache.tapestry5.annotations.Persist;
+import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.beaneditor.BeanModel;
import org.apache.tapestry5.beaneditor.Validate;
import org.apache.tapestry5.corelib.components.BeanEditForm;
@@ -496,7 +514,7 @@
} else {
// set may be buggy
// getUserEdited().setUserProfile(getEditedUserProfiles());
- getUserEdited().clearUserProfile();
+ getUserEdited().clearUserProfile(currentUser.getProfile().getObsProgram());
getUserEdited().addAllUserProfile(getEditedUserProfiles());
}
}
@@ -616,10 +634,8 @@
@Log
public List<UserProfile> getEditedUserProfiles() {
if (editedUserProfiles == null) {
- if (getUserEdited() != null && getUserEdited().getUserProfile() != null) {
- editedUserProfiles = new ArrayList<UserProfile>(getUserEdited().getUserProfile());
- } else {
- editedUserProfiles = new ArrayList<UserProfile>();
+ if (getUserEdited() != null) {
+ editedUserProfiles = getUserEdited().getUserProfile(currentUser.getProfile().getObsProgram());
}
}
return editedUserProfiles;
1
0
[Suiviobsmer-commits] r859 - in trunk/wao-business/src/main: java/fr/ifremer/wao/entity java/fr/ifremer/wao/service xmi
by bleny@users.labs.libre-entreprise.org 24 Dec '10
by bleny@users.labs.libre-entreprise.org 24 Dec '10
24 Dec '10
Author: bleny
Date: 2010-12-24 15:10:34 +0000 (Fri, 24 Dec 2010)
New Revision: 859
Log:
fix user update
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java
trunk/wao-business/src/main/xmi/wao.zargo
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java 2010-12-24 12:42:45 UTC (rev 858)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java 2010-12-24 15:10:34 UTC (rev 859)
@@ -25,13 +25,14 @@
package fr.ifremer.wao.entity;
import fr.ifremer.wao.WaoUtils;
+import fr.ifremer.wao.bean.ObsProgram;
import fr.ifremer.wao.bean.UserRole;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.Serializable;
import java.util.ArrayList;
-import java.util.Collection;
+import java.util.List;
/**
* UserImpl
@@ -89,4 +90,25 @@
}
return false;
}
+
+ @Override
+ public List<UserProfile> getUserProfile(ObsProgram obsProgram) {
+ List<UserProfile> userProfiles = new ArrayList<UserProfile>();
+ if (getUserProfile() != null) {
+ for (UserProfile userProfile : getUserProfile()) {
+ if (userProfile.getObsProgram().equals(obsProgram)) {
+ userProfiles.add(userProfile);
+ }
+ }
+ }
+ return userProfiles;
+ }
+
+ @Override
+ public void clearUserProfile(ObsProgram obsProgram) {
+ List<UserProfile> userProfiles = getUserProfile(obsProgram);
+ for (UserProfile userProfile : userProfiles) {
+ removeUserProfile(userProfile);
+ }
+ }
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-12-24 12:42:45 UTC (rev 858)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-12-24 15:10:34 UTC (rev 859)
@@ -193,148 +193,53 @@
}
@Override
- public void executeCreateUpdateUser(TopiaContext transaction,
- WaoUser user, boolean generatePassword)
- throws TopiaException, IllegalArgumentException,
- WaoBusinessException {
-
+ protected void executeCreateUpdateUser(TopiaContext transaction, WaoUser user, boolean generatePassword) throws Exception {
+
if (user == null) {
throw new IllegalArgumentException("user parameter can't be null");
}
WaoUserDAO dao = WaoDAOHelper.getWaoUserDAO(transaction);
- UserProfileDAO userProfileDAO = WaoDAOHelper.getUserProfileDAO(transaction);
- WaoUser userToUpdate;
+ boolean isNewUser = user.getTopiaId() == null;
- boolean newUser = user.getTopiaId() == null;
+ if (isNewUser) {
- if (newUser) {
- userToUpdate = user;
-
-
- context.prepareTopiaId(WaoUser.class, userToUpdate);
- WaoUser existUser = dao.findByLogin(user.getLogin());
+ WaoUser existingUser = dao.findByLogin(user.getLogin());
// Check for a new user if login already exists
- if (existUser != null) {
+ if (existingUser != null) {
throw new WaoBusinessException(Type.ALREADY_EXISTS,
this.getClass(),
"Un utilisateur existe déjà avec ce login " +
user.getLogin());
}
- if (user.getUserProfile() != null) {
-
- Collection<UserProfile> newProfiles = new ArrayList<UserProfile>(user.getUserProfile());
- userToUpdate.clearUserProfile();
- for (UserProfile profile : newProfiles) {
- log.debug("saving profile " + profile.getDescription());
- UserProfile profileToAdd = userProfileDAO.create(
- UserProfile.PROPERTY_OBS_PROGRAM_ORDINAL,
- profile.getObsProgramOrdinal(),
- UserProfile.PROPERTY_USER_ROLE_ORDINAL,
- profile.getUserRoleOrdinal(),
- UserProfile.PROPERTY_CAN_WRITE,
- profile.getCanWrite()
- );
- userToUpdate.addUserProfile(profileToAdd);
- }
- }
- } else {
- userToUpdate = dao.findByTopiaId(user.getTopiaId());
- /*
- Collection<UserProfile> profilesToRemove;
- if (userToUpdate.getUserProfile() == null) {
- profilesToRemove = Collections.EMPTY_LIST;
- } else {
- profilesToRemove = new ArrayList<UserProfile>(userToUpdate.getUserProfile());
- }
+ context.prepareTopiaId(WaoUser.class, user);
+ }
- if (log.isDebugEnabled()) {
- log.debug("old profiles : " + profilesToRemove);
- }
-*/
- // set may be buggy
-// userToUpdate.setUserProfile(new ArrayList<UserProfile>(user.getUserProfile()));
-// userToUpdate.clearUserProfile();
-// userToUpdate.addAllUserProfile(user.getUserProfile());
-
- List<UserProfile> newProfiles = new ArrayList<UserProfile>();
-
- for (UserProfile profile : user.getUserProfile()) {
- UserProfile profileToAdd;
- if (profile.getTopiaId() == null) {
-
- // WaoBinderHelper.getSimpleTopiaBinder(UserProfile.class).copy(profile, profileToAdd);
-
- // userProfileDAO.create(profileToAdd);
- profileToAdd = userProfileDAO.create(
- UserProfile.PROPERTY_OBS_PROGRAM_ORDINAL,
- profile.getObsProgramOrdinal(),
- UserProfile.PROPERTY_USER_ROLE_ORDINAL,
- profile.getUserRoleOrdinal(),
- UserProfile.PROPERTY_CAN_WRITE,
- profile.getCanWrite()
- );
- } else {
- profileToAdd = userProfileDAO.findByTopiaId(profile.getTopiaId());
- }
- newProfiles.add(profileToAdd);
- }
-
-
- userToUpdate.clearUserProfile();
- userToUpdate.addAllUserProfile(newProfiles);
-
-/*
- if (log.isDebugEnabled()) {
- log.debug("new profiles : " + userToUpdate.getUserProfile());
- }
-
+ if (user.getUserProfile() != null) {
for (UserProfile userProfile : user.getUserProfile()) {
- if (log.isDebugEnabled()) {
- log.debug("is " + userProfile + " in " + profilesToRemove + " ? "
- + profilesToRemove.contains(userProfile));
+ if (userProfile.getTopiaId() == null) {
+ context.prepareTopiaId(UserProfile.class, userProfile);
}
- if (profilesToRemove.contains(userProfile)) {
- // this profile was already attributed to this user, don't
- // remove it : just keep it from being removed
- if (log.isDebugEnabled()) {
- log.debug("profile " + userProfile + " was already given to user");
- }
- profilesToRemove.remove(userProfile);
- } else {
- // this profile was added to the user
- if (log.isDebugEnabled()) {
- log.debug("profile " + userProfile + " is new for user");
- }
- userProfileDAO.create(userProfile);
- }
}
- // now, oldProfiles contains user has no longer, we must remove them
- if (log.isDebugEnabled()) {
- log.debug("will remove deleted profiles : " + profilesToRemove);
- }
- for (UserProfile userProfile : profilesToRemove) {
- userProfileDAO.delete(userProfile);
- }*/
}
- String password = userToUpdate.getPassword();
+ String password = user.getPassword();
if (generatePassword) {
password = context.createRandomString(8);
- userToUpdate.setPasswordChanged(true);
+ user.setPasswordChanged(true);
}
// For a password set manually by user or generated
- if (userToUpdate.isPasswordChanged()) {
+ if (user.isPasswordChanged()) {
String passwordEncoded = context.encodeString(password);
- userToUpdate.setPassword(passwordEncoded);
+ user.setPassword(passwordEncoded);
}
- log.debug("will store " + userToUpdate.getTopiaId());
- dao.update(userToUpdate);
- log.debug("had stored " + userToUpdate.getTopiaId());
+ log.debug("will store " + user.getTopiaId());
+ dao.update(user);
+ log.debug("had stored " + user.getTopiaId());
transaction.commitTransaction();
@@ -343,7 +248,7 @@
if (user.getLogin().contains("@") && user.isPasswordChanged()) {
String subject = "[WAO] ";
String msg = "Bonjour,\n\n";
- if (newUser) {
+ if (isNewUser) {
subject += "Création de votre compte";
msg += "\tVous avez été inscris sur le site WAO :" +
" Web Applicatif Obsmer. Vos identifiants de " +
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
1
0
[Suiviobsmer-commits] r858 - in trunk: . wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/webapp wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages
by fdesbois@users.labs.libre-entreprise.org 24 Dec '10
by fdesbois@users.labs.libre-entreprise.org 24 Dec '10
24 Dec '10
Author: fdesbois
Date: 2010-12-24 12:42:45 +0000 (Fri, 24 Dec 2010)
New Revision: 858
Log:
- migration to Tapestry 5.2 : some actions are broken, see ticket #2607
- testify not migrated on stable version for Tapestry 5.2, tests are ignored for the moment
- use proper select without zoneUpdater and subForm !!!!!! Introduced in Tapestry 5.2 !!!!!!
Modified:
trunk/pom.xml
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Cartography.java
trunk/wao-ui/src/main/webapp/Administration.tml
trunk/wao-ui/src/main/webapp/Cartography.tml
trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/AdministrationTest.java
trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java
trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ContactsTest.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-12-24 11:02:31 UTC (rev 857)
+++ trunk/pom.xml 2010-12-24 12:42:45 UTC (rev 858)
@@ -94,12 +94,12 @@
<dependency>
<groupId>com.orientimport</groupId>
<artifactId>t5-easy-fckeditor</artifactId>
- <version>1.0.4</version>
+ <version>1.0.5</version>
</dependency>
<dependency>
<groupId>org.chenillekit</groupId>
<artifactId>chenillekit-tapestry</artifactId>
- <version>1.2.0</version>
+ <version>1.3.0</version>
<exclusions>
<exclusion>
<groupId>jboss</groupId>
@@ -333,7 +333,7 @@
<nuitonWebVersion>0.1</nuitonWebVersion>
<topiaVersion>2.5-SNAPSHOT</topiaVersion>
<eugeneVersion>2.3-SNAPSHOT</eugeneVersion>
- <tapestryVersion>5.1.0.5</tapestryVersion>
+ <tapestryVersion>5.2.4</tapestryVersion>
<hibernateVersion>3.3.2.GA</hibernateVersion>
<jfreeVersion>1.0.12</jfreeVersion>
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2010-12-24 11:02:31 UTC (rev 857)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2010-12-24 12:42:45 UTC (rev 858)
@@ -32,21 +32,10 @@
import fr.ifremer.wao.bean.GlobalIndicatorValue;
import fr.ifremer.wao.bean.GlobalSynthesisParameters;
import fr.ifremer.wao.bean.UserRole;
-import fr.ifremer.wao.entity.Company;
-import fr.ifremer.wao.entity.CompanyImpl;
-import fr.ifremer.wao.entity.Indicator;
-import fr.ifremer.wao.entity.IndicatorLevel;
-import fr.ifremer.wao.entity.UserProfile;
-import fr.ifremer.wao.entity.UserProfileImpl;
-import fr.ifremer.wao.entity.WaoUser;
+import fr.ifremer.wao.entity.*;
import fr.ifremer.wao.io.ImportResults;
import fr.ifremer.wao.io.ImportResultsImpl;
-import fr.ifremer.wao.service.ServiceBoat;
-import fr.ifremer.wao.service.ServiceCartography;
-import fr.ifremer.wao.service.ServiceReferential;
-import fr.ifremer.wao.service.ServiceSampling;
-import fr.ifremer.wao.service.ServiceSynthesis;
-import fr.ifremer.wao.service.ServiceUser;
+import fr.ifremer.wao.service.*;
import fr.ifremer.wao.ui.components.Layout;
import fr.ifremer.wao.ui.data.ErrorReport;
import fr.ifremer.wao.ui.data.GenericSelectModel;
@@ -59,14 +48,7 @@
import org.apache.tapestry5.OptionModel;
import org.apache.tapestry5.RenderSupport;
import org.apache.tapestry5.SelectModel;
-import org.apache.tapestry5.annotations.Environmental;
-import org.apache.tapestry5.annotations.IncludeJavaScriptLibrary;
-import org.apache.tapestry5.annotations.IncludeStylesheet;
-import org.apache.tapestry5.annotations.InjectComponent;
-import org.apache.tapestry5.annotations.Log;
-import org.apache.tapestry5.annotations.Persist;
-import org.apache.tapestry5.annotations.Property;
-import org.apache.tapestry5.annotations.SessionState;
+import org.apache.tapestry5.annotations.*;
import org.apache.tapestry5.beaneditor.BeanModel;
import org.apache.tapestry5.beaneditor.Validate;
import org.apache.tapestry5.corelib.components.BeanEditForm;
@@ -470,6 +452,11 @@
log.debug("User exist in selectModel : " + userId);
}
userEdited = findUser(userId);
+ if (log.isDebugEnabled()) {
+ log.debug(">>User : " + userEdited);
+ log.debug(">>User.active : " + userEdited.isActive());
+ log.debug(">>User.login : " + userEdited.getLogin());
+ }
} else {
userEdited = serviceUser.getNewUser(getCompany());
generatePassword = true;
@@ -518,6 +505,8 @@
Object onSuccessFromUserForm() throws WaoException {
if (log.isDebugEnabled()) {
log.debug("User : " + userEdited);
+ log.debug("User.active : " + userEdited.isActive());
+ log.debug("User.login : " + userEdited.getLogin());
}
if (!StringUtils.isEmpty(password)) {
@@ -607,12 +596,13 @@
}
@Log
- void onChangeFromUserRole(String value) {
+ Zone onValueChangedFromUserRole(String value) {
if (StringUtils.isEmpty(value)) {
getEditedProfile().setUserRole(null);
} else {
getEditedProfile().setUserRole(UserRole.valueOf(value));
}
+ return userRoleZone;
}
@Log
@@ -636,7 +626,7 @@
}
@Log
- Object onActionFromAddRole() {
+ Zone onActionFromAddRole() {
if (getEditedProfile() != null &&
getEditedProfile().getUserRoleOrdinal() != null) {
getEditedProfile().setCanWrite( ! readOnly);
@@ -649,12 +639,12 @@
editedProfile = null;
readOnly = false;
// Refresh the zone
- refreshUserRoleZone = true;
+// refreshUserRoleZone = true;
return userRoleZone;
}
@Log
- Object onActionFromRemoveRole(int roleIndex) {
+ Zone onActionFromRemoveRole(int roleIndex) {
if (log.isDebugEnabled()) {
log.debug("edited profiles before remove : " + getEditedUserProfiles());
}
@@ -666,7 +656,7 @@
}
// Refresh the zone
- refreshUserRoleZone = true;
+// refreshUserRoleZone = true;
return userRoleZone;
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Cartography.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Cartography.java 2010-12-24 11:02:31 UTC (rev 857)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Cartography.java 2010-12-24 12:42:45 UTC (rev 858)
@@ -20,22 +20,14 @@
*/
package fr.ifremer.wao.ui.pages;
-import fr.ifremer.wao.bean.ConnectedUser;
-import fr.ifremer.wao.bean.ContactFilter;
-import fr.ifremer.wao.bean.ContactFilterImpl;
-import fr.ifremer.wao.bean.UserRole;
-import fr.ifremer.wao.bean.WaoFilter;
+import fr.ifremer.wao.bean.*;
import fr.ifremer.wao.entity.Company;
import fr.ifremer.wao.service.ServiceSampling;
import fr.ifremer.wao.service.ServiceUser;
import fr.ifremer.wao.ui.data.FiltersModel;
import fr.ifremer.wao.ui.data.RequiresAuthentication;
import org.apache.tapestry5.Link;
-import org.apache.tapestry5.annotations.InjectComponent;
-import org.apache.tapestry5.annotations.Log;
-import org.apache.tapestry5.annotations.Persist;
-import org.apache.tapestry5.annotations.Property;
-import org.apache.tapestry5.annotations.SessionState;
+import org.apache.tapestry5.annotations.*;
import org.apache.tapestry5.corelib.components.Zone;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.ioc.services.PropertyAccess;
@@ -129,23 +121,15 @@
@InjectComponent
private Zone sampleRowFilterZone;
- @Property
- private boolean refreshSamplingZone;
-
- @Property
- private boolean refreshSampleRowZone;
-
@Log
- Zone onChangeFromCompany(String companyId) {
+ Zone onValueChangedFromCompany(String companyId) {
getFiltersModel().updateCompany(companyId);
- refreshSamplingZone = true;
return samplingFilterZone;
}
@Log
- Zone onChangeFromProgramName(String programName) {
+ Zone onValueChangedFromProgramName(String programName) {
getFiltersModel().updateProgram(programName);
- refreshSampleRowZone = true;
return sampleRowFilterZone;
}
Modified: trunk/wao-ui/src/main/webapp/Administration.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Administration.tml 2010-12-24 11:02:31 UTC (rev 857)
+++ trunk/wao-ui/src/main/webapp/Administration.tml 2010-12-24 12:42:45 UTC (rev 858)
@@ -115,10 +115,10 @@
</p:password>
<p:userRole>
<t:zone id="so-admin-userRoleZone" t:id="userRoleZone" t:update="show">
- <t:nuiton.subForm t:visible="refreshUserRoleZone">
+ <!--<t:nuiton.subForm t:visible="refreshUserRoleZone">-->
<label t:type="label" for="userRole" />
<select t:type="select" t:id="userRole" t:value="role" t:model="userRoleSelectModel"
- t:mixins="ck/onEvent" t:event="change"/>
+ t:zone="so-admin-userRoleZone"/>
<span>Lecture seule : </span>
<input t:type="checkbox" t:id="readOnly" t:value="readOnly"
@@ -135,7 +135,7 @@
</a>
</li>
</ul>
- </t:nuiton.subForm>
+ <!--</t:nuiton.subForm>-->
</t:zone>
</p:userRole>
</form>
Modified: trunk/wao-ui/src/main/webapp/Cartography.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Cartography.tml 2010-12-24 11:02:31 UTC (rev 857)
+++ trunk/wao-ui/src/main/webapp/Cartography.tml 2010-12-24 12:42:45 UTC (rev 858)
@@ -66,25 +66,25 @@
<!-- COMPANY -->
<p class="mtop5"><label for="company">Société</label> : </p>
<p><input t:type="select" t:id="company" t:model="filtersModel.companySelectModel" value="filtersModel.companyId"
- t:mixins="nuiton/zoneUpdater" t:event="change" t:zone="cartography-filters-sampling" /></p>
+ t:zone="cartography-filters-sampling" /></p>
</t:if>
<t:zone t:id="samplingFilterZone" id="cartography-filters-sampling" t:update="show">
- <t:nuiton.subForm t:visible="refreshSamplingZone">
+ <!--<t:nuiton.subForm t:visible="refreshSamplingZone">-->
<!-- PROGRAM -->
<p class="mtop5"><label for="programName">Programme</label> : </p>
<p><select t:type="select" t:id="programName" t:model="filtersModel.programSelectModel" value="filter.programName"
- t:mixins="nuiton/zoneUpdater" t:event="change" t:zone="cartography-filters-sampleRow" /></p>
+ t:zone="cartography-filters-sampleRow" /></p>
<t:zone t:id="sampleRowFilterZone" id="cartography-filters-sampleRow" t:update="show">
- <t:nuiton.subForm t:visible="refreshSampleRowZone">
+ <!--<t:nuiton.subForm t:visible="refreshSampleRowZone">-->
<!-- SAMPLE_ROW -->
<p class="mtop5"><label for="sampleRow">Ligne du plan</label> : </p>
<p><input t:type="select" t:id="sampleRow" t:model="filtersModel.sampleRowSelectModel" value="filtersModel.sampleRowId" /></p>
- </t:nuiton.subForm>
+ <!--</t:nuiton.subForm>-->
</t:zone>
- </t:nuiton.subForm>
+ <!--</t:nuiton.subForm>-->
</t:zone>
<p class="mtop5">
Modified: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/AdministrationTest.java
===================================================================
--- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/AdministrationTest.java 2010-12-24 11:02:31 UTC (rev 857)
+++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/AdministrationTest.java 2010-12-24 12:42:45 UTC (rev 858)
@@ -24,6 +24,7 @@
import org.apache.tapestry5.dom.Document;
import org.apache.tapestry5.dom.Element;
import org.junit.Assert;
+import org.junit.Ignore;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,6 +38,8 @@
* @author fdesbois
* $Id$
*/
+// FIXME-fdesbois-2010-12-23 : waiting for release version of Testify for Tapestry 5.2
+ at Ignore
public class AdministrationTest extends AbstractApplicationTest {
private static final Logger logger =
Modified: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java
===================================================================
--- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java 2010-12-24 11:02:31 UTC (rev 857)
+++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java 2010-12-24 12:42:45 UTC (rev 858)
@@ -40,6 +40,7 @@
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.ApplicationStateManager;
import org.junit.Assert;
+import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mock;
import org.slf4j.Logger;
@@ -56,6 +57,8 @@
*
* @author fdesbois <fdesbois at codelutin.com>
*/
+// FIXME-fdesbois-2010-12-23 : waiting for release version of Testify for Tapestry 5.2
+ at Ignore
public class ConnectionTest extends AbstractApplicationTest {
private static final Logger logger =
Modified: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ContactsTest.java
===================================================================
--- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ContactsTest.java 2010-12-24 11:02:31 UTC (rev 857)
+++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ContactsTest.java 2010-12-24 12:42:45 UTC (rev 858)
@@ -26,6 +26,7 @@
import fr.ifremer.wao.entity.Contact;
import fr.ifremer.wao.entity.WaoUser;
import fr.ifremer.wao.service.ServiceContact;
+import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
@@ -44,6 +45,8 @@
* @author fdesbois
* $Id$
*/
+// FIXME-fdesbois-2010-12-23 : waiting for release version of Testify for Tapestry 5.2
+ at Ignore
public class ContactsTest extends AbstractApplicationTest {
private static final Logger logger =
1
0
[Suiviobsmer-commits] r857 - in trunk/wao-business/src: main/java/fr/ifremer/wao/entity main/java/fr/ifremer/wao/service main/xmi test/java/fr/ifremer/wao/service
by bleny@users.labs.libre-entreprise.org 24 Dec '10
by bleny@users.labs.libre-entreprise.org 24 Dec '10
24 Dec '10
Author: bleny
Date: 2010-12-24 11:02:31 +0000 (Fri, 24 Dec 2010)
New Revision: 857
Log:
some refactoring ; code-style
Added:
trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserDAOImpl.java
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java
trunk/wao-business/src/main/xmi/wao.zargo
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserDAOImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserDAOImpl.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserDAOImpl.java 2010-12-24 11:02:31 UTC (rev 857)
@@ -0,0 +1,18 @@
+package fr.ifremer.wao.entity;
+
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.framework.TopiaQuery;
+
+import java.util.List;
+
+public class WaoUserDAOImpl<E extends WaoUser> extends WaoUserDAOAbstract<E> {
+
+ @Override
+ public List<WaoUser> findUsersByCompany(Company company) throws TopiaException {
+ TopiaQuery query = createQuery().
+ addEquals(WaoUser.PROPERTY_COMPANY, company).
+ addOrder(WaoUser.PROPERTY_FIRST_NAME, WaoUser.PROPERTY_LAST_NAME);
+
+ return (List<WaoUser>) findAllByQuery(query);
+ }
+}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-12-23 19:09:52 UTC (rev 856)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-12-24 11:02:31 UTC (rev 857)
@@ -24,10 +24,36 @@
package fr.ifremer.wao.service;
-import fr.ifremer.wao.*;
+import fr.ifremer.wao.WaoBusinessException;
import fr.ifremer.wao.WaoBusinessException.Type;
-import fr.ifremer.wao.bean.*;
-import fr.ifremer.wao.entity.*;
+import fr.ifremer.wao.WaoContext;
+import fr.ifremer.wao.WaoDAOHelper;
+import fr.ifremer.wao.WaoException;
+import fr.ifremer.wao.WaoProperty;
+import fr.ifremer.wao.WaoQueryHelper;
+import fr.ifremer.wao.bean.BoatFilter;
+import fr.ifremer.wao.bean.BoatFilterImpl;
+import fr.ifremer.wao.bean.ConnectedUser;
+import fr.ifremer.wao.bean.ConnectedUserImpl;
+import fr.ifremer.wao.bean.ObsProgram;
+import fr.ifremer.wao.bean.SamplingFilter;
+import fr.ifremer.wao.bean.SamplingFilterImpl;
+import fr.ifremer.wao.bean.UserRole;
+import fr.ifremer.wao.entity.Boat;
+import fr.ifremer.wao.entity.Company;
+import fr.ifremer.wao.entity.CompanyDAO;
+import fr.ifremer.wao.entity.Contact;
+import fr.ifremer.wao.entity.ContactDAO;
+import fr.ifremer.wao.entity.News;
+import fr.ifremer.wao.entity.SampleRow;
+import fr.ifremer.wao.entity.SampleRowLog;
+import fr.ifremer.wao.entity.SampleRowLogDAO;
+import fr.ifremer.wao.entity.UserProfile;
+import fr.ifremer.wao.entity.UserProfileDAO;
+import fr.ifremer.wao.entity.UserProfileImpl;
+import fr.ifremer.wao.entity.WaoUser;
+import fr.ifremer.wao.entity.WaoUserDAO;
+import fr.ifremer.wao.entity.WaoUserImpl;
import org.apache.commons.mail.EmailException;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
@@ -379,7 +405,7 @@
List<SampleRowLog> results = logDAO.findAllByAuthor(user);
if (!results.isEmpty()) {
- String msg = "";
+ String msg;
if (isCoordinator) {
msg = " car il a ajouté des commentaires sur le plan " +
"d'échantillonnage.";
@@ -451,23 +477,11 @@
errorArgs.add(company.getName());
- List<WaoUser> users = getUsersByCompany(transaction, company);
-
- return users;
- }
-
- /**
- *@deprecated FIXME-fdesbois-2010-12-23 : move this method into WaoUserDAO
- */
- @Deprecated
- protected List<WaoUser> getUsersByCompany(TopiaContext transaction, Company company) throws TopiaException {
WaoUserDAO dao = WaoDAOHelper.getWaoUserDAO(transaction);
- TopiaQuery query = dao.createQuery().
- addEquals(WaoUser.PROPERTY_COMPANY, company).
- addOrder(WaoUser.PROPERTY_FIRST_NAME, WaoUser.PROPERTY_LAST_NAME);
+ List<WaoUser> users = dao.findUsersByCompany(company);
- return dao.findAllByQuery(query);
+ return users;
}
@Override
@@ -575,7 +589,8 @@
protected void executeDeleteCompany(TopiaContext transaction, Company company) throws Exception {
// we can delete a company only if no users are attached
- List<WaoUser> users = getUsersByCompany(transaction, company);
+ WaoUserDAO waoUserDAO = WaoDAOHelper.getWaoUserDAO(transaction);
+ List<WaoUser> users = waoUserDAO.findUsersByCompany(company);
if ( ! users.isEmpty()) {
String message = "Impossible de supprimer la société " +
company.getName() + " : des utilisateurs sont encore associés à cette société";
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java 2010-12-23 19:09:52 UTC (rev 856)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java 2010-12-24 11:02:31 UTC (rev 857)
@@ -25,12 +25,17 @@
package fr.ifremer.wao.service;
import fr.ifremer.wao.AbstractServiceTest;
-import fr.ifremer.wao.TestManager;
import fr.ifremer.wao.WaoBusinessException;
import fr.ifremer.wao.WaoDAOHelper;
import fr.ifremer.wao.bean.ObsProgram;
import fr.ifremer.wao.bean.UserRole;
-import fr.ifremer.wao.entity.*;
+import fr.ifremer.wao.entity.Company;
+import fr.ifremer.wao.entity.CompanyImpl;
+import fr.ifremer.wao.entity.UserProfile;
+import fr.ifremer.wao.entity.UserProfileDAO;
+import fr.ifremer.wao.entity.UserProfileImpl;
+import fr.ifremer.wao.entity.WaoUser;
+import fr.ifremer.wao.entity.WaoUserImpl;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -40,7 +45,6 @@
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
/**
@@ -70,7 +74,7 @@
* @throws Exception all exceptions
*/
@Test
- public void testCreateUpdateUser() throws Exception {
+ public void testCreateUser() throws Exception {
log.info("############### START ############### testCreateUpdateUser");
// create a user with no role
@@ -80,8 +84,6 @@
// now, update user with or without adding, removing, a profile to
// see if an error is raised
- List<UserProfile> profiles = new LinkedList<UserProfile>();
- user.setUserProfile(profiles);
UserProfile adminProfile = new UserProfileImpl(
ObsProgram.OBSMER,
@@ -94,23 +96,21 @@
true
);
- profiles.add(adminProfile);
+ user.addUserProfile(adminProfile);
log.debug("trying to store " + user.getTopiaId());
service.createUpdateUser(user, false);
- manager = new TestManager();
- setUp();
+ user.addUserProfile(coordinatorProfile);
+ service.createUpdateUser(user, false);
- profiles.add(coordinatorProfile);
+ user.removeUserProfile(adminProfile);
service.createUpdateUser(user, false);
- manager = new TestManager();
- setUp();
+ WaoUser userFound = findUserByLogin("login");
+ Assert.assertNotNull(userFound);
+ Assert.assertEquals(1, userFound.getUserProfile().size());
- profiles.remove(adminProfile);
- service.createUpdateUser(user, false);
-
// check that creating two user with the same login is not allowed
try {
user = new WaoUserImpl();
@@ -159,6 +159,7 @@
WaoUser userFound = findUserByLogin(login);
log.debug("user found = " + userFound);
+ Assert.assertNotNull(userFound);
Assert.assertFalse(userFound.isActive());
}
1
0
[Suiviobsmer-commits] r856 - in trunk/wao-business/src: main/java/fr/ifremer/wao/service test/java/fr/ifremer/wao test/java/fr/ifremer/wao/service
by fdesbois@users.labs.libre-entreprise.org 23 Dec '10
by fdesbois@users.labs.libre-entreprise.org 23 Dec '10
23 Dec '10
Author: fdesbois
Date: 2010-12-23 19:09:52 +0000 (Thu, 23 Dec 2010)
New Revision: 856
Log:
Add broken test for updateUser
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java
trunk/wao-business/src/test/java/fr/ifremer/wao/AbstractServiceTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-12-23 17:15:46 UTC (rev 855)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-12-23 19:09:52 UTC (rev 856)
@@ -24,36 +24,10 @@
package fr.ifremer.wao.service;
-import fr.ifremer.wao.WaoBusinessException;
+import fr.ifremer.wao.*;
import fr.ifremer.wao.WaoBusinessException.Type;
-import fr.ifremer.wao.WaoContext;
-import fr.ifremer.wao.WaoDAOHelper;
-import fr.ifremer.wao.WaoException;
-import fr.ifremer.wao.WaoProperty;
-import fr.ifremer.wao.WaoQueryHelper;
-import fr.ifremer.wao.bean.BoatFilter;
-import fr.ifremer.wao.bean.BoatFilterImpl;
-import fr.ifremer.wao.bean.ConnectedUser;
-import fr.ifremer.wao.bean.ConnectedUserImpl;
-import fr.ifremer.wao.bean.ObsProgram;
-import fr.ifremer.wao.bean.SamplingFilter;
-import fr.ifremer.wao.bean.SamplingFilterImpl;
-import fr.ifremer.wao.bean.UserRole;
-import fr.ifremer.wao.entity.Boat;
-import fr.ifremer.wao.entity.Company;
-import fr.ifremer.wao.entity.CompanyDAO;
-import fr.ifremer.wao.entity.Contact;
-import fr.ifremer.wao.entity.ContactDAO;
-import fr.ifremer.wao.entity.News;
-import fr.ifremer.wao.entity.SampleRow;
-import fr.ifremer.wao.entity.SampleRowLog;
-import fr.ifremer.wao.entity.SampleRowLogDAO;
-import fr.ifremer.wao.entity.UserProfile;
-import fr.ifremer.wao.entity.UserProfileDAO;
-import fr.ifremer.wao.entity.UserProfileImpl;
-import fr.ifremer.wao.entity.WaoUser;
-import fr.ifremer.wao.entity.WaoUserDAO;
-import fr.ifremer.wao.entity.WaoUserImpl;
+import fr.ifremer.wao.bean.*;
+import fr.ifremer.wao.entity.*;
import org.apache.commons.mail.EmailException;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
@@ -482,6 +456,10 @@
return users;
}
+ /**
+ *@deprecated FIXME-fdesbois-2010-12-23 : move this method into WaoUserDAO
+ */
+ @Deprecated
protected List<WaoUser> getUsersByCompany(TopiaContext transaction, Company company) throws TopiaException {
WaoUserDAO dao = WaoDAOHelper.getWaoUserDAO(transaction);
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/AbstractServiceTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/AbstractServiceTest.java 2010-12-23 17:15:46 UTC (rev 855)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/AbstractServiceTest.java 2010-12-23 19:09:52 UTC (rev 856)
@@ -23,24 +23,8 @@
import fr.ifremer.wao.bean.ContactState;
import fr.ifremer.wao.bean.UserRole;
-import fr.ifremer.wao.entity.Boat;
-import fr.ifremer.wao.entity.BoatDAO;
-import fr.ifremer.wao.entity.Company;
-import fr.ifremer.wao.entity.CompanyDAO;
-import fr.ifremer.wao.entity.Contact;
-import fr.ifremer.wao.entity.ContactDAO;
-import fr.ifremer.wao.entity.ContactImpl;
-import fr.ifremer.wao.entity.ElligibleBoat;
-import fr.ifremer.wao.entity.ElligibleBoatDAO;
-import fr.ifremer.wao.entity.SampleRow;
-import fr.ifremer.wao.entity.SampleRowDAO;
-import fr.ifremer.wao.entity.WaoUser;
-import fr.ifremer.wao.entity.WaoUserDAO;
-import fr.ifremer.wao.service.ServiceBoat;
-import fr.ifremer.wao.service.ServiceContact;
-import fr.ifremer.wao.service.ServiceReferential;
-import fr.ifremer.wao.service.ServiceSampling;
-import fr.ifremer.wao.service.ServiceSamplingImpl;
+import fr.ifremer.wao.entity.*;
+import fr.ifremer.wao.service.*;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
@@ -103,8 +87,7 @@
log.debug("Start manager");
}
manager.start();
- serviceSampling = (ServiceSamplingImpl)manager.getServiceSampling();
- //initialize();
+ serviceSampling = (ServiceSamplingImpl) manager.getServiceSampling();
}
@After
@@ -113,12 +96,6 @@
}
/**
- * Initialize data before each test. By default do nothing.
- */
-// protected void initialize() {
-// }
-
- /**
* Create a company : <br />
* <ul>
* <li>first name : Homer</li>
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java 2010-12-23 17:15:46 UTC (rev 855)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java 2010-12-23 19:09:52 UTC (rev 856)
@@ -24,93 +24,54 @@
package fr.ifremer.wao.service;
+import fr.ifremer.wao.AbstractServiceTest;
import fr.ifremer.wao.TestManager;
import fr.ifremer.wao.WaoBusinessException;
import fr.ifremer.wao.WaoDAOHelper;
import fr.ifremer.wao.bean.ObsProgram;
import fr.ifremer.wao.bean.UserRole;
-import fr.ifremer.wao.entity.Company;
-import fr.ifremer.wao.entity.CompanyImpl;
-import fr.ifremer.wao.entity.UserProfile;
-import fr.ifremer.wao.entity.UserProfileDAO;
-import fr.ifremer.wao.entity.UserProfileImpl;
-import fr.ifremer.wao.entity.WaoUser;
-import fr.ifremer.wao.entity.WaoUserImpl;
-import org.junit.After;
-import org.junit.AfterClass;
+import fr.ifremer.wao.entity.*;
import org.junit.Assert;
import org.junit.Before;
-import org.junit.BeforeClass;
import org.junit.Test;
import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.TopiaException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
- *
* @author fdesbois <fdesbois at codelutin.com>
+ * @version $Id$
*/
-public class ServiceUserImplTest {
+public class ServiceUserImplTest extends AbstractServiceTest {
- private static TestManager manager;
-
private static final Logger log =
LoggerFactory.getLogger(ServiceUserImplTest.class);
private ServiceUser service;
- public ServiceUserImplTest() {
- }
-
- @BeforeClass
- public static void setUpClass() throws Exception {
- manager = new TestManager();
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- }
-
@Before
public void setUp() throws Exception {
- manager.start();
+ super.setUp();
service = manager.getServiceUser();
}
- @After
- public void tearDown() throws Exception {
- manager.stop();
- }
-
/**
- * Test of connect method, of class ServiceUserImpl.
- */
- //@Test
- public void testConnect() throws Exception {
- System.out.println("connect");
- }
-
- /**
- * Test of forgetPassword method, of class ServiceUserImpl.
- */
- //@Test
- public void testForgetPassword() throws Exception {
- System.out.println("forgetPassword");
- }
-
- /**
* Test of createUpdateUser method, of class ServiceUserImpl.
*
* This test is not complete : it doesn't check if given data are well
* registered. For profile updating, it only checks that no exception is
* raised.
+ *
+ * @throws Exception all exceptions
*/
@Test
public void testCreateUpdateUser() throws Exception {
- System.out.println("createUpdateUser");
+ log.info("############### START ############### testCreateUpdateUser");
// create a user with no role
WaoUser user = new WaoUserImpl();
@@ -122,8 +83,16 @@
List<UserProfile> profiles = new LinkedList<UserProfile>();
user.setUserProfile(profiles);
- UserProfile adminProfile = new UserProfileImpl(ObsProgram.OBSMER, UserRole.ADMIN, true);
- UserProfile coordinatorProfile = new UserProfileImpl(ObsProgram.OBSMER, UserRole.COORDINATOR, true);
+ UserProfile adminProfile = new UserProfileImpl(
+ ObsProgram.OBSMER,
+ UserRole.ADMIN,
+ true
+ );
+ UserProfile coordinatorProfile = new UserProfileImpl(
+ ObsProgram.OBSMER,
+ UserRole.COORDINATOR,
+ true
+ );
profiles.add(adminProfile);
@@ -149,46 +118,85 @@
service.createUpdateUser(user, false);
Assert.fail("an exception should have been raised");
} catch (WaoBusinessException e) {
- Assert.assertEquals(WaoBusinessException.Type.ALREADY_EXISTS, e.getType());
+ Assert.assertEquals(WaoBusinessException.Type.ALREADY_EXISTS,
+ e.getType());
}
}
- /**
- * Test of deleteUser method, of class ServiceUserImpl.
- */
- //@Test
- public void testDeleteUser() throws Exception {
- System.out.println("deleteUser");
- }
+ @Test
+ public void testUpdateUser() throws WaoBusinessException, TopiaException {
+ log.info("############### START ############### testUpdateUser");
- /**
- * Test of createUpdateCompany method, of class ServiceUserImpl.
- */
- //@Test
- public void testCreateUpdateCompany() throws Exception {
- System.out.println("createUpdateCompany");
- }
+ // ---- PREPARE DATA ---- //
- /**
- * Test of getCompanies method, of class ServiceUserImpl.
- */
- //@Test
- public void testGetCompanies() throws Exception {
- System.out.println("getCompanies");
+ String login = "login";
+
+ // First instance to create the user
+ WaoUser user = new WaoUserImpl();
+ user.setLogin(login);
+ user.setActive(true);
+ service.createUpdateUser(user, false);
+
+ log.debug("user in session = " + user +
+ " [ID=" + user.getTopiaId() + "]");
+
+ // Create a new instance
+ WaoUser userToUpdate = new WaoUserImpl();
+ userToUpdate.setLogin(user.getLogin());
+ userToUpdate.setTopiaId(user.getTopiaId());
+ userToUpdate.setActive(false);
+ // Avoid NPE on UserProfile for each
+ userToUpdate.setUserProfile(new ArrayList<UserProfile>());
+
+ log.debug("user to update = " + userToUpdate);
+
+ // ---- EXECUTE ---- //
+
+ service.createUpdateUser(userToUpdate, false);
+
+ // ---- CHECK DATA ---- //
+
+ WaoUser userFound = findUserByLogin(login);
+
+ log.debug("user found = " + userFound);
+
+ Assert.assertFalse(userFound.isActive());
}
/**
* Test of getObservers method, of class ServiceUserImpl.
+ *
+ * @throws Exception all exceptions
*/
@Test
public void testGetObservers() throws Exception {
- log.info("## START ## getObservers");
+ log.info("############### START ############### testGetObservers");
- UserProfile adminProfile = new UserProfileImpl(ObsProgram.OBSMER, UserRole.ADMIN, true);
- UserProfile coordinatorProfile = new UserProfileImpl(ObsProgram.OBSMER, UserRole.COORDINATOR, true);
- UserProfile coordinatorProfile2 = new UserProfileImpl(ObsProgram.OBSMER, UserRole.COORDINATOR, true);
- UserProfile observerProfile = new UserProfileImpl(ObsProgram.OBSMER, UserRole.OBSERVER, true);
- UserProfile observerProfile2 = new UserProfileImpl(ObsProgram.OBSMER, UserRole.OBSERVER, true);
+ UserProfile adminProfile = new UserProfileImpl(
+ ObsProgram.OBSMER,
+ UserRole.ADMIN,
+ true
+ );
+ UserProfile coordinatorProfile = new UserProfileImpl(
+ ObsProgram.OBSMER,
+ UserRole.COORDINATOR,
+ true
+ );
+ UserProfile coordinatorProfile2 = new UserProfileImpl(
+ ObsProgram.OBSMER,
+ UserRole.COORDINATOR,
+ true
+ );
+ UserProfile observerProfile = new UserProfileImpl(
+ ObsProgram.OBSMER,
+ UserRole.OBSERVER,
+ true
+ );
+ UserProfile observerProfile2 = new UserProfileImpl(
+ ObsProgram.OBSMER,
+ UserRole.OBSERVER,
+ true
+ );
TopiaContext context = manager.getContext().beginTransaction();
UserProfileDAO userProfileDAO = WaoDAOHelper.getUserProfileDAO(context);
@@ -266,10 +274,12 @@
/**
* Test of initApplication method, of class WaoGlobal.
+ *
+ * @throws Exception all exceptions
*/
@Test
public void testCreateDefaultAdmin() throws Exception {
- log.info("## START ## createDefaultAdmin");
+ log.info("############### START ############### testCreateDefaultAdmin");
service.createDefaultAdmin();
1
0