adapt Moodle course filtering again
This commit is contained in:
parent
d3a794c5b1
commit
1c28aad328
5 changed files with 23 additions and 15 deletions
3
pom.xml
3
pom.xml
|
@ -23,7 +23,6 @@
|
|||
<revision>${sebserver-version}</revision>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<file.encoding>UTF-8</file.encoding>
|
||||
</properties>
|
||||
|
||||
<!-- NOTE: There currently are two profiles, a default one to build on
|
||||
|
@ -80,7 +79,7 @@
|
|||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<encoding>UTF-8</encoding>
|
||||
<encoding>UTF-8</encoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ import ch.ethz.seb.sebserver.gbl.model.exam.QuizData;
|
|||
import ch.ethz.seb.sebserver.gbl.model.institution.LmsSetup;
|
||||
import ch.ethz.seb.sebserver.gbl.model.institution.LmsSetupTestResult;
|
||||
import ch.ethz.seb.sebserver.gbl.model.user.ExamineeAccountDetails;
|
||||
import ch.ethz.seb.sebserver.gbl.util.Pair;
|
||||
import ch.ethz.seb.sebserver.gbl.util.Result;
|
||||
import ch.ethz.seb.sebserver.gbl.util.Utils;
|
||||
import ch.ethz.seb.sebserver.webservice.servicelayer.dao.FilterMap;
|
||||
|
@ -220,22 +221,28 @@ public class MoodleCourseAccess extends CourseAccess {
|
|||
final List<CourseData> result = new ArrayList<>();
|
||||
|
||||
int page = 0;
|
||||
List<CourseData> quizzesBatch = getQuizzesBatch(restTemplate, filterMap, page);
|
||||
result.addAll(quizzesBatch);
|
||||
Pair<List<CourseData>, Integer> quizzesBatch = getQuizzesBatch(restTemplate, filterMap, page);
|
||||
result.addAll(quizzesBatch.a);
|
||||
|
||||
log.info("Got quiz page batch for page {} with {} items", page, quizzesBatch.size());
|
||||
log.info("Got quiz page batch for page {} of size {} with {} items",
|
||||
page,
|
||||
quizzesBatch.b,
|
||||
quizzesBatch.a.size());
|
||||
|
||||
while (!quizzesBatch.isEmpty()) {
|
||||
while (quizzesBatch.b == null || quizzesBatch.b == 0) {
|
||||
page++;
|
||||
quizzesBatch = getQuizzesBatch(restTemplate, filterMap, page);
|
||||
result.addAll(quizzesBatch);
|
||||
result.addAll(quizzesBatch.a);
|
||||
|
||||
log.info("Got quiz page batch for page {} with {} items", page, quizzesBatch.size());
|
||||
log.info("Got quiz page batch for page {} of size {} with {} items",
|
||||
page,
|
||||
quizzesBatch.b,
|
||||
quizzesBatch.a.size());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<CourseData> getQuizzesBatch(
|
||||
private Pair<List<CourseData>, Integer> getQuizzesBatch(
|
||||
final MoodleAPIRestTemplate restTemplate,
|
||||
final FilterMap filterMap,
|
||||
final int page) {
|
||||
|
@ -246,14 +253,12 @@ public class MoodleCourseAccess extends CourseAccess {
|
|||
? Utils.toUnixTimeInSeconds(filterMap.getQuizFromTime())
|
||||
: Utils.toUnixTimeInSeconds(DateTime.now(DateTimeZone.UTC).minusYears(DEFAULT_FROM_YEARS));
|
||||
|
||||
System.out.println("******************** fromTime=" + fromTime);
|
||||
|
||||
// first get courses from Moodle for page
|
||||
final Map<String, CourseData> courseData = new HashMap<>();
|
||||
final Collection<CourseData> coursesPage = getCoursesPage(restTemplate, fromTime, page, 100);
|
||||
|
||||
if (coursesPage.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
return new Pair<>(Collections.emptyList(), 0);
|
||||
}
|
||||
|
||||
courseData.putAll(coursesPage
|
||||
|
@ -283,13 +288,14 @@ public class MoodleCourseAccess extends CourseAccess {
|
|||
});
|
||||
}
|
||||
|
||||
return courseData.values()
|
||||
return new Pair<>(courseData.values()
|
||||
.stream()
|
||||
.filter(c -> !c.quizzes.isEmpty())
|
||||
.collect(Collectors.toList());
|
||||
.collect(Collectors.toList()),
|
||||
coursesPage.size());
|
||||
} catch (final Exception e) {
|
||||
log.error("Unexpected exception while trying to get course data: ", e);
|
||||
return Collections.emptyList();
|
||||
return new Pair<>(Collections.emptyList(), 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ import ch.ethz.seb.sebserver.gui.service.remote.webservice.auth.WebserviceURISer
|
|||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(
|
||||
properties = "file.encoding=UTF-8",
|
||||
classes = SEBServer.class,
|
||||
webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
|
||||
@ActiveProfiles("test")
|
||||
|
|
|
@ -48,6 +48,7 @@ import ch.ethz.seb.sebserver.gbl.model.Entity;
|
|||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(
|
||||
properties = "file.encoding=UTF-8",
|
||||
classes = SEBServer.class,
|
||||
webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
|
||||
@ActiveProfiles("test")
|
||||
|
|
|
@ -60,6 +60,7 @@ import ch.ethz.seb.sebserver.webservice.weblayer.oauth.WebserviceResourceConfigu
|
|||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(
|
||||
properties = "file.encoding=UTF-8",
|
||||
classes = { SEBServer.class },
|
||||
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||
@ActiveProfiles("test")
|
||||
|
|
Loading…
Reference in a new issue