summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-12-04The answer needs to be HTML escaped.Prabhu Ramachandran
2011-12-01Clean up question template and speed up monitorPrabhu Ramachandran
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.
2011-11-27BUG: Was not selecting QP for active Quiz.Prabhu Ramachandran
2011-11-26BUG: Encoding to ascii produces errors.Prabhu Ramachandran
Some users seem to submit unicode characters (bah!), this changeset deals with these gracefully.
2011-11-26BUG: Monitor was not showing sorted results.Prabhu Ramachandran
2011-11-26Fixing incorrect path.Prabhu Ramachandran
2011-11-26Updating README.Prabhu Ramachandran
2011-11-26Updating settings to add URL_ROOT for admin media.Prabhu Ramachandran
2011-11-26BUG: Fix bugs.Prabhu Ramachandran
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.
2011-11-25ENH: Fixing bash support, tests for code server.Prabhu Ramachandran
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.
2011-11-25ENH: Using south to enable easy db migrations.Prabhu Ramachandran
2011-11-25ENH: Adding support for Multiple Choice QuestionsPrabhu Ramachandran
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.
2011-11-25ENH: First cut of CSS for pages.Prabhu Ramachandran
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.
2011-11-25ENH: Adding a convenient grading interface.Prabhu Ramachandran
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.
2011-11-24Configuring logging to be a tad more useful.Prabhu Ramachandran
2011-11-24ENH: Creating a ServerPool for code checksPrabhu Ramachandran
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.
2011-11-24BUG: Set effective UID. Set execute bit for scriptPrabhu Ramachandran
2011-11-24ENH/TMP: Preliminary support for bash scripts.Prabhu Ramachandran
- 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.
2011-11-23ENH: Cleanup and adding error/comments for answersPrabhu Ramachandran
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.
2011-11-22ENH: The question description should be valid HTMLPrabhu Ramachandran
This allows us to render code nicely and format the question nicely. Modified the question template suitably.
2011-11-22Setting STATIC_ROOT to /tmp/static for now.Prabhu Ramachandran
2011-11-21BUG: Update the admin link to use URL_ROOTPrabhu Ramachandran
2011-11-21ENH: Added an active attribute to Questions.Prabhu Ramachandran
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.
2011-11-21ENH: Adding dept/insti/pos fields in profile.Prabhu Ramachandran
Adding institute/department/position fields, prettifying form with some help text. Also prettified monitor and user data. Updated commands to show/dump new fields.
2011-11-21Show the question ID as well.Prabhu Ramachandran
2011-11-21Slightly prettier output.Prabhu Ramachandran
2011-11-21ENH: Showing login and IP details of users.Prabhu Ramachandran
Also cleaned up the dumping code to use templates.
2011-11-21Updating README.Prabhu Ramachandran
2011-11-21DOC: Updating readme and moving samples to docs.Prabhu Ramachandran
2011-11-21BUG: usernames are case sensitive.Prabhu Ramachandran
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.
2011-11-21ENH: Adding dump_user_data, results2csv commandsPrabhu Ramachandran
Abstracted out the data generation functions in views.py so they may be reused.
2011-11-21Deactivate old quiz instead of deleting.Prabhu Ramachandran
When loading a new exam we don't delete the old quiz.
2011-11-21BUG: Monitor was not showing right quiz.Prabhu Ramachandran
2011-11-21ENH: Better monitor reporting and user_data infoPrabhu Ramachandran
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.
2011-11-20Update the urls.py to use the URL_ROOT.Prabhu Ramachandran
2011-11-20ENH: Adding a URL_ROOT configuration option.Prabhu Ramachandran
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.
2011-11-20ENH: Python server can now run multiple serversPrabhu Ramachandran
- 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.
2011-11-19BUG: Misc. bug fixes.Prabhu Ramachandran
- 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.
2011-11-19Changed load_questions to load_examPrabhu Ramachandran
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.
2011-11-19Configure server port and timeout in settings.pyPrabhu Ramachandran
Also updated documentation.
2011-11-19Setting timeout to 2 and refactoring a littlePrabhu Ramachandran
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.
2011-11-19ENH: Fixing login/registration forms and uname/pwdPrabhu Ramachandran
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.
2011-11-19Adding load_questions to load from Python code.Prabhu Ramachandran
This lets us load questions using Python syntax which is rather convenient.
2011-11-19Moving load_questions to load_questions_xmlPrabhu Ramachandran
Changing the command ./manage.py load_questions to load_questions_xml.
2011-11-18BUG: Submit code when time is donePrabhu Ramachandran
Also check if user is authenticated or not when displaying question or checking.
2011-11-17ENH/BUG: Showing number of marks and fixing bug.Prabhu Ramachandran
The check view was not showing the quiz description.
2011-11-17BUG/ENH: Cleaning up page templates and fixing bugPrabhu Ramachandran
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.
2011-11-17ENH: Added a Quiz model and time based papersPrabhu Ramachandran
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.
2011-11-17ENH: Changing Quiz to QuestionPaper.Prabhu Ramachandran
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.
2011-11-16DOC: Updating README.Prabhu Ramachandran