diff --git a/src/main/java/org/olat/modules/quality/analysis/ui/GroupByNameCache.java b/src/main/java/org/olat/modules/quality/analysis/ui/GroupByNameCache.java
index 2b46875d10929b8052e67358d15b311692f0dfe6..ea0d10d6950e8743c7f98d178740cad49b6181ad 100644
--- a/src/main/java/org/olat/modules/quality/analysis/ui/GroupByNameCache.java
+++ b/src/main/java/org/olat/modules/quality/analysis/ui/GroupByNameCache.java
@@ -60,6 +60,7 @@ class GroupByNameCache {
 	private Map<String, String> groupNamesContextCurriculumElement;
 	private Map<String, String> groupNamesContextCurriculumOrganisation;
 	private Map<String, String> groupNamesContextTaxonomyLevel;
+	private Map<String, String> groupNamesContextLocation;
 	private Map<String, String> groupNamesDataCollection;
 	
 	private Map<GroupBy, Map<String, String>> cache = new HashMap<>();
@@ -122,6 +123,8 @@ class GroupByNameCache {
 			return loadContextCurriculumOrganisationGroupNames();
 		case CONTEXT_TAXONOMY_LEVEL:
 			return loadContextTaxonomyLevelGroupNames();
+		case CONTEXT_LOCATION:
+			return loadContextLocationGroupNames();
 		case DATA_COLLECTION:
 			return loadDataCollectionGroupNames();
 		default:
@@ -238,6 +241,17 @@ class GroupByNameCache {
 		}
 		return groupNamesContextTaxonomyLevel;
 	}
+
+	private Map<String, String> loadContextLocationGroupNames() {
+		groupNamesContextLocation = new HashMap<>();
+		List<String> contextLocations = analysisService.loadContextLocations(searchParams);
+		for (String location: contextLocations) {
+			String key = location;
+			String value = location;
+			groupNamesContextLocation.put(key, value);
+		}
+		return groupNamesContextLocation;
+	}
 	
 	private Map<String, String> loadDataCollectionGroupNames() {
 		groupNamesDataCollection = new HashMap<>();