From 1bd966bcee809b0668da5698fd5df71d891f1364 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Thu, 12 May 2016 13:50:40 +0200
Subject: [PATCH] OO-1944: allow coaches and administrators to start the
 training 60 minutes before the other members

---
 .../modules/gotomeeting/ui/GoToMeetingController.java  | 10 +++++++++-
 .../modules/gotomeeting/ui/GoToMeetingsController.java |  2 +-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/olat/modules/gotomeeting/ui/GoToMeetingController.java b/src/main/java/org/olat/modules/gotomeeting/ui/GoToMeetingController.java
index 77546709b0f..92878fa6216 100644
--- a/src/main/java/org/olat/modules/gotomeeting/ui/GoToMeetingController.java
+++ b/src/main/java/org/olat/modules/gotomeeting/ui/GoToMeetingController.java
@@ -19,6 +19,7 @@
  */
 package org.olat.modules.gotomeeting.ui;
 
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 
@@ -119,9 +120,16 @@ public class GoToMeetingController extends BasicController {
 		Date end = meeting.getEndDate();
 		Date now = new Date();
 		boolean canStart = (start.compareTo(now) <= 0 && end.compareTo(now) > 0);
+
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(start);
+		cal.add(Calendar.MINUTE, -60);
+		Date startMinusOne = cal.getTime();
+		boolean canCoachStart = (startMinusOne.compareTo(now) <= 0 && end.compareTo(now) > 0);
+		
 		boolean ended = (end.compareTo(now) <= 0);
 		if(administrator || moderator) {
-			if(canStart) {
+			if(canCoachStart) {
 				startLink.setVisible(true);
 				registerLink.setVisible(false);
 			} else if(ended) {
diff --git a/src/main/java/org/olat/modules/gotomeeting/ui/GoToMeetingsController.java b/src/main/java/org/olat/modules/gotomeeting/ui/GoToMeetingsController.java
index 9684dfd6b73..d015e84218d 100644
--- a/src/main/java/org/olat/modules/gotomeeting/ui/GoToMeetingsController.java
+++ b/src/main/java/org/olat/modules/gotomeeting/ui/GoToMeetingsController.java
@@ -99,7 +99,7 @@ public class GoToMeetingsController extends FormBasicController {
 		pastColumnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(MeetingsCols.end.i18nHeaderKey(), MeetingsCols.end.ordinal(), true, MeetingsCols.end.name()));
 		pastColumnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("select", translate("select"), "select-past"));
 
-		pastTableModel = new GoToMeetingTableModel(columnsModel);
+		pastTableModel = new GoToMeetingTableModel(pastColumnsModel);
 		pastTableEl = uifactory.addTableElement(getWindowControl(), "pastmeetings", pastTableModel, getTranslator(), formLayout);
 
 		FlexiTableSortOptions pastSortOptions = new FlexiTableSortOptions();
-- 
GitLab