Log of /trunk/webwork2/lib/WeBWorK/ContentGenerator/Instructor/ProblemSetDetail.pm
Parent Directory
Revision
6180 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jan 11 18:28:13 2010 UTC (3 years, 4 months ago) by
gage
File length: 83939 byte(s)
Diff to
previous 6173
Fix to prevent the error messages that occur when the problem set has
not yet been assigned to a user.
Still a bit fragile and under tested but it at least stops the error
messages from being issued.
Revision
6173 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Dec 17 03:55:01 2009 UTC (3 years, 5 months ago) by
gage
File length: 83782 byte(s)
Diff to
previous 6158
Minor change to PGProblemEditor.pm to define DEFAULT_SEED
Major bug fix for ProblemSetDetail (but 1725)
Enforces all files assigned in ProblemSetDetail module to be accessible
through the course temp directory.
Fix is one line change near, line 1576
Revision
5846 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 10 15:00:31 2008 UTC (4 years, 10 months ago) by
glarose
File length: 83331 byte(s)
Diff to
previous 5835
ProblemSetDetail: correct typo in grouping set message, don't show
problem seeds for usersets of gateway assignments (because the seeds
there aren't used for anything; only the version's seeds matter).
Revision
5710 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 20 19:52:55 2008 UTC (4 years, 11 months ago) by
glarose
File length: 81414 byte(s)
Diff to
previous 5704
Allow instructors to edit versions of an assignment. This requires
that the input setID have ,vN appended, where N is the version number
to edit. The ability to edit and try problems from gateway tests
remains problematic, however.
Revision
5704 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 19 19:05:00 2008 UTC (4 years, 11 months ago) by
glarose
File length: 76959 byte(s)
Diff to
previous 5322
Gateway cleanup: make mark correct function mark all set versions
correct for gateway tests, take max attempts option out of problem
selectors for gateways (this should be strictly a function of the
set-level versions_per_interval).
Revision
5322 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 14 13:50:34 2007 UTC (5 years, 9 months ago) by
glarose
File length: 74988 byte(s)
Diff to
previous 5319
bug fix. when updating to hide set header display I assumed that
the $db->getMergedSet($userToShow, $setID) would succeed, which isn't
the case for a set that isn't assigned to any users (in particular,
which isn't assigned to the instructor who is editing the set). this
bug fix resolves that by instead using the global set to determine if
headers should be displayed when the call to get the merged set fails.
Revision
5254 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 9 14:55:23 2007 UTC (5 years, 9 months ago) by
glarose
File length: 74652 byte(s)
Diff to
previous 5137
Update ProblemSet editing to take out editing of set headers for
gateway tests; this is a bit of a hack to deal with the problem
that editing/trying the set header fails for a gateway test. In
that the set header file isn't used for gateway tests I think this
is probably reasonable behavior.
Revision
4971 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 30 19:56:01 2007 UTC (5 years, 11 months ago) by
glarose
File length: 73425 byte(s)
Diff to
previous 4929
bug fix to avoid warnings when dealing null fields with setting hide_score
and hide_score_by_problem for users.
Revision
4923 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Apr 4 15:06:01 2007 UTC (6 years, 1 month ago) by
glarose
File length: 73067 byte(s)
Diff to
previous 4922
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.
Revision
4922 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 2 20:58:49 2007 UTC (6 years, 1 month ago) by
glarose
File length: 70798 byte(s)
Diff to
previous 4921
Update ProblemSetDetail to set both hide_score and hide_score_by_problem
set fields with a single selector. This is general, in the sense that
it should allow other combinations of fields to be set if that's
appropriate. This is a tentative commit; we may choose to back out the
changes later, especially if the data model for hiding scores is
changed.
Revision
4918 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Mar 30 19:07:55 2007 UTC (6 years, 1 month ago) by
glarose
File length: 66617 byte(s)
Diff to
previous 4915
Some bugfixes, preliminary commit of relax_restrict_ip function. this
commit
- adds relax_restrict_ip and hide_score_by_problem columns to the set
and set_user tables
- adds the corresponding fields to the Set and UserSet DB Records
- patches 'no location' handling in the location management routine
in CourseAdmin.pm
- improves Authz->checkSet's handling of the case of location
restriction when no addresses exist for a location, makes it
use any cached set that may be available, and makes it honor
relax_restrict_ip
- corrects a typo and some comments in DB.pm
- allows ip restriction fields in ProblemSetList when importing from
or exporting to set definition files
- updates ProblemSetDetail.pm to handle the relax_restrict_ip field
The relax_restrict_ip function has not been well tested.
hide_score_by_problem isn't yet used.
Revision
4915 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Mar 30 12:39:47 2007 UTC (6 years, 1 month ago) by
glarose
File length: 65975 byte(s)
Diff to
previous 4914
Back out error checking of input data fields. This doesn't work with
the initial conversion of a set to a gateway/test assignment, because
at that point the fields have to be zero or empty.
Revision
4914 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 29 19:48:58 2007 UTC (6 years, 1 month ago) by
glarose
File length: 65707 byte(s)
Diff to
previous 4910
More gateway fixes/additions. This commit
- moves javascript code for gateways into htdocs/js/gateway.js,
- updates the gateway template to use that,
- updates the gateway CSS file to use Louis Zulli's workaround
for IE6 not honoring position:fixed, and adds CSS definitions
for a score reporting box for multi-page, multi-attempt quizzes,
- updates the GatewayQuiz module to print a score reporting box
for multi-page, multi-attempt quizzes,
- updates the Grades module to correctly sort problems for
GatewayQuiz assignments that have randomly ordered problems, and
- adds some error checking to ProblemSetDetail to avoid people
doing things like submitting a zero time limit for a gateway.
Revision
4910 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 28 18:32:11 2007 UTC (6 years, 1 month ago) by
glarose
File length: 63652 byte(s)
Diff to
previous 4904
Follow up commit of IP address restriction code. This adds IP address
location management to CourseAdmin.pm, corrects a typo for location
address management in DB.pm, and makes ProblemSetDetail.pm prettier
when displaying locations for restrictions.
Revision
4904 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Mar 27 17:04:02 2007 UTC (6 years, 2 months ago) by
glarose
File length: 63640 byte(s)
Diff to
previous 4874
Preliminary commit of code to restrict access to assignments by client
IP address. This commit adds the database tables for IP address
restriction, updates check_modules.pl to require Net::IP for address
matching, adds database calls in DB.pm for manipulating locations and
addresses, and adds location restriction to the set editing in
ProblemSetDetail.
This commit does not add actual restriction to sets, nor the ability
to create locations to which to restrict access.
Revision
4861 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Mar 9 21:05:37 2007 UTC (6 years, 2 months ago) by
glarose
File length: 58367 byte(s)
Diff to
previous 4846
Update set editing to allow new gateway options, fix display of options
with labels when editing for users, make more gateway parameters editable
for users, add override checkboxes for drop down menus for parameters
when editing for users.
Revision
4846 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Mar 6 21:57:44 2007 UTC (6 years, 2 months ago) by
sh002i
File length: 57055 byte(s)
Diff to
previous 4763
setting $this_set='' is unnecessary. getMergedSet returns undef in
scalar context if the record is not found. also fixed some indentation.
Revision
4763 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 1 22:43:07 2007 UTC (6 years, 3 months ago) by
glarose
File length: 57232 byte(s)
Diff to
previous 4693
Make sure that something gets passed to renderProblems() for the userSet
even when a global set is being edited and it isn't assigned to any
users. Gets rid of "odd number of elements in hash assignment" errors
in renderProblems. Because renderProblems plugs in a fake set if it
gets a false value in for the userSet, sending in '' appears to solve
the problem.
Revision
4693 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Dec 1 17:11:18 2006 UTC (6 years, 5 months ago) by
glarose
File length: 57020 byte(s)
Diff to
previous 4642
Add hide_score and hide_work fields to set editing. Currently these are
sequestered in the Gateway Parameters section of the edit form, because
the fields are only used by gateway/quiz assignments. In the long run
they want to be moved out to apply to assignments more generally.
Revision
4306 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 27 15:49:23 2006 UTC (6 years, 10 months ago) by
glarose
File length: 56252 byte(s)
Diff to
previous 4285
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.
Revision
4258 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jul 14 21:22:04 2006 UTC (6 years, 10 months ago) by
gage
File length: 56015 byte(s)
Diff to
previous 4234
Minor formatting changes in CGI calls. Mostly adding {} at the beginning of functions that
concatenate their inputs.
Revision
4234 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jul 12 01:19:15 2006 UTC (6 years, 10 months ago) by
gage
File length: 56012 byte(s)
Diff to
previous 4202
Mostly replace use CGI; with use WeBWorK::CGI
Files with additional changes to CGI calls are
SendMail, SetMaker PGProblemEditor Instructor::Index and FileManager
Revision
4063 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun May 7 22:01:57 2006 UTC (7 years ago) by
gage
File length: 55887 byte(s)
Diff to
previous 3973
Fixed minor problem where a field might not be defined (in addition to being empty) ==
now we check for defined, then check for non-empty.
-- Mike
Revision
3973 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jan 25 23:13:56 2006 UTC (7 years, 4 months ago) by
sh002i
File length: 55860 byte(s)
Diff to
previous 3901
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.)
Revision
3863 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Dec 29 01:40:38 2005 UTC (7 years, 4 months ago) by
gage
File length: 55780 byte(s)
Diff to
previous 3856
Fixed error in POST url which caused user and key to become multiply defined.
This may also cure some other anomolies such as the can't call method "psvn" without a package or object error
because that error sometimes included a reference to the key. ??? Not sure about this part, but it definitely
causes the multiple user and key definition.
Revision
3856 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Dec 26 22:02:58 2005 UTC (7 years, 4 months ago) by
gage
File length: 55749 byte(s)
Diff to
previous 3853
The major change is to replace Sets assigned to user by UserDetail.pm. (Originally
written by Rob Van Dam and completed by Mike Gage.) It has undergone a significant
amount of testing, but has not yet been used in a course. We can back out of
these changes before creating a release if problems are found.
Revision
3811 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 14 00:16:50 2005 UTC (7 years, 5 months ago) by
gage
File length: 55543 byte(s)
Diff to
previous 3803
Removed a link for creating a blank problem that is not yet fully supported.
Commented out cheerful green goodmessages announcing which subroutine handler of the PGProblemEditor
was being executed. They seem to have fulfilled their role and are no longer needed. :-)
-- Mike
Revision
3802 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Dec 8 19:16:09 2005 UTC (7 years, 5 months ago) by
sh002i
File length: 55407 byte(s)
Diff to
previous 3790
Allow reordering to succeed even if some UserProblems are missing.
Addresses bug #878.
By the way, I found the reordering code really hard to read, so I added
a lot of comments and replaced multidimensional array accesses with a
shorter form. ($sortme[$j][0] rather than $sortme[$j]->[0].) I'd like to
maybe rewrite this code sometime to eliminate some indirection and make
things clearer.
There are two substantive changes:
(1) When a UserProblem has to get reordered, we only reorder it if a
UserProblem record actually exists. If it doesn't exist, we figure out
where it would have moved to, and delete that problem instead.
(2) When moving a UserProblem, the target location either contains or
doesn't contain a record. Previously, the code checked whether a
GlobalProblem existed in this location, assuming that if a global
problem existed the corresponding UserProblem would as well. Now, it
checks whether a UserProblem exists, which allows for missing
UserProblem records.
Lingering questions:
(1) When multiple problems are assigned the same number, this results in
the last one ending up first in the new ordering. I think it would be
more natural for the first one to end up first. This would be an easy
fix.
(2) $force always gets set if reordering needs to be done, so we aren't
able to delete a problem, reorder some other problems, and end up with a
hole where where the deleted problem was. We can either fix this by
mentioning this next to the force checkbox, or change it so that
particular holes (i.e. those left by deleted problems) are allowed when
reordering.
Revision
3790 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Dec 3 21:18:35 2005 UTC (7 years, 5 months ago) by
gage
File length: 52256 byte(s)
Diff to
previous 3787
Modifying messages given when editing set detail.
Also changed the way blank problems are handled in editor.
You can save as or save a copy as
Revision
3787 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Dec 2 18:37:44 2005 UTC (7 years, 5 months ago) by
gage
File length: 50429 byte(s)
Diff to
previous 3721
This fixes bug #919 -- the "update user-sets" line remained
commented out. I'm amazed this bug lasted as long as it did before
it caused trouble.
-- Mike
Revision
3721 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 17 17:36:29 2005 UTC (7 years, 7 months ago) by
sh002i
File length: 50913 byte(s)
Diff to
previous 3720
rearrange addition, deletion, change-saving, and "mark correct" code.
Order is now:
- save changes to existing problems
- mark specified problems correct
- delete specified problems
- add blank problem
This ensures consistencey if multiple operations are performed at once,
and also prevents the values set in the new problem from being
overwritten with empty values when changes to existing problems are
saved.
Revision
3719 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 17 13:58:07 2005 UTC (7 years, 7 months ago) by
gage
File length: 50908 byte(s)
Diff to
previous 3647
Improved handling of case where a blank_problem is asked for in PGProblemEditor.pm
Also improved the random names for new local problems
Added ability to create a new blank problem in ProblemSetDetail.pm (without going to the PGProblemEditor.pm)
however something is not yet working when this problem record is saved.
Sam -- could you look at
lines near 679 to see what the problem is? There is a FIXME note there. I suspect that the addProblemToSet
routine is failing somehow, but there is no error message. Many of the record fields are not filled out --
including the sourceFile path and the number of attempts. The same snippet of code works fine
in PGProblemEditor.pm
--Mike
Revision
3377 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 14 13:15:27 2005 UTC (7 years, 10 months ago) by
glarose
File length: 48413 byte(s)
Diff to
previous 3175
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.
Revision
3175 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 17 17:42:36 2005 UTC (8 years, 3 months ago) by
gage
File length: 45791 byte(s)
Diff to
previous 3102
Fixed error in PGProblemEditor.pm that prevented you from adding new problem in
a set. Added comment to ProblemSetDetail.pm
Revision
3102 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jan 25 21:22:35 2005 UTC (8 years, 4 months ago) by
toenail
File length: 45756 byte(s)
Diff to
previous 3061
display mode was inadvertently reset with other problem/set elements
that are safe to reset (rather than keep sticky) since they will be updated
from the newly saved database record or thrown away as expected
Revision
3061 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 21 17:47:57 2004 UTC (8 years, 5 months ago) by
toenail
File length: 45730 byte(s)
Diff to
previous 3046
Fixed minor display problem where empty (not-overriden) date values
were being displayed as 12/31/1969
Closes #748
Revision
3046 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Dec 18 21:22:20 2004 UTC (8 years, 5 months ago) by
gage
File length: 45476 byte(s)
Diff to
previous 3036
Modifications to make sure that problems with weight 0
print weight as 0 rather than as a blank.
This addresses bug #730
Revision
2913 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Oct 13 01:55:15 2004 UTC (8 years, 7 months ago) by
sh002i
File length: 44698 byte(s)
Diff to
previous 2904
optimizations in database access (makes a big difference).
My notes:
Here's the initial timing data for a set with 10 problems:
TIMING 57300 2 1097622363.881851 (16.734902) mth162: END (assumed)
$mergedRecord is never used in FieldHTML(). However, it is populated
with a merged set or problem, which requires two database calls and a
merge operation. It appears to be OK to get rid of these calls
altogether.
TIMING 57582 0 1097624803.340321 (11.219321) mth162: END (assumed)
i'm not as worried about the several DB calls in
handle_problem_numbers(), since that only happens when "Save Changes" is
clicked. not looking at those for now...
in initialize(), the global set is fetched from the database at the
beginning (and put into $setRecord). then it is fetched again in two
places, first in a conditional if the "submit_changes" param is defined,
and then in the following conditional, when "submit_changes" is defined
and there was no error. taking this out...
(those conditionals are pretty weird to begin with. i would have
expected something more like "if (submit_changes) { ... unless (error) {
... } }". probably from grafting code together?)
ok, the big one is getting pre-fetched records into FieldHTML. I added
$setRecord and $problemRecord parameters to FieldHTML (and $Set and
$Problem parameters to FieldTable to pass through to FieldHTML), and
pre-fetch GlobalProblems, UserProblems, and MergedProblems en masse
before going through the problem IDs in body().
TIMING 58456 0 1097632191.012939 (4.516615) mth162: END (assumed)
And it's only a little more than that when viewing for a particular
user:
TIMING 58453 0 1097632169.074723 (6.513201) mth162: END (assumed)
Revision
2834 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 27 19:08:47 2004 UTC (8 years, 7 months ago) by
toenail
File length: 39384 byte(s)
Diff to
previous 2817
Preserves sticky values on all form submissions
Added reset form button to delete any unsaved changes
Added file error messgaes for headers and problems with
non-existant, invalid, or duplicate filenames
Revision
2816 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 23 12:59:53 2004 UTC (8 years, 8 months ago) by
toenail
File length: 36994 byte(s)
Diff to
previous 2807
Added ComboBoxes for header information
Allows user to enter a user specified value
or to select from currently existing header files
Revision
2794 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Added
Fri Sep 17 19:40:42 2004 UTC (8 years, 8 months ago) by
toenail
File length: 34559 byte(s)
Replaces ProblemSetEditor.pm and ProblemList.pm as primary form of editing
set/problem information.
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.