diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java
index 2c68da68f..d0e1c3268 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java
@@ -48,6 +48,9 @@ public class CriterionType extends IntegrationEntity implements
return create(new CriterionType());
}
+ public static CriterionType create(String code) {
+ return create(new CriterionType(), code);
+ }
public static CriterionType createUnvalidated(String code, String name,
String description, Boolean allowHierarchy,
@@ -140,6 +143,8 @@ public class CriterionType extends IntegrationEntity implements
private int numCriterions;
+ private Boolean generateCode = false;
+
/**
* Constructor for hibernate. Do not use!
*/
@@ -469,4 +474,12 @@ public class CriterionType extends IntegrationEntity implements
return Registry.getCriterionTypeDAO();
}
+ public Boolean getGenerateCode() {
+ return generateCode;
+ }
+
+ public void setGenerateCode(Boolean generateCode) {
+ this.generateCode = generateCode;
+ }
+
}
diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml
index 676ff1810..7faba6d40 100644
--- a/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml
+++ b/navalplanner-business/src/main/resources/org/navalplanner/business/resources/entities/Resources.hbm.xml
@@ -122,6 +122,7 @@
+
org.navalplanner.business.resources.entities.ResourceEnum
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionAdminController_V2.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionAdminController_V2.java
index 7a7c0212c..4742709e7 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionAdminController_V2.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionAdminController_V2.java
@@ -38,6 +38,8 @@ import org.navalplanner.web.common.MessagesForUser;
import org.navalplanner.web.common.OnlyOneVisible;
import org.navalplanner.web.common.Util;
import org.zkoss.zk.ui.Component;
+import org.zkoss.zk.ui.event.CheckEvent;
+import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox;
@@ -334,4 +336,15 @@ public class CriterionAdminController_V2 extends GenericForwardComposer {
editionTree.doAfterCompose(comp.getFellow(
"criterionsTree"));
}
+
+ public void onCheckGenerateCode(Event e) {
+ CheckEvent ce = (CheckEvent) e;
+ if(ce.isChecked()) {
+ //we have to auto-generate the code for new objects
+ if(((CriterionType)criterionsModel_V2.getCriterionType()).isNewObject()) {
+ ((CriterionType)criterionsModel_V2.getCriterionType()).setCodeAutogenerated();
+ Util.reloadBindings(createComponent);
+ }
+ }
+ }
}
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionsModel_V2.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionsModel_V2.java
index 1867e2cee..7fcc6c580 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionsModel_V2.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/criterion/CriterionsModel_V2.java
@@ -29,6 +29,7 @@ import java.util.List;
import org.apache.commons.lang.Validate;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.navalplanner.business.common.daos.IConfigurationDAO;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.resources.daos.ICriterionDAO;
@@ -66,6 +67,9 @@ public class CriterionsModel_V2 implements ICriterionsModel_V2 {
@Autowired
private IResourceDAO resourceDAO;
+ @Autowired
+ private IConfigurationDAO configurationDAO;
+
private CriterionType criterionType;
private Criterion criterion;
@@ -100,8 +104,16 @@ public class CriterionsModel_V2 implements ICriterionsModel_V2 {
}
@Override
+ @Transactional(readOnly=true)
public void prepareForCreate() {
- this.criterionType = CriterionType.create();
+ boolean generateCode = configurationDAO.getConfiguration().getGenerateCodeForCriterion();
+ if(generateCode) {
+ this.criterionType = CriterionType.create();
+ }
+ else {
+ this.criterionType = CriterionType.create("");
+ }
+ this.criterionType.setGenerateCode(generateCode);
this.criterionTreeModel = new CriterionTreeModel(criterionType);
}
diff --git a/navalplanner-webapp/src/main/webapp/resources/criterions/_edition-V2.zul b/navalplanner-webapp/src/main/webapp/resources/criterions/_edition-V2.zul
index 6ccf31e47..5c171fe03 100644
--- a/navalplanner-webapp/src/main/webapp/resources/criterions/_edition-V2.zul
+++ b/navalplanner-webapp/src/main/webapp/resources/criterions/_edition-V2.zul
@@ -63,8 +63,14 @@
-
+
+
+
+