From d420368b3bf891838e19a0961e5c56778833c5d6 Mon Sep 17 00:00:00 2001 From: Anastasia Diseth Date: Mon, 27 May 2024 14:48:49 +0300 Subject: [PATCH] some uncommited changes from March 29th on pdf repport --- src/components/PdfDownload/PdfGenerator.tsx | 129 +++++++++++--------- src/util/utils.ts | 18 ++- 2 files changed, 84 insertions(+), 63 deletions(-) diff --git a/src/components/PdfDownload/PdfGenerator.tsx b/src/components/PdfDownload/PdfGenerator.tsx index 0d211bc..dff06ee 100644 --- a/src/components/PdfDownload/PdfGenerator.tsx +++ b/src/components/PdfDownload/PdfGenerator.tsx @@ -38,6 +38,7 @@ interface SubmissionProps { answer?: UserAnswer gradingFeedback: ExerciseFeedback | null userVariables?: UserVariablesMap | null + exercise_name?: string } const styles = StyleSheet.create({ @@ -196,16 +197,20 @@ const PDFSumFactorReport: React.FC> = ( publicSpec, answer, userVariables, + exercise_name, }) => { const sumFactor = (publicSpec as Survey)?.sumFactor if (!sumFactor || !sumFactor.categories) { return null } - const userScore = - calculateSumFactorScore( - (publicSpec as Survey)?.content, - answer?.answeredQuestions as AnsweredSurveyItem[], - ) ?? 0 + const userScore = calculateSumFactorScore( + (publicSpec as Survey)?.content, + answer?.answeredQuestions as AnsweredSurveyItem[], + ) + + if (!userScore) { + return null + } const userName = (userVariables != null && sumFactor.userVariable?.globalKey) ?? userVariables ? (userVariables[sumFactor.userVariable?.globalKey ?? ""] as string) @@ -231,50 +236,55 @@ const PDFSumFactorReport: React.FC> = ( const labelPlacement = userPlacement >= 100 - userLabelWidth ? userPlacement - userLabelWidth - 4 : userPlacement + 4 return ( - - - - - {`${userLabel}`} - - {sortedBars.map((car, idx) => { - return ( - <> - - - - {car.label} - - - ) - })} - - + <> + + {exercise_name} + + + + + + {`${userLabel}`} + + {sortedBars.map((car, idx) => { + return ( + <> + + + + {car.label} + + + ) + })} + + + ) } @@ -339,16 +349,21 @@ const MyDoc: React.FC> = (props) style={[styles.item, { paddingBottom: "20px" }]} wrap={false} > - - {exercise.exercise_name} - - + {exercise.gradingFeedback && ( + <> + + {exercise.exercise_name} + + + + )} {exercise.answer && ( { const answeredItem = answeredQuestions.find((ans) => { return ans.surveyItemId === item.id - }) - score += - item.answer.factorialOptions?.find((opt) => { - return opt.name === answeredItem?.answer - })?.value ?? 0 + })?.answer + if (answeredItem) { + score += + item.answer.factorialOptions?.find((opt) => { + return opt.name === answeredItem + })?.value ?? 0 + } else { + answered = false + } }) - return score + return answered ? score : null } /**