From 325ca6568b4bfa199ca84a18020553129c25b70e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luca=20B=C3=B6sch?= <luca.boesch@bfh.ch>
Date: Tue, 3 Jan 2023 17:05:16 +0100
Subject: [PATCH] MDL-76781 gradebook: support multilingual group names.

---
 grade/classes/external/get_groups_for_search_widget.php | 4 ++--
 grade/renderer.php                                      | 2 +-
 grade/report/user/tests/behat/groupsearch.feature       | 8 +++++---
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/grade/classes/external/get_groups_for_search_widget.php b/grade/classes/external/get_groups_for_search_widget.php
index 6424318a873..7ca8230ec63 100644
--- a/grade/classes/external/get_groups_for_search_widget.php
+++ b/grade/classes/external/get_groups_for_search_widget.php
@@ -110,14 +110,14 @@ class get_groups_for_search_widget extends external_api {
                 ]);
             }
 
-            $mappedgroups = array_map(function($group) use ($COURSE, $actionbaseurl) {
+            $mappedgroups = array_map(function($group) use ($COURSE, $actionbaseurl, $context) {
                 $url = new \moodle_url($actionbaseurl, [
                     'id' => $COURSE->id,
                     'group' => $group->id
                 ]);
                 return (object) [
                     'id' => $group->id,
-                    'name' => $group->name,
+                    'name' => format_string($group->name, true, ['context' => $context]),
                     'url' => $url->out(false),
                     'active' => false // @TODO MDL-76246
                 ];
diff --git a/grade/renderer.php b/grade/renderer.php
index 49aba778eb4..ead2be27fa5 100644
--- a/grade/renderer.php
+++ b/grade/renderer.php
@@ -76,7 +76,7 @@ class core_grades_renderer extends plugin_renderer_base {
 
         if ($activegroup) {
             $group = groups_get_group($activegroup);
-            $data['selectedgroup'] = $group->name;
+            $data['selectedgroup'] = format_string($group->name, true, ['context' => $context]);
         } else if ($activegroup === 0) {
             $data['selectedgroup'] = get_string('allparticipants');
         }
diff --git a/grade/report/user/tests/behat/groupsearch.feature b/grade/report/user/tests/behat/groupsearch.feature
index d8e3bf9b74f..196313304ff 100644
--- a/grade/report/user/tests/behat/groupsearch.feature
+++ b/grade/report/user/tests/behat/groupsearch.feature
@@ -17,12 +17,14 @@ Feature: Group searching functionality within the user report.
       | student2  | C1     | student        |
     And the following "groups" exist:
       | name          | course | idnumber |
-      | Default group | C1     | dg       |
-      | Tutor group   | C1     | tg       |
-      | Marker group  | C1     | mg       |
+      | Default <span class="multilang" lang="de">Gruppe</span><span class="multilang" lang="en">group</span> | C1     | dg       |
+      | Tutor <span class="multilang" lang="de">Gruppe</span><span class="multilang" lang="en">group</span>   | C1     | tg       |
+      | Marker <span class="multilang" lang="de">Gruppe</span><span class="multilang" lang="en">group</span>  | C1     | mg       |
     And the following "group members" exist:
       | user     | group |
       | student1 | dg    |
+    And the "multilang" filter is "on"
+    And the "multilang" filter applies to "content and headings"
     And I am on the "C1" "Course" page logged in as "teacher1"
     And I change window size to "large"