From 58e01dde90b629965cfd42008cddb30ca5e3afd7 Mon Sep 17 00:00:00 2001 From: Lucas <24826124+Luro02@users.noreply.github.com> Date: Thu, 14 Dec 2023 12:53:44 +0100 Subject: [PATCH] Add support for non-instructors (#9) * only prompt to select a course when you have a choice * allow tutors to use the tool --- .../java/edu/kit/kastel/sdq/scorestats/cli/CLI.java | 9 ++++++--- .../core/client/Artemis4JArtemisClient.java | 11 +++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/edu/kit/kastel/sdq/scorestats/cli/CLI.java b/src/main/java/edu/kit/kastel/sdq/scorestats/cli/CLI.java index d1135c3..56d8552 100644 --- a/src/main/java/edu/kit/kastel/sdq/scorestats/cli/CLI.java +++ b/src/main/java/edu/kit/kastel/sdq/scorestats/cli/CLI.java @@ -67,10 +67,13 @@ public void run(String[] args) { courses.sort(Comparator.comparing(Course::getCourseId)); try (Scanner scanner = new Scanner(System.in)) { - - OptionDialogue courseDialogue = new OptionDialogue<>(scanner, "Please select the course:", + Course course = courses.get(0); + // only prompt if there is more than one course to select from + if (courses.size() > 1) { + OptionDialogue courseDialogue = new OptionDialogue<>(scanner, "Please select the course:", courses.stream().collect(Collectors.toMap(Course::getShortName, item -> item, (i1, i2) -> null, LinkedHashMap::new))); - Course course = courseDialogue.prompt(); + course = courseDialogue.prompt(); + } List exercises; try { diff --git a/src/main/java/edu/kit/kastel/sdq/scorestats/core/client/Artemis4JArtemisClient.java b/src/main/java/edu/kit/kastel/sdq/scorestats/core/client/Artemis4JArtemisClient.java index 73665b0..d88b0c4 100644 --- a/src/main/java/edu/kit/kastel/sdq/scorestats/core/client/Artemis4JArtemisClient.java +++ b/src/main/java/edu/kit/kastel/sdq/scorestats/core/client/Artemis4JArtemisClient.java @@ -3,6 +3,7 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -13,6 +14,7 @@ import edu.kit.kastel.sdq.artemis4j.api.artemis.assessment.Feedback; import edu.kit.kastel.sdq.artemis4j.api.artemis.assessment.Result; import edu.kit.kastel.sdq.artemis4j.api.artemis.assessment.Submission; +import edu.kit.kastel.sdq.artemis4j.api.client.ISubmissionsArtemisClient; import edu.kit.kastel.sdq.artemis4j.api.grading.IAnnotation; import edu.kit.kastel.sdq.artemis4j.client.AssessmentArtemisClient; import edu.kit.kastel.sdq.artemis4j.client.RestClientManager; @@ -26,7 +28,7 @@ /** * An {@link ArtemisClient} using artemis4j. - * + * * @author Moritz Hertler * @version 1.0 */ @@ -51,8 +53,13 @@ public List loadCourses() throws ArtemisClientException { } public Assessments loadAssessments(Exercise exercise, ExerciseConfig config) throws ArtemisClientException { + ISubmissionsArtemisClient submissionsClient = this.client.getSubmissionArtemisClient(); - List submissions = this.client.getSubmissionArtemisClient().getSubmissions(exercise); + Collection submissions = new ArrayList<>(submissionsClient.getSubmissions(exercise, 0, false)); + + if (exercise.hasSecondCorrectionRound()) { + submissions.addAll(submissionsClient.getSubmissions(exercise, 1, false)); + } AnnotationDeserializer deserializer = null; if (config != null) {