From b8ef27b3dadec087dd0ee5a9ef657538fc225392 Mon Sep 17 00:00:00 2001 From: clementlemon02 Date: Sun, 16 Jul 2023 23:18:53 +0200 Subject: [PATCH 01/14] LLM Frontend --- .../application/actions/SessionActions.ts | 1 + .../actions/__tests__/SessionActions.ts | 2 + .../application/reducers/SessionsReducer.ts | 6 ++ .../reducers/__tests__/SessionReducer.ts | 1 + src/commons/application/types/SessionTypes.ts | 4 ++ src/commons/dropdown/DropdownCreateCourse.tsx | 40 ++++++++++- src/commons/dropdown/DropdownPrompt.tsx | 46 +++++++++++++ src/commons/mocks/UserMocks.ts | 2 + src/commons/sagas/RequestsSaga.ts | 1 + src/commons/sagas/__tests__/BackendSaga.ts | 6 +- .../academy/__tests__/AcademyActions.ts | 3 +- src/features/grading/GradingTypes.ts | 1 + src/pages/__tests__/localStorage.test.ts | 1 + src/pages/academy/adminPanel/AdminPanel.tsx | 6 +- .../subcomponents/CourseConfigPanel.tsx | 66 ++++++++++++++++++- src/pages/academy/grading/Grading.tsx | 34 ++++++++-- .../grading/subcomponents/GradingEditor.tsx | 1 + .../subcomponents/GradingWorkspace.tsx | 18 ++--- src/pages/localStorage.ts | 1 + 19 files changed, 217 insertions(+), 23 deletions(-) create mode 100644 src/commons/dropdown/DropdownPrompt.tsx diff --git a/src/commons/application/actions/SessionActions.ts b/src/commons/application/actions/SessionActions.ts index e2d842373c..ec1e6da7c7 100644 --- a/src/commons/application/actions/SessionActions.ts +++ b/src/commons/application/actions/SessionActions.ts @@ -197,6 +197,7 @@ export const updateAssessment = (assessment: Assessment) => action(UPDATE_ASSESS export const updateGradingOverviews = (overviews: GradingOverview[]) => action(UPDATE_GRADING_OVERVIEWS, overviews); + /** * An extra id parameter is included here because of * no id for Grading. diff --git a/src/commons/application/actions/__tests__/SessionActions.ts b/src/commons/application/actions/__tests__/SessionActions.ts index b4fa8cba57..4f72a2f583 100644 --- a/src/commons/application/actions/__tests__/SessionActions.ts +++ b/src/commons/application/actions/__tests__/SessionActions.ts @@ -231,6 +231,7 @@ test('setCourseConfiguration generates correct action object', () => { sourceChapter: Chapter.SOURCE_1, sourceVariant: Variant.DEFAULT, moduleHelpText: 'Help text', + defaultPrompt: 'default Prompt', assessmentTypes: ['Missions', 'Quests', 'Paths', 'Contests', 'Others'] }; const action = setCourseConfiguration(courseConfig); @@ -612,6 +613,7 @@ test('updateCourseConfig generates correct action object', () => { sourceChapter: Chapter.SOURCE_1, sourceVariant: Variant.DEFAULT, moduleHelpText: 'Help text', + defaultPrompt: 'default Prompt', assessmentTypes: ['Missions', 'Quests', 'Paths', 'Contests', 'Others'] }; const action = updateCourseConfig(courseConfig); diff --git a/src/commons/application/reducers/SessionsReducer.ts b/src/commons/application/reducers/SessionsReducer.ts index fd7f49de9c..eb8bfc53af 100644 --- a/src/commons/application/reducers/SessionsReducer.ts +++ b/src/commons/application/reducers/SessionsReducer.ts @@ -114,6 +114,12 @@ export const SessionsReducer: Reducer = ( ...state, gradingOverviews: action.payload }; + + case UPDATE_GRADING_OVERVIEWS: + return { + ...state, + gradingOverviews: action.payload + }; case UPDATE_NOTIFICATIONS: return { ...state, diff --git a/src/commons/application/reducers/__tests__/SessionReducer.ts b/src/commons/application/reducers/__tests__/SessionReducer.ts index 3cafa4cb5f..39dd2eec63 100644 --- a/src/commons/application/reducers/__tests__/SessionReducer.ts +++ b/src/commons/application/reducers/__tests__/SessionReducer.ts @@ -99,6 +99,7 @@ test('SET_COURSE_CONFIGURATION works correctly', () => { sourceChapter: Chapter.SOURCE_1, sourceVariant: Variant.DEFAULT, moduleHelpText: 'Help text', + defaultPrompt: 'default Prompt', assessmentTypes: ['Missions', 'Quests', 'Paths', 'Contests', 'Others'] }; const action = { diff --git a/src/commons/application/types/SessionTypes.ts b/src/commons/application/types/SessionTypes.ts index 5472173e89..a5e39ee767 100644 --- a/src/commons/application/types/SessionTypes.ts +++ b/src/commons/application/types/SessionTypes.ts @@ -51,6 +51,7 @@ export const UPDATE_TOTAL_XP = 'UPDATE_TOTAL_XP'; export const UPDATE_ALL_USER_XP = 'UPDATE_ALL_USER_XP'; export const UPDATE_ASSESSMENT = 'UPDATE_ASSESSMENT'; export const UPDATE_GRADING_OVERVIEWS = 'UPDATE_GRADING_OVERVIEWS'; +export const UPDATE_GRADING_OVERVIEWS_TEST = 'UPDATE_GRADING_OVERVIEWS_TEST'; export const UPDATE_GRADING = 'UPDATE_GRADING'; export const FETCH_NOTIFICATIONS = 'FETCH_NOTIFICATIONS'; export const ACKNOWLEDGE_NOTIFICATIONS = 'ACKNOWLEDGE_NOTIFICATIONS'; @@ -98,6 +99,7 @@ export type SessionState = { readonly sourceChapter?: number; readonly sourceVariant?: Variant; readonly moduleHelpText?: string; + readonly defaultPrompt?: string; readonly assetsPrefix?: string; readonly assessmentConfigurations?: AssessmentConfiguration[]; @@ -110,6 +112,7 @@ export type SessionState = { readonly assessmentOverviews?: AssessmentOverview[]; readonly assessments: Map; readonly gradingOverviews?: GradingOverview[]; + readonly gradingOverviewsTest?: GradingOverview[]; readonly gradings: Map; readonly notifications: Notification[]; readonly googleUser?: string; @@ -160,6 +163,7 @@ export type CourseConfiguration = { sourceChapter: Chapter; sourceVariant: Variant; moduleHelpText: string; + defaultPrompt: string; assetsPrefix: string; }; diff --git a/src/commons/dropdown/DropdownCreateCourse.tsx b/src/commons/dropdown/DropdownCreateCourse.tsx index 39b4a34fde..9c39663f62 100644 --- a/src/commons/dropdown/DropdownCreateCourse.tsx +++ b/src/commons/dropdown/DropdownCreateCourse.tsx @@ -40,7 +40,8 @@ const DropdownCreateCourse: React.FC = props => { enableSourcecast: true, sourceChapter: Chapter.SOURCE_1, sourceVariant: Variant.DEFAULT, - moduleHelpText: '' + moduleHelpText: '', + defaultPrompt: '' }); const [courseHelpTextSelectedTab, setCourseHelpTextSelectedTab] = @@ -173,6 +174,43 @@ const DropdownCreateCourse: React.FC = props => { )} + + Default Prompt  + + (optional) + + + + + + {courseHelpTextSelectedTab === CourseHelpTextEditorTab.WRITE && ( +