KITPraktomatTeam / Praktomat

quality control for programming assignments
http://pp.ipd.kit.edu/projects/praktomat/praktomat.php
GNU General Public License v2.0
46 stars 22 forks source link

Attestation not possible although task expired #306

Open chris21k opened 4 years ago

chris21k commented 4 years ago

Although a task is expired, no attestation is possible. The .../task//attestation/ page shows "Not all checker have yet been run." Note, this is also true after selecting all solutions and "Run Checker for selected solutions" on .../admin/solutions/solution/ . After setting "UPDATE tasks_task SET all_checker_finished=true WHERE id=;" in the db, attestation is possible.

Thx for Praktomat and its maintenance, Chris

kfriedberger commented 4 years ago

This problem also appears on our Praktomat instance. A fix would be nice.

chris21k commented 4 years ago

Today I found out that .../admin/tasks/task/ -> Action: Run all checkers -> Go after selecting the respective task does set the flag, so that attestation then is possible. However, this should imho be an optional step to enable attestation (i.e. be auftomatically possible after the task expires) and at least attestation should also possible after running the checkers from the solution page.

Chris

ifrh commented 3 years ago

I think a small change in python or template could solve the issue. But I have to much "open H-BRS pullrequests" which I had to update all the time, so that they stay mergeable in case KITPraktomatTeam want to merge them suddenly... If I find time for your issue than I, at H-BRS, create a fix.

ifrh commented 2 years ago

Although a task is expired, no attestation is possible. The .../task//attestation/ page shows "Not all checker have yet been run." Note, this is also true after selecting all solutions and "Run Checker for selected solutions" on .../admin/solutions/solution/ . After setting "UPDATE tasks_task SET all_checker_finished=true WHERE id=;" in the db, attestation is possible.

Thx for Praktomat and its maintenance, Chris

Inside the template attestation_list.html there are several places which depends on unattested_solutions.

I had a look to the corresponding code inside function attestation_list how unattested_solutions are determined. Those where all final solutions not having an attestation of a task).

https://github.com/KITPraktomatTeam/Praktomat/blob/aafbeb16c8200c48c0e89074bf22b162ab329d96/src/attestation/views.py#L191

But your point is independent from the way to determine the unattested_solutions.

https://github.com/KITPraktomatTeam/Praktomat/blob/aafbeb16c8200c48c0e89074bf22b162ab329d96/src/templates/attestation/attestation_list.html#L75-L80

If you do not start "run_all_checkers" for a task and want to attest final solutions of a task after task.expired, than only the template code from attestation_list.html needs to be changed.

ifrh commented 2 years ago

@chris21k @kfriedberger If you remove the lines 78 to 80 from attestation_list.html https://github.com/KITPraktomatTeam/Praktomat/blob/aafbeb16c8200c48c0e89074bf22b162ab329d96/src/templates/attestation/attestation_list.html#L78-L80 than you should be able to attest the solutions without having to run task.run_all_checkers.

But why do you want to attest a solution without having the checker outputs?

hannesbraun commented 2 years ago

Well, I can only answer this from my perspective: if a task only contains checkers that run at submission time, there's no need to run all checkers again after the task expired. All the checker outputs are present already. In this case, it makes sense that all_checker_finished is set to true as soon as the task expires.

ifrh commented 2 years ago

if a task only contains checkers that run at submission time, there's no need to run all checkers again after the task expired.

I see, that is true.

In our setting we are using "Pretests" and "Posttests". Our Pretests show students if they are on the right way. And after submission time is over and no student can change their solutions any more, than we start the "Posttests" via task.run_all_checkers . (I wish an cron-job or at-job could trigger running the posttests ...)

ifrh commented 2 years ago

I hink, this issue is light connected to https://github.com/KITPraktomatTeam/Praktomat/issues/219 .