diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarModel.java
index cbce5f758..2c91180de 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarModel.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarModel.java
@@ -74,14 +74,6 @@ public class BaseCalendarModel implements IBaseCalendarModel {
Validate.notNull(baseCalendar);
this.baseCalendar = getFromDB(baseCalendar);
- try {
- this.baseCalendar = this.baseCalendar.newVersion();
- } catch (IllegalArgumentException e) {
- LocalDate expiringDate = this.baseCalendar.getPreviousCalendar()
- .getExpiringDate();
- this.baseCalendar = this.baseCalendar.newVersion(expiringDate
- .plusDays(1));
- }
forceLoadHoursPerDayAndExceptionDays(this.baseCalendar);
}
@@ -198,8 +190,15 @@ public class BaseCalendarModel implements IBaseCalendarModel {
}
@Override
+ @Transactional(readOnly = true)
public void setSelectedDay(Date date) {
this.selectedDate = date;
+
+ BaseCalendar validCalendar = baseCalendar.getCalendarVersion(date);
+ if (!validCalendar.equals(baseCalendar)) {
+ baseCalendar = validCalendar;
+ forceLoadHoursPerDayAndExceptionDays(baseCalendar);
+ }
}
@Override
diff --git a/navalplanner-webapp/src/main/webapp/calendars/_edition.zul b/navalplanner-webapp/src/main/webapp/calendars/_edition.zul
index 2becee26f..0286517a4 100644
--- a/navalplanner-webapp/src/main/webapp/calendars/_edition.zul
+++ b/navalplanner-webapp/src/main/webapp/calendars/_edition.zul
@@ -81,13 +81,10 @@
+
+
-
-
diff --git a/navalplanner-webapp/src/test/java/org/navalplanner/web/calendars/BaseCalendarModelTest.java b/navalplanner-webapp/src/test/java/org/navalplanner/web/calendars/BaseCalendarModelTest.java
index 81b54496f..c756f0a2c 100644
--- a/navalplanner-webapp/src/test/java/org/navalplanner/web/calendars/BaseCalendarModelTest.java
+++ b/navalplanner-webapp/src/test/java/org/navalplanner/web/calendars/BaseCalendarModelTest.java
@@ -72,8 +72,7 @@ public class BaseCalendarModelTest {
baseCalendarModel.confirmSave();
assertThat(baseCalendarModel.getBaseCalendars().size(), equalTo(1));
- assertThat(baseCalendarModel.getBaseCalendars().get(0)
- .getPreviousCalendar().getId(),
+ assertThat(baseCalendarModel.getBaseCalendars().get(0).getId(),
equalTo(baseCalendar.getId()));
assertThat(baseCalendarModel.getBaseCalendars().get(0).getHours(
Days.MONDAY), equalTo(4));