From 4373da70d89e8548c68dc02050101f6c080b87d7 Mon Sep 17 00:00:00 2001
From: fkiefer <none@none>
Date: Fri, 3 Feb 2017 12:06:48 +0100
Subject: [PATCH] OO-2133 allow coach and admin view highscore without having
 taken the test, wording

---
 .../course/highscore/ui/HighScoreRunController.java | 13 +++++++++----
 .../course/nodes/basiclti/LTIRunController.java     |  8 ++++----
 .../course/nodes/cl/ui/CheckListRunController.java  |  4 ++--
 .../olat/course/nodes/gta/ui/GTARunController.java  |  4 ++--
 .../org/olat/course/nodes/iq/IQRunController.java   |  4 ++--
 .../nodes/iq/QTI21AssessmentRunController.java      |  3 ++-
 .../course/nodes/ms/MSCourseNodeRunController.java  |  4 ++--
 .../portfolio/PortfolioCourseNodeRunController.java |  4 ++--
 .../olat/course/nodes/scorm/ScormRunController.java |  4 ++--
 .../course/nodes/st/STCourseNodeRunController.java  |  4 ++--
 .../js/jquery/openolat/jquery.statistics.chart.js   |  2 +-
 11 files changed, 30 insertions(+), 24 deletions(-)

diff --git a/src/main/java/org/olat/course/highscore/ui/HighScoreRunController.java b/src/main/java/org/olat/course/highscore/ui/HighScoreRunController.java
index cb565cea019..e6a4b29b6ee 100644
--- a/src/main/java/org/olat/course/highscore/ui/HighScoreRunController.java
+++ b/src/main/java/org/olat/course/highscore/ui/HighScoreRunController.java
@@ -88,6 +88,7 @@ public class HighScoreRunController extends FormBasicController{
 	public HighScoreRunController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv,
 			CourseNode courseNode) {
 		super(ureq, wControl, "highscore");
+		boolean adminORcoach = userCourseEnv.isAdmin() || userCourseEnv.isCoach();
 		
 		List<AssessmentEntry>  assessEntries = userCourseEnv.getCourseEnvironment()
 				.getAssessmentManager().getAssessmentEntries(courseNode);
@@ -100,10 +101,14 @@ public class HighScoreRunController extends FormBasicController{
 		
 		ownIdentity = ureq.getIdentity();
 		viewHighscore = config.getBooleanSafe(HighScoreEditController.CONFIG_KEY_HIGHSCORE);
-		// do not display highscore if current user has not yet a score
-		if (!highScoreManager.hasScore(assessEntries, ownIdentity))viewHighscore = false;
+		// do not display highscore if current user has not yet a score or is not coach or admin
+		if (!highScoreManager.hasScore(assessEntries, ownIdentity)) {
+			viewHighscore = adminORcoach;
+		}
 		// do not build form if high-score is not set
-		if (!viewHighscore)return;
+		if (!viewHighscore){
+			return;			
+		}
 		
 		viewTable = config.getBooleanSafe(HighScoreEditController.CONFIG_KEY_LISTING);
 		viewHistogram = config.getBooleanSafe(HighScoreEditController.CONFIG_KEY_HISTOGRAM);
@@ -134,7 +139,7 @@ public class HighScoreRunController extends FormBasicController{
 			scoreHistogramVC.contextPut("datas", BarSeries.datasToString(allScores));
 			//histogram marker for own position
 			scoreHistogramVC.contextPut("cutValue", 
-					ownIdIndices.size() > 0 ? allMembers.get(ownIdIndices.get(0)).getScore() : "");
+					ownIdIndices.size() > 0 ? allMembers.get(ownIdIndices.get(0)).getScore() : -1);
 			//find path for ownID image to display in histogram
 			UserAvatarMapper mapper = new UserAvatarMapper(false);
 			String mapperPath = registerMapper(ureq, mapper);
diff --git a/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java b/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java
index a00f874fa18..2fe803f2b34 100644
--- a/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java
+++ b/src/main/java/org/olat/course/nodes/basiclti/LTIRunController.java
@@ -116,8 +116,8 @@ public class LTIRunController extends BasicController {
 		if (courseNode.getModuleConfiguration().getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD,true)){
 			HighScoreRunController highScoreCtr = new HighScoreRunController(ureq, wControl, userCourseEnv, courseNode);
 			if (highScoreCtr.isViewHighscore()) {
-				Component compi = highScoreCtr.getInitialComponent();
-				run.put("highScore", compi);							
+				Component highScoreComponent = highScoreCtr.getInitialComponent();
+				run.put("highScore", highScoreComponent);							
 			}
 		}
 
@@ -324,8 +324,8 @@ public class LTIRunController extends BasicController {
 		if (courseNode.getModuleConfiguration().getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD,false)){
 			HighScoreRunController highScoreCtr = new HighScoreRunController(ureq, getWindowControl(), userCourseEnv, courseNode);
 			if (highScoreCtr.isViewHighscore()) {
-				Component compi = highScoreCtr.getInitialComponent();
-				startPage.put("highScore", compi);							
+				Component highScoreComponent = highScoreCtr.getInitialComponent();
+				startPage.put("highScore", highScoreComponent);							
 			}
 		}
 		
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java
index 0a09f492c27..fb2694d51aa 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java
+++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java
@@ -146,8 +146,8 @@ public class CheckListRunController extends FormBasicController implements Contr
 			if (courseNode.getModuleConfiguration().getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD,false)){
 				HighScoreRunController highScoreCtr = new HighScoreRunController(ureq, getWindowControl(), userCourseEnv, courseNode);
 				if (highScoreCtr.isViewHighscore()) {
-					Component compi = highScoreCtr.getInitialComponent();
-					layoutCont.put("highScore", compi);							
+					Component highScoreComponent = highScoreCtr.getInitialComponent();
+					layoutCont.put("highScore", highScoreComponent);							
 				}
 			}
 			
diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTARunController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTARunController.java
index a607ad19379..6b6afa1471f 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/GTARunController.java
+++ b/src/main/java/org/olat/course/nodes/gta/ui/GTARunController.java
@@ -117,8 +117,8 @@ public class GTARunController extends BasicController {
 		if (gtaNode.getModuleConfiguration().getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD,false)){
 			HighScoreRunController highScoreCtr = new HighScoreRunController(ureq, wControl, userCourseEnv, gtaNode);
 			if (highScoreCtr.isViewHighscore()) {
-				Component compi = highScoreCtr.getInitialComponent();
-				mainVC.put("highScore", compi);							
+				Component highScoreComponent = highScoreCtr.getInitialComponent();
+				mainVC.put("highScore", highScoreComponent);							
 			}
 		}
 	}
diff --git a/src/main/java/org/olat/course/nodes/iq/IQRunController.java b/src/main/java/org/olat/course/nodes/iq/IQRunController.java
index 04d8adf1543..4df291fa4ae 100644
--- a/src/main/java/org/olat/course/nodes/iq/IQRunController.java
+++ b/src/main/java/org/olat/course/nodes/iq/IQRunController.java
@@ -303,8 +303,8 @@ public class IQRunController extends BasicController implements GenericEventList
 		if (courseNode.getModuleConfiguration().getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD,true)){
 			HighScoreRunController highScoreCtr = new HighScoreRunController(ureq, wControl, userCourseEnv, courseNode);
 			if (highScoreCtr.isViewHighscore()) {
-				Component compi = highScoreCtr.getInitialComponent();
-				myContent.put("highScore", compi);							
+				Component highScoreComponent = highScoreCtr.getInitialComponent();
+				myContent.put("highScore", highScoreComponent);							
 			}
 		}
 		
diff --git a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java
index 71c0061ea18..aaab155552a 100644
--- a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java
+++ b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java
@@ -127,7 +127,8 @@ public class QTI21AssessmentRunController extends BasicController implements Gen
 		singleUserEventCenter = userSession.getSingleUserEventCenter();
 		mainVC = createVelocityContainer("assessment_run");
 		
-		if (courseNode.getModuleConfiguration().getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD,true)){
+		if (courseNode.getModuleConfiguration().getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD,true)
+				|| userCourseEnv.isCoach()){
 			HighScoreRunController highScoreCtr = new HighScoreRunController(ureq, getWindowControl(), userCourseEnv, courseNode);
 			if (highScoreCtr.isViewHighscore()) {
 				Component highScoreComponent = highScoreCtr.getInitialComponent();
diff --git a/src/main/java/org/olat/course/nodes/ms/MSCourseNodeRunController.java b/src/main/java/org/olat/course/nodes/ms/MSCourseNodeRunController.java
index 6a78ff32be4..da1d6d128d6 100644
--- a/src/main/java/org/olat/course/nodes/ms/MSCourseNodeRunController.java
+++ b/src/main/java/org/olat/course/nodes/ms/MSCourseNodeRunController.java
@@ -79,8 +79,8 @@ public class MSCourseNodeRunController extends DefaultController {
 		if (msCourseNode.getModuleConfiguration().getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD,false)){
 			HighScoreRunController highScoreCtr = new HighScoreRunController(ureq, wControl, userCourseEnv, msCourseNode);
 			if (highScoreCtr.isViewHighscore()) {
-				Component compi = highScoreCtr.getInitialComponent();
-				myContent.put("highScore", compi);							
+				Component highScoreComponent = highScoreCtr.getInitialComponent();
+				myContent.put("highScore", highScoreComponent);							
 			}
 		}
 				
diff --git a/src/main/java/org/olat/course/nodes/portfolio/PortfolioCourseNodeRunController.java b/src/main/java/org/olat/course/nodes/portfolio/PortfolioCourseNodeRunController.java
index 659b91d829d..362c8cc07c1 100644
--- a/src/main/java/org/olat/course/nodes/portfolio/PortfolioCourseNodeRunController.java
+++ b/src/main/java/org/olat/course/nodes/portfolio/PortfolioCourseNodeRunController.java
@@ -147,8 +147,8 @@ public class PortfolioCourseNodeRunController extends FormBasicController {
 		if (courseNode.getModuleConfiguration().getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD,false)){
 			HighScoreRunController highScoreCtr = new HighScoreRunController(ureq, getWindowControl(), userCourseEnv, courseNode);
 			if (highScoreCtr.isViewHighscore()) {
-				Component compi = highScoreCtr.getInitialComponent();
-				mainVC.put("highScore", compi);							
+				Component highScoreComponent = highScoreCtr.getInitialComponent();
+				mainVC.put("highScore", highScoreComponent);							
 			}
 		}
 		
diff --git a/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java b/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java
index 8ab13f701f1..5d01b9fba2a 100644
--- a/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java
+++ b/src/main/java/org/olat/course/nodes/scorm/ScormRunController.java
@@ -136,8 +136,8 @@ public class ScormRunController extends BasicController implements ScormAPICallb
 			
 			HighScoreRunController highScoreCtr = new HighScoreRunController(ureq, getWindowControl(), userCourseEnv, scormNode);
 			if (highScoreCtr.isViewHighscore()) {
-				Component compi = highScoreCtr.getInitialComponent();
-				startPage.put("highScore", compi);							
+				Component highScoreComponent = highScoreCtr.getInitialComponent();
+				startPage.put("highScore", highScoreComponent);							
 			}
 		}
 
diff --git a/src/main/java/org/olat/course/nodes/st/STCourseNodeRunController.java b/src/main/java/org/olat/course/nodes/st/STCourseNodeRunController.java
index dc70d93b27c..dcc26a05654 100644
--- a/src/main/java/org/olat/course/nodes/st/STCourseNodeRunController.java
+++ b/src/main/java/org/olat/course/nodes/st/STCourseNodeRunController.java
@@ -101,8 +101,8 @@ public class STCourseNodeRunController extends BasicController {
 		if (stCourseNode.getModuleConfiguration().getBooleanSafe(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD,true)){
 			HighScoreRunController highScoreCtr = new HighScoreRunController(ureq, wControl, userCourseEnv, stCourseNode);
 			if (highScoreCtr.isViewHighscore()) {
-				Component compi = highScoreCtr.getInitialComponent();
-				myContent.put("highScore", compi);							
+				Component highScoreComponent = highScoreCtr.getInitialComponent();
+				myContent.put("highScore", highScoreComponent);							
 			}
 		}
 		// read display configuration
diff --git a/src/main/webapp/static/js/jquery/openolat/jquery.statistics.chart.js b/src/main/webapp/static/js/jquery/openolat/jquery.statistics.chart.js
index fe8e01f6f78..54ce451999c 100644
--- a/src/main/webapp/static/js/jquery/openolat/jquery.statistics.chart.js
+++ b/src/main/webapp/static/js/jquery/openolat/jquery.statistics.chart.js
@@ -788,7 +788,7 @@
 	  		.data(data)
 	  		.enter().append('g')
 	  		.attr('class', function(d, i) {
-	  		  console.log(data[i].x == cut, data[i].x,cut);
+//	  		  console.log(data[i].x == cut, data[i].x,cut);
 	  			if(cut == null) return 'o_empty';
 	  			else if(data[i].x == cut) return 'o_myself';
 	  			else return 'o_other';	  		  
-- 
GitLab