diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java index 54d7719ed..b462a38bc 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java @@ -75,6 +75,7 @@ import org.navalplanner.business.users.entities.OrderAuthorization; import org.navalplanner.business.users.entities.OrderAuthorizationType; import org.navalplanner.business.users.entities.User; import org.navalplanner.business.users.entities.UserRole; +import org.navalplanner.web.calendars.BaseCalendarModel; import org.navalplanner.web.common.IntegrationEntityModel; import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification; import org.navalplanner.web.orders.labels.LabelsOnConversation; @@ -582,7 +583,11 @@ public class OrderModel extends IntegrationEntityModel implements IOrderModel { @Override @Transactional(readOnly = true) public List getBaseCalendars() { - return baseCalendarDAO.getBaseCalendars(); + List result = baseCalendarDAO.getBaseCalendars(); + for (BaseCalendar each : result) { + BaseCalendarModel.forceLoadBaseCalendar(each); + } + return result; } @Override diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningStateCreator.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningStateCreator.java index f64029561..be4eb0702 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningStateCreator.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningStateCreator.java @@ -217,6 +217,11 @@ public class PlanningStateCreator { forceLoadOfDepedenciesCollections(rootTask); } + if (orderReloaded.getCalendar() != null) { + BaseCalendarModel + .forceLoadBaseCalendar(orderReloaded.getCalendar()); + } + PlanningState result = new PlanningState(orderReloaded, allResources, currentScenario); diff --git a/navalplanner-webapp/src/test/java/org/navalplanner/web/orders/OrderModelTest.java b/navalplanner-webapp/src/test/java/org/navalplanner/web/orders/OrderModelTest.java index 0664e2875..735ba1b87 100644 --- a/navalplanner-webapp/src/test/java/org/navalplanner/web/orders/OrderModelTest.java +++ b/navalplanner-webapp/src/test/java/org/navalplanner/web/orders/OrderModelTest.java @@ -48,6 +48,8 @@ import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.navalplanner.business.IDataBootstrap; +import org.navalplanner.business.calendars.daos.IBaseCalendarDAO; +import org.navalplanner.business.calendars.entities.BaseCalendar; import org.navalplanner.business.common.IAdHocTransactionService; import org.navalplanner.business.common.IOnTransaction; import org.navalplanner.business.common.daos.IConfigurationDAO; @@ -73,6 +75,7 @@ import org.navalplanner.business.resources.entities.ResourceEnum; import org.navalplanner.business.scenarios.IScenarioManager; import org.navalplanner.business.scenarios.entities.OrderVersion; import org.navalplanner.business.scenarios.entities.Scenario; +import org.navalplanner.web.calendars.BaseCalendarModel; import org.navalplanner.web.planner.order.PlanningStateCreator; import org.navalplanner.web.planner.order.PlanningStateCreator.PlanningState; import org.springframework.beans.factory.annotation.Autowired; @@ -154,6 +157,9 @@ public class OrderModelTest { @Autowired private IExternalCompanyDAO externalCompanyDAO; + @Autowired + private IBaseCalendarDAO calendarDAO; + @Autowired private PlanningStateCreator planningStateCreator; @@ -182,9 +188,19 @@ public class OrderModelTest { order.setName("name"); order.setResponsible("responsible"); order.setCode("code-" + UUID.randomUUID()); - order.setCalendar(configurationDAO - .getConfigurationWithReadOnlyTransaction() - .getDefaultCalendar()); + BaseCalendar calendar = adHocTransaction + .runOnReadOnlyTransaction(new IOnTransaction() { + + @Override + public BaseCalendar execute() { + BaseCalendar result = configurationDAO + .getConfigurationWithReadOnlyTransaction() + .getDefaultCalendar(); + BaseCalendarModel.forceLoadBaseCalendar(result); + return result; + } + }); + order.setCalendar(calendar); return order; }