Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
|
|
|
|
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.
|
|
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.
|
|
- 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 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.
|
|
Abstracted out the data generation functions in views.py so they may be
reused.
|
|
|
|
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.
|
|
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.
|
|
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).
|
|
|
|
This page provides instructions and rules to the users of the system.
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
- Modified the question model to use description instead of question.
- Once a user completes the exam it would not allow another one to
start.
- Improved the error messages displayed on errors.
- If there is a mistake, it doesn't wipe out the old attempt so student
can modify what they submitted last.
|
|
|
|
This application allows us to create questions via the admin interface.
The questions are proper programming questions and one enters test cases
for each question. The user logs in and submits the answer which is
checked. The app is rather simple now but does work.
|