[Bug #1193] Fix bug

Make sure that all calendar data is loaded. The calendars used in the
creation popup must be fully loaded.

FEA: ItEr75S04BugFixing
This commit is contained in:
Óscar González Fernández 2011-09-27 18:56:21 +02:00
parent 47000bc477
commit b72b24f174
3 changed files with 30 additions and 4 deletions

View file

@ -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<BaseCalendar> getBaseCalendars() {
return baseCalendarDAO.getBaseCalendars();
List<BaseCalendar> result = baseCalendarDAO.getBaseCalendars();
for (BaseCalendar each : result) {
BaseCalendarModel.forceLoadBaseCalendar(each);
}
return result;
}
@Override

View file

@ -217,6 +217,11 @@ public class PlanningStateCreator {
forceLoadOfDepedenciesCollections(rootTask);
}
if (orderReloaded.getCalendar() != null) {
BaseCalendarModel
.forceLoadBaseCalendar(orderReloaded.getCalendar());
}
PlanningState result = new PlanningState(orderReloaded, allResources,
currentScenario);

View file

@ -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<BaseCalendar>() {
@Override
public BaseCalendar execute() {
BaseCalendar result = configurationDAO
.getConfigurationWithReadOnlyTransaction()
.getDefaultCalendar();
BaseCalendarModel.forceLoadBaseCalendar(result);
return result;
}
});
order.setCalendar(calendar);
return order;
}