From fa5d213247f06a69ed3fdc06be7e7db3f153731d Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Wed, 26 Jun 2019 14:53:56 +0200
Subject: [PATCH] OO-4117: add icon as header (and i18nHeaderkey down to title
 of icon)

---
 .../table/DefaultFlexiColumnModel.java        | 53 +++++++++++--------
 .../impl/elements/table/FlexiColumnDef.java   |  8 +++
 .../impl/elements/table/FlexiColumnModel.java |  2 +
 .../table/FlexiTableClassicRenderer.java      | 18 ++++++-
 .../IdentityListCourseNodeController.java     |  4 +-
 .../IdentityListCourseNodeTableModel.java     | 15 +++++-
 .../ui/tool/_i18n/LocalStrings_de.properties  |  2 +-
 .../ui/tool/_i18n/LocalStrings_en.properties  |  2 +-
 .../ui/tool/_i18n/LocalStrings_fr.properties  |  2 +-
 .../ui/tool/_i18n/LocalStrings_it.properties  |  1 -
 .../tool/_i18n/LocalStrings_pt_BR.properties  |  1 -
 .../IQIdentityListCourseNodeController.java   |  1 +
 .../ui/shared/SharedBindersController.java    |  4 +-
 .../ui/shared/SharedPagesController.java      |  2 +-
 .../qpool/ui/AbstractItemListController.java  |  2 +-
 .../ui/author/AuthorListController.java       |  2 +-
 16 files changed, 84 insertions(+), 35 deletions(-)

diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java
index 692ffdedaac..f36b9154aa7 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java
@@ -34,6 +34,7 @@ public class DefaultFlexiColumnModel implements FlexiColumnModel {
 
 	private String headerKey;
 	private String headerLabel;
+	private String iconHeader;
 	private Integer headerAlignment;
 	private String columnKey;
 	private int columnIndex;
@@ -60,50 +61,50 @@ public class DefaultFlexiColumnModel implements FlexiColumnModel {
 	}
 	
 	public DefaultFlexiColumnModel(FlexiColumnDef def, String action) {
-		this(true, false, def.i18nHeaderKey(), def.ordinal(), action, false, null, FlexiColumnModel.ALIGNMENT_LEFT, 
+		this(true, false, def.i18nHeaderKey(), def.iconHeader(), def.ordinal(), action, false, null, FlexiColumnModel.ALIGNMENT_LEFT, 
 				new StaticFlexiCellRenderer(action, new TextFlexiCellRenderer()));
 	}
 	
 	public DefaultFlexiColumnModel(boolean defVisible, FlexiColumnDef def, String action) {
-		this(defVisible, false, def.i18nHeaderKey(), def.ordinal(), action, false, null, FlexiColumnModel.ALIGNMENT_LEFT, 
+		this(defVisible, false, def.i18nHeaderKey(), def.iconHeader(), def.ordinal(), action, false, null, FlexiColumnModel.ALIGNMENT_LEFT, 
 				new StaticFlexiCellRenderer(action, new TextFlexiCellRenderer()));
 	}
 	
 	public DefaultFlexiColumnModel(boolean defVisible, FlexiSortableColumnDef def) {
-		this(defVisible, false, def.i18nHeaderKey(), def.ordinal(), null, def.sortable(), def.sortKey(), FlexiColumnModel.ALIGNMENT_LEFT,
+		this(defVisible, false, def.i18nHeaderKey(), def.iconHeader(), def.ordinal(), null, def.sortable(), def.sortKey(), FlexiColumnModel.ALIGNMENT_LEFT,
 				new TextFlexiCellRenderer());
 	}
 	
 	public DefaultFlexiColumnModel(boolean defVisible, FlexiSortableColumnDef def, FlexiCellRenderer renderer) {
-		this(defVisible, false, def.i18nHeaderKey(), def.ordinal(), null, def.sortable(), def.sortKey(), FlexiColumnModel.ALIGNMENT_LEFT,
+		this(defVisible, false, def.i18nHeaderKey(), def.iconHeader(), def.ordinal(), null, def.sortable(), def.sortKey(), FlexiColumnModel.ALIGNMENT_LEFT,
 				renderer);
 	}
 	
 	public DefaultFlexiColumnModel(FlexiSortableColumnDef def, String action) {
-		this(true, false, def.i18nHeaderKey(), def.ordinal(), action, def.sortable(), def.sortKey(), FlexiColumnModel.ALIGNMENT_LEFT, 
+		this(true, false, def.i18nHeaderKey(), def.iconHeader(), def.ordinal(), action, def.sortable(), def.sortKey(), FlexiColumnModel.ALIGNMENT_LEFT, 
 				new StaticFlexiCellRenderer(action, new TextFlexiCellRenderer()));
 	}
 	
 	public DefaultFlexiColumnModel(boolean defVisible, FlexiSortableColumnDef def, String action) {
-		this(defVisible, false, def.i18nHeaderKey(), def.ordinal(), action, def.sortable(), def.sortKey(), FlexiColumnModel.ALIGNMENT_LEFT, 
+		this(defVisible, false, def.i18nHeaderKey(), def.iconHeader(), def.ordinal(), action, def.sortable(), def.sortKey(), FlexiColumnModel.ALIGNMENT_LEFT, 
 				new StaticFlexiCellRenderer(action, new TextFlexiCellRenderer()));
 	}
 	
 	public DefaultFlexiColumnModel(FlexiColumnDef def, FlexiCellRenderer renderer) {
-		this(true, false, def.i18nHeaderKey(), def.ordinal(), null, false, null, FlexiColumnModel.ALIGNMENT_LEFT, renderer);
+		this(true, false, def.i18nHeaderKey(), def.iconHeader(), def.ordinal(), null, false, null, FlexiColumnModel.ALIGNMENT_LEFT, renderer);
 	}
 	
 	public DefaultFlexiColumnModel(FlexiSortableColumnDef def, FlexiCellRenderer renderer) {
-		this(true, false, def.i18nHeaderKey(), def.ordinal(), null, def.sortable(), def.sortKey(), FlexiColumnModel.ALIGNMENT_LEFT, renderer);
+		this(true, false, def.i18nHeaderKey(), def.iconHeader(), def.ordinal(), null, def.sortable(), def.sortKey(), FlexiColumnModel.ALIGNMENT_LEFT, renderer);
 	}
 	
 	public DefaultFlexiColumnModel(FlexiColumnDef def, String action, FlexiCellRenderer renderer) {
-		this(true, false, def.i18nHeaderKey(), def.ordinal(), action, false, null, FlexiColumnModel.ALIGNMENT_LEFT, 
+		this(true, false, def.i18nHeaderKey(), def.iconHeader(), def.ordinal(), action, false, null, FlexiColumnModel.ALIGNMENT_LEFT, 
 				new StaticFlexiCellRenderer(action, renderer));
 	}
 	
 	public DefaultFlexiColumnModel(FlexiSortableColumnDef def, String action, FlexiCellRenderer renderer) {
-		this(true, false, def.i18nHeaderKey(), def.ordinal(), action, def.sortable(), def.sortKey(), FlexiColumnModel.ALIGNMENT_LEFT, 
+		this(true, false, def.i18nHeaderKey(), def.iconHeader(), def.ordinal(), action, def.sortable(), def.sortKey(), FlexiColumnModel.ALIGNMENT_LEFT, 
 				new StaticFlexiCellRenderer(action, renderer));
 	}
 
@@ -123,15 +124,15 @@ public class DefaultFlexiColumnModel implements FlexiColumnModel {
 	 * @param action
 	 */
 	public DefaultFlexiColumnModel(String headerKey, String label, String action) {
-		this(true, true, headerKey, -1, action, false, null, FlexiColumnModel.ALIGNMENT_LEFT, new StaticFlexiCellRenderer(label, action));
+		this(true, true, headerKey, null, -1, action, false, null, FlexiColumnModel.ALIGNMENT_LEFT, new StaticFlexiCellRenderer(label, action));
 	}
 	
 	public DefaultFlexiColumnModel(String headerKey, int columnIndex, boolean sortable, String sortKey) {
-		this(true, false, headerKey, columnIndex, null, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT, new TextFlexiCellRenderer());
+		this(true, false, headerKey, null, columnIndex, null, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT, new TextFlexiCellRenderer());
 	}
 	
 	public DefaultFlexiColumnModel(String headerKey, int columnIndex, FlexiCellRenderer renderer) {
-		this(true, false, headerKey, columnIndex, null, false, null, FlexiColumnModel.ALIGNMENT_LEFT, renderer);
+		this(true, false, headerKey, null, columnIndex, null, false, null, FlexiColumnModel.ALIGNMENT_LEFT, renderer);
 	}
 	
 	/**
@@ -142,20 +143,20 @@ public class DefaultFlexiColumnModel implements FlexiColumnModel {
 	 * @param renderer
 	 */
 	public DefaultFlexiColumnModel(String headerKey, int columnIndex, String action, FlexiCellRenderer renderer) {
-		this(true, true, headerKey, columnIndex, action, false, null, FlexiColumnModel.ALIGNMENT_LEFT, renderer);
+		this(true, true, headerKey, null, columnIndex, action, false, null, FlexiColumnModel.ALIGNMENT_LEFT, renderer);
 	}
 	
 	public DefaultFlexiColumnModel(String headerKey, int columnIndex, boolean sortable, String sortKey, FlexiCellRenderer renderer) {
-		this(true, false, headerKey, columnIndex, null, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT, renderer);
+		this(true, false, headerKey, null, columnIndex, null, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT, renderer);
 	}
 	
 	public DefaultFlexiColumnModel(boolean defVisible, String headerKey, int columnIndex, boolean sortable, String sortKey) {
-		this(defVisible, false, headerKey, columnIndex, null, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT,
+		this(defVisible, false, headerKey, null, columnIndex, null, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT,
 				new TextFlexiCellRenderer());
 	}
 	
 	public DefaultFlexiColumnModel(boolean defVisible, String headerKey, int columnIndex, String action, boolean sortable, String sortKey) {
-		this(defVisible, false, headerKey, columnIndex, action, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT,
+		this(defVisible, false, headerKey, null, columnIndex, action, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT,
 				new StaticFlexiCellRenderer(action, new TextFlexiCellRenderer()));
 	}
 	
@@ -169,22 +170,23 @@ public class DefaultFlexiColumnModel implements FlexiColumnModel {
 	 * @param renderer
 	 */
 	public DefaultFlexiColumnModel(String headerKey, int columnIndex, String action, boolean sortable, String sortedKey, FlexiCellRenderer renderer) {
-		this(true, true, headerKey, columnIndex, action, sortable, sortedKey, FlexiColumnModel.ALIGNMENT_LEFT, renderer);
+		this(true, true, headerKey, null, columnIndex, action, sortable, sortedKey, FlexiColumnModel.ALIGNMENT_LEFT, renderer);
 	}
 	
 	public DefaultFlexiColumnModel(boolean defVisible, String headerKey, int columnIndex, boolean sortable, String sortKey, int alignment, FlexiCellRenderer cellRenderer) {
-		this(defVisible, false, headerKey, columnIndex, null, sortable, sortKey, alignment, cellRenderer);
+		this(defVisible, false, headerKey, null, columnIndex, null, sortable, sortKey, alignment, cellRenderer);
 	}
 	
-	public DefaultFlexiColumnModel(boolean defVisible, boolean alwaysVisible, String headerKey, int columnIndex, String action,
+	public DefaultFlexiColumnModel(boolean defVisible, boolean alwaysVisible, String headerKey, String iconHeader, int columnIndex, String action,
 			boolean sortable, String sortKey, int alignment, FlexiCellRenderer cellRenderer) {
 		this.defaultVisible = defVisible;
 		this.alwaysVisible = alwaysVisible;
 		this.sortable = sortable;
 		this.sortedKey = sortKey;
 		this.headerKey = headerKey;
+		this.iconHeader = iconHeader;
 		this.columnIndex = columnIndex;
-		this.columnKey = headerKey.replace(".", "").toLowerCase();
+		this.columnKey = headerKey == null ? iconHeader : headerKey.replace(".", "").toLowerCase();
 		this.alignment = alignment;
 		this.cellRenderer = cellRenderer;
 		footerCellRenderer = new TextFlexiCellRenderer();
@@ -219,6 +221,15 @@ public class DefaultFlexiColumnModel implements FlexiColumnModel {
 		this.headerLabel = headerLabel;
 	}
 
+	@Override
+	public String getIconHeader() {
+		return iconHeader;
+	}
+
+	public void setIconHeader(String iconHeader) {
+		this.iconHeader = iconHeader;
+	}
+
 	@Override
 	public Integer getHeaderAlignment() {
 		return headerAlignment;
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiColumnDef.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiColumnDef.java
index 6aa159b81dc..2790d15ff7d 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiColumnDef.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiColumnDef.java
@@ -1,4 +1,5 @@
 /**
+
  * <a href="http://www.openolat.org">
  * OpenOLAT - Online Learning and Training</a><br>
  * <p>
@@ -31,4 +32,11 @@ public interface FlexiColumnDef {
 	
 	public String i18nHeaderKey();
 
+	/**
+	 * @return Replace the i18n header
+	 */
+	public default String iconHeader() {
+		return null;
+	}
+
 }
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiColumnModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiColumnModel.java
index 4406cc31581..5cbe8d2203e 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiColumnModel.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiColumnModel.java
@@ -58,6 +58,8 @@ public interface FlexiColumnModel {
 	
 	public String getHeaderLabel();
 	
+	public String getIconHeader();
+	
 	public Integer getHeaderAlignment();
 	
 	public String getColumnKey();
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableClassicRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableClassicRenderer.java
index 97a78167715..428370e4f83 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableClassicRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableClassicRenderer.java
@@ -135,7 +135,23 @@ class FlexiTableClassicRenderer extends AbstractFlexiTableRenderer implements Co
 	
 	private String getHeader(FlexiColumnModel fcm, Translator translator) {
 		String header;
-		if(StringHelper.containsNonWhitespace(fcm.getHeaderLabel())) {
+		if(StringHelper.containsNonWhitespace(fcm.getIconHeader())) {
+			StringBuilder sb = new StringBuilder(64);
+			sb.append("<i class=\"").append(fcm.getIconHeader()).append("\"");
+			
+			String title = null;
+			if(StringHelper.containsNonWhitespace(fcm.getHeaderLabel())) {
+				title = fcm.getHeaderLabel();
+			} else {
+				title = translator.translate(fcm.getHeaderKey());
+			}
+			if(StringHelper.containsNonWhitespace(title)) {
+				sb.append(" title=\"").append(title).append("\"");
+			}
+			
+			sb.append("> </i>");
+			header = sb.toString();
+		} else if(StringHelper.containsNonWhitespace(fcm.getHeaderLabel())) {
 			header = fcm.getHeaderLabel();
 		} else {
 			header = translator.translate(fcm.getHeaderKey());
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java
index 0870415c92c..e6239a2efba 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java
+++ b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java
@@ -398,7 +398,9 @@ public class IdentityListCourseNodeController extends FormBasicController
 	
 	protected void initCalloutColumns(FlexiTableColumnModel columnsModel) {
 		if(courseNode instanceof AssessableCourseNode) {
-			columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(IdentityCourseElementCols.tools));
+			DefaultFlexiColumnModel toolsCol = new DefaultFlexiColumnModel(IdentityCourseElementCols.tools);
+			toolsCol.setExportable(false);
+			columnsModel.addFlexiColumnModel(toolsCol);
 		}
 	}
 	
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeTableModel.java b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeTableModel.java
index c996119aca2..27ad47664d6 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeTableModel.java
+++ b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeTableModel.java
@@ -179,7 +179,7 @@ public class IdentityListCourseNodeTableModel extends DefaultFlexiTableDataModel
 	public enum IdentityCourseElementCols implements FlexiSortableColumnDef {
 		username("table.header.name"),
 		attempts("table.header.attempts"),
-		userVisibility("table.header.userVisibility"),
+		userVisibility("table.header.userVisibility", "o_icon o_icon-fw o_icon_results_hidden"),
 		score("table.header.score"),
 		min("table.header.min"),
 		max("table.header.max"),
@@ -199,9 +199,15 @@ public class IdentityListCourseNodeTableModel extends DefaultFlexiTableDataModel
 		cut("table.header.cut");
 		
 		private final String i18nKey;
-		
+		private final String icon;
+
 		private IdentityCourseElementCols(String i18nKey) {
+			this(i18nKey, null);
+		}
+		
+		private IdentityCourseElementCols(String i18nKey, String icon) {
 			this.i18nKey = i18nKey;
+			this.icon = icon;
 		}
 		
 		@Override
@@ -209,6 +215,11 @@ public class IdentityListCourseNodeTableModel extends DefaultFlexiTableDataModel
 			return i18nKey;
 		}
 
+		@Override
+		public String iconHeader() {
+			return icon;
+		}
+
 		@Override
 		public boolean sortable() {
 			return true;
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_de.properties
index 1913fa9d325..4b0ff170194 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_de.properties
@@ -66,7 +66,7 @@ table.header.numOfPassed=$org.olat.modules.assessment.ui\:table.header.numOfPass
 table.header.passed=$org.olat.modules.assessment.ui\:table.header.passed
 table.header.scoreAverage=$org.olat.modules.assessment.ui\:table.header.scoreAverage
 table.header.tools=$org.olat.modules.assessment.ui\:table.header.tools
-table.header.userVisibility=<i class='o_icon o_icon-fw o_icon_results_hidden'> </i>
+table.header.userVisibility=Sichtbarkeit
 tooltip.of={0} von {1}
 title.infocoach=Bewertungsinformationen
 tool.correction=Korrigieren
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_en.properties
index dce2e9bc988..363e0c6e415 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_en.properties
@@ -66,7 +66,7 @@ table.header.numOfPassed=$org.olat.modules.assessment.ui\:table.header.numOfPass
 table.header.passed=$org.olat.modules.assessment.ui\:table.header.passed
 table.header.scoreAverage=$org.olat.modules.assessment.ui\:table.header.scoreAverage
 table.header.tools=$org.olat.modules.assessment.ui\:table.header.tools
-table.header.userVisibility=<i class\='o_icon o_icon-fw o_icon_results_hidden'> </i>
+table.header.userVisibility=Visibility
 title.infocoach=Information on assessment
 tool.correction=Correction
 tool.details=Show details / assess
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_fr.properties
index 50923e8265f..d16f3e44bd5 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_fr.properties
@@ -67,7 +67,7 @@ table.header.numOfPassed=$org.olat.modules.assessment.ui\:table.header.numOfPass
 table.header.passed=$org.olat.modules.assessment.ui\:table.header.passed
 table.header.scoreAverage=$org.olat.modules.assessment.ui\:table.header.scoreAverage
 table.header.tools=$org.olat.modules.assessment.ui\:table.header.tools
-table.header.userVisibility=<i class\='o_icon o_icon-fw o_icon_results_hidden'> </i>
+table.header.userVisibility=Visibilit\u00E9
 title.infocoach=Informations sur l'\u00E9valuation
 tool.correction=Corriger
 tool.details=Montrer les d\u00E9tails / \u00E9valuer
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_it.properties
index 06e8bd93861..db2ae6073bf 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_it.properties
@@ -58,7 +58,6 @@ table.header.numOfParticipants=$org.olat.modules.assessment.ui\:table.header.num
 table.header.numOfPassed=$org.olat.modules.assessment.ui\:table.header.numOfPassed
 table.header.passed=$org.olat.modules.assessment.ui\:table.header.passed
 table.header.scoreAverage=$org.olat.modules.assessment.ui\:table.header.scoreAverage
-table.header.userVisibility=<i class\='o_icon o_icon-fw o_icon_results_hidden'> </i>
 title.infocoach=Informazioni sulla valutazione
 tooltip.of={0} di {1}
 user.visibility=Risultati
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_pt_BR.properties
index eefec291bbb..6385607d8cb 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_pt_BR.properties
@@ -66,7 +66,6 @@ table.header.numOfPassed=$org.olat.modules.assessment.ui\:table.header.numOfPass
 table.header.passed=$org.olat.modules.assessment.ui\:table.header.passed
 table.header.scoreAverage=$org.olat.modules.assessment.ui\:table.header.scoreAverage
 table.header.tools=$org.olat.modules.assessment.ui\:table.header.tools
-table.header.userVisibility=<i class\='o_icon o_icon-fw o_icon_results_hidden'> </i>
 title.infocoach=Informa\u00E7\u00E3o sobre a avalia\u00E7\u00E3o
 tool.correction=Corre\u00E7\u00E3o
 tool.details=Mostrar detalhes / avaliar
diff --git a/src/main/java/org/olat/course/nodes/iq/IQIdentityListCourseNodeController.java b/src/main/java/org/olat/course/nodes/iq/IQIdentityListCourseNodeController.java
index db9b0bd6f4c..16da42a8a9c 100644
--- a/src/main/java/org/olat/course/nodes/iq/IQIdentityListCourseNodeController.java
+++ b/src/main/java/org/olat/course/nodes/iq/IQIdentityListCourseNodeController.java
@@ -1,4 +1,5 @@
 /**
+
  * <a href="http://www.openolat.org">
  * OpenOLAT - Online Learning and Training</a><br>
  * <p>
diff --git a/src/main/java/org/olat/modules/portfolio/ui/shared/SharedBindersController.java b/src/main/java/org/olat/modules/portfolio/ui/shared/SharedBindersController.java
index f7134713636..be01d199f58 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/shared/SharedBindersController.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/shared/SharedBindersController.java
@@ -162,11 +162,11 @@ public class SharedBindersController extends FormBasicController implements Acti
 				new AssessmentEntryCellRenderer(getTranslator())));
 		StaticFlexiCellRenderer selectRenderer = new StaticFlexiCellRenderer(translate("select"), "select");
 		selectRenderer.setIconRightCSS("o_icon-sw o_icon_start");
-		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, true, "select", -1, "select", false, null,
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, true, "select", null, -1, "select", false, null,
 				FlexiColumnModel.ALIGNMENT_LEFT, selectRenderer));
 		StaticFlexiCellRenderer leaveRenderer = new StaticFlexiCellRenderer(translate("leave"), "leave");
 		leaveRenderer.setIconRightCSS("o_icon-sw o_icon_delete");
-		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, false, "leave", -2, "leave", false, null,
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, false, "leave", null, -2, "leave", false, null,
 				FlexiColumnModel.ALIGNMENT_LEFT, leaveRenderer));
 		
 		model = new SharedBindersDataModel(columnsModel, getLocale());
diff --git a/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesController.java b/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesController.java
index 5b2de627b06..9252e3efed1 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesController.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesController.java
@@ -148,7 +148,7 @@ public class SharedPagesController extends FormBasicController implements Activa
 				new SharedPageStatusCellRenderer(getTranslator())));
 		FlexiCellRenderer titleRenderer =  new BooleanCellRenderer(
 				new StaticFlexiCellRenderer("select", new PageTitleCellRenderer()), new PageTitleCellRenderer());
-		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, true, "select",
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, true, "select", null,
 				SharePageCols.pageName.ordinal(), "select", true, SharePageCols.pageName.sortKey(),
 				FlexiColumnModel.ALIGNMENT_LEFT, titleRenderer));
 		
diff --git a/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java b/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java
index b9ea22feeda..e50cbaed29b 100644
--- a/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java
@@ -201,7 +201,7 @@ public abstract class AbstractItemListController extends FormBasicController
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.status.i18nKey(), Cols.status.ordinal(), true, OrderBy.status.name(), new QuestionStatusCellRenderer()));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.statusLastModified.i18nKey(), Cols.statusLastModified.ordinal(), true, OrderBy.statusLastModified.name()));	
 		if (licenseModule.isEnabled(licenseHandler)) {
-			columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, false, Cols.license.i18nKey(), Cols.license.ordinal(), "license", false, null, FlexiColumnModel.ALIGNMENT_LEFT,
+			columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, false, Cols.license.i18nKey(), null, Cols.license.ordinal(), "license", false, null, FlexiColumnModel.ALIGNMENT_LEFT,
 					 new StaticFlexiCellRenderer("license", new LicenseRenderer(getLocale()))));
 		}
 		initActionColumns(columnsModel);
diff --git a/src/main/java/org/olat/repository/ui/author/AuthorListController.java b/src/main/java/org/olat/repository/ui/author/AuthorListController.java
index 243f37ad964..8acddeefec1 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthorListController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthorListController.java
@@ -344,7 +344,7 @@ public class AuthorListController extends FormBasicController implements Activat
 				true, OrderBy.lectureEnabled.name(), FlexiColumnModel.ALIGNMENT_LEFT, new LectureInfosRenderer(getTranslator())));
 		
 		if (licenseModule.isEnabled(licenseHandler)) {
-			columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, false, Cols.license.i18nKey(), Cols.license.ordinal(), "license", false, null, FlexiColumnModel.ALIGNMENT_LEFT,
+			columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, false, Cols.license.i18nKey(), null, Cols.license.ordinal(), "license", false, null, FlexiColumnModel.ALIGNMENT_LEFT,
 					 new StaticFlexiCellRenderer("license", new LicenseRenderer(getLocale()))));
 		}
 		
-- 
GitLab