From 456b7381d442c23ac01708b7ed44234c7e9330ab Mon Sep 17 00:00:00 2001 From: Dave MacFarlane Date: Thu, 11 Jun 2026 15:02:36 -0400 Subject: [PATCH 1/4] Translate Projects, Visits in media module --- modules/media/jsx/mediaIndex.js | 1 + modules/media/php/mediafileprovisioner.class.inc | 3 +++ php/libraries/Utility.class.inc | 9 ++++++--- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/media/jsx/mediaIndex.js b/modules/media/jsx/mediaIndex.js index 71eaa02811..c60b706fdc 100644 --- a/modules/media/jsx/mediaIndex.js +++ b/modules/media/jsx/mediaIndex.js @@ -212,6 +212,7 @@ class MediaIndex extends Component { {label: t('Visit Label', {ns: 'loris'}), show: true, filter: { name: 'visitLabel', type: 'select', + sortByValue: false, options: options.visits, }}, {label: t('Language', {ns: 'loris'}), show: true, filter: { diff --git a/modules/media/php/mediafileprovisioner.class.inc b/modules/media/php/mediafileprovisioner.class.inc index a5530c1093..db16d61c29 100644 --- a/modules/media/php/mediafileprovisioner.class.inc +++ b/modules/media/php/mediafileprovisioner.class.inc @@ -108,6 +108,9 @@ class MediaFileProvisioner extends \LORIS\Data\Provisioners\DBRowProvisioner } $row['fullName'] = $this->_instrumentnames[$testname] ?? null; + if (isset($row['visitLabel'])) { + $row['visitLabel'] = dgettext("visit", $row['visitLabel']); + } return new MediaFile($row); } } diff --git a/php/libraries/Utility.class.inc b/php/libraries/Utility.class.inc index d377ecbbff..f96721c751 100644 --- a/php/libraries/Utility.class.inc +++ b/php/libraries/Utility.class.inc @@ -279,9 +279,12 @@ class Utility AND c.Entity_type != 'Scanner' AND s.CenterID!= '1' $ExtraProject_Criteria ORDER BY Visit_label"; - $result = $db->pselect($query, $qparams); - // The result has several columns; we only want the visit labels. - $visitLabels = array_column(iterator_to_array($result), 'Visit_label'); + $result = $db->pselectCol($query, $qparams); + + $visitLabels = []; + foreach ($result as $vl) { + $visitLabels[$vl] = dgettext("visit", $vl); + } $translatedVisitLabels = []; foreach ($visitLabels as $visitLabel) { From a29be49b4a6c163b8b4a684a006730c50a181b9e Mon Sep 17 00:00:00 2001 From: Dave MacFarlane Date: Thu, 2 Jul 2026 10:50:03 -0400 Subject: [PATCH 2/4] Fix unit tests The unit tests were failing because the test was mocking pselect, so changing it to pselectCol changed the data. Go back to the same structure for the tests sake. --- php/libraries/Utility.class.inc | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/php/libraries/Utility.class.inc b/php/libraries/Utility.class.inc index f96721c751..e3c57207fa 100644 --- a/php/libraries/Utility.class.inc +++ b/php/libraries/Utility.class.inc @@ -279,12 +279,7 @@ class Utility AND c.Entity_type != 'Scanner' AND s.CenterID!= '1' $ExtraProject_Criteria ORDER BY Visit_label"; - $result = $db->pselectCol($query, $qparams); - - $visitLabels = []; - foreach ($result as $vl) { - $visitLabels[$vl] = dgettext("visit", $vl); - } + $result = $db->pselect($query, $qparams); $translatedVisitLabels = []; foreach ($visitLabels as $visitLabel) { @@ -292,6 +287,7 @@ class Utility } // Generates an array where the keys are equal to the values. $cache[$projStr] = $translatedVisitLabels; + return $cache[$projStr]; } From 397aa1c7c0306c5658be70068a27ebcbd3131411 Mon Sep 17 00:00:00 2001 From: Dave MacFarlane Date: Thu, 23 Jul 2026 14:29:22 -0400 Subject: [PATCH 3/4] iterate over something that exists --- php/libraries/Utility.class.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php/libraries/Utility.class.inc b/php/libraries/Utility.class.inc index e3c57207fa..690128318c 100644 --- a/php/libraries/Utility.class.inc +++ b/php/libraries/Utility.class.inc @@ -282,7 +282,7 @@ class Utility $result = $db->pselect($query, $qparams); $translatedVisitLabels = []; - foreach ($visitLabels as $visitLabel) { + foreach ($result as $visitLabel) { $translatedVisitLabels[$visitLabel] = dgettext('visit', $visitLabel); } // Generates an array where the keys are equal to the values. From 34b740c4c8bf28313ee3c27430a3b97d9823c2e8 Mon Sep 17 00:00:00 2001 From: Dave MacFarlane Date: Thu, 23 Jul 2026 14:34:14 -0400 Subject: [PATCH 4/4] fix incorrectly resolved conflict bug --- php/libraries/Utility.class.inc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/php/libraries/Utility.class.inc b/php/libraries/Utility.class.inc index 690128318c..a627d24015 100644 --- a/php/libraries/Utility.class.inc +++ b/php/libraries/Utility.class.inc @@ -282,7 +282,9 @@ class Utility $result = $db->pselect($query, $qparams); $translatedVisitLabels = []; - foreach ($result as $visitLabel) { + foreach ($result as $row) { + $visitLabel = $row['Visit_label']; + $translatedVisitLabels[$visitLabel] = dgettext('visit', $visitLabel); } // Generates an array where the keys are equal to the values.