r289 - in trunk: . chorem-entities chorem-entities/src/main/java/org/chorem chorem-entities/src/main/java/org/chorem/entities chorem-entities/src/main/xmi chorem-webmotion/src/main/java/org/chorem/webmotion/actions chorem-webmotion/src/main/webapp/WEB-INF/jsp
Author: jcouteau Date: 2012-12-16 16:37:17 +0100 (Sun, 16 Dec 2012) New Revision: 289 Url: http://chorem.org/projects/chorem/repository/revisions/289 Log: refs #732 : Still need to display status on QuotationDashboard and ProjectDashboard Upgrade EUGene version Added: trunk/chorem-entities/src/main/java/org/chorem/entities/Quotation18Migration.java Modified: trunk/chorem-entities/pom.xml trunk/chorem-entities/src/main/java/org/chorem/ChoremClient.java trunk/chorem-entities/src/main/java/org/chorem/entities/QuotationMigration.java trunk/chorem-entities/src/main/java/org/chorem/entities/VacationMigration.java trunk/chorem-entities/src/main/xmi/chorem-model.properties trunk/chorem-entities/src/main/xmi/chorem-model.zargo trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/SalesAction.java trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardProject.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotation.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationAccepted.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationDraft.jsp trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationSent.jsp trunk/pom.xml Modified: trunk/chorem-entities/pom.xml =================================================================== --- trunk/chorem-entities/pom.xml 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/chorem-entities/pom.xml 2012-12-16 15:37:17 UTC (rev 289) @@ -128,7 +128,7 @@ <plugins> <plugin> <groupId>org.nuiton.eugene</groupId> - <artifactId>maven-eugene-plugin</artifactId> + <artifactId>eugene-maven-plugin</artifactId> <executions> <execution> <id>api generator</id> @@ -149,7 +149,7 @@ <generatedPackages>org.chorem.entities</generatedPackages> </configuration> <goals> - <goal>smart-generate</goal> + <goal>generate</goal> </goals> </execution> </executions> Modified: trunk/chorem-entities/src/main/java/org/chorem/ChoremClient.java =================================================================== --- trunk/chorem-entities/src/main/java/org/chorem/ChoremClient.java 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/chorem-entities/src/main/java/org/chorem/ChoremClient.java 2012-12-16 15:37:17 UTC (rev 289) @@ -22,9 +22,6 @@ */ package org.chorem; -import java.util.ArrayList; -import java.util.List; -import org.apache.commons.lang3.StringUtils; import org.chorem.entities.Attachment; import org.chorem.entities.ChoremUser; import org.chorem.entities.Company; @@ -33,24 +30,24 @@ import org.chorem.entities.ConfigurationImpl; import org.chorem.entities.ContactDetails; import org.chorem.entities.Employee; -import org.chorem.entities.EmployeeMigration; import org.chorem.entities.Invoice; import org.chorem.entities.InvoiceMigration; import org.chorem.entities.Quotation; +import org.chorem.entities.Quotation18Migration; import org.chorem.entities.QuotationMigration; -import org.chorem.entities.Vacation; -import org.chorem.entities.VacationMigration; import org.nuiton.util.ApplicationConfig; import org.nuiton.wikitty.WikittyClient; import org.nuiton.wikitty.WikittyService; import org.nuiton.wikitty.WikittyServiceFactory; import org.nuiton.wikitty.WikittyUtil; -import org.nuiton.wikitty.entities.Wikitty; import org.nuiton.wikitty.entities.WikittyExtension; import org.nuiton.wikitty.query.WikittyQuery; import org.nuiton.wikitty.query.WikittyQueryMaker; import org.nuiton.wikitty.query.WikittyQueryResult; +import java.util.ArrayList; +import java.util.List; + /** * Proxy pour l'application. Certaines methodes specifiques pour l'application * peuvent y etre ajoutees (ex: des find particulier) @@ -65,6 +62,7 @@ this.getMigrationRegistry().put(Quotation.EXT_QUOTATION, new QuotationMigration()); //this.getMigrationRegistry().put(Vacation.EXT_VACATION, new VacationMigration()); //this.getMigrationRegistry().put(Employee.EXT_EMPLOYEE, new EmployeeMigration()); + this.getMigrationRegistry().put(Quotation.EXT_QUOTATION, new Quotation18Migration()); } /** @@ -156,12 +154,16 @@ // register last entity versions in database List<WikittyExtension> exts = new ArrayList<WikittyExtension>(); + exts.addAll(org.chorem.entities.AcceptedAbstract.extensions); exts.addAll(org.chorem.entities.AttachmentAbstract.extensions); exts.addAll(org.chorem.entities.CategoryAbstract.extensions); exts.addAll(org.chorem.entities.ChoremUserAbstract.extensions); + exts.addAll(org.chorem.entities.ClosedAbstract.extensions); exts.addAll(org.chorem.entities.CompanyAbstract.extensions); exts.addAll(org.chorem.entities.ConfigurationAbstract.extensions); exts.addAll(org.chorem.entities.ContactDetailsAbstract.extensions); + exts.addAll(org.chorem.entities.DeliveredAbstract.extensions); + exts.addAll(org.chorem.entities.DraftAbstract.extensions); exts.addAll(org.chorem.entities.EmployeeAbstract.extensions); exts.addAll(org.chorem.entities.EmployeeHRAbstract.extensions); exts.addAll(org.chorem.entities.EvaluationAbstract.extensions); @@ -177,12 +179,17 @@ exts.addAll(org.chorem.entities.ProjectAbstract.extensions); exts.addAll(org.chorem.entities.QuotationAbstract.extensions); exts.addAll(org.chorem.entities.ReferenceYearAbstract.extensions); + exts.addAll(org.chorem.entities.RejectedAbstract.extensions); + exts.addAll(org.chorem.entities.RSVAbstract.extensions); + exts.addAll(org.chorem.entities.SentAbstract.extensions); exts.addAll(org.chorem.entities.SkillAbstract.extensions); + exts.addAll(org.chorem.entities.StartedAbstract.extensions); exts.addAll(org.chorem.entities.TaskAbstract.extensions); exts.addAll(org.chorem.entities.TimeAbstract.extensions); exts.addAll(org.chorem.entities.TouchAbstract.extensions); exts.addAll(org.chorem.entities.VacationAbstract.extensions); exts.addAll(org.chorem.entities.VacationRequestAbstract.extensions); + exts.addAll(org.chorem.entities.WarrantyAbstract.extensions); exts.addAll(org.chorem.entities.WorkerAbstract.extensions); Added: trunk/chorem-entities/src/main/java/org/chorem/entities/Quotation18Migration.java =================================================================== --- trunk/chorem-entities/src/main/java/org/chorem/entities/Quotation18Migration.java (rev 0) +++ trunk/chorem-entities/src/main/java/org/chorem/entities/Quotation18Migration.java 2012-12-16 15:37:17 UTC (rev 289) @@ -0,0 +1,284 @@ +package org.chorem.entities; + +import org.nuiton.util.VersionUtil; +import org.nuiton.wikitty.WikittyService; +import org.nuiton.wikitty.WikittyUtil; +import org.nuiton.wikitty.entities.Wikitty; +import org.nuiton.wikitty.entities.WikittyExtension; +import org.nuiton.wikitty.services.WikittyExtensionMigrationRename; + +/** + * Migrate Quotation from version 18.0 to version 19.0 + * + * Quotation is now split into several extensions (one per status) + * + * @author jcouteau <couteau@codelutin.com> + * @since 0.3 + */ +public class Quotation18Migration extends WikittyExtensionMigrationRename { + + @Override + public Wikitty migrate(WikittyService service, Wikitty wikitty, + WikittyExtension oldExt, WikittyExtension newExt) { + Wikitty result = super.migrate(service, wikitty, oldExt, newExt); + + if (Quotation.EXT_QUOTATION.equals(newExt.getName())) { + String oldVersion = oldExt.getVersion(); + String newVersion = newExt.getVersion(); + if (!VersionUtil.greaterThan("18.0", oldVersion) + && !VersionUtil.smallerThan(newVersion, "19.0")) { + + + + //get status and switch case on it + String oldFieldName = WikittyUtil.getFQFieldName( + Quotation.EXT_QUOTATION, "status"); + String status = (String)wikitty.getFqField(oldFieldName); + if ("DRAFT".equals(status)){ + migrateToDraft(wikitty, result, service); + } + if ("SENT".equals(status)){ + migrateToSent(wikitty, result, service); + } + if ("ACCEPTED".equals(status)){ + migrateToAccepted(wikitty, result, service); + } + if ("REJECTED".equals(status)){ + migrateToRejected(wikitty, result, service); + } + if ("STARTED".equals(status)){ + migrateToStarted(wikitty, result, service); + } + if ("DELIVERED".equals(status)){ + migrateToDelivered(wikitty, result, service); + } + if ("RSV".equals(status)){ + migrateToRsv(wikitty, result, service); + } + if ("WARRANTY".equals(status)){ + migrateToWarranty(wikitty, result, service); + } + if ("CLOSED".equals(status)){ + migrateToClosed(wikitty, result, service); + } + } + } + + return result; + } + + /** + * Draft + * + * Add Draft extension + * Migrate Quotation.reference to Draft.reference + * + */ + protected void migrateToDraft(Wikitty old, Wikitty result, + WikittyService service){ + + // Add Draft extension + WikittyExtension draft = service.restoreExtensionLastVersion(null, Draft.EXT_DRAFT); + result.addExtension(draft); + + // Migrate Quotation.reference to Draft.reference + String oldFieldName = WikittyUtil.getFQFieldName( + Quotation.EXT_QUOTATION, "reference"); + String newFieldName = WikittyUtil.getFQFieldName( + Draft.EXT_DRAFT, Draft.FIELD_DRAFT_REFERENCE); + Object v = old.getFqField(oldFieldName); + result.setFqField(newFieldName, v); + } + + /** + * Sent + * + * Migrate Draft first + * Add Sent extension + * Migrate Quotation.postedDate to Sent.postedDate + * + */ + protected void migrateToSent(Wikitty old, Wikitty result, + WikittyService service){ + + migrateToDraft(old, result, service); + + // Add Sent extension + WikittyExtension sent = service.restoreExtensionLastVersion(null, + Sent.EXT_SENT); + result.addExtension(sent); + + // Migrate Quotation.postedDate to Sent.postedDate + String oldFieldName = WikittyUtil.getFQFieldName( + Quotation.EXT_QUOTATION, "postedDate"); + String newFieldName = WikittyUtil.getFQFieldName( + Sent.EXT_SENT, Sent.FIELD_SENT_POSTEDDATE); + Object v = old.getFqField(oldFieldName); + result.setFqField(newFieldName, v); + } + + /** + * Accepted + * + * Migrate Sent first + * Add Accepted extension + * + */ + protected void migrateToAccepted(Wikitty old, Wikitty result, + WikittyService service){ + + migrateToSent(old, result, service); + + //Add Accepted extension + WikittyExtension accepted = service.restoreExtensionLastVersion(null, + Accepted.EXT_ACCEPTED); + result.addExtension(accepted); + + } + + /** + * Rejected + * + * Migrate Sent first + * Add Rejected extension + * + */ + protected void migrateToRejected(Wikitty old, Wikitty result, + WikittyService service){ + + migrateToSent(old, result, service); + + //Add Rejected extension + WikittyExtension rejected = service.restoreExtensionLastVersion(null, + Rejected.EXT_REJECTED); + result.addExtension(rejected); + + } + + /** + * Started + * + * Migrate Accepted first + * Add Started extension + * + */ + protected void migrateToStarted(Wikitty old, Wikitty result, + WikittyService service){ + + migrateToAccepted(old, result, service); + + //Add Started extension + WikittyExtension started = service.restoreExtensionLastVersion(null, + Started.EXT_STARTED); + result.addExtension(started); + + } + + /** + * Delivered + * + * Migrate Started + * Add Delivered extension + */ + protected void migrateToDelivered(Wikitty old, Wikitty result, + WikittyService service){ + + migrateToStarted(old, result, service); + + //Add Delivered extension + WikittyExtension delivered = service.restoreExtensionLastVersion(null, + Delivered.EXT_DELIVERED); + result.addExtension(delivered); + + } + + /** + * RSV + * + * Migrate Delivered + * Add RSV extension + * Migrate Quotation.vrsStart to RSV.rsvStart + * Migrate Quotation.vrsPeriod to RSV.rsvPeriod + */ + protected void migrateToRsv(Wikitty old, Wikitty result, + WikittyService service){ + + migrateToDelivered(old, result, service); + + //Add RSV extension + WikittyExtension rsv = service.restoreExtensionLastVersion(null, + RSV.EXT_RSV); + result.addExtension(rsv); + + // Migrate Quotation.vrsStart to RSV.rsvStart + String oldRsvStartFieldName = WikittyUtil.getFQFieldName( + Quotation.EXT_QUOTATION, "vrsStart"); + String newRsvStartFieldName = WikittyUtil.getFQFieldName( + RSV.EXT_RSV, RSV.FIELD_RSV_RSVSTART); + Object rsvStart = old.getFqField(oldRsvStartFieldName); + result.setFqField(newRsvStartFieldName, rsvStart); + + // Migrate Quotation.vrsPeriod to RSV.rsvPeriod + String oldRsvPeriodFieldName = WikittyUtil.getFQFieldName( + Quotation.EXT_QUOTATION, "vrsPeriod"); + String newRsvPeriodFieldName = WikittyUtil.getFQFieldName( + RSV.EXT_RSV, RSV.FIELD_RSV_RSVPERIOD); + Object rsvPeriod = old.getFqField(oldRsvPeriodFieldName); + result.setFqField(newRsvPeriodFieldName, rsvPeriod); + + } + + /** + * Warranty + * + * Migrate Rsv + * Add Warranty extension + * Migrate Quotation.warrantyStart to Warranty.warrantyStart + * Migrate Quotation.warrantyPeriod to Warranty.warrantyPeriod + */ + protected void migrateToWarranty(Wikitty old, Wikitty result, + WikittyService service){ + + migrateToRsv(old, result, service); + + //Add Warranty extension + WikittyExtension warranty = service.restoreExtensionLastVersion(null, + Warranty.EXT_WARRANTY); + result.addExtension(warranty); + + // Migrate Quotation.warrantyStart to Warranty.warrantyStart + String oldWarrantyStartFieldName = WikittyUtil.getFQFieldName( + Quotation.EXT_QUOTATION, "warrantyStart"); + String newWarrantyStartFieldName = WikittyUtil.getFQFieldName( + Warranty.EXT_WARRANTY, Warranty.FIELD_WARRANTY_WARRANTYSTART); + Object warrantyStart = old.getFqField(oldWarrantyStartFieldName); + result.setFqField(newWarrantyStartFieldName, warrantyStart); + + // Migrate Quotation.warrantyPeriod to Warranty.warrantyPeriod + String oldWarrantyPeriodFieldName = WikittyUtil.getFQFieldName( + Quotation.EXT_QUOTATION, "warrantyPeriod"); + String newWarrantyPeriodFieldName = WikittyUtil.getFQFieldName( + Warranty.EXT_WARRANTY, Warranty.FIELD_WARRANTY_WARRANTYPERIOD); + Object warrantyPeriod = old.getFqField(oldWarrantyPeriodFieldName); + result.setFqField(newWarrantyPeriodFieldName, warrantyPeriod); + + } + + /** + * Closed + * + * Migrate warranty + * Add Closed extension + */ + protected void migrateToClosed(Wikitty old, Wikitty result, + WikittyService service){ + + migrateToWarranty(old, result, service); + + //Add Closed extension + WikittyExtension closed = service.restoreExtensionLastVersion(null, + Closed.EXT_CLOSED); + result.addExtension(closed); + + } +} Modified: trunk/chorem-entities/src/main/java/org/chorem/entities/QuotationMigration.java =================================================================== --- trunk/chorem-entities/src/main/java/org/chorem/entities/QuotationMigration.java 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/chorem-entities/src/main/java/org/chorem/entities/QuotationMigration.java 2012-12-16 15:37:17 UTC (rev 289) @@ -1,10 +1,4 @@ /* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package org.chorem.entities; - -/* * #%L * Chorem entities * $Id:$ @@ -16,30 +10,22 @@ * 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% */ +package org.chorem.entities; -import java.beans.PropertyChangeListener; -import java.math.BigDecimal; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; -import org.chorem.ChoremClient; import org.nuiton.util.VersionUtil; import org.nuiton.wikitty.WikittyService; import org.nuiton.wikitty.WikittyUtil; -import org.nuiton.wikitty.entities.FieldType; import org.nuiton.wikitty.entities.Wikitty; import org.nuiton.wikitty.entities.WikittyExtension; import org.nuiton.wikitty.services.WikittyExtensionMigrationRename; Modified: trunk/chorem-entities/src/main/java/org/chorem/entities/VacationMigration.java =================================================================== --- trunk/chorem-entities/src/main/java/org/chorem/entities/VacationMigration.java 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/chorem-entities/src/main/java/org/chorem/entities/VacationMigration.java 2012-12-16 15:37:17 UTC (rev 289) @@ -1,10 +1,4 @@ /* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package org.chorem.entities; - -/* * #%L * Chorem entities * $Id:$ @@ -16,32 +10,22 @@ * 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% */ +package org.chorem.entities; -import java.beans.PropertyChangeListener; -import java.math.BigDecimal; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.chorem.ChoremClient; import org.nuiton.util.VersionUtil; import org.nuiton.wikitty.WikittyService; import org.nuiton.wikitty.WikittyUtil; -import org.nuiton.wikitty.entities.FieldType; import org.nuiton.wikitty.entities.Wikitty; import org.nuiton.wikitty.entities.WikittyExtension; import org.nuiton.wikitty.services.WikittyExtensionMigrationRename; @@ -52,29 +36,24 @@ */ public class VacationMigration extends WikittyExtensionMigrationRename { - static private Log log = LogFactory.getLog(VacationMigration.class); - /** * Passage de la v9 à la v10 : Suppression de 3 champs et ajout de 3 nveaux * */ - protected void clearFieldDescription(Wikitty old, Wikitty result) { + protected void clearFieldDescription(Wikitty result) { String fDescription = WikittyUtil.getFQFieldName(Employee.EXT_EMPLOYEE, "description"); result.clearField(fDescription); } - protected void clearFieldType(Wikitty old, Wikitty result) { + protected void clearFieldType(Wikitty result) { String fType = WikittyUtil.getFQFieldName(Employee.EXT_EMPLOYEE, "type"); result.clearField(fType); } - protected void clearFieldStatus(Wikitty old, Wikitty result) { + protected void clearFieldStatus(Wikitty result) { String fStatus = WikittyUtil.getFQFieldName(Employee.EXT_EMPLOYEE, "status"); result.clearField(fStatus); } - - - @Override public Wikitty migrate(WikittyService service, Wikitty wikitty, WikittyExtension oldExt, WikittyExtension newExt) { @@ -85,14 +64,12 @@ String newVersion = newExt.getVersion(); if (!VersionUtil.greaterThan("9.0", oldVersion) && !VersionUtil.smallerThan(newVersion, "10.0")) { - clearFieldDescription(wikitty, result); - clearFieldType(wikitty, result); - clearFieldStatus(wikitty, result); + clearFieldDescription(result); + clearFieldType(result); + clearFieldStatus(result); } } return result; } - - } Modified: trunk/chorem-entities/src/main/xmi/chorem-model.properties =================================================================== --- trunk/chorem-entities/src/main/xmi/chorem-model.properties 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/chorem-entities/src/main/xmi/chorem-model.properties 2012-12-16 15:37:17 UTC (rev 289) @@ -134,7 +134,6 @@ org.chorem.entities.Invoice.attribute.supplier.tagvalue.help=La personne chez Code Lutin qui g\u00e8re la facturation org.chorem.entities.Invoice.attribute.parent.tagvalue.allowed=Company,Person,Employee org.chorem.entities.Invoice.attribute.customer.tagvalue.help=La personne chez le client \u00e0 qui ont a envoyer la facture -org.chorem.entities.Invoice.attribute.parent.tagvalue.allowed=Company,Person,Employee # # Invoiceable # @@ -172,7 +171,7 @@ org.chorem.entities.Person.class.tagvalue.version=7.0 org.chorem.entities.Person.class.tagvalue.toString=%Person.lastName$s %Person.firstName|noname$s org.chorem.entities.Person.class.tagvalue.sortOrder=Person.lastName,Person.firstName -org.chorem.entities.Person.attribute.diploma.tagvalue.help=Le plus haut dipl\u00f4me obtenu +org.chorem.entities.Person.attribute.diploma.tagvalue.help=Le plus haut diplôme obtenu # # PersonSkill (a mettre ici) # @@ -189,12 +188,10 @@ # # Quotation # -org.chorem.entities.Quotation.class.tagvalue.version=18.0 +org.chorem.entities.Quotation.class.tagvalue.version=19.0 org.chorem.entities.Quotation.class.tagvalue.preload=Quotation.project;Quotation.customer;Quotation.supplier;Quotation.category -org.chorem.entities.Quotation.class.tagvalue.toString=%Interval.beginDate$tF-%Interval.endDate$tF %Quotation.reference|noref$s(%Quotation.category|noCategory$s) %Quotation.description|nodescription$s -org.chorem.entities.Quotation.class.tagvalue.sortOrder=Interval.beginDate desc,Interval.endDate,Quotation.reference,Quotation.type,Quotation.description -org.chorem.entities.Quotation.attribute.status.tagvalue.allowed=LEAD,DRAFT,SENT,REJECTED,ACCEPTED,STARTED,DELIVERED,RSV,WARRANTY,CLOSED -org.chorem.entities.Quotation.attribute.reference.tagvalue.help=R\u00e9f\u00e9rence du devis +org.chorem.entities.Quotation.class.tagvalue.toString=%Interval.beginDate$tF-%Interval.endDate$tF (%Quotation.category|noCategory$s) %Quotation.description|nodescription$s +org.chorem.entities.Quotation.class.tagvalue.sortOrder=Interval.beginDate desc,Interval.endDate,Quotation.type,Quotation.description org.chorem.entities.Quotation.attribute.description.tagvalue.help=R\u00e9sum\u00e9 du devis (en quelque mot) org.chorem.entities.Quotation.attribute.description.tagvalue.subtype=text/rst org.chorem.entities.Quotation.attribute.estimatedDays.tagvalue.help=Le nombre de jour estim\u00e9 pour ce devis @@ -207,19 +204,81 @@ org.chorem.entities.Quotation.attribute.conversionHope.tagvalue.subtype=percent org.chorem.entities.Quotation.attribute.conversionHope.tagvalue.min=0 org.chorem.entities.Quotation.attribute.conversionHope.tagvalue.max=100 -org.chorem.entities.Quotation.attribute.status.tagvalue.help=\u00c9tat d'avancement de ce devis -org.chorem.entities.Quotation.attribute.vrsPeriod.tagvalue.help=Nombre de jour de VSR (Validation en Service R\u00e9gulier) -org.chorem.entities.Quotation.attribute.vrsPeriod.tagvalue.subtype=integer -org.chorem.entities.Quotation.attribute.warrantyPeriod.tagvalue.help=Nombre de jour de garantie -org.chorem.entities.Quotation.attribute.warrantyPeriod.tagvalue.subtype=integer -org.chorem.entities.Quotation.attribute.vrsStart.tagvalue.help=Date de d\u00e9but de la VSR (Validation en Service R\u00e9gulier) -org.chorem.entities.Quotation.attribute.warrantyStart.tagvalue.help=Date de d\u00e9but de la garantie org.chorem.entities.Quotation.attribute.supplier.tagvalue.help=La personne en charge du dossier chez Code Lutin org.chorem.entities.Quotation.attribute.supplier.tagvalue.allowedQuery=Employee.company="1628bcf9-82ea-440d-ab8d-ea93498af2d9" org.chorem.entities.Quotation.attribute.customer.tagvalue.help=La personne en charge du dossier chez le client org.chorem.entities.Quotation.attribute.project.tagvalue.help=Le projet auquel se rapport ce devis org.chorem.entities.Quotation.attribute.category.tagvalue.help=La cat\u00e9gorie de ce devis + # +# Draft +# +org.chorem.entities.Draft.class.tagvalue.version=1.0 +org.chorem.entities.Draft.class.tagvalue.toString=%Draft.reference|noref$s(%Quotation.category|noCategory$s) %Quotation.description|nodescription$s +org.chorem.entities.Draft.attribute.reference.tagvalue.help=Référence du devis +org.chorem.entities.Draft.attribute.sendingDate.tagvalue.help=Date limite d'envoi + +# +# Sent +# +org.chorem.entities.Sent.class.tagvalue.version=1.0 +org.chorem.entities.Sent.class.tagvalue.toString=%Sent.reference|noref$s(%Quotation.category|noCategory$s) %Quotation.description|nodescription$s +org.chorem.entities.Sent.attribute.postedDate.tagvalue.help=Date d'envoi + +# +# Accepted +# +org.chorem.entities.Accepted.class.tagvalue.version=1.0 +org.chorem.entities.Accepted.class.tagvalue.toString=%Sent.reference|noref$s(%Quotation.category|noCategory$s) %Quotation.description|nodescription$s +org.chorem.entities.Accepted.attribute.acceptedDate.tagvalue.help=Date d'acceptation + +# +# Rejected +# +org.chorem.entities.Rejected.class.tagvalue.version=1.0 +org.chorem.entities.Rejected.class.tagvalue.toString=%Sent.reference|noref$s(%Quotation.category|noCategory$s) %Quotation.description|nodescription$s +org.chorem.entities.Rejected.attribute.rejectedDate.tagvalue.help=Date de refus + +# +# Started +# +org.chorem.entities.Started.class.tagvalue.version=1.0 +org.chorem.entities.Started.class.tagvalue.toString=%Sent.reference|noref$s(%Quotation.category|noCategory$s) %Quotation.description|nodescription$s +org.chorem.entities.Started.attribute.startedDate.tagvalue.help=Date de début de projet + +# +# Delivered +# +org.chorem.entities.Delivered.class.tagvalue.version=1.0 +org.chorem.entities.Delivered.class.tagvalue.toString=%Sent.reference|noref$s(%Quotation.category|noCategory$s) %Quotation.description|nodescription$s +org.chorem.entities.Delivered.attribute.deliveryDate.tagvalue.help=Date de livraison + +# +# RSV +# +org.chorem.entities.RSV.class.tagvalue.version=1.0 +org.chorem.entities.RSV.class.tagvalue.toString=%Sent.reference|noref$s(%Quotation.category|noCategory$s) %Quotation.description|nodescription$s +org.chorem.entities.RSV.attribute.rsvStart.tagvalue.help=Date de début de VSR +org.chorem.entities.RSV.attribute.rsvPeriod.tagvalue.help=Durée de la de VSR (en jours) +org.chorem.entities.RSV.attribute.rsvPeriod.tagvalue.subtype=integer + +# +# Warranty +# +org.chorem.entities.Warranty.class.tagvalue.version=1.0 +org.chorem.entities.Warranty.class.tagvalue.toString=%Sent.reference|noref$s(%Quotation.category|noCategory$s) %Quotation.description|nodescription$s +org.chorem.entities.Warranty.attribute.warrantyStart.tagvalue.help=Date de début de garantie +org.chorem.entities.Warranty.attribute.warrantyPeriod.tagvalue.help=Durée de la de garantie (en jours) +org.chorem.entities.Warranty.attribute.warrantyPeriod.tagvalue.subtype=integer + +# +# Closed +# +org.chorem.entities.Closed.class.tagvalue.version=1.0 +org.chorem.entities.Closed.class.tagvalue.toString=%Sent.reference|noref$s(%Quotation.category|noCategory$s) %Quotation.description|nodescription$s +org.chorem.entities.Closed.attribute.deliveryDate.tagvalue.help=Date de fin de projet + +# # ReferenceYear # org.chorem.entities.ReferenceYear.class.tagvalue.version=1.0 Modified: trunk/chorem-entities/src/main/xmi/chorem-model.zargo =================================================================== (Binary files differ) Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java =================================================================== --- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/DashboardAction.java 2012-12-16 15:37:17 UTC (rev 289) @@ -23,15 +23,6 @@ package org.chorem.webmotion.actions; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; @@ -41,34 +32,44 @@ import org.chorem.ChoremClient; import org.chorem.ChoremQueryHelper; import org.chorem.ChoremQueryMaker; +import org.chorem.entities.Accepted; import org.chorem.entities.Attachment; import org.chorem.entities.Category; import org.chorem.entities.Configuration; import org.chorem.entities.Employee; -import org.chorem.entities.EmployeeHR; import org.chorem.entities.Interval; import org.chorem.entities.Invoice; import org.chorem.entities.Quotation; import org.chorem.entities.QuotationStatus; +import org.chorem.entities.Sent; +import org.chorem.entities.Started; import org.chorem.entities.Task; import org.chorem.entities.TaskStatus; import org.chorem.entities.Time; import org.chorem.entities.Touch; -import org.chorem.entities.Vacation; -import org.chorem.entities.VacationStatus; +import org.chorem.entities.Warranty; import org.debux.webmotion.server.WebMotionController; import org.debux.webmotion.server.render.Render; import org.nuiton.util.DateUtil; import org.nuiton.wikitty.WikittyUtil; import org.nuiton.wikitty.entities.Element; import org.nuiton.wikitty.entities.ElementField; -import org.nuiton.wikitty.entities.WikittyExtension; import org.nuiton.wikitty.query.WikittyQuery; import org.nuiton.wikitty.query.WikittyQueryMaker; import org.nuiton.wikitty.query.WikittyQueryResult; import org.nuiton.wikitty.query.WikittyQueryResultTreeNode; import org.nuiton.wikitty.query.conditions.Aggregate; +import java.util.Calendar; +import java.util.Collection; +import java.util.Date; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + /** * * @author poussin @@ -322,7 +323,8 @@ * * @param client wikitty client injected by wm * @param query query to filter projet (can be null) - * @param status status required by quotation to appear + * @param statusStart status interval start (extension name) + * @param statusEnd status interval end (extension name). (Can be null) * @param jspRender jsp used to render result * @param title title of jsp page * @param computeTask true if we want to compute task info @@ -331,7 +333,7 @@ */ protected Render quotationFilter(ChoremClient client, Date start, Date end, String query, - EnumSet<QuotationStatus> status, String jspRender, + String statusStart, String statusEnd, String jspRender, String title, boolean computeTask) { if (start == null) { @@ -343,21 +345,26 @@ end = DateUtils.setMonths(start, Calendar.DECEMBER); } - // recherche de la configuration pour les calcules + // recherche de la configuration pour les calculs Configuration config = client.getConfiguration(); // recuperation des quotations en fonction de leur status - WikittyQuery quotationQuery = new WikittyQueryMaker().and() + WikittyQueryMaker quotationQueryMaker = new WikittyQueryMaker().and() .parse(query) - .containsOne(Quotation.FQ_FIELD_QUOTATION_STATUS, status) - .or() + .exteq(statusStart); + + if (statusEnd != null){ + quotationQueryMaker = quotationQueryMaker.extne(statusEnd); + } + + WikittyQuery quotationQuery = quotationQueryMaker.or() .bw(Interval.FQ_FIELD_INTERVAL_BEGINDATE, start, end) .bw(Interval.FQ_FIELD_INTERVAL_ENDDATE, start, end) - .bw(Quotation.FQ_FIELD_QUOTATION_POSTEDDATE, start, end) + .bw(Sent.FQ_FIELD_SENT_POSTEDDATE, start, end) .and() .isNull(Interval.FQ_FIELD_INTERVAL_BEGINDATE) .isNull(Interval.FQ_FIELD_INTERVAL_ENDDATE) - .isNull(Quotation.FQ_FIELD_QUOTATION_POSTEDDATE) + .isNull(Sent.FQ_FIELD_SENT_POSTEDDATE) .end().setLimit(WikittyQuery.MAX); WikittyQueryResult<Quotation> result = @@ -449,26 +456,23 @@ public Render quotation(ChoremClient client, Date start, Date end, String query) { - EnumSet<QuotationStatus> status = EnumSet.range(QuotationStatus.LEAD, QuotationStatus.SENT); String jsp = "dashboardQuotation.jsp"; String title = "Les propositions en attente de réponse"; - return quotationFilter(client, start, end, query, status, jsp, title, false); + return quotationFilter(client, start, end, query, Quotation.EXT_QUOTATION, Accepted.EXT_ACCEPTED, jsp, title, false); } public Render projectOpen(ChoremClient client, Date start, Date end, String query) { - EnumSet<QuotationStatus> status = EnumSet.range(QuotationStatus.ACCEPTED, QuotationStatus.RSV); String jsp = "dashboardProject.jsp"; String title = "Les projets en cours"; - return quotationFilter(client, start, end, query, status, jsp, title, true); + return quotationFilter(client, start, end, query, Accepted.EXT_ACCEPTED, Warranty.EXT_WARRANTY, jsp, title, true); } public Render projectClosed(ChoremClient client, Date start, Date end, String query) { - EnumSet<QuotationStatus> status = EnumSet.range(QuotationStatus.WARRANTY, QuotationStatus.CLOSED); String jsp = "dashboardProject.jsp"; String title = "Les projets clos"; - return quotationFilter(client, start, end, query, status, jsp, title, true); + return quotationFilter(client, start, end, query, Warranty.EXT_WARRANTY, null, jsp, title, true); } static public class TaskInfo implements Cloneable { @@ -642,10 +646,9 @@ public Render profitability(ChoremClient client, Date start, Date end, String query) { - EnumSet<QuotationStatus> status = EnumSet.range(QuotationStatus.STARTED, QuotationStatus.CLOSED); String jsp = "dashboardProfitability.jsp"; String title = "Profitability"; - return quotationFilter(client, start, end, query, status, jsp, title, true); + return quotationFilter(client, start, end, query, Started.EXT_STARTED, null, jsp, title, true); } /** Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/SalesAction.java =================================================================== --- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/SalesAction.java 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/SalesAction.java 2012-12-16 15:37:17 UTC (rev 289) @@ -25,8 +25,13 @@ import org.apache.commons.lang3.time.DateUtils; import org.chorem.ChoremClient; +import org.chorem.entities.Accepted; +import org.chorem.entities.Draft; import org.chorem.entities.Quotation; import org.chorem.entities.QuotationStatus; +import org.chorem.entities.Rejected; +import org.chorem.entities.Sent; +import org.chorem.entities.Started; import org.debux.webmotion.server.WebMotionController; import org.debux.webmotion.server.render.Render; import org.nuiton.util.DateUtil; @@ -61,7 +66,8 @@ public Render lead(ChoremClient client) { // recuperation des quotations en statut lead WikittyQuery quotationQuery = new WikittyQueryMaker().and() - .eq(Quotation.FQ_FIELD_QUOTATION_STATUS, QuotationStatus.LEAD) + .exteq(Quotation.EXT_QUOTATION) + .extne(Draft.EXT_DRAFT) .end().setLimit(WikittyQuery.MAX); WikittyQueryResult<Quotation> result = @@ -91,7 +97,8 @@ public Render draft(ChoremClient client) { // recuperation des quotations en statut draft WikittyQuery quotationQuery = new WikittyQueryMaker().and() - .eq(Quotation.FQ_FIELD_QUOTATION_STATUS, QuotationStatus.DRAFT) + .exteq(Draft.EXT_DRAFT) + .extne(Sent.EXT_SENT) .end().setLimit(WikittyQuery.MAX); WikittyQueryResult<Quotation> result = @@ -120,7 +127,9 @@ public Render sent(ChoremClient client) { // recuperation des quotations en statut sent WikittyQuery quotationQuery = new WikittyQueryMaker().and() - .eq(Quotation.FQ_FIELD_QUOTATION_STATUS, QuotationStatus.SENT) + .exteq(Sent.EXT_SENT) + .extne(Accepted.EXT_ACCEPTED) + .extne(Rejected.EXT_REJECTED) .end().setLimit(WikittyQuery.MAX); WikittyQueryResult<Quotation> result = @@ -149,7 +158,8 @@ public Render accepted(ChoremClient client) { // recuperation des quotations en statut accepted WikittyQuery quotationQuery = new WikittyQueryMaker().and() - .eq(Quotation.FQ_FIELD_QUOTATION_STATUS, QuotationStatus.ACCEPTED) + .exteq(Accepted.EXT_ACCEPTED) + .extne(Started.EXT_STARTED) .end().setLimit(WikittyQuery.MAX); WikittyQueryResult<Quotation> result = @@ -191,8 +201,8 @@ //Nombre de devis envoyés sur l'année (N) WikittyQuery sentCurrentYearQuery = new WikittyQueryMaker().and() - .containsOne(Quotation.FQ_FIELD_QUOTATION_STATUS, sentStatus) - .bw(Quotation.FQ_FIELD_QUOTATION_POSTEDDATE, currentYearFirst, currentYearLast) + .exteq(Sent.EXT_SENT) + .bw(Sent.FQ_FIELD_SENT_POSTEDDATE, currentYearFirst, currentYearLast) .end().setLimit(WikittyQuery.MAX); WikittyQueryResult<Quotation> sentCurrentYearResult = @@ -201,8 +211,8 @@ //Nombre de devis envoyés sur l'année n-1 WikittyQuery sentPreviousYearQuery = new WikittyQueryMaker().and() - .containsOne(Quotation.FQ_FIELD_QUOTATION_STATUS, sentStatus) - .bw(Quotation.FQ_FIELD_QUOTATION_POSTEDDATE, previousYearFirst, previousYearLast) + .exteq(Sent.EXT_SENT) + .bw(Sent.FQ_FIELD_SENT_POSTEDDATE, previousYearFirst, previousYearLast) .end().setLimit(WikittyQuery.MAX); WikittyQueryResult<Quotation> sentPreviousYearResult = @@ -222,8 +232,8 @@ Date lastDayForQuotationData = DateUtil.getYesterday(baseValue); Date firstDayForQuotationData = DateUtils.addMonths(baseValue, -12); WikittyQuery sentQuotationDataQuery = new WikittyQueryMaker().and() - .containsOne(Quotation.FQ_FIELD_QUOTATION_STATUS, sentStatus) - .bw(Quotation.FQ_FIELD_QUOTATION_POSTEDDATE, + .exteq(Sent.EXT_SENT) + .bw(Sent.FQ_FIELD_SENT_POSTEDDATE, firstDayForQuotationData, lastDayForQuotationData) .end().setLimit(WikittyQuery.MAX); @@ -236,7 +246,7 @@ baseValue=firstDayOfMonth; WikittyQuery monthFacet = new WikittyQueryMaker().and() - .bw(Quotation.FQ_FIELD_QUOTATION_POSTEDDATE, firstDayOfMonth, lastDayOfMonth) + .bw(Sent.FQ_FIELD_SENT_POSTEDDATE, firstDayOfMonth, lastDayOfMonth) .end(); sentQuotationDataQuery = sentQuotationDataQuery.addFacetQuery(String.valueOf(i), monthFacet.getCondition()); @@ -281,46 +291,35 @@ } public Render send(ChoremClient client, String id) { - Quotation quotation = client.restore(Quotation.class, id); + Sent sent = client.restore(Sent.class, id); + sent.setPostedDate(new Date()); + client.store(sent); - quotation.setStatus(QuotationStatus.SENT.name()); - quotation.setPostedDate(new Date()); - - client.store(quotation); - return renderView("sales.jsp"); - } public Render accept(ChoremClient client, String id) { - Quotation quotation = client.restore(Quotation.class, id); + Accepted accepted = client.restore(Accepted.class, id); + accepted.setAcceptedDate(new Date()); + client.store(accepted); - quotation.setStatus(QuotationStatus.ACCEPTED.name()); - - client.store(quotation); - return renderView("sales.jsp"); - } public Render start(ChoremClient client, String id) { - Quotation quotation = client.restore(Quotation.class, id); - quotation.setStatus(QuotationStatus.STARTED.name()); + Started started = client.restore(Started.class, id); + started.setStartedDate(new Date()); + client.store(started); - client.store(quotation); - return renderView("sales.jsp"); } public Render answer(ChoremClient client, String id) { - Quotation quotation = client.restore(Quotation.class, id); + Draft draft = client.restore(Draft.class, id); + client.store(draft); - quotation.setStatus(QuotationStatus.DRAFT.name()); - - client.store(quotation); - return renderView("sales.jsp"); } Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardProject.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardProject.jsp 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardProject.jsp 2012-12-16 15:37:17 UTC (rev 289) @@ -57,7 +57,7 @@ <td class="number"><f:formatNumber type="number" value="${taskInfos.get(q.wikittyId).opened}"/></td> <td class="number"><f:formatNumber type="number" value="${taskInfos.get(q.wikittyId).closed}"/></td> <td class="currency"><w:display wikitty="${q.wikitty}" fqfield="Quotation.amount" label=""/></td> - <td class="currency"><w:display wikitty="${q.wikitty}" fqfield="Quotation.status" label=""/></td> + <td class="currency"><!--w:display wikitty="${q.wikitty}" fqfield="Quotation.status" label=""/--></td> <td><w:display wikitties="${attachments.get(q.wikittyId)}" toString="%Attachment.name|noname$s"/></td> </tr> </tbody> Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotation.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotation.jsp 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotation.jsp 2012-12-16 15:37:17 UTC (rev 289) @@ -55,7 +55,7 @@ <td class="percent"><w:display wikitty="${q.wikitty}" fqfield="Quotation.conversionHope" label=""/></td> <td class="currency"><f:formatNumber type="currency" value="${q.amount / q.estimatedDays}"/></td> <td class="currency"><w:display wikitty="${q.wikitty}" fqfield="Quotation.amount" label=""/></td> - <td class="nowrap"><w:display wikitty="${q.wikitty}" fqfield="Quotation.status" label=""/></td> + <td class="nowrap"><!--w:display wikitty="${q.wikitty}" fqfield="Quotation.status" label=""/--></td> <td><w:display wikitties="${attachments.get(q.wikittyId)}" toString="%Attachment.name|noname$s"/></td> </tr> </tbody> Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationAccepted.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationAccepted.jsp 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationAccepted.jsp 2012-12-16 15:37:17 UTC (rev 289) @@ -53,7 +53,7 @@ <td class="number"><w:display wikitty="${q.wikitty}" fqfield="Quotation.estimatedDays" label=""/></td> <td class="currency"><f:formatNumber type="currency" value="${q.amount / q.estimatedDays}"/></td> <td class="currency"><w:display wikitty="${q.wikitty}" fqfield="Quotation.amount" label=""/></td> - <td><!--w:display wikitty="${q.wikitty}" fqfield="Quotation.acceptedDate" label=""/--></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Accepted.acceptedDate" label=""/></td> <td><a class="btn btn-success" href="<c:url value="/sales/start/${q.wikittyId}"/>">Start</a></td> </tr> </tbody> Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationDraft.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationDraft.jsp 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationDraft.jsp 2012-12-16 15:37:17 UTC (rev 289) @@ -55,7 +55,7 @@ <td class="percent"><w:display wikitty="${q.wikitty}" fqfield="Quotation.conversionHope" label=""/></td> <td class="currency"><f:formatNumber type="currency" value="${q.amount / q.estimatedDays}"/></td> <td class="currency"><w:display wikitty="${q.wikitty}" fqfield="Quotation.amount" label=""/></td> - <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.postedDate" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Draft.sendingDate" label=""/></td> <td><a class="btn btn-success" href="<c:url value="/sales/send/${q.wikittyId}"/>">Send</a></td> </tr> </tbody> Modified: trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationSent.jsp =================================================================== --- trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationSent.jsp 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/chorem-webmotion/src/main/webapp/WEB-INF/jsp/dashboardQuotationSent.jsp 2012-12-16 15:37:17 UTC (rev 289) @@ -55,7 +55,7 @@ <td class="percent"><w:display wikitty="${q.wikitty}" fqfield="Quotation.conversionHope" label=""/></td> <td class="currency"><f:formatNumber type="currency" value="${q.amount / q.estimatedDays}"/></td> <td class="currency"><w:display wikitty="${q.wikitty}" fqfield="Quotation.amount" label=""/></td> - <td><w:display wikitty="${q.wikitty}" fqfield="Quotation.postedDate" label=""/></td> + <td><w:display wikitty="${q.wikitty}" fqfield="Sent.postedDate" label=""/></td> <td><a class="btn btn-success" href="<c:url value="/sales/accept/${q.wikittyId}"/>">Accept</a></td> </tr> </tbody> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2012-12-10 09:17:30 UTC (rev 288) +++ trunk/pom.xml 2012-12-16 15:37:17 UTC (rev 289) @@ -94,7 +94,7 @@ <opencsvVersion>2.3</opencsvVersion> <processPluginVersion>1.1</processPluginVersion> - <eugenePluginVersion>2.5.5</eugenePluginVersion> + <eugenePluginVersion>2.6</eugenePluginVersion> <nuitonUtilsVersion>2.6.5-SNAPSHOT</nuitonUtilsVersion> <nuitonWebVersion>1.7</nuitonWebVersion> <nuitonI18nVersion>2.3.1</nuitonI18nVersion>
participants (1)
-
jcouteau@users.chorem.org