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

Attestation not possible although task expired #306

Open
chris21k opened this issue Dec 10, 2019 · 8 comments · May be fixed by #351
Open

Attestation not possible although task expired #306

chris21k opened this issue Dec 10, 2019 · 8 comments · May be fixed by #351

Comments

@chris21k
Copy link

Although a task is expired, no attestation is possible. The .../task/<task_no>/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=<task_no>;" in the db, attestation is possible.

Thx for Praktomat and its maintenance,
Chris

@kfriedberger
Copy link

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

@chris21k
Copy link
Author

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
Copy link
Contributor

ifrh commented Apr 10, 2021

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
Copy link
Contributor

ifrh commented Mar 12, 2022

Although a task is expired, no attestation is possible. The .../task/<task_no>/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=<task_no>;" 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).

unattested_solutions = Solution.objects.filter(task = task, final=True, attestation = None)

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

{% if not task.expired %}
<p>{% trans "The task is not yet expired." %}</p>
{% else %}
{% if not task.all_checker_finished %}
<p>{% trans "Not all checker have yet been run." %}</p>
{% else %}

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
Copy link
Contributor

ifrh commented Mar 12, 2022

@chris21k @kfriedberger If you remove the lines 78 to 80 from attestation_list.html

{% if not task.all_checker_finished %}
<p>{% trans "Not all checker have yet been run." %}</p>
{% else %}

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
Copy link
Contributor

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
Copy link
Contributor

ifrh commented May 5, 2022

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
Copy link
Contributor

ifrh commented May 7, 2022

I hink, this issue is light connected to #219 .

@hannesbraun hannesbraun linked a pull request Aug 11, 2022 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants