Commit Graph

35 Commits

Author SHA1 Message Date
kiragrammel
175c8933f3 Automatically submit LTI grade on each score run
With this commit, we refactor the overall score handling of CodeOcean. Previously, "Score" and "Submit" were two distinct actions, requiring users to confirm the LTI transmission of their score (after assessing their submission). This yielded many questions and was unnecessary, since LTI parameters are no longer expiring after each use. Therefore, we can now transmit the current grade on each score run with the very same LTI parameters. As a consequence, the LTI consumer gets a more detailed history of the scores, enabling further analytical insights.

For users, the previous "Submit" button got replaced with a notification that is shown as soon as the full score got reached. Then, learners can decide to "finalize" their work on the given exercise, which will initiate a redirect to a follow-up action (as defined in the RedirectBehavior). This RedirectBehavior has also been unified and simplified for better readability.

As part of this refactoring, we rephrased the notifications and UX workflow of a) the LTI transmission, b) the finalization of an exercise (measured by reaching the full score) and c) the deadline handling (on time, within grace period, too late). Those information are now separately shown, potentially resulting in multiple notifications. As a side effect, they are much better maintainable, and the LTI transmission is more decoupled from this notification handling.
2023-11-23 14:42:10 +01:00
kiragrammel
79ce069f68 Add CRUD operations for Programming Groups
* Correct sorting in table
* Modify page when nested in exercises
* Fix links between pages
* Link from statistics page to programming_groups/index
* Link from submission page to programming_groups/<id>
* Allow filtering for exercise ID on ProgrammingGroup#index
* Add search fields for internal and external user id on pg/index
2023-10-23 18:17:42 +02:00
Sebastian Serth
99bd46af1a Align project files with CodeHarbor
Since both projects are developed together and by the same team, we also want to have the same code structure and utility methods available in both projects. Therefore, this commit changes many files, but without a functional change.
2023-10-11 00:18:33 +02:00
Sebastian Serth
e767cff309 Fix flaky tests dependent on exercise.reload for files 2023-09-16 16:57:59 +02:00
Sebastian Serth
235bf771fe Always use user object instead of ID and Type 2023-08-26 00:39:47 +02:00
Sebastian Serth
28a4b672f9 Remove legacy save search endpoint 2023-07-28 13:18:39 +02:00
Sebastian Serth
574e99eddd Fix rubocop offenses - Requires Ruby 3.1+ 2022-11-25 11:10:06 +01:00
Sebastian Serth
964048927a Updated teacher_in_study_group? method to check for common teacher role 2022-09-22 19:24:26 +02:00
Sebastian Serth
521626275f Use create for all users in specs where necessary 2022-09-22 19:24:26 +02:00
Sebastian Serth
49f4f0e6c5 Refactor exercise_controller and move more checks to policy
* We introduce a custom handler for Pundit::NotAuthorizedError
2022-09-04 00:05:13 +02:00
Sebastian Serth
e5879eb606 Simplify permission specs
* Remove iteration if not required
* Unify usage of parentheses for `permissions` call
2022-08-22 17:51:57 +02:00
Janis4411
e0c2c7b806 Hide score button if exercise has no tests
We check for all teacher-defined assessments (linter and unit tests) to determine whether scoring should be possible
2022-08-22 17:51:57 +02:00
Sebastian Serth
ea85519163 Update bundle (with newest rubocop version) and fix offenses 2022-01-04 09:42:37 +01:00
Sebastian Serth
da0a682ffb Apply manual rubocop fixes 2021-05-14 22:03:06 +02:00
Sebastian Serth
6cbecb5b39 Apply automatic rubocop fixes 2021-05-14 22:03:06 +02:00
Tobias Kantusch
40d83dbb1d Fix access to exercise-specific RfC listing 2021-04-07 14:06:32 +02:00
Karol
835b70b000 fix typo 2020-10-29 18:22:33 +01:00
Karol
517886ea0b fix codeharbor_export policies, add specs 2020-10-29 18:06:14 +01:00
Sebastian Serth
afafe0c218 Adjust teacher permissions:
* Hide non-public exercises and proxy exercises
* Hide average working time value on statistic page
* Add hint about filter to submission page for teachers
* Hide display name from feedback page
2020-09-07 19:04:34 +02:00
Karol
c89ee6c102 model and policy specs 2019-12-07 13:11:48 +01:00
Sebastian Serth
924f94f254 Fix failing tests for new permissions 2019-11-29 15:50:50 +01:00
Sebastian Serth
de52db89f0 Upgrade Rails to version 5.2.1 and adopt code & specs where necessary
Signed-off-by: Sebastian Serth <Sebastian.Serth@student.hpi.de>
2018-11-06 16:46:00 +01:00
Ralf Teusner
0e26ab98c8 rename factory_girl_(rails) to factory_bot_(rails) 2017-11-15 15:18:07 +01:00
yqbk
032c201b94 repair database query 2016-08-03 14:08:01 +02:00
yqbk
4183a16178 merge with master 2016-08-03 12:09:58 +02:00
yqbk
16206cf58f restore one line 2016-07-04 17:56:57 +02:00
yqbk
2bb1362520 further delete (spec files) 2016-07-04 16:59:30 +02:00
yqbk
9b07a68e3a repair :show issue for external users 2016-05-31 17:33:38 +02:00
Hauke Klement
6ee0b6bf81 implemented partial batch update for exercises 2015-03-12 11:05:11 +01:00
Hauke Klement
d222d94bbe changed database cleaning strategy 2015-02-18 11:03:56 +01:00
Hauke Klement
8e374c6914 use #described_class, as suggested by RuboCop 2015-02-16 17:04:28 +01:00
Hauke Klement
b08bc8aef2 sped up some tests 2015-01-30 10:50:44 +01:00
Hauke Klement
db2a9a4261 sped up some tests 2015-01-29 18:19:45 +01:00
Hauke Klement
cbde9529aa implemented team-dependent exercise policy 2015-01-29 17:13:22 +01:00
Hauke Klement
4cbf9970b1 transferred Code Ocean from original repository to GitHub 2015-01-22 10:01:32 +01:00