Skip to content

Commit

Permalink
ref(KUI-1176): s/term/semester in semesterutils
Browse files Browse the repository at this point in the history
  • Loading branch information
belanglos committed May 16, 2024
1 parent d4b6196 commit 46451d4
Show file tree
Hide file tree
Showing 14 changed files with 155 additions and 119 deletions.
2 changes: 1 addition & 1 deletion public/js/app/components/DropdownSemesters.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { useLanguage } from '../hooks/useLanguage'
const DROPDOWN_ID = 'semesterDropdown'

const formatLongSemesterName = (semesterItem, translation) =>
`${translation.courseInformation.course_short_semester[semesterItem.termNumber]}${semesterItem.year}`
`${translation.courseInformation.course_short_semester[semesterItem.semesterNumber]}${semesterItem.year}`

const DropdownSemesters = ({ semesterList, semesterRoundState }) => {
const { translation } = useLanguage()
Expand Down
10 changes: 5 additions & 5 deletions public/js/app/hooks/__tests__/useActiveRounds.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ const syllabusList = [
'<p>Announced no later than 4 weeks before the start of the course on the course web page.</p>',
course_valid_from: {
year: 2019,
termNumber: 2,
semesterNumber: 2,
},
course_valid_to: [],
course_required_equipment: '<i>No information inserted</i>',
Expand All @@ -181,11 +181,11 @@ const syllabusList = [
course_literature_comment: '<i>No information inserted</i>',
course_valid_from: {
year: 2010,
termNumber: 2,
semesterNumber: 2,
},
course_valid_to: {
year: 2019,
termNumber: 1,
semesterNumber: 1,
},
course_required_equipment: '<i>No information inserted</i>',
course_examination:
Expand All @@ -203,12 +203,12 @@ const syllabusList = [
const activeSemesters = [
{
year: '2023',
termNumber: '2',
semesterNumber: '2',
semester: '20232',
},
{
year: '2024',
termNumber: '2',
semesterNumber: '2',
semester: '20242',
},
]
Expand Down
4 changes: 2 additions & 2 deletions public/js/app/hooks/getValidSyllabusForSemester.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
const { parseYearTermIntoTerm } = require('../../../../server/util/semesterUtils')
const { convertYearSemesterNumberIntoSemester } = require('../../../../server/util/semesterUtils')

const isSyllabusValidForThisSemester = (syllabusStartSemester, semester) => syllabusStartSemester <= semester

const getValidSyllabusForSemester = (publicSyllabusVersions, semester) =>
publicSyllabusVersions.find(syllabus => {
const prevSyllabusStartSemester = parseYearTermIntoTerm(syllabus.course_valid_from)
const prevSyllabusStartSemester = convertYearSemesterNumberIntoSemester(syllabus.course_valid_from)

return isSyllabusValidForThisSemester(prevSyllabusStartSemester, semester)
})
Expand Down
14 changes: 9 additions & 5 deletions public/js/app/pages/CoursePage.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import BankIdAlert from '../components/BankIdAlert'
import { useLanguage } from '../hooks/useLanguage'
import { useMissingInfo } from '../hooks/useMissingInfo'
import { useActiveRounds } from '../hooks/useActiveRounds'
import { parseYearTermIntoTerm } from '../../../../server/util/semesterUtils'
import { convertYearSemesterNumberIntoSemester } from '../../../../server/util/semesterUtils'

const aboutCourseStr = (translate, courseCode = '') => `${translate.site_name} ${courseCode}`

Expand Down Expand Up @@ -266,14 +266,16 @@ function CoursePage() {
<>
<p>{translation.courseLabels.label_syllabus_pdf_info}</p>
<a
href={`${SYLLABUS_URL}${courseCode}-${parseYearTermIntoTerm(activeSyllabus.course_valid_from)}.pdf?lang=${languageShortname}`}
id={parseYearTermIntoTerm(activeSyllabus.course_valid_from) + '_active'}
href={`${SYLLABUS_URL}${courseCode}-${convertYearSemesterNumberIntoSemester(activeSyllabus.course_valid_from)}.pdf?lang=${languageShortname}`}
id={convertYearSemesterNumberIntoSemester(activeSyllabus.course_valid_from) + '_active'}
target="_blank"
rel="noreferrer"
className="pdf-link pdf-link-fix pdf-link-last-line"
>
{`${translation.courseLabels.label_syllabus_link} ${courseCode}${` (${
translation.courseInformation.course_short_semester[activeSyllabus.course_valid_from.termNumber]
translation.courseInformation.course_short_semester[
activeSyllabus.course_valid_from.semesterNumber
]
}${activeSyllabus.course_valid_from.year}${
activeSyllabus.course_valid_to.length > 0
? translation.courseInformation.course_short_semester[activeSyllabus.course_valid_to[1]] +
Expand Down Expand Up @@ -314,7 +316,9 @@ function CoursePage() {
syllabusName={
hasSyllabus
? `${courseCode}${` (${
translation.courseInformation.course_short_semester[activeSyllabus.course_valid_from.termNumber]
translation.courseInformation.course_short_semester[
activeSyllabus.course_valid_from.semesterNumber
]
}${
activeSyllabus && activeSyllabus.course_valid_from ? activeSyllabus.course_valid_from.year : ''
}${
Expand Down
18 changes: 9 additions & 9 deletions public/js/app/pages/__tests__/CoursePage.test.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 14 additions & 7 deletions server/apiCalls/filteredData.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ const {
const { buildCourseDepartmentLink } = require('../util/courseDepartmentUtils')
const { getDateFormat, formatVersionDate } = require('../util/dates')
const i18n = require('../../i18n')
const { parseTermIntoYearTerm, parseTermIntoYearTermArray } = require('../util/semesterUtils')
const {
parseSemesterIntoYearSemesterNumber,
parseSemesterIntoYearSemesterNumberArray,
} = require('../util/semesterUtils')
const koppsCourseData = require('./koppsCourseData')
const courseApi = require('./kursinfoApi')

Expand All @@ -32,7 +35,7 @@ function _parseCourseDefaultInformation(courseDetails, language) {
course_education_type_id: course.educationalTypeId || null,
course_examiners: INFORM_IF_IMPORTANT_INFO_IS_MISSING[language],
course_grade_scale: parseOrSetEmpty(formattedGradeScales[course.gradeScaleCode], language),
course_last_exam: course.lastExamTerm ? parseTermIntoYearTermArray(course.lastExamTerm.term) : [],
course_last_exam: course.lastExamTerm ? parseSemesterIntoYearSemesterNumberArray(course.lastExamTerm.term) : [],
course_level_code: parseOrSetEmpty(course.educationalLevelCode),
course_literature: parseOrSetEmpty(course.courseLiterature, language),
course_main_subject:
Expand Down Expand Up @@ -70,12 +73,12 @@ function _getRoundPeriodes(courseRoundTerms, language = 'sv') {
if (courseRoundTerms) {
if (courseRoundTerms.length > 1) {
courseRoundTerms.forEach(periode => {
const yearTerm = parseTermIntoYearTerm(periode.term.term)
const yearTerm = parseSemesterIntoYearSemesterNumber(periode.term.term)

periodeString += `<p class="periode-list">
${
i18n.messages[language === 'en' ? 0 : 1].courseInformation.course_short_semester[
yearTerm.termNumber
yearTerm.semesterNumber
]
}
${yearTerm.year}:
Expand Down Expand Up @@ -141,7 +144,7 @@ function _getRound(roundObject = {}, language = 'sv') {
round_study_pace: parseOrSetEmpty(round.studyPace, language),
round_course_term:
parseOrSetEmpty(round.startTerm.term, language).toString().length > 0
? parseTermIntoYearTermArray(round.startTerm.term)
? parseSemesterIntoYearSemesterNumberArray(round.startTerm.term)
: [],
round_periods: _getRoundPeriodes(round.courseRoundTerms, language),
round_seats:
Expand Down Expand Up @@ -219,7 +222,11 @@ function _parseRounds({ roundInfos, courseCode, language, memoList }) {

activeSemesterArray.sort()

const activeSemesters = activeSemesterArray.map(([year, termNumber, semester]) => ({ year, termNumber, semester }))
const activeSemesters = activeSemesterArray.map(([year, semesterNumber, semester]) => ({
year,
semesterNumber,
semester,
}))

return { courseRoundList, activeSemesters, employees }
}
Expand Down Expand Up @@ -274,7 +281,7 @@ const getFilteredData = async ({ courseCode, language, memoList }) => {

return {
isCancelledOrDeactivated,
activeSemesters, // TODO Benni rename activeSemesters to availableSemesters
activeSemesters,
employees,
courseData,
}
Expand Down
15 changes: 9 additions & 6 deletions server/apiCalls/timeTable/utils/timeTableDateUtils.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
const { convertToYearTermOrGetCurrent, parseTermIntoYearTerm } = require('../../../util/semesterUtils')
const {
convertToYearSemesterNumberOrGetCurrent,
parseSemesterIntoYearSemesterNumber,
} = require('../../../util/semesterUtils')

const getMonthDateStringForSpring = year => ({
start: `${year}-01-01T00:00:00`,
Expand All @@ -10,8 +13,8 @@ const getMonthDateStringForFall = year => ({
end: `${year + 1}-01-31T23:59:59`,
})

const getStartEndByYearTerm = ({ year, termNumber }) => {
if (termNumber === 1) {
const getStartEndByYearTerm = ({ year, semesterNumber }) => {
if (semesterNumber === 1) {
return getMonthDateStringForSpring(year)
}

Expand All @@ -23,7 +26,7 @@ const getStartEndByYearTerm = ({ year, termNumber }) => {
* @param {Number} semester
*/
const convertSemesterIntoStartEndDates = semester => {
const yearTerm = convertToYearTermOrGetCurrent(semester)
const yearTerm = convertToYearSemesterNumberOrGetCurrent(semester)

return getStartEndByYearTerm(yearTerm)
}
Expand All @@ -40,9 +43,9 @@ const seasonString = {
}

const convertSemesterToSeasonString = semester => {
const { year, termNumber } = parseTermIntoYearTerm(semester)
const { year, semesterNumber } = parseSemesterIntoYearSemesterNumber(semester)

return `${seasonString[termNumber]}${extractTwoDigitYear(year)}`
return `${seasonString[semesterNumber]}${extractTwoDigitYear(year)}`
}

module.exports = {
Expand Down
2 changes: 1 addition & 1 deletion server/controllers/__tests__/courseCtrl.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ describe('Discontinued course to test', () => {
"course_requirments_for_final_grade": "<p>Godk&#228;nd skriftlig tentamen, godk&#228;nda inl&#228;mningsuppgifter kopplade till f&#246;rel&#228;sningarna, 100% n&#228;rvaro p&#229; laborationer och slutf&#246;rande av laborationer, samt godk&#228;nda laborationsrapporter.</p>",
"course_transitional_reg": "",
"course_valid_from": {
"termNumber": 2,
"semesterNumber": 2,
"year": 2019,
},
"course_valid_to": [],
Expand Down
18 changes: 9 additions & 9 deletions server/controllers/__tests__/courseCtrlHelpers.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,50 +3,50 @@ import { calculateInitiallySelectedSemester, generateSelectedSemesterBasedOnDate
const activeSemesters = [
{
year: '2023',
termNumber: '2',
semesterNumber: '2',
semester: '20232',
},
{
year: '2024',
termNumber: '2',
semesterNumber: '2',
semester: '20242',
},
{
year: '2025',
termNumber: '1',
semesterNumber: '1',
semester: '20251',
},
]

const activeSemestersEverySemester = [
{
year: '2023',
termNumber: '1',
semesterNumber: '1',
semester: '20231',
},
{
year: '2023',
termNumber: '2',
semesterNumber: '2',
semester: '20232',
},
{
year: '2024',
termNumber: '1',
semesterNumber: '1',
semester: '20241',
},
{
year: '2024',
termNumber: '2',
semesterNumber: '2',
semester: '20242',
},
{
year: '2025',
termNumber: '1',
semesterNumber: '1',
semester: '20251',
},
{
year: '2025',
termNumber: '2',
semesterNumber: '2',
semester: '20252',
},
]
Expand Down
14 changes: 7 additions & 7 deletions server/controllers/__tests__/createSyllabusList.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const expectedSyllabusList = [
course_literature: '<i>No information inserted</i>',
course_literature_comment:
'<p>Announced no later than 4 weeks before the start of the course on the course web page.</p>',
course_valid_from: { year: 2019, termNumber: 2 },
course_valid_from: { year: 2019, semesterNumber: 2 },
course_valid_to: [],
course_required_equipment: '<i>No information inserted</i>',
course_examination:
Expand All @@ -34,8 +34,8 @@ const expectedSyllabusList = [
course_requirments_for_final_grade: '<p>Written exam, possibly with the possibility of continuous examination.</p>',
course_literature: '<i>No information inserted</i>',
course_literature_comment: '<i>No information inserted</i>',
course_valid_from: { year: 2010, termNumber: 2 },
course_valid_to: { year: 2019, termNumber: 1 },
course_valid_from: { year: 2010, semesterNumber: 2 },
course_valid_to: { year: 2019, semesterNumber: 1 },
course_required_equipment: '<i>No information inserted</i>',
course_examination:
"<ul class='ul-no-padding' ><li>TEN1 - \n Examination,\n 7.5 credits, \n grading scale: A, B, C, D, E, FX, F \n </li></ul>",
Expand All @@ -54,8 +54,8 @@ const expectedSyllabusList = [
course_requirments_for_final_grade: '',
course_literature: '<i>No information inserted</i>',
course_literature_comment: '<i>No information inserted</i>',
course_valid_from: { year: 2009, termNumber: 2 },
course_valid_to: { year: 2010, termNumber: 1 },
course_valid_from: { year: 2009, semesterNumber: 2 },
course_valid_to: { year: 2010, semesterNumber: 1 },
course_required_equipment: '<i>No information inserted</i>',
course_examination:
"<ul class='ul-no-padding' ><li>TEN1 - \n Examination,\n 7.5 credits, \n grading scale: A, B, C, D, E, FX, F \n </li></ul>",
Expand All @@ -74,8 +74,8 @@ const expectedSyllabusList = [
course_requirments_for_final_grade: '',
course_literature: '<i>No information inserted</i>',
course_literature_comment: '<i>No information inserted</i>',
course_valid_from: { year: 2008, termNumber: 2 },
course_valid_to: { year: 2009, termNumber: 1 },
course_valid_from: { year: 2008, semesterNumber: 2 },
course_valid_to: { year: 2009, semesterNumber: 1 },
course_required_equipment: '<i>No information inserted</i>',
course_examination:
"<ul class='ul-no-padding' ><li>TEN1 - \n Examination,\n 7.5 credits, \n grading scale: A, B, C, D, E, FX, F \n </li></ul>",
Expand Down
Loading

0 comments on commit 46451d4

Please sign in to comment.