Skip to content

Commit

Permalink
Issue/k UI 1608 remove fields - literature (#392)
Browse files Browse the repository at this point in the history
* feat(KUI-1599): remove infoContactName from whole project

* feat(KUI-1599): remove addOn from whole project

* feat(KUI-1599): remove applicationInfo from whole project

* feat(KUI-1599): remove possibilityToCompletion from whole project

* feat(KUI-1599): remove possibilityToAddition from whole project

* feat(KUI-1599): remove requiredEquipment from whole project

* only saving

* feat(KUI-1608): update how we show courseLiterature

* feat(KUI-1608): update two comments

* feat(KUI-1608): update the swedish translation for default not being existed courseLiterature
  • Loading branch information
amirhossein-haerian authored Dec 2, 2024
1 parent 1fc43df commit f48357c
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 34 deletions.
2 changes: 2 additions & 0 deletions i18n/messages.en.js
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@ module.exports = {
course_requirments_for_final_grade: 'Other requirements for final grade',
course_literature: 'Literature',
course_literature_comment: 'Literature comment',
course_literature_not_exist:
'You can find information about course literature either in the course memo for the course offering or in the course room in Canvas.',
course_examination_comments: 'Examination comment',
course_examination: 'Examination',
course_examination_disclaimer:
Expand Down
2 changes: 2 additions & 0 deletions i18n/messages.se.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,8 @@ module.exports = {
course_requirments_for_final_grade: 'Övriga krav för slutbetyg',
course_literature: 'Kurslitteratur',
course_literature_comment: 'Kommentar till kurslitteratur',
course_literature_not_exist:
'Du hittar information om kurslitteratur antingen i kursomgångens kurs-PM eller i kursomgångens kursrum i Canvas.',
course_examination_comments: 'Kommentar till examinationsmoment',
course_examination: 'Examination',
course_examination_disclaimer:
Expand Down
9 changes: 3 additions & 6 deletions public/js/app/components/CourseSectionList.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { SyllabusInformation } from './SyllabusInformation'

function CourseSectionList({ courseInfo = {}, partToShow, syllabus = {}, syllabusName }) {
const { translation } = useLanguage()
const { isMissingInfoLabel, missingInfoLabel } = useMissingInfo()
const { isMissingInfoLabel } = useMissingInfo()

function getContent() {
const content = [
Expand Down Expand Up @@ -38,15 +38,12 @@ function CourseSectionList({ courseInfo = {}, partToShow, syllabus = {}, syllabu
}

function getExecution() {
let literatureText = missingInfoLabel
const courseHasLiterature = courseInfo.course_literature && !isMissingInfoLabel(courseInfo.course_literature)
let literatureText = translation.courseInformation.course_literature_not_exist
const syllabusHasLiterature = syllabus.course_literature && !isMissingInfoLabel(syllabus.course_literature)
const syllabusHasLiteratureComment =
syllabus.course_literature_comment && !isMissingInfoLabel(syllabus.course_literature_comment)

if (courseHasLiterature) {
literatureText = courseInfo.course_literature
} else if (syllabusHasLiterature) {
if (syllabusHasLiterature) {
const literatureComment = syllabusHasLiteratureComment ? `<br />${syllabus.course_literature_comment}` : ''
literatureText = `${syllabus.course_literature}${literatureComment}`
} else if (syllabusHasLiteratureComment) {
Expand Down
38 changes: 13 additions & 25 deletions public/js/app/components/__tests__/CourseSectionList.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React from 'react'
import { render, screen } from '@testing-library/react'
import '@testing-library/jest-dom'
import { WebContextProvider } from '../../context/WebContext'
import i18n from '../../../../../i18n'

import CourseSectionList from '../CourseSectionList'

Expand All @@ -10,11 +11,9 @@ const INFORM_IF_IMPORTANT_INFO_IS_MISSING = ['No information inserted', 'Ingen i
describe('Component <CourseSectionList>', () => {
test('renders course literature correctly', () => {
const lang = 'en'
const [courseLiteratureNoTitle] = INFORM_IF_IMPORTANT_INFO_IS_MISSING // en
const courseInfoWithoutLiterature = { course_literature: `<i>${courseLiteratureNoTitle}</i>` }

const courseLiteratureTitle = 'Course Literature (1970)'
const courseInfoWithLiterature = { course_literature: courseLiteratureTitle }
const translation = i18n.getLanguageByShortname(lang)
const syllabusLiteratureDefaultEmptyValue = translation.courseInformation.course_literature

const [syllabusLiteratureNoTitle] = INFORM_IF_IMPORTANT_INFO_IS_MISSING // en
const syllabusWithoutLiterature = {
Expand Down Expand Up @@ -44,52 +43,41 @@ describe('Component <CourseSectionList>', () => {
lang,
}

// Course has no literature, and syllabus has no literature – Show 'No information inserted'
// Syllabus has no literature – Show the default text
const { rerender } = render(
<WebContextProvider configIn={context1}>
<CourseSectionList courseInfo={courseInfoWithoutLiterature} syllabus={syllabusWithoutLiterature} />
<CourseSectionList syllabus={syllabusWithoutLiterature} />
</WebContextProvider>
)
const noliteratureText = screen.getByText(courseLiteratureNoTitle)
const noliteratureText = screen.getByText(syllabusLiteratureDefaultEmptyValue)
expect(noliteratureText).toBeInTheDocument()

// Course has literature – Show only literature from course
// Syllabus has literature without comment – Show only literature (no comment) from syllabus
rerender(
<WebContextProvider configIn={context1}>
<CourseSectionList courseInfo={courseInfoWithLiterature} syllabus={syllabusWithLiteratureAndComment} />
<CourseSectionList syllabus={syllabusWithLiteratureNoComment} />
</WebContextProvider>
)
const literatureText = screen.getByText(courseLiteratureTitle)
expect(literatureText).toBeInTheDocument()
let syllabusText = screen.queryByText(syllabusLiteratureTitle)
expect(syllabusText).not.toBeInTheDocument()

// Course hasn't literature, syllabus does without comment – Show only literature (no comment) from syllabus
rerender(
<WebContextProvider configIn={context1}>
<CourseSectionList courseInfo={courseInfoWithoutLiterature} syllabus={syllabusWithLiteratureNoComment} />
</WebContextProvider>
)
syllabusText = screen.getByText(syllabusLiteratureTitle, { exact: false })
let syllabusText = screen.getByText(syllabusLiteratureTitle, { exact: false })
expect(syllabusText).toBeInTheDocument()
syllabusText = screen.queryByText(syllabusLiteratureNoComment)
expect(syllabusText).not.toBeInTheDocument()

// Course hasn't literature, syllabus does with comment – Show literature and literature comment from syllabus
// Syllabus has literature with comment – Show literature and literature comment from syllabus
rerender(
<WebContextProvider configIn={context1}>
<CourseSectionList courseInfo={courseInfoWithoutLiterature} syllabus={syllabusWithLiteratureAndComment} />
<CourseSectionList syllabus={syllabusWithLiteratureAndComment} />
</WebContextProvider>
)
syllabusText = screen.getByText(syllabusLiteratureTitle, { exact: false })
expect(syllabusText).toBeInTheDocument()
syllabusText = screen.getByText(syllabusLiteratureComment, { exact: false })
expect(syllabusText).toBeInTheDocument()

// Course hasn't literature, syllabus only has comment – Show literature comment from syllabus
// Syllabus hasn't literature and only has comment – Show literature comment from syllabus
rerender(
<WebContextProvider configIn={context1}>
<CourseSectionList courseInfo={courseInfoWithoutLiterature} syllabus={syllabusWithNoLiteratureAndComment} />
<CourseSectionList syllabus={syllabusWithNoLiteratureAndComment} />
</WebContextProvider>
)
syllabusText = screen.getByText(syllabusLiteratureComment, { exact: false })
Expand Down
1 change: 0 additions & 1 deletion server/apiCalls/getFilteredData.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ function _parseCourseDefaultInformation(courseDetails, language) {
course_grade_scale: parseOrSetEmpty(formattedGradeScales[course.gradeScaleCode], language),
course_last_exam: course.lastExamTerm ? parseSemesterIntoYearSemesterNumberArray(course.lastExamTerm.term) : [],
course_level_code: parseOrSetEmpty(course.educationalLevelCode),
course_literature: parseOrSetEmpty(course.courseLiterature, language),
course_main_subject:
mainSubjects && mainSubjects.length > 0
? mainSubjects.join(', ')
Expand Down
1 change: 0 additions & 1 deletion server/controllers/__tests__/courseCtrl.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,6 @@ describe('Discontinued course to test', () => {
"course_grade_scale": "P, F",
"course_last_exam": [],
"course_level_code": "RESEARCH",
"course_literature": "<p>Litteratur anvisas vid kursstart.</p>",
"course_main_subject": "Denna kurs tillhör inget huvudområde.",
"course_recommended_prerequisites": "",
"course_recruitment_text": "<p>Teori och metoder inom glykovetenskap.</p>",
Expand Down
1 change: 0 additions & 1 deletion server/controllers/mocks/mockedDiscontinuedCourse.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ const mockedDiscontinuedCourse = {
state: 'ESTABLISHED',
courseDeposition:
'<p>Kursen omfattar cirka 200 heltidsstudietimmar och utg&#246;rs av f&#246;rel&#228;sningar och praktiska laborationer. Laborationerna omfattar relevanta och aktuella experimentella metoder inom kolhydratteknik, t.ex. kolhydratanalys, produktion av kolhydrataktiva enzymer, preparation och karakterisering av vedbaserade nanomaterial och kolhydratsyntes. En mer detaljerad beskrivning av kursens inneh&#229;ll och uppl&#228;gg &#229;terfinns i kurs-PM.</p>',
courseLiterature: '<p>Litteratur anvisas vid kursstart.</p>',
},
examiners: [
{
Expand Down

0 comments on commit f48357c

Please sign in to comment.