numbas / Numbas

A completely browser-based e-assessment/e-learning system, with an emphasis on mathematics
http://www.numbas.org.uk
Apache License 2.0
197 stars 118 forks source link

Force student to type something before ending the exam #1048

Closed stuwilmur closed 7 months ago

stuwilmur commented 8 months ago

Not for merging: a starting point for further discussion and work.

Background Work on implementing Issue #515: Force student to type something before ending exam.

Changes

For discussion

christianp commented 8 months ago

Thanks for this!

Answers to your bullet points:

Should this feature be configurable, e.g. off by default? It might be annoying or unexpected for some.

Yes, it should be off by default. I think this is only worth having for high-stakes exams.

Should the input be required regardless of how many questions have been attempted/submitted?

Yes.

The current implementation only works for en-GB: until the “end” command is translated it will be impossible to end the exam in other languages!

It'll just look for "end" regardless of language, won't it?

Test to be added

There are no unit tests for the display code yet, so this isn't a problem.

I'll use GitHub's review thingy to go through the code you've committed so far.

stuwilmur commented 8 months ago

Thank you for the review!

Most changes done; I've managed to break the data binding (I think) when I attempted to move to the correct viewmodel; would you mind giving me a hint to try to get it working again?

Thanks for this!

Answers to your bullet points:

Should this feature be configurable, e.g. off by default? It might be annoying or unexpected for some.

Yes, it should be off by default. I think this is only worth having for high-stakes exams.

Great: I will try to implement this on the next pass

Should the input be required regardless of how many questions have been attempted/submitted?

Yes.

Thanks for confirming.

The current implementation only works for en-GB: until the “end” command is translated it will be impossible to end the exam in other languages!

It'll just look for "end" regardless of language, won't it?

I need to check this again, once I get it working again (since I've managed to break the data binding)

Test to be added

There are no unit tests for the display code yet, so this isn't a problem. I thought that might be the case.

I'll use GitHub's review thingy to go through the code you've committed so far.

Thank you!

stuwilmur commented 8 months ago

Update: fixed the broken function reference.

christianp commented 8 months ago

Thanks for this. I've merged in the most recent commits, and made a change: I noticed that the password entry on the front page also asks for a string and gives feedback about whether it's correct, so that logic should be shared with the "confirm end" box.

I fixed a couple of things in the modal as well - there was a repeated modal-body class, and I made it so that submitting the form by pressing enter is the same as clicking the OK button.

Still to do:

stuwilmur commented 8 months ago

Implemented requested changes. See #801 for accompanying editor changes to support new option.