-
Notifications
You must be signed in to change notification settings - Fork 297
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' into feature/adaptive-learning/competency-stud…
…ent-view
- Loading branch information
Showing
57 changed files
with
607 additions
and
239 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6 changes: 6 additions & 0 deletions
6
src/main/java/de/tum/cit/aet/artemis/atlas/api/AbstractAtlasApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package de.tum.cit.aet.artemis.atlas.api; | ||
|
||
import de.tum.cit.aet.artemis.core.api.AbstractApi; | ||
|
||
public abstract class AbstractAtlasApi implements AbstractApi { | ||
} |
24 changes: 24 additions & 0 deletions
24
src/main/java/de/tum/cit/aet/artemis/atlas/api/CompetencyApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package de.tum.cit.aet.artemis.atlas.api; | ||
|
||
import static de.tum.cit.aet.artemis.core.config.Constants.PROFILE_CORE; | ||
|
||
import org.springframework.context.annotation.Profile; | ||
import org.springframework.stereotype.Controller; | ||
|
||
import de.tum.cit.aet.artemis.atlas.service.competency.CompetencyService; | ||
import de.tum.cit.aet.artemis.lecture.domain.Lecture; | ||
|
||
@Controller | ||
@Profile(PROFILE_CORE) | ||
public class CompetencyApi extends AbstractAtlasApi { | ||
|
||
private final CompetencyService competencyService; | ||
|
||
public CompetencyApi(CompetencyService competencyService) { | ||
this.competencyService = competencyService; | ||
} | ||
|
||
public void addCompetencyLinksToExerciseUnits(Lecture lecture) { | ||
competencyService.addCompetencyLinksToExerciseUnits(lecture); | ||
} | ||
} |
74 changes: 74 additions & 0 deletions
74
src/main/java/de/tum/cit/aet/artemis/atlas/api/CompetencyProgressApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
package de.tum.cit.aet.artemis.atlas.api; | ||
|
||
import static de.tum.cit.aet.artemis.core.config.Constants.PROFILE_CORE; | ||
|
||
import java.util.List; | ||
import java.util.Optional; | ||
import java.util.Set; | ||
|
||
import org.springframework.context.annotation.Profile; | ||
import org.springframework.stereotype.Controller; | ||
|
||
import de.tum.cit.aet.artemis.atlas.domain.LearningObject; | ||
import de.tum.cit.aet.artemis.atlas.domain.competency.Competency; | ||
import de.tum.cit.aet.artemis.atlas.domain.competency.CourseCompetency; | ||
import de.tum.cit.aet.artemis.atlas.repository.CompetencyRepository; | ||
import de.tum.cit.aet.artemis.atlas.service.competency.CompetencyProgressService; | ||
import de.tum.cit.aet.artemis.core.domain.Course; | ||
import de.tum.cit.aet.artemis.core.domain.User; | ||
import de.tum.cit.aet.artemis.exercise.domain.participation.Participant; | ||
|
||
@Controller | ||
@Profile(PROFILE_CORE) | ||
public class CompetencyProgressApi extends AbstractAtlasApi { | ||
|
||
private final CompetencyProgressService competencyProgressService; | ||
|
||
private final CompetencyRepository competencyRepository; | ||
|
||
public CompetencyProgressApi(CompetencyProgressService competencyProgressService, CompetencyRepository competencyRepository) { | ||
this.competencyProgressService = competencyProgressService; | ||
this.competencyRepository = competencyRepository; | ||
} | ||
|
||
public void updateProgressByLearningObjectForParticipantAsync(LearningObject learningObject, Participant participant) { | ||
competencyProgressService.updateProgressByLearningObjectForParticipantAsync(learningObject, participant); | ||
} | ||
|
||
public void updateProgressByLearningObjectAsync(LearningObject learningObject) { | ||
competencyProgressService.updateProgressByLearningObjectAsync(learningObject); | ||
} | ||
|
||
public void updateProgressByCompetencyAsync(CourseCompetency competency) { | ||
competencyProgressService.updateProgressByCompetencyAsync(competency); | ||
} | ||
|
||
public void updateProgressForUpdatedLearningObjectAsync(LearningObject originalLearningObject, Optional<LearningObject> updatedLearningObject) { | ||
competencyProgressService.updateProgressForUpdatedLearningObjectAsync(originalLearningObject, updatedLearningObject); | ||
} | ||
|
||
public void updateProgressByLearningObjectSync(LearningObject learningObject, Set<User> users) { | ||
competencyProgressService.updateProgressByLearningObjectSync(learningObject, users); | ||
} | ||
|
||
public long countByCourse(Course course) { | ||
return competencyRepository.countByCourse(course); | ||
} | ||
|
||
public void deleteAll(Set<Competency> competencies) { | ||
competencyRepository.deleteAll(competencies); | ||
} | ||
|
||
/** | ||
* Updates the progress for all competencies of the given courses. | ||
* | ||
* @param activeCourses the active courses | ||
*/ | ||
public void updateProgressForCoursesAsync(List<Course> activeCourses) { | ||
activeCourses.forEach(course -> { | ||
List<Competency> competencies = competencyRepository.findByCourseIdOrderById(course.getId()); | ||
// Asynchronously update the progress for each competency | ||
competencies.forEach(competencyProgressService::updateProgressByCompetencyAsync); | ||
}); | ||
} | ||
} |
56 changes: 56 additions & 0 deletions
56
src/main/java/de/tum/cit/aet/artemis/atlas/api/CompetencyRelationApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
package de.tum.cit.aet.artemis.atlas.api; | ||
|
||
import static de.tum.cit.aet.artemis.core.config.Constants.PROFILE_CORE; | ||
|
||
import java.util.List; | ||
|
||
import org.springframework.context.annotation.Profile; | ||
import org.springframework.stereotype.Controller; | ||
|
||
import de.tum.cit.aet.artemis.atlas.domain.competency.CompetencyExerciseLink; | ||
import de.tum.cit.aet.artemis.atlas.domain.competency.CompetencyLectureUnitLink; | ||
import de.tum.cit.aet.artemis.atlas.repository.CompetencyExerciseLinkRepository; | ||
import de.tum.cit.aet.artemis.atlas.repository.CompetencyLectureUnitLinkRepository; | ||
import de.tum.cit.aet.artemis.atlas.repository.CompetencyRelationRepository; | ||
|
||
@Controller | ||
@Profile(PROFILE_CORE) | ||
public class CompetencyRelationApi extends AbstractAtlasApi { | ||
|
||
private final CompetencyRelationRepository competencyRelationRepository; | ||
|
||
private final CompetencyExerciseLinkRepository competencyExerciseLinkRepository; | ||
|
||
private final CompetencyLectureUnitLinkRepository lectureUnitLinkRepository; | ||
|
||
public CompetencyRelationApi(CompetencyRelationRepository competencyRelationRepository, CompetencyExerciseLinkRepository competencyExerciseLinkRepository, | ||
CompetencyLectureUnitLinkRepository lectureUnitLinkRepository) { | ||
this.competencyRelationRepository = competencyRelationRepository; | ||
this.competencyExerciseLinkRepository = competencyExerciseLinkRepository; | ||
this.lectureUnitLinkRepository = lectureUnitLinkRepository; | ||
} | ||
|
||
public void deleteAllByCourseId(Long courseId) { | ||
competencyRelationRepository.deleteAllByCourseId(courseId); | ||
} | ||
|
||
public void deleteAllExerciseLinks(Iterable<CompetencyExerciseLink> competencyExerciseLinks) { | ||
competencyExerciseLinkRepository.deleteAll(competencyExerciseLinks); | ||
} | ||
|
||
public List<CompetencyExerciseLink> saveAllExerciseLinks(Iterable<CompetencyExerciseLink> competencyExerciseLinks) { | ||
return competencyExerciseLinkRepository.saveAll(competencyExerciseLinks); | ||
} | ||
|
||
public List<CompetencyLectureUnitLink> saveAllLectureUnitLinks(Iterable<CompetencyLectureUnitLink> lectureUnitLinks) { | ||
return lectureUnitLinkRepository.saveAll(lectureUnitLinks); | ||
} | ||
|
||
public void deleteAllLectureUnitLinks(Iterable<CompetencyLectureUnitLink> lectureUnitLinks) { | ||
lectureUnitLinkRepository.deleteAll(lectureUnitLinks); | ||
} | ||
|
||
public void deleteAllLectureUnitLinksByLectureId(Long lectureId) { | ||
lectureUnitLinkRepository.deleteAllByLectureId(lectureId); | ||
} | ||
} |
24 changes: 24 additions & 0 deletions
24
src/main/java/de/tum/cit/aet/artemis/atlas/api/CourseCompetencyApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package de.tum.cit.aet.artemis.atlas.api; | ||
|
||
import static de.tum.cit.aet.artemis.core.config.Constants.PROFILE_CORE; | ||
|
||
import org.springframework.context.annotation.Profile; | ||
import org.springframework.stereotype.Controller; | ||
|
||
import de.tum.cit.aet.artemis.atlas.domain.competency.CourseCompetency; | ||
import de.tum.cit.aet.artemis.atlas.repository.CourseCompetencyRepository; | ||
|
||
@Controller | ||
@Profile(PROFILE_CORE) | ||
public class CourseCompetencyApi extends AbstractAtlasApi { | ||
|
||
private final CourseCompetencyRepository courseCompetencyRepository; | ||
|
||
public CourseCompetencyApi(CourseCompetencyRepository courseCompetencyRepository) { | ||
this.courseCompetencyRepository = courseCompetencyRepository; | ||
} | ||
|
||
public void save(CourseCompetency courseCompetency) { | ||
courseCompetencyRepository.save(courseCompetency); | ||
} | ||
} |
24 changes: 24 additions & 0 deletions
24
src/main/java/de/tum/cit/aet/artemis/atlas/api/LearningMetricsApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package de.tum.cit.aet.artemis.atlas.api; | ||
|
||
import static de.tum.cit.aet.artemis.core.config.Constants.PROFILE_CORE; | ||
|
||
import org.springframework.context.annotation.Profile; | ||
import org.springframework.stereotype.Controller; | ||
|
||
import de.tum.cit.aet.artemis.atlas.dto.metrics.StudentMetricsDTO; | ||
import de.tum.cit.aet.artemis.atlas.service.LearningMetricsService; | ||
|
||
@Controller | ||
@Profile(PROFILE_CORE) | ||
public class LearningMetricsApi extends AbstractAtlasApi { | ||
|
||
private final LearningMetricsService metricsService; | ||
|
||
public LearningMetricsApi(LearningMetricsService metricsService) { | ||
this.metricsService = metricsService; | ||
} | ||
|
||
public StudentMetricsDTO getStudentCourseMetrics(long userId, long courseId) { | ||
return metricsService.getStudentCourseMetrics(userId, courseId); | ||
} | ||
} |
31 changes: 31 additions & 0 deletions
31
src/main/java/de/tum/cit/aet/artemis/atlas/api/LearningPathApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package de.tum.cit.aet.artemis.atlas.api; | ||
|
||
import static de.tum.cit.aet.artemis.core.config.Constants.PROFILE_CORE; | ||
|
||
import jakarta.validation.constraints.NotNull; | ||
|
||
import org.springframework.context.annotation.Profile; | ||
import org.springframework.stereotype.Controller; | ||
|
||
import de.tum.cit.aet.artemis.atlas.service.learningpath.LearningPathService; | ||
import de.tum.cit.aet.artemis.core.domain.Course; | ||
import de.tum.cit.aet.artemis.core.domain.User; | ||
|
||
@Controller | ||
@Profile(PROFILE_CORE) | ||
public class LearningPathApi extends AbstractAtlasApi { | ||
|
||
private final LearningPathService learningPathService; | ||
|
||
public LearningPathApi(LearningPathService learningPathService) { | ||
this.learningPathService = learningPathService; | ||
} | ||
|
||
public void generateLearningPathForUser(@NotNull Course course, @NotNull User user) { | ||
learningPathService.generateLearningPathForUser(course, user); | ||
} | ||
|
||
public void generateLearningPaths(@NotNull Course course) { | ||
learningPathService.generateLearningPaths(course); | ||
} | ||
} |
29 changes: 29 additions & 0 deletions
29
src/main/java/de/tum/cit/aet/artemis/atlas/api/PrerequisitesApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package de.tum.cit.aet.artemis.atlas.api; | ||
|
||
import static de.tum.cit.aet.artemis.core.config.Constants.PROFILE_CORE; | ||
|
||
import org.springframework.context.annotation.Profile; | ||
import org.springframework.stereotype.Controller; | ||
|
||
import de.tum.cit.aet.artemis.atlas.domain.competency.Prerequisite; | ||
import de.tum.cit.aet.artemis.atlas.repository.PrerequisiteRepository; | ||
import de.tum.cit.aet.artemis.core.domain.Course; | ||
|
||
@Controller | ||
@Profile(PROFILE_CORE) | ||
public class PrerequisitesApi extends AbstractAtlasApi { | ||
|
||
private final PrerequisiteRepository prerequisiteRepository; | ||
|
||
public PrerequisitesApi(PrerequisiteRepository prerequisiteRepository) { | ||
this.prerequisiteRepository = prerequisiteRepository; | ||
} | ||
|
||
public long countByCourse(Course course) { | ||
return prerequisiteRepository.countByCourse(course); | ||
} | ||
|
||
public void deleteAll(Iterable<Prerequisite> prerequisites) { | ||
prerequisiteRepository.deleteAll(prerequisites); | ||
} | ||
} |
30 changes: 30 additions & 0 deletions
30
src/main/java/de/tum/cit/aet/artemis/atlas/api/ScienceEventApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
package de.tum.cit.aet.artemis.atlas.api; | ||
|
||
import static de.tum.cit.aet.artemis.core.config.Constants.PROFILE_CORE; | ||
|
||
import java.util.Set; | ||
|
||
import org.springframework.context.annotation.Profile; | ||
import org.springframework.stereotype.Controller; | ||
|
||
import de.tum.cit.aet.artemis.atlas.domain.science.ScienceEvent; | ||
import de.tum.cit.aet.artemis.atlas.repository.ScienceEventRepository; | ||
|
||
@Controller | ||
@Profile(PROFILE_CORE) | ||
public class ScienceEventApi extends AbstractAtlasApi { | ||
|
||
private final ScienceEventRepository scienceEventRepository; | ||
|
||
public ScienceEventApi(ScienceEventRepository scienceEventRepository) { | ||
this.scienceEventRepository = scienceEventRepository; | ||
} | ||
|
||
public Set<ScienceEvent> findAllByIdentity(String login) { | ||
return scienceEventRepository.findAllByIdentity(login); | ||
} | ||
|
||
public void renameIdentity(String oldIdentity, String newIdentity) { | ||
scienceEventRepository.renameIdentity(oldIdentity, newIdentity); | ||
} | ||
} |
2 changes: 1 addition & 1 deletion
2
...rcise/service/LearningMetricsService.java → ...atlas/service/LearningMetricsService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 4 additions & 0 deletions
4
src/main/java/de/tum/cit/aet/artemis/core/api/AbstractApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
package de.tum.cit.aet.artemis.core.api; | ||
|
||
public interface AbstractApi { | ||
} |
Oops, something went wrong.