From 2c002d977849243b16a3144dec750be8318e3136 Mon Sep 17 00:00:00 2001 From: KalliSfak <127407169+KalliSfak@users.noreply.github.com> Date: Mon, 25 Mar 2024 14:20:01 +0100 Subject: [PATCH 1/2] BC-6625 Incorrect text on management pages (#3424) --- controllers/administration.js | 1 + helpers/theme.js | 2 +- locales/de.json | 1 + locales/en.json | 1 + locales/es.json | 1 + locales/uk.json | 1 + views/administration/partials/data_protection_hint.hbs | 10 +++++++++- 7 files changed, 15 insertions(+), 2 deletions(-) diff --git a/controllers/administration.js b/controllers/administration.js index ff03d04d95..6d19000a0b 100644 --- a/controllers/administration.js +++ b/controllers/administration.js @@ -2232,6 +2232,7 @@ router.get( filterSettings: JSON.stringify(classFilterSettings({ years, defaultYear, showTab }, res)), classesTabs, showTab, + currentPath: 'administration/classes', }); }); }, diff --git a/helpers/theme.js b/helpers/theme.js index 610f8a9a2a..1c8548b03b 100644 --- a/helpers/theme.js +++ b/helpers/theme.js @@ -23,7 +23,7 @@ const instanceInstitute = () => { case 'thr': return 'Thüringer Institut für Lehrerfortbildung, Lehrplanentwicklung und Medien'; case 'brb': - return 'Dataport'; + return 'Ministerium für Bildung, Jugend und Sport des Landes Brandenburg'; default: return 'Dataport'; } diff --git a/locales/de.json b/locales/de.json index 83b6c7221c..ba33fab592 100644 --- a/locales/de.json +++ b/locales/de.json @@ -544,6 +544,7 @@ "theSynchronizationOfLDAPMasterData": "Die Synchronisierung von LDAP-Stammdaten wird während der Transferphase unterbrochen. Somit werden Nutzerdaten und Klassen (sofern verwendet) nicht mehr über LDAP aktualisiert. Der Login mit bereits synchronisierten Login-Daten ist weiterhin möglich. Passwortänderungen im LDAP während des Logins werden ebenfalls berücksichtigt.", "useTheTransferPhaseAroundTheSchool": "Nutze die Transferphase rund um den Schuljahreswechsel, um in Ruhe im LDAP Klassenzugehörigkeit und Personendaten anzupassen. Übernimm abschließend alle Änderungen mit einem Mal in die {{title}}.", "withAllChangesAndSettings": "Mit allen Änderungen und Einstellungen im Verwaltungsbereich wird bestätigt, dass diese durch einen weisungsberechtigten Schul-Admin mit Befugnis zu Anpassungen der Schule in der Cloud durchgeführt werden. Anpassungen durch den Schul-Admin gelten insofern als Weisung der Schule gegenüber dem Cloudbetreiber {{institute_title}}.", + "withAllChangesForTSC": "Einige oder alle Nutzer:innendaten deiner Schule werden aus einer externen Quelle (LDAP, IDM, Schulportal o. ä.) synchronisiert. Die Bearbeitung dieser Nutzer:innen-Stammdaten ist deshalb nur im Quellsystem möglich, nicht in der Schul-Cloud. Das Anlegen neuer Schüler:innen oder Lehrkräfte ist ebenfalls nur im Quellsystem möglich.", "wouldYouLikeReportABug": "Du möchtest einen Fehler melden oder hast eine Idee zur Verbesserung der {{title}}? Sende Wünsche oder Probleme direkt an den {{shortTitle}}-Nutzer-Support." } }, diff --git a/locales/en.json b/locales/en.json index 68f26b1ccb..ef320b28cc 100644 --- a/locales/en.json +++ b/locales/en.json @@ -544,6 +544,7 @@ "theSynchronizationOfLDAPMasterData": "The synchronization of LDAP master data is interrupted during the transfer phase. This means that user data and classes (if used) are no longer updated via LDAP. It is still possible to log in with login data that has already been synchronized. Password changes in the LDAP during login are also taken into account.", "useTheTransferPhaseAroundTheSchool": "Use the transfer phase around the change of school year to adjust class affiliation and personal data in the LDAP. Finally, transfer all changes to the {{title}} at once.", "withAllChangesAndSettings": "With all changes and settings in the administration area, it is confirmed that these are carried out by a school admin with authority to make adjustments to the school in the cloud. Adjustments made by the school admin are deemed to be instructions from the school to the cloud operator {{institute_title}}.", + "withAllChangesForTSC": "Some or all of your school's user data is synchronised from an external source (LDAP, IDM, school portal, etc.). Editing this user master data is therefore only possible in the source system, not in the school cloud. Creating new students or teachers is also only possible in the source system.", "wouldYouLikeReportABug": "Would you like to report an error or do you have an idea to improve the {{title}}? Send requests or problems directly to the {{shortTitle}} user support." } }, diff --git a/locales/es.json b/locales/es.json index 48022f6eeb..004675ca76 100644 --- a/locales/es.json +++ b/locales/es.json @@ -544,6 +544,7 @@ "theSynchronizationOfLDAPMasterData": "La sincronización de los datos maestros LDAP se interrumpe durante la fase de transferencia. Esto significa que los datos de usuario y las clases (si se utilizan) ya no se actualizan a través de LDAP. Todavía es posible iniciar sesión con datos de inicio de sesión que ya se hayan sincronizado. Durante el inicio de sesión también se tienen en cuenta los cambios de contraseña en LDAP.", "useTheTransferPhaseAroundTheSchool": "Utiliza la fase de transferencia en torno al cambio de año escolar para ajustar la afiliación a la clase y los datos personales en el LDAP. Finalmente, transfiere todos los cambios a la {{title}} a la vez.", "withAllChangesAndSettings": "Con todos los cambios y ajustes en el área de administración, se confirma que estos son llevados a cabo por un administrador de la escuela autorizado para hacer ajustes en la escuela en la nube. Los ajustes realizados por el administrador de la escuela se consideran instrucciones de la escuela al operador de la nube {{institute_title}}.", + "withAllChangesForTSC": "Algunos o todos los datos de los usuarios de su centro educativo se sincronizan desde una fuente externa (LDAP, IDM, portal del centro educativo, etc.). Por lo tanto, la edición de estos datos maestros de usuario sólo es posible en el sistema de origen, no en la nube de la escuela. La creación de nuevos alumnos o profesores sólo es posible en el sistema de origen.", "wouldYouLikeReportABug": "¿Te gustaría informar de un error o tienes alguna idea para mejorar {{title}}? Envía solicitudes o problemas directamente al servicio de atención al usuario de {{shortTitle}}." } }, diff --git a/locales/uk.json b/locales/uk.json index 2dd41c2fcd..5714d0bbfb 100644 --- a/locales/uk.json +++ b/locales/uk.json @@ -1276,6 +1276,7 @@ "teacherRegistrationNotCompleted": "Викладач ще не завершив реєстрацію. Отримайте посилання для особистого запрошення, щоб завершити реєстрацію, і роздайте його вчителю.", "useTheTransferPhaseAroundTheSchool": "Використовуйте фазу переходу навколо зміни навчального року, щоб налаштувати належність до класу та особисті дані в LDAP. Нарешті, відразу перенесіть усі зміни в {{title}}.", "withAllChangesAndSettings": "Усі зміни та налаштування в області адміністрування підтверджують, що вони здійснені адміністратором школи, який має повноваження вносити корективи в хмарну систему школи. Налаштування, зроблені адміністратором школи, вважаються інструкціями від школи до оператора хмари {{institute_title}}.", + "withAllChangesForTSC": "Деякі або всі дані користувачів вашої школи синхронізуються із зовнішнім джерелом (LDAP, IDM, шкільний портал тощо). Тому редагування цих основних даних користувачів можливе лише в системі-джерелі, а не в шкільній хмарі. Створення нових учнів або вчителів також можливе лише в системі-джерелі.", "wouldYouLikeReportABug": "Хочете повідомити про помилку чи у вас є ідея покращити {{title}}? Відправляйте запити чи проблеми безпосередньо до служби підтримки користувачів {{shortTitle}}.", "backgroundSoThatEveryStudentAndTeacher": "Довідкова інформація: щоб кожен учень і кожен викладач могли отримати доступ до контенту з попередніх класів (напр. фотографій з екскурсії), {{title}} зберігає, у якому навчальному році та у якому класі був користувач. {{title}} забезпечує фазу переходу і здатна працювати разом з вашим LDAP та класами, які синхронізовані з нею. Ось така процедура під час зміни навчального року:" } diff --git a/views/administration/partials/data_protection_hint.hbs b/views/administration/partials/data_protection_hint.hbs index 08a40641e7..a9bbc41db1 100644 --- a/views/administration/partials/data_protection_hint.hbs +++ b/views/administration/partials/data_protection_hint.hbs @@ -1 +1,9 @@ -
{{$t "administration.longText.text.withAllChangesAndSettings" (dict "institute_title" theme.institute_title)}}
+{{#ifeq currentPath "administration/classes"}} + {{#ifEnv "SC_THEME" "thr"}} +{{$t "administration.longText.text.withAllChangesForTSC"}}
+ {{else}} +{{$t "administration.longText.text.withAllChangesAndSettings" (dict "institute_title" ../theme.institute_title)}}
+ {{/ifEnv}} +{{else}} +{{$t "administration.longText.text.withAllChangesAndSettings" (dict "institute_title" ../theme.institute_title)}}
+{{/ifeq}} From 782b9581e854f3e34a8d8e4ed854d559cebba025 Mon Sep 17 00:00:00 2001 From: Max <53796487+dyedwiper@users.noreply.github.com> Date: Mon, 25 Mar 2024 15:27:21 +0100 Subject: [PATCH 2/2] BC-6609 Sort files in submission by parentType (#3428) --- controllers/homework.js | 12 +++++++----- .../ckeditor5-filebrowser/src/file-browser-helper.js | 2 +- static/scripts/files-storage.js | 2 +- views/homework/evaluation.hbs | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/controllers/homework.js b/controllers/homework.js index 2c28aee80d..bb07fd522c 100644 --- a/controllers/homework.js +++ b/controllers/homework.js @@ -577,29 +577,31 @@ router.get('/:assignmentId', (req, res, next) => { async function findSubmissionFiles(submission, submitters, teachers, readonly) { const { schoolId } = submission; const parentId = submission._id; - const parentType = 'submissions'; + const submissionParentType = 'submissions'; + const gradeParentType = 'gradings'; const isTeacher = teachers.has(res.locals.currentUser._id); const isCreator = submitters.has(res.locals.currentUser._id); let filesStorage = { schoolId, parentId, - parentType, files: [], readonly, }; if (submission.submitted || isCreator) { - const result = await filesStoragesHelper.filesStorageInit(schoolId, parentId, parentType, readonly, req); + const result = await filesStoragesHelper.filesStorageInit(schoolId, parentId, submissionParentType, readonly, req); // eslint-disable-next-line prefer-destructuring filesStorage = result.filesStorage; } const submissionFilesStorageData = _.clone(filesStorage); - submissionFilesStorageData.files = filesStorage.files.filter((file) => !file.creatorId || submitters.has(file.creatorId)); + submissionFilesStorageData.files = filesStorage.files.filter((file) => file.parentType === submissionParentType); + submissionFilesStorageData.parentType = submissionParentType; submissionFilesStorageData.readonly = readonly || (!isCreator && isTeacher); const gradeFilesStorageData = _.clone(filesStorage); - gradeFilesStorageData.files = filesStorage.files.filter((file) => !file.creatorId || teachers.has(file.creatorId)); + gradeFilesStorageData.files = filesStorage.files.filter((file) => file.parentType === gradeParentType); + gradeFilesStorageData.parentType = gradeParentType; gradeFilesStorageData.readonly = !isTeacher; submission.submissionFiles = { filesStorage: submissionFilesStorageData }; diff --git a/static/scripts/ckeditor/plugins/ckeditor5-filebrowser/src/file-browser-helper.js b/static/scripts/ckeditor/plugins/ckeditor5-filebrowser/src/file-browser-helper.js index 912e02b55a..7ec09afb2a 100644 --- a/static/scripts/ckeditor/plugins/ckeditor5-filebrowser/src/file-browser-helper.js +++ b/static/scripts/ckeditor/plugins/ckeditor5-filebrowser/src/file-browser-helper.js @@ -17,7 +17,7 @@ export default class FileBrowserHelper { sourceElement.setAttribute('data-parent-id', parentId); $('.section-upload').attr('data-parent-id', parentId); - if (parentType === 'submissions') { + if (parentType === 'submissions' || parentType === 'gradings') { const referrer = `/homework/${homeworkId}#activetabid=submission`; $('input[name="referrer"]').val(referrer); } else { diff --git a/static/scripts/files-storage.js b/static/scripts/files-storage.js index feea4916b0..3932efbc5d 100644 --- a/static/scripts/files-storage.js +++ b/static/scripts/files-storage.js @@ -103,7 +103,7 @@ function submitAfterUpload(type, id) { $('#homework-form').trigger('submit'); } - if (type === 'submissions') { + if (type === 'submissions' || type === 'gradings') { window.localStorage.setItem('afterUploadFiles', 'true'); $(`form.${id}`).trigger('submit'); } diff --git a/views/homework/evaluation.hbs b/views/homework/evaluation.hbs index 8903338a60..d87e0434cd 100644 --- a/views/homework/evaluation.hbs +++ b/views/homework/evaluation.hbs @@ -61,7 +61,7 @@ placeholder="{{$t "homework.input.gradeComment"}}" data-parent-id="{{this.submission._id}}" data-school-id="{{this.submission.schoolId}}" - data-parent-type="submissions" + data-parent-type="gradings" data-testid="submission-comment" > {{this.submission.gradeComment}}