|Links to HEAD:||(view) (download) (as text) (annotate)|
syncing with HEAD
This commit was manufactured by cvs2svn to create branch 'rel-2-4-patches'.
updated copyright dates
This commit was manufactured by cvs2svn to create branch 'rel-2-4-dev'.
Update database handling to save the last submitted answer to problems for every preview or new page.
Bug fixes: correct hideWork -> hide_work, and ensure version numbers get appended to started tests.
Add set-level proctor login password for proctored gateway/quiz assignments, improve handling of proctor keys and permissions for proctored assignments, bug fixes for recently added features. This commit - adds the ability to specify a set-level proctor for proctored gateway/quiz assignments. this is done by adding a proctor with a username "set_id:setName", where "setName" is the name of the set, adding a "restricted_login_proctor" field to the set tables in the database, and allowing Authen::Proctor and ContentGenerator::LoginProctor to appropriately deal with this possibility. - updates proctor permissions and status in global.conf.dist, changing the old "proctor_quiz" permission level (3) into two levels, "proctor_quiz_login" and "proctor_quiz_grade". wwdb_upgrade includes a stanza to make this change to proctors that already exist in courses. - adds a "Proctor" status in %statuses in global.conf, with no valid behaviors. this allows the creation of proctor users in a course who have the permissionLevel to login (and thus proctor), but not to access the course. - improves GatewayQuiz explanatory messages when scores or work are hidden. - improves GatewayQuiz proctor key management, especially for tests with more than one allowed attempt. this includes adding a deleteAllProctorKeys() method to DB.pm. - updates Instructor Tools, UserList.pm and ProblemSetDetail to deal with set-level proctoring. c.f. the note below about the ramifications of these changes. - updates ProblemSetList to deal with new problem set fields set_locations and set-level proctors that are located in a different database table than the set data. - fixes bugs in UserList and ProblemSetDetail dealing with the setting of hide_score, hide_score_by_problem, and time_limit_cap. This update hides set-level proctor users from the classlist editor (UserList.pm) and instructor tools (Index.pm) interfaces. They can be created, modified, and deleted at the homework sets editor page (ProblemSetDetail.pm) only, and there only implicitly: we never indicate that a user is being created or modified behind the screen.
Update to add preliminary support for hiding scores on problems only.
Update to clean up some code and use the ContentGenerator level check for set validity. This update also updates indenting, standardizing on a tab-based indent, which means that the diff will show almost all of the code as changing. Sorry about that.
Comment out residual debugging "warn" statement.
Fix state retention when previewing or checking answers by retaining page but not worrying about preview or answer check. Reduce PG translation for multipage tests by only translating problems on submission or as needed when checking. Clean up some calls to get problems so that db->getAll... problems calls are used. Add course logging for preview, newpage, and grading. Add "Show Past Answers" form/button as appropriate. Please note: there is an interesting question about the order in which problems are logged for the case when problems on a test/quiz are ordered randomly. In this case, the problems are logged in the course answer_log in the order in which they appear on the test. However, when viewing grades and student progress, at the moment this is not the case. In the long run we probably want the grades page to conform to the order shown in the test, while we may want the student progress page to match the order seen in the actual test definition. For the moment that's probably a bug.
Bug fixes in implementation of hide_score and hide_work.
Update to use hide_score and hide_work, adding new values and including the new permissionLevel from global.conf. In ProblemSets.pm also fix hardcopy selector value for gateway tests.
Update for gateway parameters hide_score until set due date, hide_work until set due date, and add time_limit_cap.
Intermediate commit. This should speed up working on long multipage tests by not translating pages that aren't on the current page unless we're grading or checking the test. There is still a bug in the GatewayQuiz module when dealing with multipage, multiattempt tests, however. Management of the grading/ previewing state isn't being handled correctly, so the logic for that needs to be reworked.
Clean up code, completely rewrite output of test headers to simplify logical structure.
Update to fix scoring of multipart problems.
Finish update for weighted problems; update to make attempts_per_version work better for number of attempts greater than one.
Update GatewayQuiz ContentGenerator to use new NewSQL API, clean up some comments, deal with bug where last answer would be saved when there are no remaining allowed submissions, update to use maxAttempts == -1 instead of 0, update to try and deal with problems with weights not equal to one (untested).
Add hide_score and hide_work functions, allowing suppression of the display of the score on the assignment and/or the work the student submitted. Also updates the treatment of due and answer_date fields. Now setting the due and answer dates to the same time will (should?) make answers available once the test is completed (e.g., all attempts are exhausted); setting the answer date to after the due date leaves the correct answers unavailable until a similar time has passed from when the test is completed. And the problem/page jump links are cleaned up to be more concise for multipage tests.
remove unused reference to findDefaults
Gateway update: be more aware of undefined fields for gateway parameters. I don't think this should be an issue, but saw a case where an "undefined value in subtraction" error was being returned; hopefully this will provide some level of protection against that.
use before/after/between from Utils.pm
GatewayQuiz update: improve timer, update error messages when overtime, maybe some other minor changes I can't think of.
GatewayQuiz update: revise timer to make display more elegant and robust.
GatewayQuiz update: use PGrandom to randomly order problems when that is called for (avoids using srand() repeatedly).
GatewayQuiz update for multiple page tests; bug fix, adds better preview/ problem checking state retention when switching between pages.
GatewayQuiz preliminary commit adding multi-page test capability. This requires updating the database to add the problems_per_page record to the set tables of the database.
Converting from use CGI to use WeBWorK::CGI The only substantial change is in Hardcopy where set_id was changed to "sid" I believe that change is correct.
Try using the -nosticky pragma to see if this fixes the problem.
Fix jsMath output in the answer preview when the student answer conains < or > (make sure they don't look like tags).
Support for new Authen class: * Use new Authen::Proctor subclass for proctor verification rathern than old verifyProctor method of Authen.
forward-port from rel-2-2-dev: (security checks for sourceFilePath -- fixes bug #970. * Utils.pm: add path_is_subdir * Problem.pm: use path_is_subdir to check sourceFilePath fix logic on when to use sourceFilePath * ProblemSet.pm: use path_is_subdir to check sourceFilePath add permissions check around sourceFilePath handler * ProblemSets.pm: use path_is_subdir to check sourceFilePath * GatewayQuiz.pm: remove code to preserve editMode/sourceFilePath (not used))
forward-port from rel-2-2-dev: (update copyright date range -- 2000-2006. this is probably overkill, since there are some files that were created after 2000 and some files that were last modified before 2006.)
Gateway update: fix typo.
Gateway update: fix a number of quiet bugs - deal with sets having no problems - add grace period read from conf file when determining test time expiration - retain consistent current time throughout processing - improved messages for tests running over time - add score and time messages to finished sets - save version_last_attempt_time for submitted sets that run over time
give the style used for the attempt results summary a structural name (attemptResultsSummary) rather than a sort-of-stylistic name (emphasis).
Use optionsMacro for options like we do in Problem.pm. This reduces the amount of (but doesn't eliminate) duplicated code between Problem and GatewayQuiz.
added "use WeBWorK::Debug" to allow debug() statements to work.
added HiRes timing data to WeBWorK::Debug, removed WeBWorK::Timing. all existing calls to the WeBWorK::Timing methods now pass the same messages to debug(). added an option to WeBWorK::Debug to allow only certain subroutines to log debug messages, in addition to the existing option to bar certain subroutines from doing so.
Preliminary commit of changes to add Gateway module. This adds to WeBWorK - the ability to create versioned, timed problem sets ("gateway tests") for which all problems are displayed on a single page ("versioned" means that students can get multiple versions of the problem set), - the ability to create sets that draw problems from groups of problems, and - the ability to create sets that require a proctor login to start and grade. Sets can be defined as gateway tests or proctored gateway tests from the ProblemSetDetail page. Not quite bug-free yet. Known bugs include handling of problem values on the Student Progress page (I think this may be a problem with changing from sql database format where all entries were 'text' to sql_single in ver 2.1, where they are integer), and a division by zero error on the grades page (which may be the same problem). Tests with a number of attempts per version greater than one haven't been carefully tested, nor has scoring of gateway tests.
renamed "problem set" to "homework set" in page content. closes bug #797.
updated to use the "unified request" object. this file needs quite a bit of refactoring (along with Problem.pm).
changed template escape handler functions to grab data from $r->urlpath instead of @_ for compatability with dispatch_new.
made changes in checking for permissionLevel so that zero was recognized as a legitimate level. --Mike
As best I can determine all "get" commands to the database are now checked and appropriate action (usually "die") is taken if no object is returned. One exception. The multiple "gets" such as getGlobalSets(@setNames) are not checked -- if a given setName is not found is an empty object returned? in the list or is nothing returned? --Mike
Normalized headers. All files now contain the text below as a header. This is important since all files now (a) use the full name of the package, (b) assign copyright to "The WeBWorK Project", (c) give the full path of the file (relative to CVSROOT) instead of simply the file name, and (d) include license and warranty information. Here is the new header: ################################################################################ # WeBWorK Online Homework Delivery System # Copyright © 2000-2003 The WeBWorK Projcct, http://openwebwork.sf.net/ # $CVSHeader$ # # This program is free software; you can redistribute it and/or modify it under # the terms of either: (a) the GNU General Public License as published by the # Free Software Foundation; either version 2, or (at your option) any later # version, or (b) the "Artistic License" which comes with this package. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See either the GNU General Public License or the # Artistic License for more details. ################################################################################
Made minor modifications so that GatewayQuiz would run again. It hadn't been tested for months and other parts of the system had moved on. This is still very much a mockup for delivering gateway quizzes. --Mike
replaced tempdir() with makeTempDirectory() -sam
The GatewayQuiz can be reached by using the url courseName/quiz_mod/setNumber It will produce the entire set as a quiz. Recording functions, and the ability to limit the number of entries have not yet been implemented. --Mike
This presents an entire set as a quiz. to be done: (1) The answer presentation has to be filled in. (2) Changes to PG.pl and the environment variables have to be made so that different answers don't collide. The idea is to prefix all answers with something indicating the problem number e.g. pRoBlEm04-AnSwEr05 I think it better to pass in an explicit variable rather than rely on problem numbers. (3) should this work automatically for NAMED_ANS as well? Pro: --it's done for you. Con: You can't refer to answers in other parts of the quiz. (Put perhaps you shouldn't to promote atomic behavior.) --Mike
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
|aubreyja at gmail dot com||ViewVC Help|
|Powered by ViewVC 1.0.9|