Age | Commit message (Collapse) | Author |
|
Adding institute/department/position fields, prettifying form with some
help text. Also prettified monitor and user data. Updated commands to
show/dump new fields.
|
|
|
|
|
|
Also cleaned up the dumping code to use templates.
|
|
|
|
|
|
The form checking code was assuming that usernames are case insensitive
but this is not the case hence we now check for exact matches in the
username. This prevented users who registered with an upper case
username sometimes.
|
|
Abstracted out the data generation functions in views.py so they may be
reused.
|
|
When loading a new exam we don't delete the old quiz.
|
|
|
|
This checkin adds the following:
- /exam/monitor displays all available quizzes.
- /exam/monitor/quiz_id displays results for the specified quiz.
- /exam/user_data/username displays the users data including answers.
- A link is provided in monitor output to see user data.
- More monitor data like number of attempts.
- The monitor and user data are only shown for a user who is
authenticated and is staff.
|
|
|
|
This is useful when you are forced to host the app on a URL like
host.org/foo/exam and not as host.org/exam as you would want. Change
the URL_ROOT setting to "/foo" in the above case for this to work.
|
|
- the SERVER_PORTS is now a list of ports and when you run
python_server.py it will run as many servers as desired.
- python_server.py now will create multiple servers via
multiprocessing.
- the xmlrpc_clients.py is changed to deal with these multiple servers.
This allows us to handle many incoming requests.
These changes allow us to run the online test for many users. We had
over 400 simultaneous users and a total of about 650 users using the app
with these modifications.
|
|
- Timeout for signal.alarm is an integer.
- The total_seconds method on timedelta is new to 2.7 and doesn't work
on older versions.
|
|
Added option to define quizzes in the file we load from. Also fixed bug
in import for the xmlrpc_clients.py and changed the verbose name for
Quiz objects.
|
|
Also updated documentation.
|
|
Setting default timeout to 2 seconds. Also made the run_as_nobody a
function so the rest of the server can be tested without the need to
sudo it.
|
|
The login and registration forms are now rendered as tables which looks
much nicer. The username now can take letters, digits, period and
underscore. The password can take letters, digits and punctuation.
|
|
This lets us load questions using Python syntax which is rather
convenient.
|
|
Changing the command ./manage.py load_questions to load_questions_xml.
|
|
Also check if user is authenticated or not when displaying question or
checking.
|
|
The check view was not showing the quiz description.
|
|
If you complete the quiz it was going into a redirect loop, this is
fixed. Also cleaned up all the page templates with proper block
contents.
|
|
Added a model called Quiz which allows the admin to define a quiz on a
date which can be active or deactivated. Users can take a quiz if one
is active and are given a fixed duration to complete the quiz. They may
login as many times as needed to finish it but the total time is logged.
Javascript code updates a timer on the page.
|
|
This changes the models. The Quiz should really be QuestionPaper and a
Quiz should be like an event that the admin creates to start a quiz and
each QuestionPaper should be related to a Quiz. This will be added
later.
|
|
|
|
|
|
Added JS code to tell the user that the system is checking the answer
and also disable any further submitting at this time.
|
|
This is useful for debugging if we have a runaway loop or some stupid
error with the code server. Also fixed a small issue with rendering the
monitor when there are users with no profile but with a quiz in the
system (like the admin).
|
|
If a user submitted code with an errant loop that loops forever or locks
up for any reason, it would take the code server down. I now add a
timeout of 3 seconds for the evaluation and tests failing which it is an
error.
|
|
|
|
|
|
This page provides instructions and rules to the users of the system.
|
|
|
|
|
|
"ENH: Improved traceback reporting from server. "
Strangely, the reporting by this is not as good as my hand-rolled code.
This reverts commit bc343c26cf3aac699c08129034b41317bac16f76.
|
|
|
|
|
|
The Python server was not setting the effective gid. There was also a
bug in that traceback was not imported. Added option so that the
python server chdirs to a user specific directory in order that a user
can save files which could be used as part of the test.
|
|
Adding a python_server which executes code as nobody safely so users
cannot do too much damage.
|
|
Implemented the user register and login feature
|
|
|
|
|
|
|
|
|
|
|
|
Adding a rollnumber to monitor table and cleaning up the test code to be
a separate function. This should be more reusable as we could
technically run this in a separate process with an unpriviledged user.
|
|
Adds a simple /exam/monitor page that displays current quiz results.
|
|
Cleaned up the models so the answers submitted are all saved. Also
added a quit button to each question page so a user can easily quit the
exam in order that another may start.
|