T&A: ilTestAccess Refactoring
Hi everyone,
With this PR, I propose a refactoring of the ilTestAccess class, which takes place in the context of Using test results as prerequisites. The refactoring focuses on extracting functions for determining participant status, as well as standardizing the storage and retrieval of test results. Through the use of caching, the querying of participant status has also been optimized. Additionally, as part of these changes, DTO classes are being introduced to describe test results in a type-safe manner. The changes in this PR have been further verified through the introduction of new unit tests.
Furthermore, there is a change in the last commit that I additionally propose: we noticed that the table tst_result_cache is already being updated after each saved question during a test attempt. I consider this to be an error, as it can lead to inconsistencies in the table. For example, the values for the mark schema provide contradictory values to what is stored in the passed flag. During the review, please take a closer look at this last commit to see if you agree with me on this point or if this might have even been intended behavior.
As always, these changes have already been approved in an internal review by @thojou. I look forward to your feedback on these extensive changes. Particularly regarding the naming of the class TestResultManager, we are open to suggestions that more precisely describe the functions of this class.
Thank you in advance. Best, @lukas-heinrich