Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
buildout in /bin/django.wsgi
|
|
|
|
|
|
|
|
|
|
|
|
For a bash question we now put a #!/bin/bash at the top.
We now use annotations to speed up the monitor page rendering rather
than doing the sort in Python which ends up being inefficient due to the
db calls. I get a roughly 5x improvement in speed.
|
|
|
|
Some users seem to submit unicode characters (bah!), this changeset
deals with these gracefully.
|
|
|
|
|
|
|
|
|
|
If the user_dir was deleted, the script would fail. We now create the
user_dir if it isn't there. If the bash script is not properly created
you get other uncaught errors which were not reported. This is fixed
and tested.
|
|
This checkin fixes bash support. In actuality the bash support lets one
test any runnable script/program that outputs results to stdout. I've
also added a decent test suite for the code server that checks if it
functions correctly or not. I've also updated the sample_questions to
work with the new bash support and added a reference bash script and the
testcode to go with it.
|
|
|
|
Adds simple support for multiple choice questions that are also
auto-checked. Many fixes to the templates and useful feature additions.
This changes the database.
|
|
This is largely taken from other sites and looks reasonable for now.
Also added links to the admin page from the
monitor/user_data/grade_user.
|
|
With this, you can grade a student's answer paper and give comments for
each quiz paper they attempt. Also added a link to this grading
interface to the user_data view.
|
|
|
|
Changed the server so we use a pool of servers managed with a Queue of
available servers. The XML/RPC client is also changed to handle
connection failures gracefully. This is because XML/RPC cannot have
more than 2 connections at a given time, so if there is an error, we
wait for a random amount of time and try again. This allows us to
handle fairly large loads nicely.
|
|
|
|
- Changing the Question model to add a language attribute.
- Moving python_server.py -> code_server.py.
- Adding functionality to test for Shell scripts. This is still
incomplete since the shell code checker seems to have some problems.
- Modified the xmlrpc_clients to support multiple languages and right
now two.
- Using setgid/setuid instead of setegid/seteuid in the code_server.py..
- Adding a bash example to the sample_questions.py.
The shell script support doesn't quite work yet but this is really a
code_server/checking issue.
|
|
Adding error and marks field to each answer. Adding a new comment field
to the question paper and also a profile field for convenience.
Changing the views, templates and dump scripts to use the models rather
than Python code. This cleans things up a lot more. The user data
logged and printed is also way more comprehensive, paving the way for
easy online grading as well in the next phase of changes.
|
|
This allows us to render code nicely and format the question nicely.
Modified the question template suitably.
|
|
|
|
|
|
This allows us to enable/disable questions in a question paper. Only
questions that are active are used to create a question paper. I've also
modified the load_exam/load_questions_xml to deactivate rather than
delete old questions.
|
|
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.
|