Skip to content

Commit

Permalink
Merge branch 'main' into BC-6424-correct-message-in-news
Browse files Browse the repository at this point in the history
  • Loading branch information
WojciechGrancow committed Feb 2, 2024
2 parents 2a5e216 + f683d69 commit aa9a90f
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 29 deletions.
33 changes: 5 additions & 28 deletions controllers/courses.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,6 @@ const deleteEventsForCourse = (req, res, courseId) => {
return Promise.resolve(true);
};

let groupIds = [];
let classIds = [];
const editCourseHandler = (req, res, next) => {
let coursePromise;
let action;
Expand All @@ -129,12 +127,11 @@ const editCourseHandler = (req, res, next) => {
}

let classesAndGroupsPromise;
let classesPromise;
if (FEATURE_GROUPS_IN_COURSE_ENABLED) {
classesAndGroupsPromise = api(req, { version: 'v3' })
.get('/groups/class', { qs: { limit: -1, calledFrom: 'course' } });
} else {
classesPromise = api(req)
classesAndGroupsPromise = api(req)
.get('/classes', {
qs: {
schoolId: res.locals.currentSchool,
Expand Down Expand Up @@ -164,7 +161,7 @@ const editCourseHandler = (req, res, next) => {

Promise.all([
coursePromise,
FEATURE_GROUPS_IN_COURSE_ENABLED ? classesAndGroupsPromise : classesPromise,
classesAndGroupsPromise,
teachersPromise,
studentsPromise,
scopePermissions,
Expand All @@ -173,8 +170,6 @@ const editCourseHandler = (req, res, next) => {
let classesAndGroups = [];
if (FEATURE_GROUPS_IN_COURSE_ENABLED) {
classesAndGroups = _classesAndGroups.data;
groupIds = _classesAndGroups.data.filter((g) => g.type === 'group').map((group) => group.id);
classIds = _classesAndGroups.data.filter((c) => c.type === 'class').map((clazz) => clazz.id);
} else {
classesAndGroups = _classesAndGroups.filter(
(c) => c.schoolId === res.locals.currentSchool,
Expand Down Expand Up @@ -252,7 +247,7 @@ const editCourseHandler = (req, res, next) => {
? s.filter(({ selected }) => selected) : s
);

const classAndGroupIds = [...(course.classIds || []), ...(course.groupIds || [])];
const classAndGroupIdsOfCourse = [...(course.classIds || []), ...(course.groupIds || [])];

if (req.params.courseId) {
if (!_scopePermissions.includes('COURSE_EDIT')) return next(new Error(res.$t('global.text.403')));
Expand All @@ -264,7 +259,7 @@ const editCourseHandler = (req, res, next) => {
closeLabel: res.$t('global.button.cancel'),
course,
colors,
classesAndGroups: markSelected(classesAndGroups, classAndGroupIds),
classesAndGroups: markSelected(classesAndGroups, classAndGroupIdsOfCourse),
teachers: markSelected(
teachers,
course.teacherIds,
Expand All @@ -286,7 +281,7 @@ const editCourseHandler = (req, res, next) => {
closeLabel: res.$t('global.button.cancel'),
course,
colors,
classesAndGroups: markSelected(classesAndGroups, classAndGroupIds),
classesAndGroups: markSelected(classesAndGroups, classAndGroupIdsOfCourse),
teachers: markSelected(
teachers,
course.teacherIds,
Expand Down Expand Up @@ -531,17 +526,6 @@ router.post('/', (req, res, next) => {
delete req.body[feature];
});

req.body.groupIds = [];
if (FEATURE_GROUPS_IN_COURSE_ENABLED) {
req.body.groupIds = (req.body.classIds ?? [])
.filter((id) => groupIds.includes(id));

if (groupIds.length > 0) {
req.body.classIds = (req.body.classIds ?? [])
.filter((id) => classIds.includes(id));
}
}

api(req)
.post('/courses/', {
json: req.body, // TODO: sanitize
Expand Down Expand Up @@ -780,13 +764,6 @@ router.patch('/:courseId', async (req, res, next) => {
req.body.substitutionIds = [];
}

if (FEATURE_GROUPS_IN_COURSE_ENABLED) {
req.body.groupIds = req.body.classIds
.filter((id) => groupIds.includes(id));
req.body.classIds = req.body.classIds
.filter((id) => classIds.includes(id));
}

const startDate = timesHelper.dateStringToMoment(req.body.startDate);
const untilDate = timesHelper.dateStringToMoment(req.body.untilDate);

Expand Down
2 changes: 1 addition & 1 deletion views/courses/edit-course.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@
<select id="classId" name="classIds[]" multiple data-placeholder="{{$t "courses.global.input.selectClasses"}}"
{{#if course.isArchived}}disabled{{/if}}>
{{#each classesAndGroups}}
<option value="{{this.id}}{{#unless this.id}}{{this._id}}{{/unless}}" {{#if this.selected}}selected{{/if}}>
<option value="{{#if this._id}}{{this._id}}{{else}}{{this.id}}{{/if}}" {{#if this.selected}}selected{{/if}}>
{{#if (getConfig "FEATURE_GROUPS_IN_COURSE_ENABLED")}}
{{this.name}}

Expand Down

0 comments on commit aa9a90f

Please sign in to comment.