Skip to content

Test markdown to html for kurslista #306

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 5 commits into
base: upl-main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .env.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
PDF_PROGRAM_SYLLABUS_URL= [Available in Azure KeyVault]
PDF_RENDER_FUNCTION_SUBSCRIPTION_KEY= [Available in Azure KeyVault]
REDIS_URI= [Available in Azure KeyVault]
REDIS_URI= [Available in Azure KeyVault]

# Ladok Mellanlager connection
LADOK_AUTH_CLIENT_SECRET=[Available in Azure KeyVault]
LADOK_OCP_APIM_SUBSCRIPTION_KEY=[Available in Azure KeyVault]
8 changes: 3 additions & 5 deletions config/commonSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,16 @@ module.exports = {
// The proxy prefix path if the application is proxied. E.g /places
proxyPrefixPath: {
uri: studentRoot,
courseSearch: `${studentRoot}/sokkurs`,
newSearchPage: `${studentRoot}/sokkurs-beta`,
searchResult: `${studentRoot}/sokkurs-beta/resultat`,
searchPage: `${studentRoot}/sokkurs`,
searchResult: `${studentRoot}/sokkurs/resultat`,
courseSearchInternApi: `${studentRoot}/intern-api/sok`,
department: `${studentRoot}/org`,
programme: `${studentRoot}/program`,
programmesList: `${studentRoot}/kurser-inom-program`,
schoolsList: `${studentRoot}/program`,
studyHandbook: '/student/program/shb',
thirdCycleCourseSearch: `${thirdCycleRoot}/sok`,
thirdCycleCourseSearchNew: `${thirdCycleRoot}/sok-beta`,
thirdCycleCourseSearchResultNew: `${thirdCycleRoot}/sok-beta/resultat`,
thirdCycleCourseSearchResult: `${thirdCycleRoot}/sok/resultat`,
thirdCycleSchoolsAndDepartments: `${thirdCycleRoot}/avdelning`,
thirdCycleCoursesPerDepartment: `${thirdCycleRoot}/org`,
literatureList: `${studentRoot}/lit`,
Expand Down
13 changes: 13 additions & 0 deletions config/serverSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,19 @@ module.exports = {
// Kopps
koppsApi: unpackKOPPSConfig('KOPPS_API_BASEURL', devKoppsApi),

// TODO(Ladok-POC): Replace devDefaults and add values to ref/prod.parameters.json when final mellanlager is deployed
ladokMellanlagerApi: {
clientId: getEnv('LADOK_AUTH_CLIENT_ID', devDefaults('c978bff4-80c6-42d2-8d64-a6d90227013b')),
clientSecret: getEnv('LADOK_AUTH_CLIENT_SECRET', null),
tokenUrl: getEnv(
'LADOK_AUTH_TOKEN_URL',
devDefaults('https://login.microsoftonline.com/acd7f330-d613-48d9-85f2-258b1ac4a015/oauth2/v2.0/token')
),
scope: getEnv('LADOK_AUTH_SCOPE', devDefaults('api://4afd7e46-019e-44e1-9630-12fdf9d31d02/.default')),
baseUrl: getEnv('LADOK_BASE_URL', devDefaults('https://ladok-mellanlagring-lab.azure-api.net')),
ocpApimSubscriptionKey: getEnv('LADOK_OCP_APIM_SUBSCRIPTION_KEY', null),
},

// Service API's
nodeApi: {
// nodeApi: unpackNodeApiConfig('NODE_API_URI', devNodeApi),
Expand Down
26 changes: 23 additions & 3 deletions domain/searchParams.js
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ function _periodConfigForOneYear({ year, terms }, langIndex) {
value,
})
}
const value = `${year}${term}:${periodNum}`
const value = `${term == 2 ? 'HT' : 'VT'}${year}:${periodNum}`
const label = `${formatLongTerm(`${year}${term}`, language)} period ${periodNum}`
return resultPeriodsConfig.push({ label, id: value, value })
})
Expand All @@ -153,14 +153,34 @@ function _periodConfigByYearType(yearType, langIndex) {
}
}

function _semestersConfig(langIndex) {
const { messages } = i18n.messages[langIndex]
const { semester } = messages
const relevantTerms = getRelevantTerms(2)
const yearsAndPeriod = _separateYearAndPeriod(relevantTerms)
const resultSemestersConfig = []
yearsAndPeriod.forEach(({ year, termNumber }) => {
const label = `${semester[termNumber]} ${year}`
const value = `${termNumber === '1' ? 'VT' : 'HT'}${year}`
resultSemestersConfig.push({
label,
id: value,
value,
})
})
return resultSemestersConfig
}

function getParamConfig(paramName, langIndex) {
switch (paramName) {
case 'eduLevel':
return eduLevelConfig(langIndex)
case 'currentYear':
return _periodConfigByYearType('currentYear', langIndex)
return _periodConfigByYearType('currentYear', langIndex, true)
case 'nextYear':
return _periodConfigByYearType('nextYear', langIndex)
return _periodConfigByYearType('nextYear', langIndex, true)
case 'semesters':
return _semestersConfig(langIndex)
case 'showOptions':
return showOptionsConfig(langIndex)
case 'onlyMHU':
Expand Down
7 changes: 7 additions & 0 deletions domain/term.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,12 @@ function formatShortTerm(term, language) {
return `${t('semester')[semester]}${language === 'en' ? ' ' : ''}${shortYear}`
}

function formatTermByYearAndPeriod(period, year, language) {
const t = translate(language)
const shortYear = year.toString().slice(-2)
return `${t('semester')[period == 0 || period == 1 || period == 2 ? 2 : 1]}${language === 'en' ? ' ' : ''}${shortYear}`
}

function formatLongTerm(term, language) {
const t = translate(language)
const [year, semester] = splitTerm(term)
Expand Down Expand Up @@ -153,6 +159,7 @@ module.exports = {
_nTermsAgo,
studyYear: _studyYear,
formatShortTerm,
formatTermByYearAndPeriod,
formatLongTerm,
splitTerm,
add,
Expand Down
24 changes: 5 additions & 19 deletions i18n/messages.en.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ const messages = {
course_name: 'Course name',
course_educational_level: 'Educational level',
course_educational_level_abbr: 'Edu. level',
course_language: 'Language',
course_campus: 'Campus',
course_pace: 'Pace',

study_year: 'Study year',

Expand Down Expand Up @@ -92,10 +95,8 @@ const messages = {
main_menu_page_example: 'Example',
main_menu_shb: 'Studies before 07/08',
main_menu_search_all: 'Search courses',
main_menu_search_all_new: 'Search courses (beta)',
main_menu_third_cycle_studies: 'Doctoral studies (PhD)',
main_menu_third_cycle_courses_search: 'Search third-cycle courses',
main_menu_third_cycle_courses_search_new: 'Search third-cycle courses (beta)',

main_page_header_example: 'Example',
main_page_article_lead_example:
Expand Down Expand Up @@ -244,6 +245,7 @@ const messages = {
leadIntro:
'Find info on KTH courses: course syllabus, course memo, and course analyses. Search by course name or course code, you can also filter by semester and period. Which courses are included in a program can be found under Programme syllabuses.',
eduLevel: 'Educational level:',
semesters: 'Course Start:',
PREPARATORY: 'Pre-university level',
BASIC: 'First cycle',
ADVANCED: 'Second cycle',
Expand Down Expand Up @@ -279,10 +281,6 @@ const messages = {
'You may select to show courses that are no longer offered or dormant at KTH (terminated courses). By default, these are not shown.',
search_help_10:
'If you have questions or feedback on the course search, please contact <a href="mailto:[email protected]">[email protected]</a>.',
beta_version_title: 'Want to try our new search function?',
beta_version_description:
'We have designed and developed a new search function for the Course and Program directory that you can test here!',
beta_version_link: 'Search courses (beta)',
},
thirdCycleSearchInstructions: {
search_help_collapse_header: 'Instructions for searching',
Expand All @@ -294,10 +292,6 @@ const messages = {
search_research_help_5: 'Courses that are no longer offered or dormant at KTH are not shown.',
search_research_help_6:
'You can filter on courses that deal with environment, environmental technology, or sustainable development.',
beta_version_title: 'Want to try our new search function?',
beta_version_description:
'We have designed and developed a new search function for the Course and Program directory that you can test here! You can and are welcome to leave feedback on what you think of the new search function!',
beta_version_link: 'Search third-cycle courses (beta)',
},
generalSearch: {
collapseHeaderOtherSearchOptions: 'Filter your search choices',
Expand Down Expand Up @@ -337,20 +331,12 @@ const messages = {
},
searchAlarms: {
errorUnknown: { text: 'An unknown error occurred - failed to retrieve course data' },
errorKodEllerBenamning: { text: 'Search input must be equal or more than 3 characters.' },
errorEmpty: {
header: 'Your search returned no results',
help: 'For help, see the link below: Instructions for searching',
},
errorEmptyBeta: {
header: 'Your search returned no results',
// we don't have this link anymore so we should decide what we are going to show as a help text
},
errorOverflow: {
header: 'There were too many results',
text: 'There are too many courses that match your search critera. Please specify more characters/digits in the course name or course code (example of course code: SF1624)',
help: 'For help, see the link below: Instructions for searching',
},
errorOverflowBeta: {
header: 'There were too many results',
text: 'There are too many courses that match your search critera. Please specify more characters/digits in the course name or course code (example of course code: SF1624)',
// we don't have this link anymore so we should decide what we are going to show as a help text
Expand Down
24 changes: 5 additions & 19 deletions i18n/messages.se.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ const messages = {
course_name: 'Kursnamn',
course_educational_level: 'Utbildningsnivå',
course_educational_level_abbr: 'Utbildningsnivå',
course_language: 'Språk',
course_campus: 'Campus',
course_pace: 'Omfattning',

study_year: 'Årskurs',

Expand Down Expand Up @@ -91,10 +94,8 @@ const messages = {
main_menu_page_example: 'Exempel',
main_menu_shb: 'Studier före 07/08',
main_menu_search_all: 'Sök kurser',
main_menu_search_all_new: 'Sök kurser (beta)',
main_menu_third_cycle_studies: 'Forskarutbildning',
main_menu_third_cycle_courses_search: 'Sök forskarkurs',
main_menu_third_cycle_courses_search_new: 'Sök forskarkurs (beta)',

main_page_header_example: 'Exempel',
main_page_article_lead_example: '”Stora miljoner dag, har.”',
Expand Down Expand Up @@ -238,6 +239,7 @@ const messages = {
leadIntro:
'Här finns info om kurser på KTH: kursplan, kurs-PM och kursanalyser. Sök på kursnamn eller kurskod, du kan även filtrera på termin och läsperiod. Vilka kurser som ingår i ett program finns under Utbildningsplaner.',
eduLevel: 'Utbildningsnivå:',
semesters: 'Kursstart:',
PREPARATORY: 'Förberedande nivå',
BASIC: 'Grundnivå',
ADVANCED: 'Avancerad nivå',
Expand Down Expand Up @@ -271,10 +273,6 @@ const messages = {
'Du kan välja att även visa kurser som ej längre ges på KTH. Standardinställning är att dessa inte visas.',
search_help_10:
'Om du har synpunkter eller frågor gällande kurssökningen, kontakta <a href="mailto:[email protected]">[email protected]</a>.',
beta_version_title: 'Vill du prova vår nya sökfunktion?',
beta_version_description:
'Vi har designat och utvecklat en ny sökfunktion för Kurs- och programkatalogen som du kan testa här!',
beta_version_link: 'Sök kurser (beta)',
},
thirdCycleSearchInstructions: {
search_help_collapse_header: 'Få hjälp med sökningen',
Expand All @@ -285,10 +283,6 @@ const messages = {
'Sökningen visar max 250 träffar. Får du för många träffar, försök att förfina sökvillkoren.',
search_research_help_5: 'Forskarkurser som ej längre ges på KTH visas inte.',
search_research_help_6: 'Du kan filtrera på kurser som behandlar miljö, miljöteknik eller hållbar utveckling.',
beta_version_title: 'Vill du prova vår nya sökfunktion?',
beta_version_description:
'Vi har designat och utvecklat en ny sökfunktion för Kurs- och programkatalogen som du kan testa här! Du kan och får gärna lämna feedback på vad du tycker om den nya sökfunktionen!',
beta_version_link: 'Sök forskarkurs (beta)',
},
generalSearch: {
collapseHeaderOtherSearchOptions: 'Filtrera dina sökval',
Expand Down Expand Up @@ -328,20 +322,12 @@ const messages = {
},
searchAlarms: {
errorUnknown: { text: 'Ett okänt fel inträffade - misslyckad hämtning av kursdata' },
errorKodEllerBenamning: { text: 'Sökinmatningen måste vara lika med eller större än 3 tecken.' },
errorEmpty: {
header: 'Din sökning gav inga träffar.',
help: 'Mer hjälp hittar du i länken nedan: Få hjälp med sökningen',
},
errorEmptyBeta: {
header: 'Din sökning gav inga träffar.',
// we don't have this link anymore so we should decide what we are going to show as a help text
},
errorOverflow: {
header: 'Sökningen gav för många träffar',
text: 'Det finns för många kurser som matchar det du sökt på. Ange fler bokstäver/siffror i kursnamn eller kurskod (exempel på kurskod: SF1624).',
help: 'Mer hjälp hittar du i länken nedan: Få hjälp med sökningen',
},
errorOverflowBeta: {
header: 'Sökningen gav för många träffar',
text: 'Det finns för många kurser som matchar det du sökt på. Ange fler bokstäver/siffror i kursnamn eller kurskod (exempel på kurskod: SF1624).',
// we don't have this link anymore so we should decide what we are going to show as a help text
Expand Down
21 changes: 17 additions & 4 deletions package-lock.json

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

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
"@kth/monitor": "^4.2.1",
"@kth/server": "^4.1.0",
"@kth/session": "^3.0.9",
"@kth/style": "^1.4.2",
"@kth/style": "^1.6.0",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.21.0",
"axios": "^1.6.7",
Expand All @@ -66,6 +66,7 @@
"kth-style": "^10.3.0",
"mobx": "^6.12.0",
"mobx-react": "^9.1.0",
"@kth/om-kursen-ladok-client": "file:../studadm-om-kursen-packages/packages/om-kursen-ladok-client",
"prop-types": "^15.8.1",
"querystring": "^0.2.1",
"react": "^18.2.0",
Expand Down
Loading