Skip to content
Snippets Groups Projects
Commit 3ccd5632 authored by AnneliKlamas's avatar AnneliKlamas
Browse files

#10 CR fixes

parent 991793f0
No related branches found
No related tags found
1 merge request!12feat: converting docx with pictures to moodle xml single choice questions #10
......@@ -13,11 +13,12 @@ public class FeedbackHandler {
}
public void add(String text, ParagraphType paragraphType) {
if (paragraphType.equals(ParagraphType.DEFAULT_FEEDBACK)) {
state.setDefaultFeedback(text.toLowerCase().replace("default feedback:", "").strip());
} else if (paragraphType.equals(ParagraphType.FEEDBACK)) {
var feedbackText = text.toLowerCase().replace("feedback", "").strip().replace(":", "").strip();
state.getAnswerOptions().get(state.getAnswerOptions().size() - 1).setFeedback(Optional.of(feedbackText));
switch (paragraphType) {
case FEEDBACK -> state.setDefaultFeedback(text.toLowerCase().replace("default feedback:", "").strip());
case DEFAULT_FEEDBACK -> {
var feedbackText = text.toLowerCase().replace("feedback", "").strip().replace(":", "").strip();
state.getAnswerOptions().get(state.getAnswerOptions().size() - 1).setFeedback(Optional.of(feedbackText));
}
}
}
}
......@@ -25,46 +25,39 @@ public class FileUploadService {
var state = new QuestionState();
var questions = new ArrayList<Question>();
for (XWPFParagraph paragraph : docx.getParagraphs()) {
var text = paragraph.getParagraphText();
var paragraphPictures = handleParagraphPictures(paragraph);
var paragraphType = getParagraphType(text, state);
docx.getParagraphs().forEach(paragraph -> handleParagraph(state, questions, paragraph));
if (paragraphType.equals(ParagraphType.EMPTY_TEXT)) {
handleEmptyTextParagraph(paragraphPictures, state);
continue;
}
if (!state.getAnswerOptions().isEmpty()) questions.add(state.createQuestion());
return questions;
}
private void handleParagraph(QuestionState state, ArrayList<Question> questions, XWPFParagraph paragraph) {
var text = paragraph.getParagraphText();
var paragraphPictures = handleParagraphPictures(paragraph);
var paragraphType = getParagraphType(text, state);
if (paragraphType.equals(ParagraphType.QUESTION_DETAILS)) {
switch (paragraphType) {
case EMPTY_TEXT -> handleEmptyTextParagraph(paragraphPictures, state);
case QUESTION_DETAILS -> {
var questionHandler = new QuestionHandler(state);
questionHandler.handleQuestion(text).ifPresent(questions::add);
state.setPreviousParagraphType(paragraphType);
continue;
}
if (paragraphType.equals(ParagraphType.QUESTION_DESCRIPTION)) {
case QUESTION_DESCRIPTION -> {
state.setDescription(new QuestionDescription(text, paragraphPictures));
state.setPreviousParagraphType(paragraphType);
continue;
}
if (paragraphType.equals(ParagraphType.FEEDBACK) || paragraphType.equals(ParagraphType.DEFAULT_FEEDBACK)) {
case FEEDBACK, DEFAULT_FEEDBACK -> {
var feedbackHandler = new FeedbackHandler(state);
feedbackHandler.add(text, paragraphType);
state.setPreviousParagraphType(paragraphType);
continue;
}
if (paragraphType.equals(ParagraphType.ANSWER_OPTION)) {
case ANSWER_OPTION -> {
state.getAnswerOptions().add(createAnswerFromString(text, paragraphPictures));
state.setPreviousParagraphType(paragraphType);
}
}
if (!state.getAnswerOptions().isEmpty()) {
questions.add(state.createQuestion());
}
return questions;
}
private static void handleEmptyTextParagraph(List<String> paragraphPictures, QuestionState state) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment