Chorem-commits
Threads by month
- ----- 2026 -----
- August
- July
- 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
April 2011
- 3 participants
- 70 discussions
r78 - in trunk: chorem-entities/src/main chorem-entities/src/main/java chorem-entities/src/main/java/org chorem-entities/src/main/java/org/chorem chorem-entities/src/main/java/org/chorem/entities chorem-web chorem-web/src/main/java/org/chorem/action
by bpoussin@users.chorem.org April 13, 2011
by bpoussin@users.chorem.org April 13, 2011
April 13, 2011
Author: bpoussin
Date: 2011-04-14 00:03:31 +0200 (Thu, 14 Apr 2011)
New Revision: 78
Url: http://chorem.org/repositories/revision/chorem/78
Log:
ajout de quelques requetes pour la page d'accueil
Added:
trunk/chorem-entities/src/main/java/
trunk/chorem-entities/src/main/java/org/
trunk/chorem-entities/src/main/java/org/chorem/
trunk/chorem-entities/src/main/java/org/chorem/entities/
trunk/chorem-entities/src/main/java/org/chorem/entities/InvoiceableUtil.java
Modified:
trunk/chorem-web/pom.xml
trunk/chorem-web/src/main/java/org/chorem/action/HomeAction.java
Added: trunk/chorem-entities/src/main/java/org/chorem/entities/InvoiceableUtil.java
===================================================================
--- trunk/chorem-entities/src/main/java/org/chorem/entities/InvoiceableUtil.java (rev 0)
+++ trunk/chorem-entities/src/main/java/org/chorem/entities/InvoiceableUtil.java 2011-04-13 22:03:31 UTC (rev 78)
@@ -0,0 +1,48 @@
+package org.chorem.entities;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.wikitty.ScriptEvaluator;
+import org.nuiton.wikitty.WikittyProxy;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
+ */
+public class InvoiceableUtil {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(InvoiceableUtil.class);
+
+ static public boolean evalCondition(WikittyProxy proxy, Invoiceable invoiceable) {
+ Map<String, Object> bindings = new HashMap<String, Object>();
+ bindings.put("proxy", proxy);
+ bindings.put("invoiceable", invoiceable);
+ Object resultEval = ScriptEvaluator.eval(null,
+ invoiceable.getName(), invoiceable.getCondition(),
+ invoiceable.getMimetype(), bindings);
+ boolean result= Boolean.TRUE.equals(resultEval);
+ return result;
+ }
+
+ static public double evalValue(WikittyProxy proxy, Invoiceable invoiceable) {
+ Map<String, Object> bindings = new HashMap<String, Object>();
+ bindings.put("proxy", proxy);
+ bindings.put("invoiceable", invoiceable);
+ Object resultEval = ScriptEvaluator.eval(null,
+ invoiceable.getName(), invoiceable.getValue(),
+ invoiceable.getMimetype(), bindings);
+
+ double result = 0;
+ if (resultEval instanceof Number) {
+ result = ((Number) resultEval).doubleValue();
+ }
+ return result;
+ }
+}
Modified: trunk/chorem-web/pom.xml
===================================================================
--- trunk/chorem-web/pom.xml 2011-04-13 21:44:26 UTC (rev 77)
+++ trunk/chorem-web/pom.xml 2011-04-13 22:03:31 UTC (rev 78)
@@ -50,7 +50,7 @@
<dependency>
<groupId>org.chorem.chorem</groupId>
<artifactId>chorem-entities</artifactId>
- <version>${version}</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
Modified: trunk/chorem-web/src/main/java/org/chorem/action/HomeAction.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/action/HomeAction.java 2011-04-13 21:44:26 UTC (rev 77)
+++ trunk/chorem-web/src/main/java/org/chorem/action/HomeAction.java 2011-04-13 22:03:31 UTC (rev 78)
@@ -4,32 +4,25 @@
import java.text.ParseException;
import java.util.Collections;
import java.util.Date;
-import java.util.HashSet;
-import java.util.LinkedList;
import java.util.List;
-import java.util.Set;
import static org.nuiton.i18n.I18n.n_;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.chorem.entities.Company;
-import org.chorem.entities.Interval;
import org.chorem.entities.Invoice;
import org.chorem.entities.Invoiceable;
+import org.chorem.entities.InvoiceableImpl;
+import org.chorem.entities.InvoiceableUtil;
import org.chorem.entities.Person;
-import org.chorem.entities.PersonImpl;
import org.chorem.entities.ProjectOrder;
import org.chorem.entities.Task;
import org.chorem.entities.Touch;
-import org.chorem.entities.TouchImpl;
import org.chorem.entities.Worker;
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.WikittyUtil;
-import org.nuiton.wikitty.entities.BusinessEntity;
-import org.nuiton.wikitty.entities.BusinessEntityImpl;
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.entities.WikittyUser;
-import org.nuiton.wikitty.entities.WikittyUserImpl;
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.FacetTopic;
import org.nuiton.wikitty.search.PagedResult;
@@ -83,7 +76,7 @@
/** nombre de facture a envoyer */
protected int nbInvoiceToSend = 0;
/** montant des factures a envoyer*/
- protected int invoiceAmountToSend = 0;
+ protected double invoiceAmountToSend = 0;
/** cash flow pour les 3 prochains moins */
protected double[] cashFlow = new double[3];
@@ -106,7 +99,7 @@
String now = WikittyUtil.formatDate(new Date());
WikittyUser user = proxy.getUser();
- String userId = null;
+ String userId = "nobody";
if (user != null) {
userId = user.getWikittyId();
}
@@ -130,25 +123,22 @@
.criteria().addFacetField(ProjectOrder.FQ_FIELD_PROJECTORDER_STATUS).setEndIndex(0);
Criteria taskOpen = Search.query().exteq(Task.EXT_TASK)
- .eq(Task.FQ_FIELD_TASK_STATUS, "")
+ .neq(Task.FQ_FIELD_TASK_STATUS, "closed")
.criteria().setEndIndex(0);
Search taskOpenForMeSearch = Search.query().exteq(Worker.EXT_WORKER)
.eq(Worker.FQ_FIELD_WORKER_PERSON, userId);
taskOpenForMeSearch.associated(Worker.FQ_FIELD_WORKER_TASK)
- .eq(Task.FQ_FIELD_TASK_STATUS, "closed");
+ .neq(Task.FQ_FIELD_TASK_STATUS, "closed");
Criteria taskOpenForMe = taskOpenForMeSearch.criteria().setEndIndex(0);
Criteria invoiceToSend = Search.query().exteq(Invoiceable.EXT_INVOICEABLE)
.extneq(Invoice.EXT_INVOICE)
.criteria().setEndIndex(0);
- // FIXME poussin 20110406 il faut evaluer les conditions pour savoir
- // lesquels sont reellement a facturer. idem pour les values
-
- PagedResult<Wikitty>[] results = proxy.multiFindAllByCriteria(
+ PagedResult<Wikitty>[] results = proxy.findAllByCriteria(
company,
person,
touchLast7days,
@@ -174,8 +164,25 @@
nbTaskOpen = results[5].getNumFound();
nbTaskOpenForMe = results[6].getNumFound();
- nbInvoiceToSend = results[7].getNumFound();
-// invoiceAmountToSend = results[10].getNumFound();
+ // On evalue les conditions pour savoir
+ // lesquels sont reellement a facturer. idem pour les values
+ List<InvoiceableImpl> invoiceable =
+ results[7].cast(proxy, InvoiceableImpl.class).getAll();
+
+ int invoiceableCount = 0;
+ double invoiceableAmount = 0;
+ for(InvoiceableImpl i : invoiceable) {
+ boolean cond = InvoiceableUtil.evalCondition(proxy, i);
+ if (cond) {
+ invoiceableCount ++;
+ invoiceableAmount += InvoiceableUtil.evalValue(proxy, i);
+ }
+ }
+
+ nbInvoiceToSend = invoiceableCount;
+ invoiceAmountToSend = invoiceableAmount;
+
+
//
// cashFlow = new double[]{
// results[11].getNumFound(),
@@ -252,7 +259,7 @@
return nbTouchForLast7DaysForMe;
}
- public int getInvoiceAmountToSend() {
+ public double getInvoiceAmountToSend() {
return invoiceAmountToSend;
}
1
0
April 13, 2011
Author: bpoussin
Date: 2011-04-13 23:44:26 +0200 (Wed, 13 Apr 2011)
New Revision: 77
Url: http://chorem.org/repositories/revision/chorem/77
Log:
Utilisation de ApplicationConfig de la bonne facon (pas d'heritage)
Modified:
trunk/chorem-web/src/main/java/org/chorem/ChoremConfig.java
trunk/chorem-web/src/main/java/org/chorem/ChoremProxy.java
trunk/pom.xml
Modified: trunk/chorem-web/src/main/java/org/chorem/ChoremConfig.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/ChoremConfig.java 2011-04-13 12:59:49 UTC (rev 76)
+++ trunk/chorem-web/src/main/java/org/chorem/ChoremConfig.java 2011-04-13 21:44:26 UTC (rev 77)
@@ -1,39 +1,55 @@
package org.chorem;
-import org.apache.commons.lang.UnhandledException;
+import java.util.Properties;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.StringUtil;
+import org.nuiton.util.ArgumentsParserException;
import static org.nuiton.i18n.I18n._;
/**
* Inits chorem configuration
*/
-public class ChoremConfig extends ApplicationConfig {
+public class ChoremConfig {
- protected static ChoremConfig instance;
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(ChoremConfig.class);
+
+ static protected ApplicationConfig instance = null;
- public ChoremConfig() {
+ private ChoremConfig() {
+ }
- //Sets default option (including configuration file name : important)
- for (Option o : Option.values()) {
- if (o.defaultValue != null) {
- setDefaultOption(o.key, o.defaultValue);
+ static public ApplicationConfig getConfig() {
+ return getConfig(null, null);
+ }
+
+ static public ApplicationConfig getConfig(
+ Properties props, String configFilename, String ... args) {
+ ApplicationConfig conf = new ApplicationConfig(
+ Option.class, null, props, configFilename);
+
+ try {
+ conf.parse(args);
+ } catch (ArgumentsParserException eee) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't load chorem configuration", eee);
}
}
- }
+ return conf;
+ }
/**
* Returns config instance (singleton)
* @return ChoremConfig instance
*/
- public static synchronized ChoremConfig getInstance() {
+ public static ApplicationConfig getInstance() {
if (instance == null) {
- try {
- instance = new ChoremConfig();
- instance.parse(StringUtil.EMPTY_STRING_ARRAY);
- } catch (Exception e) {
- throw new UnhandledException(e);
+ synchronized(ChoremConfig.class) {
+ if (instance == null) {
+ instance = ChoremConfig.getConfig();
+ }
}
}
return instance;
@@ -42,16 +58,18 @@
/**
* Vradi option definition.
*/
- public enum Option {
- CONFIG_FILE(CONFIG_FILE_NAME, _("chorem.config.configFileName.description"),
- "chorem.properties", String.class, false, false);
+ public enum Option implements ApplicationConfig.OptionDef {
+ CONFIG_FILE(
+ ApplicationConfig.CONFIG_FILE_NAME,
+ _("chorem.config.configFileName.description"),
+ "chorem.properties", String.class, false, false);
public final String key;
public final String description;
- public final String defaultValue;
+ public String defaultValue;
public final Class<?> type;
- public final boolean isTransient;
- public final boolean isFinal;
+ public boolean isTransient;
+ public boolean isFinal;
Option(String key, String description, String defaultValue,
Class<?> type, boolean isTransient, boolean isFinal) {
@@ -62,5 +80,41 @@
this.isFinal = isFinal;
this.isTransient = isTransient;
}
+
+ public String getKey() {
+ return key;
+ }
+
+ public Class<?> getType() {
+ return type;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ public boolean isTransient() {
+ return isTransient;
+ }
+
+ public boolean isFinal() {
+ return isFinal;
+ }
+
+ public void setDefaultValue(String defaultValue) {
+ this.defaultValue = defaultValue;
+ }
+
+ public void setTransient(boolean isTransient) {
+ this.isTransient = isTransient;
+ }
+
+ public void setFinal(boolean isFinal) {
+ this.isFinal = isFinal;
+ }
}
}
Modified: trunk/chorem-web/src/main/java/org/chorem/ChoremProxy.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/ChoremProxy.java 2011-04-13 12:59:49 UTC (rev 76)
+++ trunk/chorem-web/src/main/java/org/chorem/ChoremProxy.java 2011-04-13 21:44:26 UTC (rev 77)
@@ -32,7 +32,7 @@
* @return
*/
static public ChoremProxy getInstance(String token) {
- ChoremConfig config = ChoremConfig.getInstance();
+ ApplicationConfig config = ChoremConfig.getInstance();
WikittyService ws = getWikittyService(config);
ChoremProxy result = new ChoremProxy(config, ws);
result.setSecurityToken(token);
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-04-13 12:59:49 UTC (rev 76)
+++ trunk/pom.xml 2011-04-13 21:44:26 UTC (rev 77)
@@ -50,9 +50,9 @@
<projectId>chorem</projectId>
<eugenePluginVersion>2.3.2</eugenePluginVersion>
- <nuitonUtilsVersion>2.1-SNAPSHOT</nuitonUtilsVersion>
+ <nuitonUtilsVersion>2.2-SNAPSHOT</nuitonUtilsVersion>
<nuitonI18nVersion>2.3.1</nuitonI18nVersion>
- <wikittyVersion>3.0.5-SNAPSHOT</wikittyVersion>
+ <wikittyVersion>3.0.5</wikittyVersion>
<slf4jVersion>1.6.1</slf4jVersion>
<struts2Version>2.2.1.1</struts2Version>
<xWorkCoreVersion>2.1.6</xWorkCoreVersion>
1
0
Author: bpoussin
Date: 2011-04-13 14:59:49 +0200 (Wed, 13 Apr 2011)
New Revision: 76
Url: http://chorem.org/repositories/revision/chorem/76
Log:
utilisation des types primitif declarer dans le profile UML,
sinon il ne sont pas extrait du xmi et deviennent des String
a la generation
Modified:
trunk/chorem-entities/src/main/xmi/chorem.zargo
Modified: trunk/chorem-entities/src/main/xmi/chorem.zargo
===================================================================
(Binary files differ)
1
0
Author: tchemit
Date: 2011-04-11 10:47:26 +0200 (Mon, 11 Apr 2011)
New Revision: 75
Url: http://chorem.org/repositories/revision/chorem/75
Log:
Update mavenpom4redmine to 2.5.3.
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-04-08 15:25:28 UTC (rev 74)
+++ trunk/pom.xml 2011-04-11 08:47:26 UTC (rev 75)
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -11,7 +10,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>2.5.1</version>
+ <version>2.5.3</version>
</parent>
<groupId>org.chorem</groupId>
1
0
r74 - in trunk/chorem-web/src/main: resources/i18n webapp/WEB-INF/jsp/gepeto
by vbriand@users.chorem.org April 8, 2011
by vbriand@users.chorem.org April 8, 2011
April 8, 2011
Author: vbriand
Date: 2011-04-08 17:25:28 +0200 (Fri, 08 Apr 2011)
New Revision: 74
Url: http://chorem.org/repositories/revision/chorem/74
Log:
The tasks are now displayed on the project order's page
Modified:
trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties
trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp
Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties
===================================================================
--- trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 14:51:52 UTC (rev 73)
+++ trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 15:25:28 UTC (rev 74)
@@ -124,6 +124,12 @@
chorem.gepeto.projectOrderDetails.companyName=
chorem.gepeto.projectOrderDetails.endDate=
chorem.gepeto.projectOrderDetails.quotation=
+chorem.gepeto.projectOrderDetails.task.beginDate=
+chorem.gepeto.projectOrderDetails.task.endDate=
+chorem.gepeto.projectOrderDetails.task.name=
+chorem.gepeto.projectOrderDetails.task.price=
+chorem.gepeto.projectOrderDetails.task.status=
+chorem.gepeto.projectOrderDetails.tasks=
chorem.gepeto.projectOrderDetails.title=
chorem.gepeto.projectOrderDetails.type=
chorem.gepeto.projects=Get the projects list
@@ -151,4 +157,5 @@
chorem.gepeto.task.price=Price
chorem.gepeto.task.price.required=You must enter the task''s price
chorem.gepeto.task.price.wrongFormat=The price must be a positive integer or floating point number (the decimal mark may be either a dot or a comma)
+chorem.gepeto.tasksList=
chorem.home=Home
Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties
===================================================================
--- trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 14:51:52 UTC (rev 73)
+++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 15:25:28 UTC (rev 74)
@@ -119,6 +119,12 @@
chorem.gepeto.projectOrderDetails.companyName=Nom de la soci\u00E9t\u00E9 \: {0}
chorem.gepeto.projectOrderDetails.endDate=Date de fin \: {0}
chorem.gepeto.projectOrderDetails.quotation=Contrat r\u00E9alis\u00E9 sur la base du devis \#{0}
+chorem.gepeto.projectOrderDetails.task.beginDate=D\u00E9but de la t\u00E2che \: {0}
+chorem.gepeto.projectOrderDetails.task.endDate=Fin de la t\u00E2che \: {0}
+chorem.gepeto.projectOrderDetails.task.name=Nom de la t\u00E2che \: {0}
+chorem.gepeto.projectOrderDetails.task.price=Prix de la t\u00E2che \: {0}
+chorem.gepeto.projectOrderDetails.task.status=Statut de la t\u00E2che \: {0}
+chorem.gepeto.projectOrderDetails.tasks=T\u00E2ches li\u00E9es au contrat
chorem.gepeto.projectOrderDetails.title=D\u00E9tails du contrat
chorem.gepeto.projectOrderDetails.type=Type de contrat \: {0}
chorem.gepeto.projects=Obtenir la liste des projets
@@ -146,4 +152,5 @@
chorem.gepeto.task.price=Prix
chorem.gepeto.task.price.required=Vous devez donner un prix \u00E0 cette t\u00E2che
chorem.gepeto.task.price.wrongFormat=Le prix doit \u00EAtre un entier positif ou un nombre \u00E0 virgule flottante positif (le s\u00E9parateur d\u00E9cimal peut \u00EAtre un point ou une virgule)
+chorem.gepeto.tasksList=
chorem.home=Accueil
Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp 2011-04-08 14:51:52 UTC (rev 73)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp 2011-04-08 15:25:28 UTC (rev 74)
@@ -49,5 +49,37 @@
<s:text name="chorem.gepeto.task.add" />
</a>
</p>
+ <p>
+ <s:text name="chorem.gepeto.projectOrderDetails.tasks" />
+ <br />
+ <br />
+ <%
+ List<Task> tasks = ProjectOrderAction.getAction().getTasks();
+
+ for (Task task : tasks) {
+ %>
+ <s:text name="chorem.gepeto.projectOrderDetails.task.name">
+ <s:param><%= task.getName() %></s:param>
+ </s:text>
+ <br />
+ <s:text name="chorem.gepeto.projectOrderDetails.task.status">
+ <s:param><%= task.getStatus() %></s:param>
+ </s:text>
+ <br />
+ <s:text name="chorem.gepeto.projectOrderDetails.task.price">
+ <s:param><%= task.getPrice() %></s:param>
+ </s:text>
+ <br />
+ <s:text name="chorem.gepeto.projectOrderDetails.task.beginDate">
+ <s:param><%= task.getBeginDate() %></s:param>
+ </s:text>
+ <br />
+ <s:text name="chorem.gepeto.projectOrderDetails.task.endDate">
+ <s:param><%= task.getEndDate() %></s:param>
+ </s:text>
+ <br />
+ <br />
+ <% } %>
+ </p>
</body>
</html>
1
0
r73 - in trunk/chorem-web/src/main: java/org/chorem/gepeto/action resources resources/i18n resources/org/chorem/gepeto/action webapp/WEB-INF/jsp/gepeto
by vbriand@users.chorem.org April 8, 2011
by vbriand@users.chorem.org April 8, 2011
April 8, 2011
Author: vbriand
Date: 2011-04-08 16:51:52 +0200 (Fri, 08 Apr 2011)
New Revision: 73
Url: http://chorem.org/repositories/revision/chorem/73
Log:
A task can now be linked with a project order
Added:
trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/TaskAction-addTask-validation.xml
Removed:
trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/TaskAction-validation.xml
Modified:
trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java
trunk/chorem-web/src/main/java/org/chorem/gepeto/action/TaskAction.java
trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties
trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties
trunk/chorem-web/src/main/resources/struts.xml
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addTask.jsp
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp
Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-04-08 14:06:50 UTC (rev 72)
+++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-04-08 14:51:52 UTC (rev 73)
@@ -3,6 +3,7 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
+import java.util.List;
import java.util.UUID;
import org.apache.commons.logging.Log;
@@ -14,7 +15,9 @@
import org.chorem.entities.ProjectOrder;
import org.chorem.entities.ProjectOrderImpl;
import org.chorem.entities.Quotation;
+import org.chorem.entities.Task;
import org.nuiton.wikitty.search.Criteria;
+import org.nuiton.wikitty.search.PagedResult;
import org.nuiton.wikitty.search.Search;
import com.opensymphony.xwork2.ActionContext;
@@ -73,6 +76,7 @@
}
}
} catch (IllegalArgumentException e) {
+ //quotationId is invalid
result = ERROR;
}
return result;
@@ -143,6 +147,22 @@
protected String projectOrderId;
/**
+ * Gets the project order's tasks
+ *
+ * @return the project order's tasks
+ */
+ public List<Task> getTasks() {
+ ChoremProxy proxy = getChoremProxy();
+ Search search = Search.query();
+ Criteria criteria = search.eq(Task.FQ_FIELD_TASK_PROJECTORDER,
+ projectOrderId).criteria();
+ PagedResult<Task> result = proxy.findAllByCriteria(Task.class, criteria);
+ List<Task> tasks = result.getAll();
+
+ return tasks;
+ }
+
+ /**
* Stores the new project order through the proxy
*
* @return true if the project order has been stored properly
Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/TaskAction.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/TaskAction.java 2011-04-08 14:06:50 UTC (rev 72)
+++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/TaskAction.java 2011-04-08 14:51:52 UTC (rev 73)
@@ -3,13 +3,17 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
+import java.util.UUID;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.chorem.ChoremProxy;
import org.chorem.action.BaseAction;
+import org.chorem.entities.ProjectOrder;
import org.chorem.entities.TaskImpl;
+import com.opensymphony.xwork2.ActionContext;
+
import static org.nuiton.i18n.I18n.n_;
/**
@@ -22,7 +26,11 @@
private static final long serialVersionUID = -3938480897148282089L;
private static final Log log = LogFactory.getLog(TaskAction.class);
-
+
+ static public TaskAction getAction() {
+ return (TaskAction)ActionContext.getContext().get(CONTEXT_ACTION_KEY);
+ }
+
/**
* Adds a new task
*
@@ -32,19 +40,36 @@
*/
public String add() {
String result = INPUT;
+ ChoremProxy proxy = getChoremProxy();
- if (name != null && description != null && price != null &&
- estimatedDays != null && beginDate != null &&
- estimatedEndDate != null) {
- if (!name.isEmpty() && !description.isEmpty() &&
- !price.isEmpty() && !estimatedDays.isEmpty()) {
- //If the task has been added successfully
- if (addTask()) {
- result = SUCCESS;
+ try {
+ if (projectOrderId == null) {
+ result = ERROR;
+ } else {
+ //If projectOrderId isn't a valid UUID, an exception is thrown
+ UUID.fromString(projectOrderId);
+
+ ProjectOrder projectOrder = proxy.restore(ProjectOrder.class, projectOrderId);
+
+ //If the projectOrderId doesn't exist
+ if (projectOrder == null) {
+ result = ERROR;
} else {
- result = ERROR;
+ if (name != null && description != null && price != null &&
+ estimatedDays != null && beginDate != null &&
+ estimatedEndDate != null) {
+ //If the task has been added successfully
+ if (addTask()) {
+ result = SUCCESS;
+ } else {
+ result = ERROR;
+ }
+ }
}
}
+ } catch (IllegalArgumentException e) {
+ //projectOrderId is invalid
+ result = ERROR;
}
return result;
}
@@ -55,6 +80,7 @@
protected String estimatedDays;
protected String beginDate;
protected String estimatedEndDate;
+ protected String projectOrderId;
/**
* Stores the new task through the proxy
@@ -78,6 +104,7 @@
try {
Calendar cal = Calendar.getInstance();
+ newTask.setProjectOrder(projectOrderId);
newTask.setBeginDate(formatter.parse(beginDate));
newTask.setEndDate(formatter.parse(estimatedEndDate));
@@ -203,4 +230,18 @@
public void setEstimatedEndDate(String estimatedEndDate) {
this.estimatedEndDate = estimatedEndDate;
}
+
+ /**
+ * @return the projectOrderId
+ */
+ public String getProjectOrderId() {
+ return projectOrderId;
+ }
+
+ /**
+ * @param projectOrderId the projectOrderId to set
+ */
+ public void setProjectOrderId(String projectOrderId) {
+ this.projectOrderId = projectOrderId;
+ }
}
Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties
===================================================================
--- trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 14:06:50 UTC (rev 72)
+++ trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 14:51:52 UTC (rev 73)
@@ -135,6 +135,7 @@
chorem.gepeto.results.title=Results by year
chorem.gepeto.task=Task {0}
chorem.gepeto.task.add=Add a new task
+chorem.gepeto.task.backToProjectDetails=
chorem.gepeto.task.beginDate=Begin date (dd/mm/yyyy)
chorem.gepeto.task.beginDate.required=You must enter the begin date for this task
chorem.gepeto.task.create.error=An error occurred while creating your new task, please try again. If the problem persists, please contact an administrator
Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties
===================================================================
--- trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 14:06:50 UTC (rev 72)
+++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 14:51:52 UTC (rev 73)
@@ -130,6 +130,7 @@
chorem.gepeto.results.title=R\u00E9sultats par ann\u00E0e
chorem.gepeto.task=T\u00E2che {0}
chorem.gepeto.task.add=Ajouter une nouvelle t\u00E2che
+chorem.gepeto.task.backToProjectDetails=
chorem.gepeto.task.beginDate=Date de d\u00E9but
chorem.gepeto.task.beginDate.required=Vous devez renseigner la date de d\u00E9but de la t\u00E2che
chorem.gepeto.task.create.error=Une erreur s''est produite lors de la cr\u00E9ation de votre nouvelle t\u00E2che, merci d''essayer \u00E0 nouveau. Si le probl\u00E8me se reproduit, merci de contacter un administrateur
Copied: trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/TaskAction-addTask-validation.xml (from rev 72, trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/TaskAction-validation.xml)
===================================================================
--- trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/TaskAction-addTask-validation.xml (rev 0)
+++ trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/TaskAction-addTask-validation.xml 2011-04-08 14:51:52 UTC (rev 73)
@@ -0,0 +1,52 @@
+<!DOCTYPE validators PUBLIC
+ "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+ "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<validators>
+ <field name="name">
+ <field-validator type="requiredstring">
+ <message key="chorem.gepeto.task.name.required" />
+ </field-validator>
+ </field>
+ <field name="description">
+ <field-validator type="requiredstring">
+ <message key="chorem.gepeto.task.description.required" />
+ </field-validator>
+ </field>
+ <field name="price">
+ <field-validator type="requiredstring">
+ <message key="chorem.gepeto.task.price.required" />
+ </field-validator>
+ <field-validator type="regex">
+ <param name="expression"><![CDATA[([0-9]+)([\.,][0-9]+)?]]></param>
+ <message key="chorem.gepeto.task.price.wrongFormat" />
+ </field-validator>
+ </field>
+ <field name="estimatedDays">
+ <field-validator type="requiredstring">
+ <message key="chorem.gepeto.task.estimatedDays.required" />
+ </field-validator>
+ <field-validator type="regex">
+ <param name="expression"><![CDATA[([0-9]+)]]></param>
+ <message key="chorem.gepeto.task.estimatedDays.wrongFormat" />
+ </field-validator>
+ </field>
+ <field name="beginDate">
+ <field-validator type="requiredstring">
+ <message key="chorem.gepeto.task.beginDate.required" />
+ </field-validator>
+ <field-validator type="regex">
+ <param name="expression"><![CDATA[([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})]]></param>
+ <message key="chorem.date.wrongFormat" />
+ </field-validator>
+ </field>
+ <field name="estimatedEndDate">
+ <field-validator type="requiredstring">
+ <message key="chorem.gepeto.task.estimatedEndDate.required" />
+ </field-validator>
+ <field-validator type="regex">
+ <param name="expression"><![CDATA[([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})]]></param>
+ <message key="chorem.date.wrongFormat" />
+ </field-validator>
+ </field>
+</validators>
Property changes on: trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/TaskAction-addTask-validation.xml
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Deleted: trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/TaskAction-validation.xml
===================================================================
--- trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/TaskAction-validation.xml 2011-04-08 14:06:50 UTC (rev 72)
+++ trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/TaskAction-validation.xml 2011-04-08 14:51:52 UTC (rev 73)
@@ -1,52 +0,0 @@
-<!DOCTYPE validators PUBLIC
- "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
- "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
-
-<validators>
- <field name="name">
- <field-validator type="requiredstring">
- <message key="chorem.gepeto.task.name.required" />
- </field-validator>
- </field>
- <field name="description">
- <field-validator type="requiredstring">
- <message key="chorem.gepeto.task.description.required" />
- </field-validator>
- </field>
- <field name="price">
- <field-validator type="requiredstring">
- <message key="chorem.gepeto.task.price.required" />
- </field-validator>
- <field-validator type="regex">
- <param name="expression"><![CDATA[([0-9]+)([\.,][0-9]+)?]]></param>
- <message key="chorem.gepeto.task.price.wrongFormat" />
- </field-validator>
- </field>
- <field name="estimatedDays">
- <field-validator type="requiredstring">
- <message key="chorem.gepeto.task.estimatedDays.required" />
- </field-validator>
- <field-validator type="regex">
- <param name="expression"><![CDATA[([0-9]+)]]></param>
- <message key="chorem.gepeto.task.estimatedDays.wrongFormat" />
- </field-validator>
- </field>
- <field name="beginDate">
- <field-validator type="requiredstring">
- <message key="chorem.gepeto.task.beginDate.required" />
- </field-validator>
- <field-validator type="regex">
- <param name="expression"><![CDATA[([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})]]></param>
- <message key="chorem.date.wrongFormat" />
- </field-validator>
- </field>
- <field name="estimatedEndDate">
- <field-validator type="requiredstring">
- <message key="chorem.gepeto.task.estimatedEndDate.required" />
- </field-validator>
- <field-validator type="regex">
- <param name="expression"><![CDATA[([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})]]></param>
- <message key="chorem.date.wrongFormat" />
- </field-validator>
- </field>
-</validators>
Modified: trunk/chorem-web/src/main/resources/struts.xml
===================================================================
--- trunk/chorem-web/src/main/resources/struts.xml 2011-04-08 14:06:50 UTC (rev 72)
+++ trunk/chorem-web/src/main/resources/struts.xml 2011-04-08 14:51:52 UTC (rev 73)
@@ -72,13 +72,18 @@
<action name="removeProject" class="org.chorem.gepeto.action.ProjectAction" method="delete">
<result type="redirectAction">home</result>
</action>
- <action name="addTaskInput">
- <result>/WEB-INF/jsp/gepeto/addTask.jsp</result>
+ <action name="addTaskInput" class="org.chorem.gepeto.action.TaskAction" method="add">
+ <result name="input">/WEB-INF/jsp/gepeto/addTask.jsp</result>
+ <result name="error" type="redirectAction">home</result>
</action>
<action name="addTask" class="org.chorem.gepeto.action.TaskAction" method="add">
<result name="input">/WEB-INF/jsp/gepeto/addTask.jsp</result>
<result name="error">/WEB-INF/jsp/gepeto/addTask.jsp</result>
- <result type="redirectAction">home</result>
+ <result type="redirectAction">
+ <param name="actionName">projectOrderDetails</param>
+ <param name="namespace">/gepeto</param>
+ <param name="projectOrderId">${projectOrderId}</param>
+ </result>
</action>
<action name="addProjectOrderInput" class="org.chorem.gepeto.action.ProjectOrderAction" method="add">
<result name="input">/WEB-INF/jsp/gepeto/addProjectOrder.jsp</result>
Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addTask.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addTask.jsp 2011-04-08 14:06:50 UTC (rev 72)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addTask.jsp 2011-04-08 14:51:52 UTC (rev 73)
@@ -1,4 +1,5 @@
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@page import="org.chorem.gepeto.action.TaskAction" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<html xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
@@ -10,30 +11,41 @@
<body>
<h2><s:text name="chorem.gepeto.task.add" /></h2>
<s:actionerror />
- <s:form action="addTask" method="post">
+ <s:url namespace="/gepeto" action="addTask" var="addTask">
+ <s:param name="projectOrderId"><%= TaskAction.getAction().getProjectOrderId() %></s:param>
+ </s:url>
+ <form action="${addTask}" method="post">
<fieldset>
<legend>
<s:text name="chorem.gepeto.task">
<s:param></s:param>
</s:text>
</legend>
- <s:textfield key="chorem.gepeto.task.name" name="name" labelSeparator=": " />
- <br />
- <br />
- <s:textarea key="chorem.gepeto.task.description" name="description" cols="50" rows="10" labelposition="top" />
- <br />
- <br />
- <s:textfield key="chorem.gepeto.task.price" name="price" labelSeparator=": " />
- <br />
- <s:textfield key="chorem.gepeto.task.estimatedDays" name="estimatedDays" labelSeparator=": " />
- <br />
- <s:textfield key="chorem.gepeto.task.beginDate" name="beginDate" labelSeparator=": " />
- <br />
- <s:textfield key="chorem.gepeto.task.estimatedEndDate" name="estimatedEndDate" labelSeparator=": " />
- <br />
- <br />
- <s:submit key="chorem.gepeto.task.add" name="submit" />
+ <p>
+ <s:textfield key="chorem.gepeto.task.name" name="name" labelSeparator=": " />
+ <br />
+ <br />
+ <s:textarea key="chorem.gepeto.task.description" name="description" cols="50" rows="10" labelposition="top" />
+ <br />
+ <br />
+ <s:textfield key="chorem.gepeto.task.price" name="price" labelSeparator=": " />
+ <br />
+ <s:textfield key="chorem.gepeto.task.estimatedDays" name="estimatedDays" labelSeparator=": " />
+ <br />
+ <s:textfield key="chorem.gepeto.task.beginDate" name="beginDate" labelSeparator=": " />
+ <br />
+ <s:textfield key="chorem.gepeto.task.estimatedEndDate" name="estimatedEndDate" labelSeparator=": " />
+ <br />
+ <br />
+ <s:submit key="chorem.gepeto.task.add" name="submit" />
+ </p>
</fieldset>
- </s:form>
+ </form>
+ <p>
+ <s:url namespace="/gepeto" action="projectOrderDetails" var="projectOrderDetails">
+ <s:param name="projectOrderId"><%= TaskAction.getAction().getProjectOrderId() %></s:param>
+ </s:url>
+ <a href="${projectOrderDetails}"><s:text name="chorem.gepeto.task.backToProjectDetails" /></a>
+ </p>
</body>
</html>
Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp 2011-04-08 14:06:50 UTC (rev 72)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp 2011-04-08 14:51:52 UTC (rev 73)
@@ -1,4 +1,6 @@
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@page import="java.util.List" %>
+<%@page import="org.chorem.entities.Task" %>
<%@page import="org.chorem.gepeto.action.ProjectOrderAction" %>
<%@taglib prefix="s" uri="/struts-tags" %>
1
0
r72 - in trunk/chorem-web/src/main/java/org/chorem/gepeto: . action
by vbriand@users.chorem.org April 8, 2011
by vbriand@users.chorem.org April 8, 2011
April 8, 2011
Author: vbriand
Date: 2011-04-08 16:06:50 +0200 (Fri, 08 Apr 2011)
New Revision: 72
Url: http://chorem.org/repositories/revision/chorem/72
Log:
Removed a class which became useless
Removed:
trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java
Modified:
trunk/chorem-web/src/main/java/org/chorem/gepeto/action/TaskAction.java
Deleted: trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java 2011-04-08 14:03:55 UTC (rev 71)
+++ trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java 2011-04-08 14:06:50 UTC (rev 72)
@@ -1,43 +0,0 @@
-package org.chorem.gepeto;
-
-import org.chorem.entities.Company;
-import org.chorem.entities.ProjectOrder;
-
-/**
- * Simple class used to return both ProjectOrder and Company instead of using
- * the proxy on the jsp page to retrieve the company details
- *
- * @author vbriand
- */
-public class ProjectOrderFull {
- protected ProjectOrder projectOrder;
- protected Company company;
-
- /**
- * @return the projectOrder
- */
- public ProjectOrder getProjectOrder() {
- return projectOrder;
- }
-
- /**
- * @param projectOrder the projectOrder to set
- */
- public void setProjectOrder(ProjectOrder projectOrder) {
- this.projectOrder = projectOrder;
- }
-
- /**
- * @return the company
- */
- public Company getCompany() {
- return company;
- }
-
- /**
- * @param company the company to set
- */
- public void setCompany(Company company) {
- this.company = company;
- }
-}
Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/TaskAction.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/TaskAction.java 2011-04-08 14:03:55 UTC (rev 71)
+++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/TaskAction.java 2011-04-08 14:06:50 UTC (rev 72)
@@ -1,6 +1,3 @@
-/**
- *
- */
package org.chorem.gepeto.action;
import java.text.ParseException;
1
0
r71 - in trunk/chorem-web/src/main: java/org/chorem/billy/action java/org/chorem/gepeto/action resources resources/i18n webapp/WEB-INF/jsp/billy webapp/WEB-INF/jsp/gepeto
by vbriand@users.chorem.org April 8, 2011
by vbriand@users.chorem.org April 8, 2011
April 8, 2011
Author: vbriand
Date: 2011-04-08 16:03:55 +0200 (Fri, 08 Apr 2011)
New Revision: 71
Url: http://chorem.org/repositories/revision/chorem/71
Log:
Added a page to detail a project order and modified consequently the quotation's page
Added:
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp
Modified:
trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java
trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java
trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java
trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties
trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties
trunk/chorem-web/src/main/resources/struts.xml
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectDetails.jsp
Modified: trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java 2011-04-08 12:40:37 UTC (rev 70)
+++ trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java 2011-04-08 14:03:55 UTC (rev 71)
@@ -8,12 +8,10 @@
import org.apache.commons.logging.LogFactory;
import org.chorem.ChoremProxy;
import org.chorem.action.BaseAction;
-import org.chorem.entities.Company;
import org.chorem.entities.Project;
import org.chorem.entities.ProjectOrder;
import org.chorem.entities.Quotation;
import org.chorem.entities.QuotationImpl;
-import org.chorem.gepeto.ProjectOrderFull;
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.Search;
@@ -131,25 +129,14 @@
* @return the project order if it exists
* @return null if it doesn't exist
*/
- public ProjectOrderFull getProjectOrder() {
+ public ProjectOrder getProjectOrder() {
ChoremProxy proxy = getChoremProxy();
Search search = Search.query();
Criteria criteria = search.eq(ProjectOrder.FQ_FIELD_PROJECTORDER_QUOTATION,
quotationId).criteria();
ProjectOrder projectOrder = proxy.findByCriteria(ProjectOrder.class, criteria);
- ProjectOrderFull projectOrderFull = new ProjectOrderFull();
-
- if (projectOrder != null) {
- projectOrderFull.setProjectOrder(projectOrder);
-
- Company company;
-
- company = proxy.restore(Company.class, projectOrder.getCompany());
- projectOrderFull.setCompany(company);
- } else {
- projectOrderFull = null;
- }
- return projectOrderFull;
+
+ return projectOrder;
}
/**
Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java 2011-04-08 12:40:37 UTC (rev 70)
+++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java 2011-04-08 14:03:55 UTC (rev 71)
@@ -164,13 +164,7 @@
*/
public List<Quotation> getAttachedQuotationsWithProjectOrder() {
ChoremProxy proxy = getChoremProxy();
- Search search = Search.query();
- Criteria criteria = search.exteq(ProjectOrder.EXT_PROJECTORDER).
- associated(ProjectOrder.FQ_FIELD_PROJECTORDER_QUOTATION).
- eq(Quotation.FQ_FIELD_QUOTATION_PROJECT, projectId).criteria();
- PagedResult<ProjectOrder> result = proxy.findAllByCriteria(ProjectOrder.class,
- criteria);
- List<ProjectOrder> projectOrders = result.getAll();
+ List<ProjectOrder> projectOrders = getProjectOrders();
List<Quotation> quotations = new ArrayList<Quotation>();
for (ProjectOrder projectOrder : projectOrders) {
@@ -196,6 +190,24 @@
}
/**
+ * Gets the project orders
+ *
+ * @return the project orders
+ */
+ public List<ProjectOrder> getProjectOrders() {
+ ChoremProxy proxy = getChoremProxy();
+ Search search = Search.query();
+ Criteria criteria = search.exteq(ProjectOrder.EXT_PROJECTORDER).
+ associated(ProjectOrder.FQ_FIELD_PROJECTORDER_QUOTATION).
+ eq(Quotation.FQ_FIELD_QUOTATION_PROJECT, projectId).criteria();
+ PagedResult<ProjectOrder> result = proxy.findAllByCriteria(ProjectOrder.class,
+ criteria);
+ List<ProjectOrder> projectOrders = result.getAll();
+
+ return projectOrders;
+ }
+
+ /**
* @return the name
*/
public String getName() {
Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-04-08 12:40:37 UTC (rev 70)
+++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-04-08 14:03:55 UTC (rev 71)
@@ -9,6 +9,7 @@
import org.apache.commons.logging.LogFactory;
import org.chorem.ChoremProxy;
import org.chorem.action.BaseAction;
+import org.chorem.entities.Company;
import org.chorem.entities.CompanyImpl;
import org.chorem.entities.ProjectOrder;
import org.chorem.entities.ProjectOrderImpl;
@@ -77,6 +78,59 @@
return result;
}
+ /**
+ * Retrieves the information of the projectOrder referenced by the
+ * projectOrderId
+ *
+ * @return SUCCESS if the information have been retrieved
+ * @return ERROR either if the UUID is invalid or the projectOrderId doesn't
+ * exist
+ */
+ public String projectOrderDetails() {
+ String result = SUCCESS;
+ ChoremProxy proxy = getChoremProxy();
+
+ try {
+ if (projectOrderId == null) {
+ result = ERROR;
+ } else {
+ //If projectOrderId isn't a valid UUID, an exception is thrown
+ UUID.fromString(projectOrderId);
+
+ ProjectOrder projectOrder = proxy.restore(ProjectOrder.class,
+ projectOrderId);
+
+ if (projectOrder != null) { //If the projectOrderId exists
+ setBeginDate(projectOrder.getBeginDate().toString());
+
+ Company company;
+
+ company = proxy.restore(Company.class,
+ projectOrder.getCompany());
+ setCompanyName(company.getName());
+ setCompanyType(company.getType());
+ setDescription(projectOrder.getDescription());
+ setEstimatedEndDate(projectOrder.getEndDate().toString());
+ setStatus(projectOrder.getStatus());
+ setType(projectOrder.getType());
+
+ Quotation quotation;
+
+ quotation = proxy.restore(Quotation.class,
+ projectOrder.getQuotation());
+ setQuotationId(quotation.getWikittyId());
+ setQuotationReference(quotation.getReference());
+ } else {
+ result = ERROR;
+ }
+ }
+ } catch (IllegalArgumentException e) {
+ //projectOrderId is invalid
+ result = ERROR;
+ }
+ return result;
+ }
+
protected String type;
protected String description;
protected String status;
@@ -86,6 +140,7 @@
protected String quotationReference;
protected String companyName;
protected String companyType;
+ protected String projectOrderId;
/**
* Stores the new project order through the proxy
@@ -296,4 +351,18 @@
public void setCompanyType(String companyType) {
this.companyType = companyType;
}
+
+ /**
+ * @return the projectOrderId
+ */
+ public String getProjectOrderId() {
+ return projectOrderId;
+ }
+
+ /**
+ * @param projectOrderId the projectOrderId to set
+ */
+ public void setProjectOrderId(String projectOrderId) {
+ this.projectOrderId = projectOrderId;
+ }
}
\ No newline at end of file
Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties
===================================================================
--- trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 12:40:37 UTC (rev 70)
+++ trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 14:03:55 UTC (rev 71)
@@ -96,7 +96,10 @@
chorem.gepeto.project.description.required=You must describe the project
chorem.gepeto.project.name=Project''s name
chorem.gepeto.project.name.required=You must enter the project''s name
+chorem.gepeto.projectDetails.noProjectOrder=
chorem.gepeto.projectDetails.noQuotations=No quotations
+chorem.gepeto.projectDetails.projectOrder=
+chorem.gepeto.projectDetails.projectOrders=
chorem.gepeto.projectDetails.quotation=Quotation of {0} (ref. {1})
chorem.gepeto.projectDetails.quotationWithProjectOrder=Project''s quotation with project order
chorem.gepeto.projectDetails.quotationsWithoutProjectOrder=Project''s quotations without project order
@@ -117,6 +120,12 @@
chorem.gepeto.projectOrder.status=
chorem.gepeto.projectOrder.type=Type
chorem.gepeto.projectOrder.type.required=You must specify the project order''s type
+chorem.gepeto.projectOrderDetails.beginDate=
+chorem.gepeto.projectOrderDetails.companyName=
+chorem.gepeto.projectOrderDetails.endDate=
+chorem.gepeto.projectOrderDetails.quotation=
+chorem.gepeto.projectOrderDetails.title=
+chorem.gepeto.projectOrderDetails.type=
chorem.gepeto.projects=Get the projects list
chorem.gepeto.projectsByYear.thead.company=Company
chorem.gepeto.projectsByYear.thead.end=End
Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties
===================================================================
--- trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 12:40:37 UTC (rev 70)
+++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 14:03:55 UTC (rev 71)
@@ -91,7 +91,10 @@
chorem.gepeto.project.description.required=Vous devez d\u00E9crire le projet
chorem.gepeto.project.name=Nom du projet
chorem.gepeto.project.name.required=Vous devez renseigner un nom pour le projet
+chorem.gepeto.projectDetails.noProjectOrder=
chorem.gepeto.projectDetails.noQuotations=Pas de devis
+chorem.gepeto.projectDetails.projectOrder=Contrat du {0} au {1}
+chorem.gepeto.projectDetails.projectOrders=Contrats du projet
chorem.gepeto.projectDetails.quotation=Devis du {0} (r\u00E9f. {1})
chorem.gepeto.projectDetails.quotationWithProjectOrder=Devis du projet avec un contrat
chorem.gepeto.projectDetails.quotationsWithoutProjectOrder=Devis du projet sans contrat
@@ -112,6 +115,12 @@
chorem.gepeto.projectOrder.status=
chorem.gepeto.projectOrder.type=Type
chorem.gepeto.projectOrder.type.required=Vous devez sp\u00E9cifier le type du contrat
+chorem.gepeto.projectOrderDetails.beginDate=Date de d\u00E9but \: {0}
+chorem.gepeto.projectOrderDetails.companyName=Nom de la soci\u00E9t\u00E9 \: {0}
+chorem.gepeto.projectOrderDetails.endDate=Date de fin \: {0}
+chorem.gepeto.projectOrderDetails.quotation=Contrat r\u00E9alis\u00E9 sur la base du devis \#{0}
+chorem.gepeto.projectOrderDetails.title=D\u00E9tails du contrat
+chorem.gepeto.projectOrderDetails.type=Type de contrat \: {0}
chorem.gepeto.projects=Obtenir la liste des projets
chorem.gepeto.projectsByYear.thead.company=Demandeur
chorem.gepeto.projectsByYear.thead.end=Fin
Modified: trunk/chorem-web/src/main/resources/struts.xml
===================================================================
--- trunk/chorem-web/src/main/resources/struts.xml 2011-04-08 12:40:37 UTC (rev 70)
+++ trunk/chorem-web/src/main/resources/struts.xml 2011-04-08 14:03:55 UTC (rev 71)
@@ -93,6 +93,10 @@
<param name="quotationId">${quotationId}</param>
</result>
</action>
+ <action name="projectOrderDetails" class="org.chorem.gepeto.action.ProjectOrderAction" method="projectOrderDetails">
+ <result name="error" type="redirectAction">home</result>
+ <result>/WEB-INF/jsp/gepeto/projectOrderDetails.jsp</result>
+ </action>
<action name="getProjectsByYear" class="org.chorem.gepeto.action.ProjectAction">
<result>/WEB-INF/jsp/gepeto/projectsByYear.jsp</result>
</action>
Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp 2011-04-08 12:40:37 UTC (rev 70)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp 2011-04-08 14:03:55 UTC (rev 71)
@@ -1,6 +1,6 @@
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@page import="org.chorem.billy.action.QuotationAction" %>
-<%@page import="org.chorem.gepeto.ProjectOrderFull" %>
+<%@page import="org.chorem.entities.ProjectOrder" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<html xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
@@ -31,28 +31,26 @@
<br />
<br />
<%
- ProjectOrderFull projectOrder = QuotationAction.getAction().getProjectOrder();
+ ProjectOrder projectOrder = QuotationAction.getAction().getProjectOrder();
if (projectOrder != null) {
%>
<s:text name="chorem.billy.quotation.projectOrder" />
<br />
- <s:text name="chorem.billy.quotation.projectOrder.beginDate">
- <s:param><%= projectOrder.getProjectOrder().getBeginDate() %></s:param>
- </s:text>
- <br />
- <s:text name="chorem.billy.quotation.projectOrder.endDate">
- <s:param><%= projectOrder.getProjectOrder().getEndDate() %></s:param>
- </s:text>
- <br />
- <s:text name="chorem.billy.quotation.projectOrder.type">
- <s:param><%= projectOrder.getProjectOrder().getType() %></s:param>
- </s:text>
- <br />
- <s:text name="chorem.billy.quotation.projectOrder.company">
- <s:param><%= projectOrder.getCompany().getName() %></s:param>
- </s:text>
- <br />
+ <s:url namespace="/gepeto" action="projectOrderDetails" var="projectOrderDetails">
+ <s:param name="projectOrderId"><%= projectOrder.getWikittyId() %></s:param>
+ </s:url>
+ <a href="${projectOrderDetails}">
+ <s:text name="chorem.gepeto.projectDetails.projectOrder">
+ <s:param>
+ <%= projectOrder.getBeginDate() %>
+ </s:param>
+ <s:param>
+ <%= projectOrder.getEndDate() %>
+ </s:param>
+ </s:text>
+ </a>
+ <br />
<% } else { %>
<s:url namespace="/gepeto" action="addProjectOrderInput" var="addProjectOrder">
<s:param name="quotationId"><%= QuotationAction.getAction().getQuotationId() %></s:param>
Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectDetails.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectDetails.jsp 2011-04-08 12:40:37 UTC (rev 70)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectDetails.jsp 2011-04-08 14:03:55 UTC (rev 71)
@@ -1,5 +1,6 @@
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.util.List" %>
+<%@page import="org.chorem.entities.ProjectOrder" %>
<%@page import="org.chorem.entities.Quotation" %>
<%@page import="org.chorem.gepeto.action.ProjectAction" %>
<%@taglib prefix="s" uri="/struts-tags" %>
@@ -30,6 +31,35 @@
<a href="${addQuotation}"><s:text name="chorem.billy.quotation.add" /></a>
</p>
<p>
+ <s:text name="chorem.gepeto.projectDetails.projectOrders" />
+ <br />
+ <br />
+ <%
+ List<ProjectOrder> projectOrders = ProjectAction.getAction().getProjectOrders();
+
+ if (projectOrders.isEmpty()) {
+ %>
+ <s:text name="chorem.gepeto.projectDetails.noProjectOrder" />
+ <%
+ }
+ for (ProjectOrder projectOrder : projectOrders) {
+ %>
+ <s:url namespace="/gepeto" action="projectOrderDetails" var="projectOrderDetails">
+ <s:param name="projectOrderId"><%= projectOrder.getWikittyId() %></s:param>
+ </s:url>
+ <a href="${projectOrderDetails}">
+ <s:text name="chorem.gepeto.projectDetails.projectOrder">
+ <s:param>
+ <%= projectOrder.getBeginDate() %>
+ </s:param>
+ <s:param>
+ <%= projectOrder.getEndDate() %>
+ </s:param>
+ </s:text>
+ </a>
+ <br />
+ <% } %>
+ <br />
<s:text name="chorem.gepeto.projectDetails.quotationWithProjectOrder" />
<br />
<br />
Added: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp (rev 0)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp 2011-04-08 14:03:55 UTC (rev 71)
@@ -0,0 +1,51 @@
+<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@page import="org.chorem.gepeto.action.ProjectOrderAction" %>
+<%@taglib prefix="s" uri="/struts-tags" %>
+
+<html xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
+ xmlns:jsp="http://java.sun.com/JSP/Page">
+ <head>
+ <title>
+ <s:text name="chorem.gepeto.projectOrderDetails.title" />
+ </title>
+ <s:head />
+ </head>
+ <body>
+ <p>
+ <s:text name="chorem.gepeto.projectOrderDetails.beginDate">
+ <s:param><%= ProjectOrderAction.getAction().getBeginDate() %></s:param>
+ </s:text>
+ <br />
+ <s:text name="chorem.gepeto.projectOrderDetails.endDate">
+ <s:param><%= ProjectOrderAction.getAction().getEstimatedEndDate() %></s:param>
+ </s:text>
+ <br />
+ <s:text name="chorem.gepeto.projectOrderDetails.type">
+ <s:param><%= ProjectOrderAction.getAction().getType() %></s:param>
+ </s:text>
+ <br />
+ <s:text name="chorem.gepeto.projectOrderDetails.companyName">
+ <s:param><%= ProjectOrderAction.getAction().getCompanyName() %></s:param>
+ </s:text>
+ <br />
+ <s:text name="chorem.gepeto.projectOrderDetails.quotation">
+ <s:param>
+ <s:url namespace="/billy" action="quotationDetails" var="quotationDetails">
+ <s:param name="quotationId">
+ <%= ProjectOrderAction.getAction().getQuotationId() %>
+ </s:param>
+ </s:url>
+ <a href="${quotationDetails}"><%= ProjectOrderAction.getAction().getQuotationReference() %></a>
+ </s:param>
+ </s:text>
+ <s:url namespace="/gepeto" action="addTaskInput" var="addTask">
+ <s:param name="projectOrderId"><%= ProjectOrderAction.getAction().getProjectOrderId() %></s:param>
+ </s:url>
+ <br />
+ <br />
+ <a href="${addTask}">
+ <s:text name="chorem.gepeto.task.add" />
+ </a>
+ </p>
+ </body>
+</html>
Property changes on: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp
___________________________________________________________________
Added: svn:mime-type
+ text/plain
1
0
r70 - in trunk/chorem-web/src/main: java/org/chorem/billy/action java/org/chorem/gepeto java/org/chorem/gepeto/action resources/i18n resources/org/chorem/gepeto/action webapp/WEB-INF/jsp/billy webapp/WEB-INF/jsp/gepeto
by vbriand@users.chorem.org April 8, 2011
by vbriand@users.chorem.org April 8, 2011
April 8, 2011
Author: vbriand
Date: 2011-04-08 14:40:37 +0200 (Fri, 08 Apr 2011)
New Revision: 70
Url: http://chorem.org/repositories/revision/chorem/70
Log:
A company can now be linked with a project order
Added:
trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java
Modified:
trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java
trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java
trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties
trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties
trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp
Modified: trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java 2011-04-08 09:34:00 UTC (rev 69)
+++ trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java 2011-04-08 12:40:37 UTC (rev 70)
@@ -8,10 +8,12 @@
import org.apache.commons.logging.LogFactory;
import org.chorem.ChoremProxy;
import org.chorem.action.BaseAction;
+import org.chorem.entities.Company;
import org.chorem.entities.Project;
import org.chorem.entities.ProjectOrder;
import org.chorem.entities.Quotation;
import org.chorem.entities.QuotationImpl;
+import org.chorem.gepeto.ProjectOrderFull;
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.Search;
@@ -129,13 +131,25 @@
* @return the project order if it exists
* @return null if it doesn't exist
*/
- public ProjectOrder getProjectOrder() {
+ public ProjectOrderFull getProjectOrder() {
ChoremProxy proxy = getChoremProxy();
Search search = Search.query();
Criteria criteria = search.eq(ProjectOrder.FQ_FIELD_PROJECTORDER_QUOTATION,
quotationId).criteria();
- ProjectOrder result = proxy.findByCriteria(ProjectOrder.class, criteria);
- return result;
+ ProjectOrder projectOrder = proxy.findByCriteria(ProjectOrder.class, criteria);
+ ProjectOrderFull projectOrderFull = new ProjectOrderFull();
+
+ if (projectOrder != null) {
+ projectOrderFull.setProjectOrder(projectOrder);
+
+ Company company;
+
+ company = proxy.restore(Company.class, projectOrder.getCompany());
+ projectOrderFull.setCompany(company);
+ } else {
+ projectOrderFull = null;
+ }
+ return projectOrderFull;
}
/**
Added: trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java (rev 0)
+++ trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java 2011-04-08 12:40:37 UTC (rev 70)
@@ -0,0 +1,43 @@
+package org.chorem.gepeto;
+
+import org.chorem.entities.Company;
+import org.chorem.entities.ProjectOrder;
+
+/**
+ * Simple class used to return both ProjectOrder and Company instead of using
+ * the proxy on the jsp page to retrieve the company details
+ *
+ * @author vbriand
+ */
+public class ProjectOrderFull {
+ protected ProjectOrder projectOrder;
+ protected Company company;
+
+ /**
+ * @return the projectOrder
+ */
+ public ProjectOrder getProjectOrder() {
+ return projectOrder;
+ }
+
+ /**
+ * @param projectOrder the projectOrder to set
+ */
+ public void setProjectOrder(ProjectOrder projectOrder) {
+ this.projectOrder = projectOrder;
+ }
+
+ /**
+ * @return the company
+ */
+ public Company getCompany() {
+ return company;
+ }
+
+ /**
+ * @param company the company to set
+ */
+ public void setCompany(Company company) {
+ this.company = company;
+ }
+}
Property changes on: trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-04-08 09:34:00 UTC (rev 69)
+++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-04-08 12:40:37 UTC (rev 70)
@@ -9,6 +9,7 @@
import org.apache.commons.logging.LogFactory;
import org.chorem.ChoremProxy;
import org.chorem.action.BaseAction;
+import org.chorem.entities.CompanyImpl;
import org.chorem.entities.ProjectOrder;
import org.chorem.entities.ProjectOrderImpl;
import org.chorem.entities.Quotation;
@@ -59,14 +60,13 @@
} else {
quotationReference = quotation.getReference();
if (type != null && description != null &&
- beginDate != null && estimatedEndDate != null) {
- if (!type.isEmpty() && !description.isEmpty()) {
- //If the project order has been added successfully
- if (addProjectOrder()) {
- result = SUCCESS;
- } else {
- result = ERROR;
- }
+ beginDate != null && estimatedEndDate != null &&
+ companyName != null && companyType != null) {
+ //If the project order has been added successfully
+ if (addProjectOrder()) {
+ result = SUCCESS;
+ } else {
+ result = ERROR;
}
}
}
@@ -79,10 +79,13 @@
protected String type;
protected String description;
+ protected String status;
protected String beginDate;
protected String estimatedEndDate;
protected String quotationId;
protected String quotationReference;
+ protected String companyName;
+ protected String companyType;
/**
* Stores the new project order through the proxy
@@ -96,12 +99,19 @@
try {
ChoremProxy proxy = getChoremProxy();
ProjectOrderImpl newProjectOrder = new ProjectOrderImpl();
+ CompanyImpl newCompany = new CompanyImpl();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
newProjectOrder.setType(type);
newProjectOrder.setDescription(description);
newProjectOrder.setQuotation(quotationId);
+ newProjectOrder.setStatus(status);
+ newCompany.setName(companyName);
+ newCompany.setType(companyType);
+ newProjectOrder.setCompany(newCompany.getWikittyId());
+
+
//Lenient mode disabled because results may be very odd
formatter.setLenient(false);
try {
@@ -133,6 +143,7 @@
//If everything went smoothly
if (result) {
+ proxy.store(newCompany);
proxy.store(newProjectOrder);
}
} catch (Exception e) {
@@ -189,6 +200,20 @@
}
/**
+ * @return the status
+ */
+ public String getStatus() {
+ return status;
+ }
+
+ /**
+ * @param status the status to set
+ */
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ /**
* @return the beginDate
*/
public String getBeginDate() {
@@ -243,4 +268,32 @@
public void setQuotationReference(String quotationReference) {
this.quotationReference = quotationReference;
}
+
+ /**
+ * @return the companyName
+ */
+ public String getCompanyName() {
+ return companyName;
+ }
+
+ /**
+ * @param companyName the companyName to set
+ */
+ public void setCompanyName(String companyName) {
+ this.companyName = companyName;
+ }
+
+ /**
+ * @return the companyType
+ */
+ public String getCompanyType() {
+ return companyType;
+ }
+
+ /**
+ * @param companyType the companyType to set
+ */
+ public void setCompanyType(String companyType) {
+ this.companyType = companyType;
+ }
}
\ No newline at end of file
Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties
===================================================================
--- trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 09:34:00 UTC (rev 69)
+++ trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 12:40:37 UTC (rev 70)
@@ -107,11 +107,14 @@
chorem.gepeto.projectOrder.backToQuotationDetails=Get back to the quotation
chorem.gepeto.projectOrder.beginDate=Begin date (dd/mm/yyyy)
chorem.gepeto.projectOrder.beginDate.required=You must provide a begin date for this project order
+chorem.gepeto.projectOrder.company.name=
+chorem.gepeto.projectOrder.company.type=
chorem.gepeto.projectOrder.create.error=An error occurred while creating your new project order, please try again. If the problem persists, please contact an administrator
chorem.gepeto.projectOrder.description=Description
chorem.gepeto.projectOrder.description.required=You must describe the project order
chorem.gepeto.projectOrder.estimatedEndDate=Estimated end date (dd/mm/yyyy)
chorem.gepeto.projectOrder.estimatedEndDate.required=You must enter the estimated end date for this project order
+chorem.gepeto.projectOrder.status=
chorem.gepeto.projectOrder.type=Type
chorem.gepeto.projectOrder.type.required=You must specify the project order''s type
chorem.gepeto.projects=Get the projects list
Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties
===================================================================
--- trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 09:34:00 UTC (rev 69)
+++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 12:40:37 UTC (rev 70)
@@ -102,11 +102,14 @@
chorem.gepeto.projectOrder.backToQuotationDetails=Retourner sur le devis
chorem.gepeto.projectOrder.beginDate=Date de d\u00E9but
chorem.gepeto.projectOrder.beginDate.required=Vous devez renseigner une date de d\u00E9but pour le contrat
+chorem.gepeto.projectOrder.company.name=
+chorem.gepeto.projectOrder.company.type=
chorem.gepeto.projectOrder.create.error=Une erreur s''est produite lors de la cr\u00E9ation de votre nouveau contrat de projet, merci d''essayer \u00E0 nouveau. Si le probl\u00E8me se reproduit, merci de contacter un administrateur
chorem.gepeto.projectOrder.description=Description
chorem.gepeto.projectOrder.description.required=Vous devez d\u00E9crire le contrat
chorem.gepeto.projectOrder.estimatedEndDate=Date de fin estim\u00E9e
chorem.gepeto.projectOrder.estimatedEndDate.required=Vous devez renseigner la date de fin estim\u00E9e du contrat
+chorem.gepeto.projectOrder.status=
chorem.gepeto.projectOrder.type=Type
chorem.gepeto.projectOrder.type.required=Vous devez sp\u00E9cifier le type du contrat
chorem.gepeto.projects=Obtenir la liste des projets
Modified: trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml
===================================================================
--- trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml 2011-04-08 09:34:00 UTC (rev 69)
+++ trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml 2011-04-08 12:40:37 UTC (rev 70)
@@ -13,6 +13,11 @@
<message key="chorem.gepeto.projectOrder.description.required" />
</field-validator>
</field>
+ <field name="status">
+ <field-validator type="requiredstring">
+ <message key="chorem.gepeto.projectOrder.status.required" />
+ </field-validator>
+ </field>
<field name="beginDate">
<field-validator type="requiredstring">
<message key="chorem.gepeto.projectOrder.beginDate.required" />
@@ -31,4 +36,14 @@
<message key="chorem.date.wrongFormat" />
</field-validator>
</field>
+ <field name="companyName">
+ <field-validator type="requiredstring">
+ <message key="chorem.gepeto.projectOrder.companyName.required" />
+ </field-validator>
+ </field>
+ <field name="companyType">
+ <field-validator type="requiredstring">
+ <message key="chorem.gepeto.projectOrder.companyType.required" />
+ </field-validator>
+ </field>
</validators>
Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp 2011-04-08 09:34:00 UTC (rev 69)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp 2011-04-08 12:40:37 UTC (rev 70)
@@ -1,6 +1,6 @@
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@page import="org.chorem.billy.action.QuotationAction" %>
-<%@page import="org.chorem.entities.ProjectOrder" %>
+<%@page import="org.chorem.gepeto.ProjectOrderFull" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<html xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
@@ -31,26 +31,26 @@
<br />
<br />
<%
- ProjectOrder projectOrder = QuotationAction.getAction().getProjectOrder();
+ ProjectOrderFull projectOrder = QuotationAction.getAction().getProjectOrder();
if (projectOrder != null) {
%>
<s:text name="chorem.billy.quotation.projectOrder" />
<br />
<s:text name="chorem.billy.quotation.projectOrder.beginDate">
- <s:param><%= projectOrder.getBeginDate() %></s:param>
+ <s:param><%= projectOrder.getProjectOrder().getBeginDate() %></s:param>
</s:text>
<br />
<s:text name="chorem.billy.quotation.projectOrder.endDate">
- <s:param><%= projectOrder.getEndDate() %></s:param>
+ <s:param><%= projectOrder.getProjectOrder().getEndDate() %></s:param>
</s:text>
<br />
<s:text name="chorem.billy.quotation.projectOrder.type">
- <s:param><%= projectOrder.getType() %></s:param>
+ <s:param><%= projectOrder.getProjectOrder().getType() %></s:param>
</s:text>
<br />
<s:text name="chorem.billy.quotation.projectOrder.company">
- <s:param><%= projectOrder.getCompany() %></s:param>
+ <s:param><%= projectOrder.getCompany().getName() %></s:param>
</s:text>
<br />
<% } else { %>
Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp 2011-04-08 09:34:00 UTC (rev 69)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp 2011-04-08 12:40:37 UTC (rev 70)
@@ -27,10 +27,16 @@
<s:textarea key="chorem.gepeto.projectOrder.description" name="description" cols="50" rows="10" labelposition="top" />
<br />
<br />
+ <s:textfield key="chorem.gepeto.projectOrder.status" name="status" labelSeparator=": " />
+ <br />
<s:textfield key="chorem.gepeto.projectOrder.beginDate" name="beginDate" labelSeparator=": " />
<br />
<s:textfield key="chorem.gepeto.projectOrder.estimatedEndDate" name="estimatedEndDate" labelSeparator=": " />
<br />
+ <s:textfield key="chorem.gepeto.projectOrder.company.name" name="companyName" labelSeparator=": " />
+ <br />
+ <s:textfield key="chorem.gepeto.projectOrder.company.type" name="companyType" labelSeparator=": " />
+ <br />
<s:submit key="chorem.gepeto.projectOrder.add" name="submit" />
</fieldset>
</form>
1
0
r69 - in trunk/chorem-web/src/main: java/org/chorem/gepeto/action resources resources/i18n webapp/WEB-INF/jsp/billy webapp/WEB-INF/jsp/bonzoms webapp/WEB-INF/jsp/gepeto
by vbriand@users.chorem.org April 8, 2011
by vbriand@users.chorem.org April 8, 2011
April 8, 2011
Author: vbriand
Date: 2011-04-08 11:34:00 +0200 (Fri, 08 Apr 2011)
New Revision: 69
Url: http://chorem.org/repositories/revision/chorem/69
Log:
Deleted non usable links on home pages.
Added direct redirection to the project's page after its creation
Modified:
trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java
trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties
trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties
trunk/chorem-web/src/main/resources/struts.xml
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/home.jsp
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp
trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/home.jsp
Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java
===================================================================
--- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java 2011-04-08 09:11:46 UTC (rev 68)
+++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java 2011-04-08 09:34:00 UTC (rev 69)
@@ -115,6 +115,7 @@
newProject.setDescription(description);
newProject.setName(name);
+ projectId = newProject.getWikittyId();
proxy.store(newProject);
} catch (Exception e) {
result = false;
Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties
===================================================================
--- trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 09:11:46 UTC (rev 68)
+++ trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 09:34:00 UTC (rev 69)
@@ -104,6 +104,7 @@
chorem.gepeto.projectOrder=Project order
chorem.gepeto.projectOrder.add=Add a new project order
chorem.gepeto.projectOrder.addToQuotation=Add a new project order to the quotation \#{0}
+chorem.gepeto.projectOrder.backToQuotationDetails=Get back to the quotation
chorem.gepeto.projectOrder.beginDate=Begin date (dd/mm/yyyy)
chorem.gepeto.projectOrder.beginDate.required=You must provide a begin date for this project order
chorem.gepeto.projectOrder.create.error=An error occurred while creating your new project order, please try again. If the problem persists, please contact an administrator
Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties
===================================================================
--- trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 09:11:46 UTC (rev 68)
+++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 09:34:00 UTC (rev 69)
@@ -99,6 +99,7 @@
chorem.gepeto.projectOrder=Contrat de commande d''un projet
chorem.gepeto.projectOrder.add=Ajouter le contrat d''un projet
chorem.gepeto.projectOrder.addToQuotation=Lier un nouveau contrat au devis \#{0}
+chorem.gepeto.projectOrder.backToQuotationDetails=Retourner sur le devis
chorem.gepeto.projectOrder.beginDate=Date de d\u00E9but
chorem.gepeto.projectOrder.beginDate.required=Vous devez renseigner une date de d\u00E9but pour le contrat
chorem.gepeto.projectOrder.create.error=Une erreur s''est produite lors de la cr\u00E9ation de votre nouveau contrat de projet, merci d''essayer \u00E0 nouveau. Si le probl\u00E8me se reproduit, merci de contacter un administrateur
Modified: trunk/chorem-web/src/main/resources/struts.xml
===================================================================
--- trunk/chorem-web/src/main/resources/struts.xml 2011-04-08 09:11:46 UTC (rev 68)
+++ trunk/chorem-web/src/main/resources/struts.xml 2011-04-08 09:34:00 UTC (rev 69)
@@ -63,7 +63,11 @@
<action name="addProject" class="org.chorem.gepeto.action.ProjectAction" method="add">
<result name="input">/WEB-INF/jsp/gepeto/addProject.jsp</result>
<result name="error">/WEB-INF/jsp/gepeto/addProject.jsp</result>
- <result type="redirectAction">home</result>
+ <result type="redirectAction">
+ <param name="actionName">projectDetails</param>
+ <param name="namespace">gepeto</param>
+ <param name="projectId">${projectId}</param>
+ </result>
</action>
<action name="removeProject" class="org.chorem.gepeto.action.ProjectAction" method="delete">
<result type="redirectAction">home</result>
Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/home.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/home.jsp 2011-04-08 09:11:46 UTC (rev 68)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/home.jsp 2011-04-08 09:34:00 UTC (rev 69)
@@ -7,7 +7,6 @@
<title><s:text name="chorem.billy.home" /></title>
<s:head />
</head>
- <body>
- <s:a action="addQuotationInput"><s:text name="chorem.billy.quotation.add" /></s:a><br />
+ <body>
</body>
</html>
Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp 2011-04-08 09:11:46 UTC (rev 68)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp 2011-04-08 09:34:00 UTC (rev 69)
@@ -30,12 +30,6 @@
<s:textfield readonly="true" name="postedDate" key="chorem.billy.quotation.postedDate" labelSeparator=": " />
<br />
<br />
- <s:url namespace="/gepeto" action="addProjectOrderInput" var="addProjectOrder">
- <s:param name="quotationId"><%= QuotationAction.getAction().getQuotationId() %></s:param>
- </s:url>
- <s:url namespace="/gepeto" action="projectDetails" var="projectDetails">
- <s:param name="projectId"><%= QuotationAction.getAction().getProjectId() %></s:param>
- </s:url>
<%
ProjectOrder projectOrder = QuotationAction.getAction().getProjectOrder();
@@ -60,10 +54,16 @@
</s:text>
<br />
<% } else { %>
+ <s:url namespace="/gepeto" action="addProjectOrderInput" var="addProjectOrder">
+ <s:param name="quotationId"><%= QuotationAction.getAction().getQuotationId() %></s:param>
+ </s:url>
<a href="${addProjectOrder}"><s:text name="chorem.billy.quotation.addProjectOrder" /></a>
<br />
<% } %>
<br />
+ <s:url namespace="/gepeto" action="projectDetails" var="projectDetails">
+ <s:param name="projectId"><%= QuotationAction.getAction().getProjectId() %></s:param>
+ </s:url>
<a href="${projectDetails}"><s:text name="chorem.billy.quotation.backToProjectDetails" /></a>
</p>
</body>
Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp 2011-04-08 09:11:46 UTC (rev 68)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp 2011-04-08 09:34:00 UTC (rev 69)
@@ -8,8 +8,9 @@
<s:head />
</head>
<body>
- <s:a action="addCompanyInput"><s:text name="chorem.bonzoms.company.add" /></s:a><br />
- <s:a action="addEmploymentContractInput"><s:text name="chorem.bonzoms.employmentContract.add" /></s:a><br />
- <s:a action="addPersonInput"><s:text name="chorem.bonzoms.person.add" /></s:a>
+ <p>
+ <s:a action="addCompanyInput"><s:text name="chorem.bonzoms.company.add" /></s:a><br />
+ <s:a action="addPersonInput"><s:text name="chorem.bonzoms.person.add" /></s:a>
+ </p>
</body>
</html>
Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp 2011-04-08 09:11:46 UTC (rev 68)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp 2011-04-08 09:34:00 UTC (rev 69)
@@ -34,5 +34,9 @@
<s:submit key="chorem.gepeto.projectOrder.add" name="submit" />
</fieldset>
</form>
+ <s:url namespace="/billy" action="quotationDetails" var="quotationDetails">
+ <s:param name="quotationId"><%= ProjectOrderAction.getAction().getQuotationId() %></s:param>
+ </s:url>
+ <a href="${quotationDetails}"><s:text name="chorem.gepeto.projectOrder.backToQuotationDetails" /></a>
</body>
</html>
Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/home.jsp
===================================================================
--- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/home.jsp 2011-04-08 09:11:46 UTC (rev 68)
+++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/home.jsp 2011-04-08 09:34:00 UTC (rev 69)
@@ -8,9 +8,9 @@
<s:head />
</head>
<body>
- <s:a action="addProjectInput"><s:text name="chorem.gepeto.project.add" /></s:a><br />
- <s:a action="addProjectOrderInput"><s:text name="chorem.gepeto.projectOrder.add" /></s:a><br />
- <s:a action="addTaskInput"><s:text name="chorem.gepeto.task.add" /></s:a><br />
- <s:a action="getProjectsByYear"><s:text name="chorem.gepeto.projects" /></s:a><br />
+ <p>
+ <s:a action="addProjectInput"><s:text name="chorem.gepeto.project.add" /></s:a><br />
+ <s:a action="getProjectsByYear"><s:text name="chorem.gepeto.projects" /></s:a><br />
+ </p>
</body>
</html>
1
0