diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java
index 7500efaab..614e7394c 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java
@@ -96,6 +96,8 @@ public abstract class Resource extends IntegrationEntity {
private Boolean limitingResource = Boolean.FALSE;
+ private Boolean generateCode = false;
+
private void clearCachedData() {
assignmentsByDayCached = null;
}
@@ -1058,4 +1060,12 @@ public abstract class Resource extends IntegrationEntity {
return (Boolean.TRUE.equals(isLimitingResource())) ? _("yes") : _("no");
}
+ public void setGenerateCode(Boolean generateCode) {
+ this.generateCode = generateCode;
+ }
+
+ public Boolean getGenerateCode() {
+ return 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 7faba6d40..e09483ba5 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
@@ -15,6 +15,8 @@
+
+
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerCRUDController.java
index fa4353714..7059b0380 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerCRUDController.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerCRUDController.java
@@ -49,6 +49,8 @@ import org.navalplanner.web.costcategories.ResourcesCostCategoryAssignmentContro
import org.navalplanner.web.resources.search.ResourcePredicate;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.WrongValueException;
+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.Combobox;
import org.zkoss.zul.Comboitem;
@@ -708,4 +710,14 @@ public class WorkerCRUDController extends GenericForwardComposer implements
return (getWorker() != null && !getWorker().isNewObject());
}
+ public void onCheckGenerateCode(Event e) {
+ CheckEvent ce = (CheckEvent) e;
+ if(ce.isChecked()) {
+ //we have to auto-generate the code if it's unsaved
+ if(getWorker().isNewObject()) {
+ getWorker().setCodeAutogenerated();
+ Util.reloadBindings(editWindow);
+ }
+ }
+ }
}
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerModel.java
index 664c802bc..69a8790bb 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerModel.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/WorkerModel.java
@@ -168,6 +168,10 @@ public class WorkerModel implements IWorkerModel {
} else {
worker = Worker.create();
}
+ worker.setGenerateCode(configurationDAO.getConfiguration().getGenerateCodeForResources());
+ if(!worker.getGenerateCode()) {
+ worker.setCode("");
+ }
localizationsAssigner = new MultipleCriterionActiveAssigner(
criterionDAO, worker,
PredefinedCriterionTypes.LOCATION_GROUP);
diff --git a/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul b/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul
index 13a9fb346..9b5350e72 100644
--- a/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul
+++ b/navalplanner-webapp/src/main/webapp/resources/worker/_edition.zul
@@ -43,7 +43,14 @@
-
+
+
+
+