Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adaptive learning: Improve user interface and fix several bugs related to learning paths #7148

Merged
merged 389 commits into from
Oct 20, 2023
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
389 commits
Select commit Hold shift + click to select a range
46e8c02
Merge branch 'feature/learning-path/participation/exercises' of https…
MaximilianAnzinger Jul 31, 2023
02a0c6e
refactor participation history
MaximilianAnzinger Aug 1, 2023
3085580
fix build fail
MaximilianAnzinger Aug 1, 2023
51265e6
fix wrong autocompletion
MaximilianAnzinger Aug 1, 2023
a55c88c
Merge branch 'feature/learning-path-generation' into feature/learning…
MaximilianAnzinger Aug 1, 2023
6ef2755
Merge branch 'feature/learning-path-generation' into feature/learning…
MaximilianAnzinger Aug 1, 2023
fdc6025
Merge branch 'feature/learning-path-generation' into feature/learning…
MaximilianAnzinger Aug 1, 2023
e64a327
fix codestyle issues
MaximilianAnzinger Aug 1, 2023
386366d
fix type issue after merge
MaximilianAnzinger Aug 1, 2023
e4dfd81
add feature toggle for learning paths
MaximilianAnzinger Aug 2, 2023
a30933d
Merge branch 'feature/learning-path/participation/exercises' into fea…
MaximilianAnzinger Aug 2, 2023
e2c507b
Merge branch 'feature/learning-path/graph' into feature/learning-path…
MaximilianAnzinger Aug 2, 2023
cc6ac91
fix merge conflict
MaximilianAnzinger Aug 2, 2023
9d5023d
Merge branch 'feature/learning-path/allmerge' into feature/learning-p…
MaximilianAnzinger Aug 2, 2023
10c3c0b
reduce size of pr
MaximilianAnzinger Aug 2, 2023
74fb7cf
undo dependency changes
MaximilianAnzinger Aug 2, 2023
a8c0f10
remove unused methods from repository
MaximilianAnzinger Aug 2, 2023
01a1258
remove unused
MaximilianAnzinger Aug 2, 2023
065757e
fix learning path module
MaximilianAnzinger Aug 2, 2023
c7f25fa
Revert "fix learning path module"
MaximilianAnzinger Aug 2, 2023
d912b82
remove unused DTOs
MaximilianAnzinger Aug 2, 2023
4236ead
add basic components
MaximilianAnzinger Aug 2, 2023
48058aa
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 2, 2023
7be6cc0
add client DTOs
MaximilianAnzinger Aug 2, 2023
ea27694
add modal to learning path management
MaximilianAnzinger Aug 2, 2023
cd36231
add server code and tests
MaximilianAnzinger Aug 2, 2023
5f34728
fix code style
MaximilianAnzinger Aug 2, 2023
b86beb2
add feature toggle annotation to endpoints
MaximilianAnzinger Aug 2, 2023
8055531
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 2, 2023
ea54c74
add feature toggle annotation to endpoint
MaximilianAnzinger Aug 2, 2023
4761096
remove unused and fix code style
MaximilianAnzinger Aug 3, 2023
92800e3
Merge branch 'develop' into feature/learning-path/feature-toggle
MaximilianAnzinger Aug 3, 2023
b6f734b
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 3, 2023
8bbc0c2
add sticky popover directive
MaximilianAnzinger Aug 3, 2023
abf8eac
add icon and hint retrieval to lecture unit model
MaximilianAnzinger Aug 3, 2023
e2ed5b7
add translations
MaximilianAnzinger Aug 3, 2023
3b15b29
add missing import
MaximilianAnzinger Aug 3, 2023
0625463
add dependencies for ngx graph
MaximilianAnzinger Aug 3, 2023
4dba57a
Merge branch 'develop' into feature/learning-path/feature-toggle
MaximilianAnzinger Aug 4, 2023
0c315a9
add suggestions by Tobias
MaximilianAnzinger Aug 4, 2023
a9e0321
add tests for error alert in learning path management
MaximilianAnzinger Aug 4, 2023
e547155
add suggenstions from review and testing session
MaximilianAnzinger Aug 4, 2023
03c8d06
adjust test cases
MaximilianAnzinger Aug 5, 2023
0848fc3
Update learning-path-management.component.html
MaximilianAnzinger Aug 5, 2023
cb78464
Merge branch 'develop' into feature/learning-path/managment-graph
MaximilianAnzinger Aug 5, 2023
1a8f586
adjust feature toggle for testing
MaximilianAnzinger Aug 5, 2023
1185a41
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 5, 2023
8107b72
improve competency health check and warnings
MaximilianAnzinger Aug 7, 2023
7a1be3d
Merge branch 'develop' into feature/learning-path/feature-toggle
MaximilianAnzinger Aug 7, 2023
b99ab10
Merge branch 'develop' into feature/learning-path/feature-toggle
MaximilianAnzinger Aug 8, 2023
5acd836
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 8, 2023
ec1fd79
Adjust testGenerateLearningPathOnEnrollment for changed return type o…
MaximilianAnzinger Aug 8, 2023
592adb2
remove clusters
MaximilianAnzinger Aug 8, 2023
f694156
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 8, 2023
a5b6817
fix matching node
MaximilianAnzinger Aug 8, 2023
dfc115a
initial commit
MaximilianAnzinger Aug 8, 2023
44ae860
update doc comment
MaximilianAnzinger Aug 8, 2023
68fbaf1
make Johannes happy
MaximilianAnzinger Aug 8, 2023
dd059e6
make Lucas happy
MaximilianAnzinger Aug 8, 2023
ba1b224
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 8, 2023
466dd4b
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Aug 8, 2023
97a11a6
undo change in generateLearningPathForUser
MaximilianAnzinger Aug 9, 2023
4aca397
Merge branch 'develop' into feature/learning-path/feature-toggle
MaximilianAnzinger Aug 9, 2023
ded8235
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 9, 2023
176b8c5
removed icons comment
MaximilianAnzinger Aug 9, 2023
cc287ec
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Aug 9, 2023
0979703
reduce rest calls for node details
MaximilianAnzinger Aug 9, 2023
c05ae3a
reduce payload for lecture unit node details
MaximilianAnzinger Aug 10, 2023
787830c
fix theme colors and popover width
MaximilianAnzinger Aug 10, 2023
8a3a282
Merge branch 'develop' into feature/learning-path/feature-toggle
MaximilianAnzinger Aug 11, 2023
114c107
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Aug 11, 2023
b0eadfa
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 11, 2023
7e0faa0
Merge branch 'develop' into feature/learning-path/participation-view
MaximilianAnzinger Aug 11, 2023
53830db
Merge branch 'develop' into feature/learning-path/feature-toggle
MaximilianAnzinger Aug 11, 2023
7841f19
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 11, 2023
443139d
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Aug 11, 2023
a7d0abd
Merge branch 'develop' into feature/learning-path/feature-toggle
MaximilianAnzinger Aug 13, 2023
63d5f81
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 13, 2023
f8640e8
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Aug 13, 2023
468e89f
remove arg from from todo method
MaximilianAnzinger Aug 13, 2023
2b846cf
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 13, 2023
9b690fe
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Aug 13, 2023
aeec03f
Revert "remove arg from from todo method"
MaximilianAnzinger Aug 13, 2023
c3142a5
temporarily remove unused argument in todo method
MaximilianAnzinger Aug 13, 2023
379230b
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 13, 2023
05c2a91
readd argument after removal in base pr
MaximilianAnzinger Aug 13, 2023
9c30e85
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Aug 13, 2023
f170a50
remove empty providers in client tests
MaximilianAnzinger Aug 14, 2023
e79f667
remove remaining empty providers
MaximilianAnzinger Aug 14, 2023
3b3a52c
rename getJsonSubTypeString method
MaximilianAnzinger Aug 14, 2023
5023af6
fix code style
MaximilianAnzinger Aug 14, 2023
8423819
fix d3-transition version
MaximilianAnzinger Aug 14, 2023
8699eb6
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Aug 14, 2023
062ebe0
improve learning path container
MaximilianAnzinger Aug 14, 2023
9f523be
remove console log
MaximilianAnzinger Aug 14, 2023
8c64e99
fix code style
MaximilianAnzinger Aug 14, 2023
0f6d92f
remove unused providers in tests
MaximilianAnzinger Aug 14, 2023
fc4e75a
Merge branch 'feature/learning-path/participation-view' into feature/…
MaximilianAnzinger Aug 14, 2023
78d5c31
Update learning-path-health-status-warning.component.ts
MaximilianAnzinger Aug 14, 2023
79d6535
fix type error
MaximilianAnzinger Aug 15, 2023
1f52ef6
fix code style
MaximilianAnzinger Aug 16, 2023
ced674a
refactor lecture unit view tests to be parameterized
MaximilianAnzinger Aug 17, 2023
02b766a
adjust translation?
MaximilianAnzinger Aug 17, 2023
295b44d
add comment to undefineAll
MaximilianAnzinger Aug 17, 2023
d5c99a8
adjust translation
MaximilianAnzinger Aug 17, 2023
30b6573
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Aug 17, 2023
0d3de49
Merge branch 'feature/learning-path/participation-view' into feature/…
MaximilianAnzinger Aug 17, 2023
2c6683a
add server code
MaximilianAnzinger Aug 21, 2023
46cdbc6
Merge branch 'feature/learning-path/health-status' into feature/learn…
MaximilianAnzinger Aug 21, 2023
57c79a0
add client code and documentation
MaximilianAnzinger Aug 21, 2023
ba8816c
apply client linter
MaximilianAnzinger Aug 21, 2023
7d3ba9b
apply prettier
MaximilianAnzinger Aug 21, 2023
3d9bd56
add server tests
MaximilianAnzinger Aug 22, 2023
5627937
fix graph rendering
MaximilianAnzinger Aug 22, 2023
e1d107b
add client tests
MaximilianAnzinger Aug 22, 2023
58de067
implement suggestions by johannes
MaximilianAnzinger Aug 23, 2023
20226ac
add comment and improve code quality
MaximilianAnzinger Aug 23, 2023
5c7ddd0
fix query indentations
MaximilianAnzinger Aug 24, 2023
57d5cec
optimize learning-path-graph tests
MaximilianAnzinger Aug 24, 2023
95fa535
add competencyIdMap to state
MaximilianAnzinger Aug 24, 2023
54e6f80
Merge branch 'feature/learning-path/recommendation' into feature/lear…
MaximilianAnzinger Aug 24, 2023
a03aff8
Merge branch 'develop' into feature/learning-path/feature-toggle
MaximilianAnzinger Aug 25, 2023
50d0d4b
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 28, 2023
a952046
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Aug 28, 2023
bf396ea
Merge branch 'feature/learning-path/participation-view' into feature/…
MaximilianAnzinger Aug 28, 2023
8bb6902
Merge branch 'feature/learning-path/health-status' into feature/learn…
MaximilianAnzinger Aug 28, 2023
cc6caca
Update src/main/java/de/tum/in/www1/artemis/service/CompetencyProgres…
MaximilianAnzinger Aug 28, 2023
5c9969c
Update src/main/java/de/tum/in/www1/artemis/domain/competency/Learnin…
MaximilianAnzinger Aug 28, 2023
496aadc
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Aug 28, 2023
56d3afc
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Aug 28, 2023
0de8cde
Merge branch 'feature/learning-path/participation-view' into feature/…
MaximilianAnzinger Aug 28, 2023
234dc77
Merge branch 'feature/learning-path/health-status' into feature/learn…
MaximilianAnzinger Aug 28, 2023
e9d772c
add server implementation and refactor
MaximilianAnzinger Aug 29, 2023
954d267
added tests
MaximilianAnzinger Aug 30, 2023
2ea0ec9
Merge branch 'feature/learning-path/recommendation' into feature/lear…
MaximilianAnzinger Aug 30, 2023
e21d8bc
cleanup
MaximilianAnzinger Aug 30, 2023
769cd0c
add code review suggestions
MaximilianAnzinger Sep 1, 2023
043b4ee
Merge branch 'develop' into feature/learning-path/feature-toggle
Sep 3, 2023
2a3c297
Merge branch 'develop' into feature/learning-path/feature-toggle
MaximilianAnzinger Sep 5, 2023
44cc1c0
merge cleanup
MaximilianAnzinger Sep 5, 2023
c07c498
Merge branch 'feature/learning-path/feature-toggle' into feature/lear…
MaximilianAnzinger Sep 5, 2023
d3effd5
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Sep 5, 2023
3c5ba79
Merge branch 'feature/learning-path/participation-view' into feature/…
MaximilianAnzinger Sep 5, 2023
a716dd8
Merge branch 'feature/learning-path/health-status' into feature/learn…
MaximilianAnzinger Sep 5, 2023
a99a7db
Merge branch 'feature/learning-path/recommendation' into feature/lear…
MaximilianAnzinger Sep 5, 2023
c2bb522
fix server style
MaximilianAnzinger Sep 6, 2023
c9437de
Merge branch 'develop' into feature/learning-path/managment-graph
MaximilianAnzinger Sep 6, 2023
8296c4a
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Sep 6, 2023
a9de355
Merge branch 'feature/learning-path/participation-view' into feature/…
MaximilianAnzinger Sep 6, 2023
6f03199
Merge branch 'feature/learning-path/health-status' into feature/learn…
MaximilianAnzinger Sep 6, 2023
a22473e
Merge branch 'feature/learning-path/recommendation' into feature/lear…
MaximilianAnzinger Sep 6, 2023
246e2de
add improvements
MaximilianAnzinger Sep 7, 2023
b29c395
Merge branch 'feature/learning-path/learning-object-recommendation' i…
MaximilianAnzinger Sep 7, 2023
ca95f21
tests and cleanup
MaximilianAnzinger Sep 7, 2023
a122cee
add progress view
MaximilianAnzinger Sep 7, 2023
d93e05a
fix tooltips
MaximilianAnzinger Sep 7, 2023
2096d6e
fix compiler error in tests
MaximilianAnzinger Sep 7, 2023
5285bb9
Merge branch 'develop' into feature/learning-path/managment-graph
MaximilianAnzinger Sep 7, 2023
f84d5a1
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Sep 7, 2023
40cc0cc
Merge branch 'feature/learning-path/participation-view' into feature/…
MaximilianAnzinger Sep 7, 2023
348bb59
Merge branch 'feature/learning-path/health-status' into feature/learn…
MaximilianAnzinger Sep 7, 2023
237765b
Merge branch 'feature/learning-path/recommendation' into feature/lear…
MaximilianAnzinger Sep 7, 2023
2674b19
Merge branch 'feature/learning-path/learning-object-recommendation' i…
MaximilianAnzinger Sep 7, 2023
0aa16b5
add suggestions by lennart
MaximilianAnzinger Sep 8, 2023
6608053
add log for debugging on test server
MaximilianAnzinger Sep 8, 2023
b59fe15
fix rendering of management graph
MaximilianAnzinger Sep 8, 2023
868a6d7
fix learning path query
MaximilianAnzinger Sep 9, 2023
2fe3797
adapt tests
MaximilianAnzinger Sep 10, 2023
cb630c5
fix storage service
MaximilianAnzinger Sep 10, 2023
fd7399e
Merge branch 'develop' into feature/learning-path/managment-graph
MaximilianAnzinger Sep 10, 2023
289cfd2
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Sep 10, 2023
84bc3f0
Merge branch 'feature/learning-path/participation-view' into feature/…
MaximilianAnzinger Sep 10, 2023
a1ff479
Merge branch 'feature/learning-path/health-status' into feature/learn…
MaximilianAnzinger Sep 10, 2023
6ae0250
Merge branch 'feature/learning-path/recommendation' into feature/lear…
MaximilianAnzinger Sep 10, 2023
cc3d472
Merge branch 'feature/learning-path/learning-object-recommendation' i…
MaximilianAnzinger Sep 10, 2023
b878d09
apply spotless after merge
MaximilianAnzinger Sep 11, 2023
bd40341
implement code review
MaximilianAnzinger Sep 11, 2023
bc8bbd5
Merge branch 'feature/learning-path/learning-object-recommendation' i…
MaximilianAnzinger Sep 11, 2023
03f1f5e
remove unnecessary module import
MaximilianAnzinger Sep 11, 2023
2d987b0
add code review
MaximilianAnzinger Sep 12, 2023
e5bfbe7
remove history feature
MaximilianAnzinger Sep 12, 2023
355af38
adapt client tests
MaximilianAnzinger Sep 12, 2023
98fc15a
improve sticky popover
MaximilianAnzinger Sep 18, 2023
d84e6a3
Merge branch 'develop' into feature/learning-path/managment-graph
MaximilianAnzinger Sep 18, 2023
6433900
update tests
MaximilianAnzinger Sep 19, 2023
4fa6a85
Merge branch 'feature/learning-path/managment-graph' of https://githu…
MaximilianAnzinger Sep 19, 2023
002ab73
Merge branch 'develop' into feature/learning-path/managment-graph
MaximilianAnzinger Sep 19, 2023
c1261b1
fix test
MaximilianAnzinger Sep 19, 2023
40e88d8
remove constructor from DTO
MaximilianAnzinger Sep 19, 2023
e0cf0d2
Merge branch 'develop' into feature/learning-path/managment-graph
MaximilianAnzinger Sep 19, 2023
cf07def
Merge branch 'develop' into feature/learning-path/managment-graph
MaximilianAnzinger Sep 20, 2023
4cbeb3f
fix sticky popover closing after returning to node
MaximilianAnzinger Sep 20, 2023
a916099
Merge branch 'develop' into feature/learning-path/managment-graph
MaximilianAnzinger Sep 21, 2023
0c455cf
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Sep 21, 2023
4917773
Merge branch 'feature/learning-path/participation-view' into feature/…
MaximilianAnzinger Sep 21, 2023
b30579f
Merge branch 'feature/learning-path/health-status' into feature/learn…
MaximilianAnzinger Sep 21, 2023
8bffcc9
Merge branch 'feature/learning-path/recommendation' into feature/lear…
MaximilianAnzinger Sep 21, 2023
f46497c
Merge branch 'feature/learning-path/learning-object-recommendation' i…
MaximilianAnzinger Sep 21, 2023
337b75d
Merge branch 'develop' into feature/learning-path/managment-graph
MaximilianAnzinger Sep 21, 2023
0fd0e47
Merge branch 'feature/learning-path/managment-graph' into feature/lea…
MaximilianAnzinger Sep 21, 2023
ef5f78e
Merge branch 'feature/learning-path/participation-view' into feature/…
MaximilianAnzinger Sep 21, 2023
ecd51a3
Merge branch 'feature/learning-path/health-status' into feature/learn…
MaximilianAnzinger Sep 21, 2023
5870837
Merge branch 'feature/learning-path/recommendation' into feature/lear…
MaximilianAnzinger Sep 21, 2023
6c570f4
Merge branch 'feature/learning-path/learning-object-recommendation' i…
MaximilianAnzinger Sep 21, 2023
6964bcd
Merge branch 'develop' into feature/learning-path/participation-view
MaximilianAnzinger Sep 21, 2023
66c8788
implement most of the feedback from Patrick
MaximilianAnzinger Sep 22, 2023
701eaee
Implement alternative solution for exercise styling
MaximilianAnzinger Sep 22, 2023
ce251f1
rename css class and remove view encapsulation
MaximilianAnzinger Sep 22, 2023
cfc22ef
Merge branch 'develop' into feature/learning-path/participation-view
MaximilianAnzinger Sep 22, 2023
35e6c83
Update LearningPathResource.java
MaximilianAnzinger Sep 22, 2023
310898d
Merge branch 'develop' into feature/learning-path/participation-view
MaximilianAnzinger Sep 23, 2023
8658652
Merge branch 'feature/learning-path/participation-view' into feature/…
MaximilianAnzinger Sep 23, 2023
22c6c61
Merge branch 'feature/learning-path/health-status' into feature/learn…
MaximilianAnzinger Sep 23, 2023
f416228
Merge branch 'feature/learning-path/recommendation' into feature/lear…
MaximilianAnzinger Sep 23, 2023
8490ee1
Merge branch 'feature/learning-path/learning-object-recommendation' i…
MaximilianAnzinger Sep 23, 2023
4b9704c
code style
MaximilianAnzinger Sep 25, 2023
4aa7898
Merge branch 'feature/learning-path/recommendation' into feature/lear…
MaximilianAnzinger Sep 25, 2023
b4c3a30
add doc comments from merge
MaximilianAnzinger Sep 25, 2023
df8c31d
Merge branch 'feature/learning-path/learning-object-recommendation' i…
MaximilianAnzinger Sep 25, 2023
b4a5704
java doc
MaximilianAnzinger Sep 25, 2023
0c19aaa
fix query for postgres
MaximilianAnzinger Sep 26, 2023
db7e87e
Merge branch 'develop' into feature/learning-path/participation-view
MaximilianAnzinger Sep 27, 2023
d24cd83
Merge branch 'feature/learning-path/participation-view' into feature/…
MaximilianAnzinger Sep 27, 2023
3695f4e
Merge branch 'feature/learning-path/health-status' into feature/learn…
MaximilianAnzinger Sep 27, 2023
b778e8f
add JavaDoc
MaximilianAnzinger Sep 27, 2023
b79141f
Merge branch 'feature/learning-path/recommendation' into feature/lear…
MaximilianAnzinger Sep 27, 2023
8ace29f
Merge branch 'feature/learning-path/learning-object-recommendation' i…
MaximilianAnzinger Sep 27, 2023
18d9034
rename LearningPathPagableSearchDTO
MaximilianAnzinger Sep 27, 2023
50da456
Merge branch 'develop' into feature/learning-path/health-status
MaximilianAnzinger Sep 29, 2023
c522378
implement maintainer feedback
MaximilianAnzinger Sep 29, 2023
c031082
Merge branch 'feature/learning-path/health-status' into feature/learn…
Strohgelaender Sep 29, 2023
c481d3f
Merge branch 'develop' into feature/learning-path/recommendation
MaximilianAnzinger Sep 29, 2023
0eef572
cleanup merge and add documentation
MaximilianAnzinger Sep 29, 2023
c344e38
Merge branch 'develop' into feature/learning-path/recommendation
MaximilianAnzinger Sep 30, 2023
f93d780
Merge branch 'feature/learning-path/recommendation' into feature/lear…
MaximilianAnzinger Sep 30, 2023
d52c69c
Merge branch 'feature/learning-path/learning-object-recommendation' i…
MaximilianAnzinger Sep 30, 2023
fc1013a
Merge branch 'develop' into feature/learning-path/learning-object-rec…
MaximilianAnzinger Oct 9, 2023
3a261e6
merge cleanup
MaximilianAnzinger Oct 9, 2023
1cb6613
make Lucas happy
MaximilianAnzinger Oct 9, 2023
04641e3
and even happier
MaximilianAnzinger Oct 9, 2023
e7c2aeb
Update LearningPathServiceTest.java
MaximilianAnzinger Oct 9, 2023
ddb430b
Merge branch 'feature/learning-path/learning-object-recommendation' i…
Strohgelaender Oct 9, 2023
3b086c8
Merge branch 'develop' into feature/learning-path/learning-object-rec…
MaximilianAnzinger Oct 10, 2023
4c9d4e8
Merge branch 'develop' into feature/learning-path/learning-object-rec…
MaximilianAnzinger Oct 11, 2023
5507645
Merge branch 'feature/learning-path/learning-object-recommendation' i…
MaximilianAnzinger Oct 11, 2023
59bf6dd
Merge branch 'develop' into feature/learning-path/learning-object-rec…
MaximilianAnzinger Oct 13, 2023
0beadc9
Merge branch 'feature/learning-path/learning-object-recommendation' i…
MaximilianAnzinger Oct 13, 2023
af50800
Merge branch 'develop' into enhancement/learning-path/user-interface
MaximilianAnzinger Oct 14, 2023
d30fe88
Merge branch 'develop' into enhancement/learning-path/user-interface
MaximilianAnzinger Oct 15, 2023
d9980b5
Merge branch 'develop' into enhancement/learning-path/user-interface
MaximilianAnzinger Oct 16, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,7 @@ dependencies {
implementation "org.commonmark:commonmark:0.21.0"
implementation "commons-fileupload:commons-fileupload:1.5"
implementation "net.lingala.zip4j:zip4j:2.11.5"
implementation "org.jgrapht:jgrapht-core:1.5.2"


annotationProcessor "org.hibernate:hibernate-jpamodelgen:${hibernate_version}"
Expand Down
3 changes: 2 additions & 1 deletion jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ const esModules = ['lodash-es', 'franc-min', 'trigram-utils', 'n-gram', 'collaps
'@ngx-translate/core', '@ngx-translate/http-loader', '@fortawesome/angular-fontawesome', '@angular/cdk', '@angular/material', '@angular/cdk', 'dayjs/esm',
'rxjs/operators', '@ng-bootstrap/ng-bootstrap', 'ngx-webstorage', '@ctrl/ngx-emoji-mart', 'ngx-device-detector', '@swimlane/ngx-charts',
'@angular/service-worker', '@danielmoncada/angular-datetime-picker', '@flaviosantoro92/ngx-datatable', 'd3-color', 'd3-interpolate', 'd3-transition', 'd3-brush',
'd3-drag', 'd3-selection', 'd3-scale', 'd3-array', 'd3-format', 'd3-shape', 'd3-path', 'd3-ease', 'd3-time', 'd3-hierarchy', 'ngx-infinite-scroll', 'internmap'].join('|');
'd3-drag', 'd3-selection', 'd3-scale', 'd3-array', 'd3-format', 'd3-shape', 'd3-path', 'd3-ease', 'd3-time', 'd3-hierarchy', 'ngx-infinite-scroll', 'internmap',
'@swimlane/ngx-graph'].join('|');

const {
compilerOptions: { baseUrl = './' },
Expand Down
10 changes: 0 additions & 10 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,9 @@
"@swimlane/ngx-graph": {
"d3-color": "^3.1.0",
"d3-interpolate": "^3.0.1",
"d3-brush": "^3.0.0"
"d3-transition": "^3.0.0",
"d3-brush": "^3.0.0",
"d3-selection": "^3.0.0"
},
"critters": "0.0.20",
"semver": "7.5.4",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,10 @@ public ZonedDateTime getReleaseDate() {
public void setReleaseDate(ZonedDateTime releaseDate) {
// Should be set in associated attachment
}

// IMPORTANT NOTICE: The following string has to be consistent with the one defined in LectureUnit.java
@Override
public String getType() {
return "attachment";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,10 @@ public void prePersistOrUpdate() {
this.releaseDate = null;
this.competencies = new HashSet<>();
}

// IMPORTANT NOTICE: The following string has to be consistent with the one defined in LectureUnit.java
@Override
public String getType() {
return "exercise";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -121,4 +121,7 @@ public boolean isCompletedFor(User user) {
public Optional<ZonedDateTime> getCompletionDate(User user) {
return getCompletedUsers().stream().filter(completion -> completion.getUser().getId().equals(user.getId())).map(LectureUnitCompletion::getCompletedAt).findFirst();
}

// Used to distinguish the type when used in a DTO, e.g., LectureUnitForLearningPathNodeDetailsDTO.
public abstract String getType();
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,10 @@ public String getDescription() {
public void setDescription(String description) {
this.description = description;
}

// IMPORTANT NOTICE: The following string has to be consistent with the one defined in LectureUnit.java
@Override
public String getType() {
return "online";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,10 @@ public String getContent() {
public void setContent(String content) {
this.content = content;
}

// IMPORTANT NOTICE: The following string has to be consistent with the one defined in LectureUnit.java
@Override
public String getType() {
return "text";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,10 @@ public String getDescription() {
public void setDescription(String description) {
this.description = description;
}

// IMPORTANT NOTICE: The following string has to be consistent with the one defined in LectureUnit.java
@Override
public String getType() {
return "video";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,73 @@ public interface CompetencyRelationRepository extends JpaRepository<CompetencyRe
SELECT relation
FROM CompetencyRelation relation
WHERE relation.headCompetency.id = :#{#competencyId}
OR relation.tailCompetency.id = :#{#competencyId}
OR relation.tailCompetency.id = :#{#competencyId}
""")
Set<CompetencyRelation> findAllByCompetencyId(@Param("competencyId") Long competencyId);

@Query("""
SELECT relation
FROM CompetencyRelation relation
LEFT JOIN FETCH relation.headCompetency
LEFT JOIN FETCH relation.tailCompetency
LEFT JOIN FETCH relation.headCompetency
LEFT JOIN FETCH relation.tailCompetency
WHERE relation.headCompetency.course.id = :#{#courseId}
AND relation.tailCompetency.course.id = :#{#courseId}
AND relation.tailCompetency.course.id = :#{#courseId}
""")
Set<CompetencyRelation> findAllByCourseId(@Param("courseId") Long courseId);

@Query("""
SELECT count(cr)
FROM CompetencyRelation cr
WHERE cr.headCompetency.course.id = :courseId
OR cr.tailCompetency.course.id = :courseId
""")
long countByCourseId(@Param("courseId") long courseId);

@Query("""
SELECT DISTINCT relation.headCompetency.id
FROM CompetencyRelation relation
LEFT JOIN relation.headCompetency
LEFT JOIN relation.tailCompetency
WHERE relation.tailCompetency.id IN :competencyIds
AND relation.type <> 'MATCHES'
""")
Set<Long> getPriorCompetenciesByCompetencyIds(@Param("competencyIds") Set<Long> competencyIds);

@Query("""
SELECT COUNT(relation)
FROM CompetencyRelation relation
LEFT JOIN relation.headCompetency
LEFT JOIN relation.tailCompetency
WHERE relation.tailCompetency.id IN :competencyTailIds
AND relation.headCompetency.id IN :competencyHeadIds
AND relation.type = :type
""")
long countRelationsOfTypeBetweenCompetencyGroups(@Param("competencyTailIds") Set<Long> competencyTailIds, @Param("type") CompetencyRelation.RelationType type,
@Param("competencyHeadIds") Set<Long> competencyHeadIds);

// Important: this query is native since JPARepositories don't support recursive queries of this form
@Query(value = """
WITH RECURSIVE transitive_closure(id) AS
(
(SELECT competency.id FROM learning_goal as competency WHERE competency.id = :competencyId)
UNION
(
(
SELECT relation.head_learning_goal_id
FROM learning_goal_relation as relation
JOIN transitive_closure AS tc ON relation.tail_learning_goal_id = tc.id
WHERE relation.type = 'M'
)
UNION
(
SELECT relation.tail_learning_goal_id
FROM learning_goal_relation as relation
JOIN transitive_closure AS tc ON relation.head_learning_goal_id = tc.id
WHERE relation.type = 'M'
)
)
)
SELECT * FROM transitive_closure
""", nativeQuery = true)
Set<Long> getMatchingCompetenciesByCompetencyId(@Param("competencyId") long competencyId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import de.tum.in.www1.artemis.domain.Course;
import de.tum.in.www1.artemis.domain.competency.Competency;
import de.tum.in.www1.artemis.web.rest.errors.EntityNotFoundException;

Expand Down Expand Up @@ -180,4 +181,6 @@ default Competency findByIdWithExercisesAndLectureUnitsElseThrow(Long competency
default Competency findByIdWithExercisesElseThrow(Long competencyId) {
return findByIdWithExercises(competencyId).orElseThrow(() -> new EntityNotFoundException("Competency", competencyId));
}

long countByCourse(Course course);
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,17 @@ public interface LearningPathRepository extends JpaRepository<LearningPath, Long

Optional<LearningPath> findByCourseIdAndUserId(long courseId, long userId);

default LearningPath findByCourseIdAndUserIdElseThrow(long courseId, long userId) {
return findByCourseIdAndUserId(courseId, userId).orElseThrow(() -> new EntityNotFoundException("LearningPath"));
}

@EntityGraph(type = LOAD, attributePaths = { "user" })
Optional<LearningPath> findWithEagerUserById(long learningPathId);
MaximilianAnzinger marked this conversation as resolved.
Show resolved Hide resolved

default LearningPath findWithEagerUserByIdElseThrow(long learningPathId) {
return findWithEagerUserById(learningPathId).orElseThrow(() -> new EntityNotFoundException("LearningPath"));
}

@EntityGraph(type = LOAD, attributePaths = { "competencies" })
Optional<LearningPath> findWithEagerCompetenciesByCourseIdAndUserId(long courseId, long userId);

Expand All @@ -40,4 +51,36 @@ SELECT COUNT (learningPath)
WHERE learningPath.course.id = :courseId AND learningPath.user.isDeleted = false AND learningPath.course.studentGroupName MEMBER OF learningPath.user.groups
""")
long countLearningPathsOfEnrolledStudentsInCourse(@Param("courseId") long courseId);

/**
* Gets a learning path with eagerly fetched competencies, linked lecture units and exercises, and the corresponding domain objects storing the progress.
* <p>
* The query only fetches data related to the owner of the learning path. participations and progress for other users are not included.
* IMPORTANT: JPA doesn't support JOIN-FETCH-ON statements. To fetch the relevant data we utilize the entity graph annotation.
* Moving the ON clauses to the WHERE clause would result in significantly different and faulty output.
*
* @param learningPathId the id of the learning path to fetch
* @return the learning path with fetched data
*/
@Query("""
SELECT learningPath
FROM LearningPath learningPath
LEFT JOIN FETCH learningPath.competencies competencies
LEFT JOIN competencies.userProgress progress
ON competencies.id = progress.learningGoal.id AND progress.user.id = learningPath.user.id
LEFT JOIN FETCH competencies.lectureUnits lectureUnits
LEFT JOIN lectureUnits.completedUsers completedUsers
ON lectureUnits.id = completedUsers.lectureUnit.id AND completedUsers.user.id = learningPath.user.id
LEFT JOIN FETCH competencies.exercises exercises
LEFT JOIN exercises.studentParticipations studentParticipations
ON exercises.id = studentParticipations.exercise.id AND studentParticipations.student.id = learningPath.user.id
WHERE learningPath.id = :learningPathId
""")
@EntityGraph(type = LOAD, attributePaths = { "competencies.userProgress", "competencies.lectureUnits.completedUsers", "competencies.exercises.studentParticipations" })
Optional<LearningPath> findWithEagerCompetenciesAndProgressAndLearningObjectsAndCompletedUsersById(@Param("learningPathId") long learningPathId);

default LearningPath findWithEagerCompetenciesAndProgressAndLearningObjectsAndCompletedUsersByIdElseThrow(long learningPathId) {
return findWithEagerCompetenciesAndProgressAndLearningObjectsAndCompletedUsersById(learningPathId)
.orElseThrow(() -> new EntityNotFoundException("LearningPath", learningPathId));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ SELECT u, SUM(sc.lastRatedPoints)
WHERE s.user = :user
AND s.exercise IN :exercises
""")
List<StudentScore> findAllByExercisesAndUser(@Param("exercises") List<Exercise> exercises, @Param("user") User user);
List<StudentScore> findAllByExercisesAndUser(@Param("exercises") Set<Exercise> exercises, @Param("user") User user);

@Query("""
SELECT s
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ SELECT t, SUM(s.lastRatedPoints)
WHERE s.exercise IN :exercises
AND :user MEMBER OF s.team.students
""")
List<TeamScore> findAllByExercisesAndUser(@Param("exercises") List<Exercise> exercises, @Param("user") User user);
List<TeamScore> findAllByExercisesAndUser(@Param("exercises") Set<Exercise> exercises, @Param("user") User user);

@Transactional // ok because of delete
@Modifying
Expand Down
Loading