Index: lams_tool_assessment/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r09cb8620b7ebc847ae6a700d11ba7c24435a279a -reff051707b529a9a4f9416c5a5a5f546050bd55e --- lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 09cb8620b7ebc847ae6a700d11ba7c24435a279a) +++ lams_tool_assessment/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision eff051707b529a9a4f9416c5a5a5f546050bd55e) @@ -109,6 +109,7 @@ authoring.msg.cancel.save = Do you want to close this window without saving? authoring.msg.one.question.to.be.saved = There must be at least one question to be saved. label.learning.page = Page: +label.learning.section = Section: label.learning.title = Assessment label.learning.choose.one.answer = Choose one of the following answers. label.learning.choose.at.least.one.answer = Choose at least one answer. @@ -440,4 +441,6 @@ monitoring.label.all.learners = All learners label.authoring.preview.skip.validation = As a learner you should answer all required questions. In preview mode you are allowed to press this button again to continue. label.learning.page.next = Next page -label.learning.page.previous = Previous page \ No newline at end of file +label.learning.page.previous = Previous page +label.learning.section.next = Next section +label.learning.section.previous = Previous section \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java =================================================================== diff -u -r09cb8620b7ebc847ae6a700d11ba7c24435a279a -reff051707b529a9a4f9416c5a5a5f546050bd55e --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java (.../Assessment.java) (revision 09cb8620b7ebc847ae6a700d11ba7c24435a279a) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java (.../Assessment.java) (revision eff051707b529a9a4f9416c5a5a5f546050bd55e) @@ -276,6 +276,20 @@ } assessment.overallFeedbacks = set; } + + // clone sections + if (sections != null) { + Iterator iter = sections.iterator(); + TreeSet set = new TreeSet<>(); + while (iter.hasNext()) { + AssessmentSection section = iter.next(); + AssessmentSection newQuestion = section.clone(); + // just clone old file without duplicate it in repository + set.add(newQuestion); + } + assessment.sections = set; + } + // clone ReourceUser as well if (createdBy != null) { assessment.setCreatedBy((AssessmentUser) createdBy.clone()); Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentSection.java =================================================================== diff -u -r09cb8620b7ebc847ae6a700d11ba7c24435a279a -reff051707b529a9a4f9416c5a5a5f546050bd55e --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentSection.java (.../AssessmentSection.java) (revision 09cb8620b7ebc847ae6a700d11ba7c24435a279a) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentSection.java (.../AssessmentSection.java) (revision eff051707b529a9a4f9416c5a5a5f546050bd55e) @@ -13,7 +13,7 @@ @Entity @Table(name = "tl_laasse10_section") -public class AssessmentSection implements Serializable, Comparable { +public class AssessmentSection implements Serializable, Cloneable, Comparable { private static final long serialVersionUID = -8252609064125180392L; @@ -84,6 +84,13 @@ } @Override + public AssessmentSection clone() throws CloneNotSupportedException { + AssessmentSection clone = (AssessmentSection) super.clone(); + clone.setUid(null); + return clone; + } + + @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("AssessmentSection [uid=").append(uid).append(", displayOrder=").append(displayOrder) Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java =================================================================== diff -u -rf3e44aee5373a1233080ea5acd1cb5959bb46544 -reff051707b529a9a4f9416c5a5a5f546050bd55e --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision f3e44aee5373a1233080ea5acd1cb5959bb46544) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/controller/LearningController.java (.../LearningController.java) (revision eff051707b529a9a4f9416c5a5a5f546050bd55e) @@ -75,6 +75,7 @@ import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestion; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestionResult; import org.lamsfoundation.lams.tool.assessment.model.AssessmentResult; +import org.lamsfoundation.lams.tool.assessment.model.AssessmentSection; import org.lamsfoundation.lams.tool.assessment.model.AssessmentSession; import org.lamsfoundation.lams.tool.assessment.model.AssessmentUser; import org.lamsfoundation.lams.tool.assessment.model.QuestionReference; @@ -385,22 +386,41 @@ } //paging + int questionPerPageCount = assessment.getQuestionsPerPage(); + List paging = null; + if (questionPerPageCount == -1) { + paging = assessment.getSections().stream() + .collect(Collectors.mapping(AssessmentSection::getQuestionCount, Collectors.toList())); + } else if (questionPerPageCount == 0) { + paging = List.of(questionDtos.size()); + } else { + paging = new ArrayList<>(); + int pageCount = questionDtos.size() / questionPerPageCount; + if (questionDtos.size() % questionPerPageCount > 0) { + pageCount++; + } + for (int pageNumber = 1; pageNumber <= pageCount; pageNumber++) { + paging.add(questionPerPageCount); + } + } + List> pagedQuestionDtos = new ArrayList<>(); - int maxQuestionsPerPage = ((assessment.getQuestionsPerPage() != 0) && hasEditRight) - ? assessment.getQuestionsPerPage() - : questionDtos.size(); - LinkedHashSet questionsForOnePage = new LinkedHashSet<>(); + Set questionsForOnePage = new LinkedHashSet<>(); pagedQuestionDtos.add(questionsForOnePage); - int count = 0; + int questionInPageCount = 0; + Iterator pageIterator = paging.iterator(); + questionPerPageCount = pageIterator.next(); // lists all code styles used in this assessment Set codeStyles = new HashSet<>(); for (QuestionDTO questionDto : questionDtos) { questionsForOnePage.add(questionDto); - count++; - if ((questionsForOnePage.size() == maxQuestionsPerPage) && (count != questionDtos.size())) { + questionInPageCount++; + if (questionInPageCount == questionPerPageCount && pageIterator.hasNext()) { questionsForOnePage = new LinkedHashSet<>(); pagedQuestionDtos.add(questionsForOnePage); + questionPerPageCount = pageIterator.next(); + questionInPageCount = 0; } if (questionDto.getCodeStyle() != null) { Index: lams_tool_assessment/web/pages/authoring/advance.jsp =================================================================== diff -u -r09cb8620b7ebc847ae6a700d11ba7c24435a279a -reff051707b529a9a4f9416c5a5a5f546050bd55e --- lams_tool_assessment/web/pages/authoring/advance.jsp (.../advance.jsp) (revision 09cb8620b7ebc847ae6a700d11ba7c24435a279a) +++ lams_tool_assessment/web/pages/authoring/advance.jsp (.../advance.jsp) (revision eff051707b529a9a4f9416c5a5a5f546050bd55e) @@ -161,16 +161,16 @@ cssClass="form-control input-sm loffset10"> - - - 10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 Index: lams_tool_assessment/web/pages/learning/learning.jsp =================================================================== diff -u -rbfeb7dd59aa544d49b9c985904aade7628ddc733 -reff051707b529a9a4f9416c5a5a5f546050bd55e --- lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision bfeb7dd59aa544d49b9c985904aade7628ddc733) +++ lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision eff051707b529a9a4f9416c5a5a5f546050bd55e) @@ -667,6 +667,9 @@
+ <%@ include file="parts/paging.jsp"%> +
+ <%@ include file="parts/allquestions.jsp"%> <%@ include file="parts/paging.jsp"%> Index: lams_tool_assessment/web/pages/learning/parts/paging.jsp =================================================================== diff -u -r002f9275f5ec93dc0f76d1eaff245a121781ea1a -reff051707b529a9a4f9416c5a5a5f546050bd55e --- lams_tool_assessment/web/pages/learning/parts/paging.jsp (.../paging.jsp) (revision 002f9275f5ec93dc0f76d1eaff245a121781ea1a) +++ lams_tool_assessment/web/pages/learning/parts/paging.jsp (.../paging.jsp) (revision eff051707b529a9a4f9416c5a5a5f546050bd55e) @@ -1,32 +1,67 @@ + +
- - - - - - - - - - - - ${status.index + 1} - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${status.index + 1} + + + +