[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
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" />
participants (1)
-
bleny@users.labs.libre-entreprise.org