[system] / trunk Repository:
ViewVC logotype

Log of /trunk

View Directory Listing Directory Listing


Sticky Revision:

Revision 5067 - Directory Listing
Modified Thu Jun 28 22:33:31 2007 UTC (12 years, 7 months ago) by dpvc
Added perl method so that the result is always a number (not a blank
when it is false).

Revision 5066 - Directory Listing
Modified Thu Jun 28 22:31:59 2007 UTC (12 years, 7 months ago) by dpvc
Updated to use the new context methods.

Revision 5065 - Directory Listing
Modified Thu Jun 28 21:32:25 2007 UTC (12 years, 7 months ago) by mleventi
More bug squashed.

Revision 5064 - Directory Listing
Modified Thu Jun 28 21:31:48 2007 UTC (12 years, 7 months ago) by mleventi
More bugs squashed

Revision 5063 - Directory Listing
Modified Thu Jun 28 20:46:18 2007 UTC (12 years, 7 months ago) by mleventi
User Creation Bug Squashed.

Revision 5062 - Directory Listing
Modified Thu Jun 28 20:45:35 2007 UTC (12 years, 7 months ago) by mleventi
User creation bug squashed.

Revision 5061 - Directory Listing
Modified Thu Jun 28 20:44:17 2007 UTC (12 years, 7 months ago) by dpvc
Update to use new context methods.

Revision 5060 - Directory Listing
Modified Thu Jun 28 20:42:53 2007 UTC (12 years, 7 months ago) by dpvc
Use Value->context rather than $$Value::context.

Revision 5059 - Directory Listing
Modified Thu Jun 28 20:17:12 2007 UTC (12 years, 7 months ago) by dpvc
Updated to use new context methods.

Revision 5058 - Directory Listing
Modified Thu Jun 28 20:09:32 2007 UTC (12 years, 7 months ago) by mleventi
Added php4 support.

Revision 5057 - Directory Listing
Modified Thu Jun 28 20:08:49 2007 UTC (12 years, 7 months ago) by mleventi
Squashing more bugs adding php4 support

Revision 5056 - Directory Listing
Modified Thu Jun 28 11:32:10 2007 UTC (12 years, 7 months ago) by dpvc
Make List() preserve the correct_ans field when it is used to coerce a
single element to a singleton list.

Revision 5055 - Directory Listing
Modified Thu Jun 28 02:28:20 2007 UTC (12 years, 7 months ago) by dpvc
Update to use new context methods.

Revision 5054 - Directory Listing
Modified Thu Jun 28 02:26:44 2007 UTC (12 years, 7 months ago) by dpvc
Updated to use new package method to look up the Formula package name.

Revision 5053 - Directory Listing
Modified Thu Jun 28 02:23:21 2007 UTC (12 years, 7 months ago) by dpvc
Change documentation for how to copy a context.

Revision 5052 - Directory Listing
Modified Thu Jun 28 02:21:32 2007 UTC (12 years, 7 months ago) by dpvc
Use new package method to find the Function package name.

Revision 5051 - Directory Listing
Modified Thu Jun 28 02:20:00 2007 UTC (12 years, 7 months ago) by dpvc
Use new context methods.

Revision 5050 - Directory Listing
Modified Thu Jun 28 02:17:32 2007 UTC (12 years, 7 months ago) by dpvc
Updated context method calls.

Revision 5049 - Directory Listing
Modified Thu Jun 28 02:14:33 2007 UTC (12 years, 7 months ago) by dpvc
Use the new context copying method, and copy the Point context not the
Vector context.

Revision 5048 - Directory Listing
Modified Thu Jun 28 02:11:28 2007 UTC (12 years, 7 months ago) by dpvc
Updated to use new context methods.

Revision 5047 - Directory Listing
Modified Thu Jun 28 02:08:18 2007 UTC (12 years, 7 months ago) by dpvc
The file needs to return a true value.

Revision 5046 - Directory Listing
Modified Thu Jun 28 02:06:36 2007 UTC (12 years, 7 months ago) by dpvc
Updated to use new context copying method.

Revision 5045 - Directory Listing
Modified Thu Jun 28 01:55:03 2007 UTC (12 years, 7 months ago) by dpvc
Updated to use the new context copy method.

Revision 5044 - Directory Listing
Modified Thu Jun 28 01:51:27 2007 UTC (12 years, 7 months ago) by dpvc
Use the new method to copy the String context

Revision 5043 - Directory Listing
Modified Thu Jun 28 01:39:58 2007 UTC (12 years, 7 months ago) by dpvc
Updated to comply with recent changes in the Value library.

Revision 5042 - Directory Listing
Modified Thu Jun 28 01:31:09 2007 UTC (12 years, 7 months ago) by dpvc
Recent changes to automatically do promotion in the Value methods was
a mistake.  I put it back into the subclass methods again.

Revision 5041 - Directory Listing
Modified Wed Jun 27 23:30:54 2007 UTC (12 years, 7 months ago) by dpvc
Fixed incorrect use of numeric rather than string comparison.

Revision 5040 - Directory Listing
Modified Wed Jun 27 22:45:39 2007 UTC (12 years, 7 months ago) by dpvc
Don't create a new copy of an object if it is already of the correct
class in promote().

Revision 5039 - Directory Listing
Modified Wed Jun 27 20:22:20 2007 UTC (12 years, 7 months ago) by dpvc
OOPS, the example in the previous message is wrong.  You need to use

      $a = Context()->variables->get("a")->{value};
      $b = Context()->variables->get("b")->{value};

(brtaces around the "value").

Revision 5038 - Directory Listing
Modified Wed Jun 27 20:20:12 2007 UTC (12 years, 7 months ago) by dpvc
Adaptive-parameter values are now stored in the Context so that they
can be retreived if needed.  E.g.,

    Formula("a x + b") == Formula("5 x - 3");
    $a = Context()->variables->get("a")->value;
    $b = Context()->variables->get("b")->value;

will have $a equal to 5 and $b equal to -3.

Revision 5037 - Directory Listing
Modified Wed Jun 27 19:50:45 2007 UTC (12 years, 7 months ago) by dpvc
Changed the with() method to produce a (shallow) copy rather than
modify the original object.  So now $x->with(foo=>'bar') will make a
copy of $x with a field "foo" set to "bar" rather than set "foo" to
"bar" in $x itself.

(This is in response to discussion from our June 26th meeting at UofR.)

Revision 5036 - Directory Listing
Modified Tue Jun 26 06:46:33 2007 UTC (12 years, 7 months ago) by mleventi
Fixed add_user functionality.

Revision 5035 - Directory Listing
Modified Tue Jun 26 06:45:17 2007 UTC (12 years, 7 months ago) by mleventi
Squashing some bugs with the WebworkSOAP webservice.

Revision 5034 - Directory Listing
Modified Mon Jun 25 21:03:30 2007 UTC (12 years, 7 months ago) by mleventi
New iteration of wwassignment using WeBWorK SOAP webservices.

Revision 5033 - Directory Listing
Modified Mon Jun 25 21:02:19 2007 UTC (12 years, 7 months ago) by mleventi
New DB schema format.

Revision 5032 - Directory Listing
Modified Mon Jun 25 20:57:56 2007 UTC (12 years, 7 months ago) by mleventi
Being replaced by an xml format to describe table structure to Moodle.

Revision 5031 - Directory Listing
Modified Mon Jun 25 20:56:37 2007 UTC (12 years, 7 months ago) by mleventi
Being replaced by mod_form.php in Moodle 1.7 and upwards.

Revision 5030 - Directory Listing
Modified Mon Jun 25 13:18:45 2007 UTC (12 years, 7 months ago) by gage
Added check for Email module

Revision 5029 - Directory Listing
Modified Mon Jun 25 12:10:49 2007 UTC (12 years, 7 months ago) by gage
Changes to make unarchiving possible with a choice names for the unarchived files.
To do:  Provide updating of the database.  Currently there may be difficulties if the database is upgradedbetween the time the course is archived and the course is unarchived.
The behavior with sql_moodle  data schemas has not been tested.

Revision 5028 - Directory Listing
Modified Mon Jun 25 12:09:58 2007 UTC (12 years, 7 months ago) by gage
Changes to make unarchiving possible with a choice names for the unarchived files.

To do:  Provide updating of the database.  Currently there may be difficulties if the database is upgraded
between the time the course is archived and the course is unarchived.

The behavior with sql_moodle  data schemas has not been tested.

Revision 5027 - Directory Listing
Modified Sat Jun 23 20:20:09 2007 UTC (12 years, 8 months ago) by dpvc
Forgot to handle context in the make() method.

Revision 5026 - Directory Listing
Modified Sat Jun 23 20:08:07 2007 UTC (12 years, 8 months ago) by dpvc
Make the Package method really be a method of the context rather than
the Value objects, and make the Value method call the context one.
This means it is not necessary to pass the context as a parameter any
longer.

Revision 5025 - Directory Listing
Modified Sat Jun 23 20:05:49 2007 UTC (12 years, 8 months ago) by dpvc
Was taking the context form the wrong position in the parameter list.

Revision 5024 - Directory Listing
Modified Sat Jun 23 19:46:00 2007 UTC (12 years, 8 months ago) by dpvc
Fix typo, and handle case where Allow is called from package.

Revision 5023 - Directory Listing
Modified Sat Jun 23 19:45:17 2007 UTC (12 years, 8 months ago) by dpvc
Make context method work when called from package rather than blessed object.

Revision 5022 - Directory Listing
Modified Fri Jun 22 21:19:26 2007 UTC (12 years, 8 months ago) by mleventi
Testing IDE Integration into CVS

Revision 5021 - Directory Listing
Modified Fri Jun 22 19:08:30 2007 UTC (12 years, 8 months ago) by sh002i
move $defaultTheme above $webworkFiles{stylesheet} so that it actually works.

Revision 5020 - Directory Listing
Modified Fri Jun 22 19:05:59 2007 UTC (12 years, 8 months ago) by sh002i
use $ce->{externalPrograms}{gzip} rather than 'gzip'.

Revision 5019 - Directory Listing
Modified Fri Jun 22 18:57:40 2007 UTC (12 years, 8 months ago) by sh002i
change default location of gzip to match FHS, remove old disabled code

Revision 5018 - Directory Listing
Modified Fri Jun 22 16:56:50 2007 UTC (12 years, 8 months ago) by apizer
add gzip to list of apps to check for

Revision 5017 - Directory Listing
Modified Fri Jun 22 12:40:32 2007 UTC (12 years, 8 months ago) by dpvc
Left out a "return" in my changes of two weeks ago.  OOPS!

Revision 5016 - Directory Listing
Modified Fri Jun 22 02:39:24 2007 UTC (12 years, 8 months ago) by dpvc
Handle ans_array() correctly again (context issues, and allow parser
to create a formula from an existing subtree).

Revision 5015 - Directory Listing
Modified Fri Jun 22 01:56:06 2007 UTC (12 years, 8 months ago) by dpvc
more fixes to handle the contexts properly.

Revision 5014 - Directory Listing
Modified Fri Jun 22 00:26:47 2007 UTC (12 years, 8 months ago) by dpvc
Fixed context issues and a typo (must have been interrupted when
editing this file earlier).  Also modified the units pattern to allow
trailing spaces.

Revision 5013 - Directory Listing
Modified Thu Jun 21 23:29:10 2007 UTC (12 years, 8 months ago) by dpvc
Don't use \cdot with things like 3i.

Revision 5012 - Directory Listing
Modified Thu Jun 21 23:10:13 2007 UTC (12 years, 8 months ago) by dpvc
Added Package method to the Context object to replace the
Value->Package() calls and simplify the $self->Package calls (don't
have to look up the context again).

Revision 5011 - Directory Listing
Modified Thu Jun 21 20:27:06 2007 UTC (12 years, 8 months ago) by mleventi
The second iteration of the WeBWorK Moodle bridge on problem sets.

Revision 5010 - Directory Listing
Modified Thu Jun 21 20:18:50 2007 UTC (12 years, 8 months ago) by mleventi
Modified to add WSDL handler and SOAP handler for new webservices.
Temporary fix to bug in Apache2 by hardcoding paths.

Revision 5009 - Directory Listing
Modified Thu Jun 21 20:17:02 2007 UTC (12 years, 8 months ago) by mleventi
Inital Commit of SOAP services.

Revision 5008 - Directory Listing
Modified Tue Jun 19 19:04:45 2007 UTC (12 years, 8 months ago) by apizer
Change externalPrograms{tar} from /usr/bin/tar to /bin/tar which is the
"standard" location for tar

Revision 5007 - Directory Listing
Modified Tue Jun 19 18:39:45 2007 UTC (12 years, 8 months ago) by apizer
Changed Allow => [qw/from all/] to Allow => "from all" in two places

Revision 5006 - Directory Listing
Modified Sat Jun 16 02:08:02 2007 UTC (12 years, 8 months ago) by dpvc
Fixed an error with the modulo method, and adjusted formatting.

Revision 5005 - Directory Listing
Modified Sat Jun 16 02:07:07 2007 UTC (12 years, 8 months ago) by dpvc
Fixed a problem with modulo method.

Revision 5004 - Directory Listing
Modified Fri Jun 15 03:17:31 2007 UTC (12 years, 8 months ago) by dpvc
Only set the context if the data is a MathObject.

Revision 5003 - Directory Listing
Modified Wed Jun 13 18:39:14 2007 UTC (12 years, 8 months ago) by dpvc
Bring jsMath up to version 3.4c.

This version adds new functionality to jsMath; in particular, most of
the macros and environments from the amsmath AMS-LaTeX package are now
available in jsMath's AMSmath extension.  There are also some bug
fixes.  See the change log for more details.

Revision 5002 - Directory Listing
Modified Tue Jun 12 11:45:33 2007 UTC (12 years, 8 months ago) by glarose
Fix typo.

Revision 5001 - Directory Listing
Modified Tue Jun 12 04:05:56 2007 UTC (12 years, 8 months ago) by dpvc
More fixes for creating items in the corret context.  Also added a
method for looking up the package associated with a particular Parser
class (for consistency with the Value->Package call).

Revision 5000 - Directory Listing
Modified Tue Jun 12 01:02:05 2007 UTC (12 years, 8 months ago) by gage
done testing

Revision 4999 - Directory Listing
Modified Tue Jun 12 01:00:53 2007 UTC (12 years, 8 months ago) by gage
testing -- please ignore

Revision 4998 - Directory Listing
Modified Tue Jun 12 01:00:10 2007 UTC (12 years, 8 months ago) by gage
testing -- added a space.

Revision 4997 - Directory Listing
Modified Mon Jun 11 18:16:40 2007 UTC (12 years, 8 months ago) by gage
Fixing docementation so that it can be read from the web.

Revision 4996 - Directory Listing
Modified Sun Jun 10 11:34:27 2007 UTC (12 years, 8 months ago) by dpvc
Allow promote() to accept a context as the first argument so that the
promoted object can be forced into the given context.

Revision 4995 - Directory Listing
Modified Sun Jun 10 01:19:29 2007 UTC (12 years, 8 months ago) by dpvc
Use numeric rather than string comparison to see if contexts are
equal.

Revision 4994 - Directory Listing
Modified Sun Jun 10 01:17:29 2007 UTC (12 years, 8 months ago) by dpvc
Update to handle the fact that the Value package now includes the
context with all MathObjects.  (This may still need some work.)

Revision 4993 - Directory Listing
Modified Fri Jun 8 12:09:53 2007 UTC (12 years, 8 months ago) by dpvc
Added more flexible type checking for MathObject classes.  This makes
it possible to correctly match types even when the context has
specified a different package to handle a given type, for example.

Revision 4992 - Directory Listing
Modified Fri Jun 8 11:05:48 2007 UTC (12 years, 8 months ago) by dpvc
Fixed typo.

Revision 4991 - Directory Listing
Modified Fri Jun 8 02:09:21 2007 UTC (12 years, 8 months ago) by dpvc
Update new() and make() methods to accept a context as the first
parameter (making it easier to create objects in a given context
without having to resort to a separate call to coerce them to the
given context after the fact).

Revision 4990 - Directory Listing
Modified Thu Jun 7 23:48:20 2007 UTC (12 years, 8 months ago) by dpvc
More updates to use the new Value->Package() call.  This will make the
standard object-creation functions like Real() and Complex() use the
new lookup method.

Revision 4989 - Directory Listing
Modified Thu Jun 7 23:47:14 2007 UTC (12 years, 8 months ago) by dpvc
can't use inContext() with the "fake" make that produces perl reals,
so remove it for now.  (Perhaps we should just go with the Reals() and
not try to be fancy about it, since it will often get converted to a
Real anyway).  This will need more work.

Revision 4988 - Directory Listing
Modified Thu Jun 7 23:43:42 2007 UTC (12 years, 8 months ago) by dpvc
Give the MathObjects answer checker a _filter_name so it is easier to recognize.

Revision 4987 - Directory Listing
Modified Thu Jun 7 21:54:46 2007 UTC (12 years, 8 months ago) by dpvc
Added Value->Package(name[,context]) to look up what package is
currently set to handle the named type.  E.g.,
Value->Package("Complex") usually returns "Value::Complex".  These can
be overridden in the Context so that modified vesions of the
MathObjects can be made to replace the existing ones more easily.  In
particular, the Parser classes should call these (not yet implemented)
when they create objects, so that you can override the object they
create.

Also cleaned up some more context issues (with still more to come).

Revision 4986 - Directory Listing
Modified Thu Jun 7 18:19:56 2007 UTC (12 years, 8 months ago) by sroubos
Changed POD documentation

Revision 4985 - Directory Listing
Modified Thu Jun 7 17:42:29 2007 UTC (12 years, 8 months ago) by sroubos
Make readable by POD documentation from the web

Revision 4984 - Directory Listing
Modified Thu Jun 7 13:20:36 2007 UTC (12 years, 8 months ago) by dpvc
Always root the current directory in the templates directory (unless
it is an absolute reference absolute).

Include the set number in the names of PNG files, just like in GIF and
other files, so that they will not conflict with ones of the same name
in other sets.

Revision 4983 - Directory Listing
Modified Thu Jun 7 13:14:52 2007 UTC (12 years, 8 months ago) by dpvc
Allow Compute() to create formulas as well as Value objects (with the
correct answer set to the original formula).

Also update some comments and formatting.

Revision 4982 - Directory Listing
Modified Thu Jun 7 13:12:45 2007 UTC (12 years, 8 months ago) by dpvc
Normalized the definitions of i, j, k, etc.

Revision 4981 - Directory Listing
Modified Thu Jun 7 12:35:02 2007 UTC (12 years, 8 months ago) by dpvc
Context() now always makes a copy of the context, even if it comes
from the problem's local contxt table.  That way it will work
consistently no matter where the context comes from.  (In the past, if
PGcourse.pl made a local copy of a context that it could modify, for
example, then Context() would not copy it when it was called, and that
means problems that relied on Context(name) resetting the context to
its original values would not work properly.

Revision 4980 - Directory Listing
Modified Thu Jun 7 12:30:28 2007 UTC (12 years, 8 months ago) by dpvc
Updated to include some recent changes in documentation and removal of
old commented-out code.

Revision 4979 - Directory Listing
Modified Thu Jun 7 11:59:05 2007 UTC (12 years, 8 months ago) by dpvc
More updates for marking MathObjects with the context in which they
were created, so they should now work like the Formula objects in that
respect.  As they are combined via overloaded operators, they should
pass on their contexts correctly.

Also normalized the use of getFlag() to obtain flags from the
MathObject's context rather than looking in the context directly.
This allows the math object to override the flag by setting the flag
value in the object's hash (e.g., $f->{tolerance} = .001).  I've also
added the ability to override context flags via the answerHash (e.g.,
$f->cmp(tolerance => .001)), though some filtering may need to be
added to this at some point.  Note that ONLY the context flags can be
overridden, not other parts of the context.

Revision 4978 - Directory Listing
Modified Wed Jun 6 23:23:34 2007 UTC (12 years, 8 months ago) by dpvc
This file is now obsolete since the functionality has been added to
the Real and Complex objects directly.  So this file is maintained
only for backward compatibility.

Revision 4977 - Directory Listing
Modified Wed Jun 6 23:02:06 2007 UTC (12 years, 8 months ago) by dpvc
Foxed some documentation.  You use the standard "Numeric" and
"Complex" contexts, not "RealPeriodic" and "ComplexPeriodic",
for these.

Revision 4976 - Directory Listing
Modified Wed Jun 6 23:00:14 2007 UTC (12 years, 8 months ago) by dpvc
Added comparisons for periodic reals and complex numbers (numbers that
match up to reduction module some number).  This makes
contextPeriodic.pl obsolete, but the problems that use it should not
need to change.  (It would be good to remove the loadMacros() call,
however.)

Reals and Complex numbers now overload the % operator for the modulo
operation.

Revision 4975 - Directory Listing
Modified Wed Jun 6 21:44:05 2007 UTC (12 years, 8 months ago) by dpvc
This begins some major updates to the Parser and Value libraries.
This may make the MathObjects unstable as things shake down, but I'll
try to keep that to a minimum.

This update reorganizes how the overloading of operations are
implemented.  The base Value class is now overloaded rather than the
individual Value classes.  This makes it easier to make subclasses
that take advantage of the overloading.

The code that handles promoting one MathObject to another has been
updated as a part of this.  This should also make subclassing the
existing MathObjects more flexible.

In the past, Formula objects included a pointer to the Context in
which the object was created, but other MathObject did not.  This
update is the first round of updates to include the context in the
other MathObjects, but more work needs to be done.

The changes here should not affect existing problems; it is possible
that some macro files will need to be updated, but none of the
standard ones in pg/macros seem to need it at the moment.

Revision 4974 - Directory Listing
Modified Wed Jun 6 17:58:03 2007 UTC (12 years, 8 months ago) by gage
This is an experimental version of PGcomplexmacros2Exp.pl

Revision 4973 - Directory Listing
Modified Fri Jun 1 14:25:08 2007 UTC (12 years, 8 months ago) by gage
 Use defaultTheme

Revision 4972 - Directory Listing
Modified Thu May 31 14:39:10 2007 UTC (12 years, 8 months ago) by glarose
Update database handling to save the last submitted answer to problems
for every preview or new page.

Revision 4971 - Directory Listing
Modified Wed May 30 19:56:01 2007 UTC (12 years, 8 months ago) by glarose
bug fix to avoid warnings when dealing null fields with setting hide_score
and hide_score_by_problem for users.

Revision 4970 - Directory Listing
Modified Fri May 25 22:11:24 2007 UTC (12 years, 8 months ago) by jj
Sync treatment of keywords to current version of loadDB2.

Revision 4969 - Directory Listing
Modified Thu May 24 17:55:37 2007 UTC (12 years, 9 months ago) by gage
Pod documentation upgrades

Revision 4968 - Directory Listing
Modified Thu May 24 12:44:58 2007 UTC (12 years, 9 months ago) by gage
Pod documentation added

Revision 4967 - Directory Listing
Modified Thu May 24 12:05:30 2007 UTC (12 years, 9 months ago) by gage
Added pod documentation

Revision 4966 - Directory Listing
Modified Wed May 23 17:30:35 2007 UTC (12 years, 9 months ago) by gage
Added Davide Cervone's methods for evaluating formulas module 2pi

Used in complex variables in particular.

Revision 4964 - Directory Listing
Modified Tue May 22 18:02:40 2007 UTC (12 years, 9 months ago) by dpvc
Fixed an error with List answer checking when one of the elements was
the constant 0 (a check for whether a value was defined was not
properly handling the case when the answer is zero (which counts as
false in a boolean check)).

Revision 4963 - Directory Listing
Modified Tue May 22 17:46:52 2007 UTC (12 years, 9 months ago) by dpvc
When complex=>'ok' is used, make a COPY of the Complex context before
modifying it.  (Otherwise we modify the ORIGINAL copy, and that is
persistent from problem to problem within one httpd child, which would
mean one problem could affect later ones.)

Revision 4962 - Directory Listing
Modified Wed May 16 00:36:37 2007 UTC (12 years, 9 months ago) by dpvc
Allow Real object to override the context's number format by setting
its format field.  E.g.:

    Real(1.2345)->with(format=>"%.2f")

Revision 4961 - Directory Listing
Modified Tue May 15 17:48:28 2007 UTC (12 years, 9 months ago) by gage
Update pod.

Revision 4958 - Directory Listing
Modified Sat May 12 01:20:05 2007 UTC (12 years, 9 months ago) by dpvc
Bring jsMath up to version 3.4b

Revision 4953 - Directory Listing
Modified Mon Apr 30 18:37:24 2007 UTC (12 years, 9 months ago) by sh002i
removed test file

Revision 4952 - Directory Listing
Modified Mon Apr 30 18:36:52 2007 UTC (12 years, 9 months ago) by sh002i
test file

Revision 4943 - Directory Listing
Modified Wed Apr 25 19:08:25 2007 UTC (12 years, 9 months ago) by sh002i
support log messages which have only added or deleted files, and no
modified files.

Revision 4933 - Directory Listing
Modified Fri Apr 20 17:58:15 2007 UTC (12 years, 10 months ago) by glarose
Add where_student_id_eq clause for searching users.

Revision 4932 - Directory Listing
Modified Thu Apr 19 22:17:13 2007 UTC (12 years, 10 months ago) by dpvc
Added directory listing when a directory is being deleted.  The
listing will show the total number of files in the direcotry, and the
top level contents of the directory (with numbers of items in the each
subdirectory listed, but not the contents).  This resolves bug #1246.

Revision 4931 - Directory Listing
Modified Wed Apr 18 23:22:31 2007 UTC (12 years, 10 months ago) by dpvc
Update to v3.4a, which includes:

* Fixed a problem with the noImageFonts plugin where extra fonts would
still try to use image fonts even when they were supposed to be
disabled. Also, noImageFonts now adjusts the error message to indicate
that unicode fonts will be used for fallback rather than image fonts.

* Fixed a problem where changes in the CSS line-height attribute could
cause alignment problems with arrays in MSIE.

* Fixed a number of alignment problems with MSIE when used with a
DOCTYPE that triggers "standards" mode rather than "quirks" mode.

* A bug fix needed for MSIE6 that is one of the sources of jsMath's
slowness with MSIE is now disabled when MSIE7 is used, since it is no
longer needed in that version. This should give a noticable speed
improvement for jsMath in MSIE7.

Revision 4930 - Directory Listing
Modified Wed Apr 18 22:37:59 2007 UTC (12 years, 10 months ago) by dpvc
Clear the error message in Context before it is used in an answer
checker (prevents bleading of one error into a later answer).

Revision 4929 - Directory Listing
Modified Tue Apr 17 18:28:24 2007 UTC (12 years, 10 months ago) by glarose
Check for defined values to avoid uninitialized multiplication errors.

Revision 4928 - Directory Listing
Modified Tue Apr 17 00:36:16 2007 UTC (12 years, 10 months ago) by dpvc
Modified the way the Parser-based versions of the traditional answer
checkers get copies of their contexts.  They now use a new method
getCopy to obtain the copy either from the problem's context table or
the default table (rather than only from the default).  That way the
instructor can use parserCustomization.pl to customize the contexts
used by the answer checkers.

Revision 4927 - Directory Listing
Modified Tue Apr 17 00:31:13 2007 UTC (12 years, 10 months ago) by dpvc
Added a Vector2D context that has i and j defined as vectors in
2-space so that they can be used to generate vectors in 2D.  This
avoids students getting the "incorrect number of coordinates" error.

Revision 4926 - Directory Listing
Modified Mon Apr 9 21:01:51 2007 UTC (12 years, 10 months ago) by glarose
Bug fixes.  $urlPath->arg("setID") isn't always defined in our calls to
Authz::invalidIPAddress, and FormatRecords needs to know about versioned
sets.  The latter fixes the bug in Hardcopy that just (didn't) get fixed
with the previous (not well enough tested) fix.

Revision 4925 - Directory Listing
Modified Mon Apr 9 20:20:29 2007 UTC (12 years, 10 months ago) by glarose
bug fix: correct "sid" => "set_id"

Revision 4924 - Directory Listing
Modified Wed Apr 4 21:30:57 2007 UTC (12 years, 10 months ago) by glarose
Bug fixes: correct hideWork -> hide_work, and ensure version numbers
get appended to started tests.

Revision 4923 - Directory Listing
Modified Wed Apr 4 15:06:01 2007 UTC (12 years, 10 months ago) by glarose
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 - Directory Listing
Modified Mon Apr 2 20:58:49 2007 UTC (12 years, 10 months ago) by glarose
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 4921 - Directory Listing
Modified Mon Apr 2 19:57:39 2007 UTC (12 years, 10 months ago) by glarose
Update to add preliminary support for hiding scores on problems only.

Revision 4920 - Directory Listing
Modified Mon Apr 2 19:56:47 2007 UTC (12 years, 10 months ago) by glarose
Patch to set default for time_cap set definition import and include
problem_randorder in set definition export.

Revision 4919 - Directory Listing
Modified Mon Apr 2 19:55:14 2007 UTC (12 years, 10 months ago) by glarose
Finally patch addUserProblem to use grok_vsetID.

Revision 4918 - Directory Listing
Modified Fri Mar 30 19:07:55 2007 UTC (12 years, 10 months ago) by glarose
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 4917 - Directory Listing
Modified Fri Mar 30 14:21:14 2007 UTC (12 years, 10 months ago) by glarose
Usability update: add direct edit links to list of displayed locations,
ability to delete multiple locations selected from the list.

Revision 4916 - Directory Listing
Modified Fri Mar 30 13:02:05 2007 UTC (12 years, 10 months ago) by glarose
Bug fix.  Check for locations has to be with a non-versioned set_id.

Revision 4915 - Directory Listing
Modified Fri Mar 30 12:39:47 2007 UTC (12 years, 10 months ago) by glarose
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 - Directory Listing
Modified Thu Mar 29 19:48:58 2007 UTC (12 years, 10 months ago) by glarose
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 4913 - Directory Listing
Modified Thu Mar 29 17:42:54 2007 UTC (12 years, 10 months ago) by glarose
Change permission levels to display and edit levels as user roles
(guest, student, proctor, ta, professor) rather than numerical values.

Revision 4912 - Directory Listing
Modified Thu Mar 29 15:12:49 2007 UTC (12 years, 10 months ago) by glarose
Update checkKeyfields to allow IP masks of the form [address]/[mask]

Revision 4911 - Directory Listing
Modified Wed Mar 28 19:16:06 2007 UTC (12 years, 10 months ago) by glarose
Update for centralization of set-level validity checks in Authz: check
for homework assignments being sent to the gateway content generator.

Revision 4910 - Directory Listing
Modified Wed Mar 28 18:32:11 2007 UTC (12 years, 10 months ago) by glarose
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 4909 - Directory Listing
Modified Tue Mar 27 20:12:14 2007 UTC (12 years, 10 months ago) by glarose
Second preliminary commit of changes to move set-level valid checks to
Authz.  This makes ProblemSet.pm and Problem.pm use the
$self->{invalidSet} value set by ContentGenerator.pm, and means that
regular homework assignments may now be restricted to specific IP
addresses.  This commit also corrects $userName/$effectiveUserName
errors I had in Authz->checkSet() and moves the actual IP address
checking to a separate subroutine in Authz.  Hardcopy.pm uses that
routine to filter sets to be sure it doesn't generate hardcopies for
a IP address restricted set.

Revision 4908 - Directory Listing
Modified Tue Mar 27 17:15:19 2007 UTC (12 years, 10 months ago) by glarose
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.

Revision 4907 - Directory Listing
Modified Tue Mar 27 17:13:31 2007 UTC (12 years, 10 months ago) by glarose
Preliminary commit of changes to Authz.pm and ContentGenerator.pm to
move set-level checks for set validity (set is open, published, IP
address restrictions, etc.) out of the individual ContentGenerator
modules.  ContentGenerator now uses Authz::checkSet to check these
and stores any return message in $self->{invalidSet}.  Individual
ContentGenerator modules can take advantage of this by checking the
value of $self->{invalidSet} that is preset (thus, this change should
be transparent for unchanged ContentGenerators).

Revision 4905 - Directory Listing
Modified Tue Mar 27 17:06:04 2007 UTC (12 years, 10 months ago) by glarose
Fix bug in site_check call.

Revision 4904 - Directory Listing
Modified Tue Mar 27 17:04:02 2007 UTC (12 years, 10 months ago) by glarose
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 4901 - Directory Listing
Modified Mon Mar 26 20:26:57 2007 UTC (12 years, 10 months ago) by sh002i
replace set ID underscores with spaces, not nonbreaking spaces (for IE6)

Revision 4900 - Directory Listing
Modified Mon Mar 26 19:50:55 2007 UTC (12 years, 10 months ago) by sh002i
fix for warning when generating prettySetID

Revision 4899 - Directory Listing
Modified Fri Mar 23 02:37:41 2007 UTC (12 years, 11 months ago) by dpvc
Bring jsMath up to version 3.4.  This includes a number of bug fixes.
See the jsMath web site for the change log, which contains the
details.

	http://www.math.union.edu/locate/jsMath

Revision 4897 - Directory Listing
Modified Thu Mar 22 22:37:52 2007 UTC (12 years, 11 months ago) by sh002i
don't up nonbreaking spaces in set names :P

Revision 4895 - Directory Listing
Modified Thu Mar 22 20:03:29 2007 UTC (12 years, 11 months ago) by sh002i
replace underscores with spaces in set names the links menu

Revision 4894 - Directory Listing
Modified Thu Mar 22 13:50:07 2007 UTC (12 years, 11 months ago) by glarose
Added authentication mechanism Cosign.pm.  This implements WeBWorK
authentication using cosign[1], an open-source single sign-on system
developed at the University of Michigan.  This should be a reasonable
model for other modules implementing external, directory or location
based, authentication for WeBWorK.

To use cosign authentication for WeBWorK, set $authen{user_module} in
global.conf to WeBWorK::Authen::Cosign, and then configure apache to
require cosign authentication to enter WeBWorK courses.  If $cosignoff
is set to a true value in the course environment, standard WeBWorK
authentication is used for that course.

Note that cosign is a cookie-based authentication system.  This means
that it is between very hard and impossible to authenticate multiple
users on the same computer/web browser at the same time.  Thus it is
not possible to have both $authen{user_module} and $authen{proctor_module}
set to Cosign at the same time.

Implementation:
  Cosign.pm inherits from Authen.pm.  It redefines get_credentials to
force password authentication, and then assumes password checks succeed.
Because cosign is a Location/Directory based apache authentication
system, by the time the user gets to the Authen module we know that she
has successfully authenticated against cosign.  We also modify the
forget_verification method to return a redirect to the course environment
variable $cosign_logout_script.

 [1] <http://www.umich.edu/~umweb/software/cosign/>

Revision 4893 - Directory Listing
Modified Thu Mar 22 13:39:50 2007 UTC (12 years, 11 months ago) by glarose
Add support for external authentication systems.    This is appropriate
if something like an apache directory or location based authentication
system (such as cosign, basic or digest auth) is used.  In these cases,
WeBWorK may not handle the logout procedure, and we need information
from the Authentication module to determine the correct action.  We
allow for the case of redirects here, but this could easily be
extended if needed.

Implementation: pre_header_initialize() checks for $authen->{redirect}
to be defined and true after calling $authen->forget_verification().
If to, we set $self->reply_with_redirect to the value of returned by
$authen->{redirect}.

This update also moves key deletion from body() to
pre_header_initialize(), so that those actions take place before any
redirect.

Revision 4892 - Directory Listing
Modified Thu Mar 22 13:35:42 2007 UTC (12 years, 11 months ago) by glarose
Add support for external authentication systems.  This is appropriate
if something like an apache directory or location based authentication
system (such as cosign, basic or digest auth) is used.  In these cases,
by the time the user gets to a ContentGenerator in the WeBWorK system
she has successfully authenticated against the external authentication
system, and so if there was an error it indicates that the user was
not allowed to enter the course for some other reason.  Thus, in this
case we print an error message and skip the WeBWorK login form.

Implementation:
  body() checks for $authen->{external_auth} to be defined and true;
if so, only the authentication error and an informational message
about the external authentication system is printed.  If undefined
or false, any authentication error is printed and the login form,
as usual.

Revision 4891 - Directory Listing
Modified Thu Mar 22 13:28:46 2007 UTC (12 years, 11 months ago) by glarose
Comment out residual debugging "warn" statement.

Revision 4890 - Directory Listing
Modified Fri Mar 16 00:43:46 2007 UTC (12 years, 11 months ago) by sh002i
fixed message given when an executable is not found -- fixes bug #1153.

Revision 4889 - Directory Listing
Modified Fri Mar 16 00:19:38 2007 UTC (12 years, 11 months ago) by sh002i
accept argument "apache1" or "apache2" to control which modules to check
for. this resolves bug #1151.

Revision 4888 - Directory Listing
Modified Thu Mar 15 23:57:11 2007 UTC (12 years, 11 months ago) by sh002i
support for Apache::WeBWorK on the server root -- resolves bug #1150.

Revision 4887 - Directory Listing
Modified Thu Mar 15 22:08:55 2007 UTC (12 years, 11 months ago) by glarose
Update quiz prefix for arrays.  This is not a complete fix, but it
gets incrementally closer to a fix.

Revision 4886 - Directory Listing
Modified Thu Mar 15 22:08:17 2007 UTC (12 years, 11 months ago) by glarose
Make getAllMergedProblemVersions and getAllProblemVersions order returned
data by problem ID.

Revision 4885 - Directory Listing
Modified Thu Mar 15 22:07:37 2007 UTC (12 years, 11 months ago) by glarose
Add export option for gateway set fields.  Include time_cap in the
list of fields in the set.

Revision 4884 - Directory Listing
Modified Thu Mar 15 22:06:16 2007 UTC (12 years, 11 months ago) by glarose
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.

Revision 4883 - Directory Listing
Modified Thu Mar 15 22:00:37 2007 UTC (12 years, 11 months ago) by glarose
Add comment requested for heaven's sake.

Revision 4882 - Directory Listing
Modified Wed Mar 14 23:52:43 2007 UTC (12 years, 11 months ago) by sh002i
wrap message for preview. resolves bug #1147.

Revision 4881 - Directory Listing
Modified Wed Mar 14 23:38:11 2007 UTC (12 years, 11 months ago) by sh002i
accidental commit of "die" that i added for testing (whoops).

Revision 4880 - Directory Listing
Modified Wed Mar 14 22:50:36 2007 UTC (12 years, 11 months ago) by sh002i
error handler in the post-connection subroutine that sends the error to
the professor by email and also logs it to the apache log.
resolves bug #1120, sort of.

Revision 4879 - Directory Listing
Modified Wed Mar 14 17:29:49 2007 UTC (12 years, 11 months ago) by sh002i
added check on the number of addresses in the From and Reply-to fields.
this resolves bug #1131.

Revision 4878 - Directory Listing
Modified Wed Mar 14 00:37:40 2007 UTC (12 years, 11 months ago) by gage
Corrected typo

Revision 4877 - Directory Listing
Modified Wed Mar 14 00:35:38 2007 UTC (12 years, 11 months ago) by gage
Added comments about working with complex variables

Revision 4875 - Directory Listing
Modified Tue Mar 13 21:18:18 2007 UTC (12 years, 11 months ago) by glarose
Bug fixes in implementation of hide_score and hide_work.

Revision 4874 - Directory Listing
Modified Tue Mar 13 15:46:02 2007 UTC (12 years, 11 months ago) by glarose
Update for new values of hide_score and hide_work.

Revision 4873 - Directory Listing
Modified Tue Mar 13 15:45:31 2007 UTC (12 years, 11 months ago) by glarose
Update to make hardcopy generation respect a set's hide_work setting,
allow those with permission to generate hardcopies for multiple sets
to print versioned sets.

Revision 4872 - Directory Listing
Modified Tue Mar 13 15:44:21 2007 UTC (12 years, 11 months ago) by glarose
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.

Revision 4871 - Directory Listing
Modified Tue Mar 13 15:42:06 2007 UTC (12 years, 11 months ago) by glarose
Update Set.pm and UserSet.pm files to reflect more intelligible values
of hide_work and hide_score.

Revision 4870 - Directory Listing
Modified Tue Mar 13 15:40:56 2007 UTC (12 years, 11 months ago) by glarose
Add permissionLevels entry for view_hidden_work.

Revision 4869 - Directory Listing
Modified Tue Mar 13 15:38:23 2007 UTC (12 years, 11 months ago) by glarose
Update stanzas for modifying hide_score and hide_work columns in set
and set_user to have more intelligible names, and add a default value.

Revision 4868 - Directory Listing
Modified Mon Mar 12 19:43:06 2007 UTC (12 years, 11 months ago) by sh002i
Better messages when no recipients are selected -- resolves bug 1130.

Revision 4867 - Directory Listing
Modified Sun Mar 11 16:11:20 2007 UTC (12 years, 11 months ago) by gage
This file loads Parser.pl.   It is part of a campaign to replace the term "parser object"
with MathObject  which should sound more intuitive for those who are unaware of the development
history of the PG language.

Revision 4866 - Directory Listing
Modified Sun Mar 11 11:40:46 2007 UTC (12 years, 11 months ago) by dpvc
Fixed a deprecated usage of defined(@result)

Revision 4865 - Directory Listing
Modified Fri Mar 9 21:09:02 2007 UTC (12 years, 11 months ago) by glarose
Update for gateway parameters hide_score until set due date, hide_work
until set due date, and add time_limit_cap.

Revision 4864 - Directory Listing
Modified Fri Mar 9 21:08:08 2007 UTC (12 years, 11 months ago) by glarose
update to allow hide_score until set due date.

Revision 4863 - Directory Listing
Modified Fri Mar 9 21:07:35 2007 UTC (12 years, 11 months ago) by glarose
add stanzas to update definitions of hide_score and hide_work in set and
userset, and to add time_limit_cap column to those tables.

Revision 4862 - Directory Listing
Modified Fri Mar 9 21:06:35 2007 UTC (12 years, 11 months ago) by glarose
update hide_score and hide_work records for sets and usersets, add
time_limit_cap column to tables.

Revision 4861 - Directory Listing
Modified Fri Mar 9 21:05:37 2007 UTC (12 years, 11 months ago) by glarose
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 4860 - Directory Listing
Modified Thu Mar 8 21:50:05 2007 UTC (12 years, 11 months ago) by glarose
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.

Revision 4856 - Directory Listing
Modified Wed Mar 7 18:34:55 2007 UTC (12 years, 11 months ago) by gage
Added documentation

Revision 4852 - Directory Listing
Modified Wed Mar 7 17:43:57 2007 UTC (12 years, 11 months ago) by sh002i
re-throw unrecognized exceptions

Revision 4851 - Directory Listing
Modified Wed Mar 7 17:34:42 2007 UTC (12 years, 11 months ago) by glarose
Update for new NewSQL versioning API.

Revision 4850 - Directory Listing
Modified Tue Mar 6 22:03:15 2007 UTC (12 years, 11 months ago) by glarose
Add check for whether self->{login_type} is defined.  I'm not sure
why this is necessary, but we get warnings when entering from
LoginProctor otherwise.

Revision 4849 - Directory Listing
Modified Tue Mar 6 22:02:28 2007 UTC (12 years, 11 months ago) by glarose
Correct addkey to allow for proctor grading keys, restore ordering to
listSetVersions.

Revision 4848 - Directory Listing
Modified Tue Mar 6 22:01:58 2007 UTC (12 years, 11 months ago) by glarose
Update for new newSQL version API.

Revision 4847 - Directory Listing
Modified Tue Mar 6 22:01:27 2007 UTC (12 years, 11 months ago) by glarose
Clean up code, completely rewrite output of test headers to simplify
logical structure.

Revision 4846 - Directory Listing
Modified Tue Mar 6 21:57:44 2007 UTC (12 years, 11 months ago) by sh002i
setting $this_set='' is unnecessary. getMergedSet returns undef in
scalar context if the record is not found. also fixed some indentation.

Revision 4845 - Directory Listing
Modified Tue Mar 6 01:52:26 2007 UTC (12 years, 11 months ago) by gage
Documenation addition

Revision 4844 - Directory Listing
Modified Tue Mar 6 01:51:12 2007 UTC (12 years, 11 months ago) by gage
Format fix

Revision 4843 - Directory Listing
Modified Tue Mar 6 01:34:16 2007 UTC (12 years, 11 months ago) by sh002i
add some external program paths

Revision 4842 - Directory Listing
Modified Tue Mar 6 01:33:53 2007 UTC (12 years, 11 months ago) by sh002i
use path to cp in course environment

Revision 4841 - Directory Listing
Modified Tue Mar 6 01:33:21 2007 UTC (12 years, 11 months ago) by sh002i
better error reporting for external program calls

Revision 4840 - Directory Listing
Modified Tue Mar 6 01:30:43 2007 UTC (12 years, 11 months ago) by sh002i
better error reporting for external programs

Revision 4839 - Directory Listing
Modified Mon Mar 5 23:06:55 2007 UTC (12 years, 11 months ago) by glarose
Update to fix scoring of multipart problems.

Revision 4838 - Directory Listing
Modified Mon Mar 5 23:06:34 2007 UTC (12 years, 11 months ago) by glarose
Minor updates to clean comments, some logic, and display of versioned
sets.

Revision 4837 - Directory Listing
Modified Mon Mar 5 23:05:56 2007 UTC (12 years, 11 months ago) by glarose
Update to use new newSQL versioning API.  Also fixes display of correct
answers so that correct answers to a versioned set are visible if the
available attempts on the set are exhausted and the version's answer
date has been reached, but not before.

Revision 4836 - Directory Listing
Modified Mon Mar 5 23:02:13 2007 UTC (12 years, 11 months ago) by glarose
Update sortByName() utility to allow sorting on multiple fields.  This
allows sorting on set_id and version_id, which is desirable for
versioned sets.

Revision 4835 - Directory Listing
Modified Mon Mar 5 19:07:45 2007 UTC (12 years, 11 months ago) by sh002i
replace system() calls with readpipe() calls -- arguments are escaped
and stdout/stderr are captured, and exit status is reported accurately.

Revision 4834 - Directory Listing
Modified Sun Mar 4 23:39:20 2007 UTC (12 years, 11 months ago) by gage
Formatting changes in documentation

Revision 4833 - Directory Listing
Modified Sun Mar 4 23:26:12 2007 UTC (12 years, 11 months ago) by gage
More format changes to documentation

Revision 4832 - Directory Listing
Modified Sun Mar 4 22:50:35 2007 UTC (12 years, 11 months ago) by gage
More formatting changes.

Revision 4831 - Directory Listing
Modified Sun Mar 4 22:46:01 2007 UTC (12 years, 11 months ago) by gage
Documentation formatting changes

Revision 4830 - Directory Listing
Modified Sun Mar 4 22:21:54 2007 UTC (12 years, 11 months ago) by sh002i
remove old versioning methods that are no longer used by any client code

Revision 4829 - Directory Listing
Modified Sun Mar 4 22:10:40 2007 UTC (12 years, 11 months ago) by gage
 Updated documentation in response to comments from Davide.
 More comments welcome. :-)

 --Mike

Revision 4828 - Directory Listing
Modified Sun Mar 4 21:06:17 2007 UTC (12 years, 11 months ago) by gage
Use this macro package to define macros for
examining the current environment.  Useful for
creating problems and for debugging.

Revision 4827 - Directory Listing
Modified Sun Mar 4 20:58:26 2007 UTC (12 years, 11 months ago) by gage
Added pod documentation for these files

Revision 4826 - Directory Listing
Modified Sun Mar 4 20:57:00 2007 UTC (12 years, 11 months ago) by gage
Correct pretty_print so that it protects for HTML output
(replaces < by &lt;)

Revision 4825 - Directory Listing
Modified Sun Mar 4 20:44:37 2007 UTC (12 years, 11 months ago) by gage
Correct pretty_print
so that it protects < for printing in HTML.
Replace occurences of < with &lt; in the data
This was done with straight substitution -- perhaps a protectHTML macro should have been used?

Revision 4824 - Directory Listing
Modified Sat Mar 3 00:31:14 2007 UTC (12 years, 11 months ago) by dpvc
Only show the adaptive parameters where there actually ARE some, and
fix a typo when looking up the adaptive points when there aren't any.

Revision 4823 - Directory Listing
Modified Sat Mar 3 00:17:12 2007 UTC (12 years, 11 months ago) by dpvc
Improved Formula diagonstics when adaptive parameters are used.  They
now allow you to graph the functions (they are no longer considered
multi-variable functions), and the values reported are the adapted
values rather then the unadapted correct answers.  This now correctly
reflects the tests that are being performed.

Revision 4822 - Directory Listing
Modified Sat Mar 3 00:11:28 2007 UTC (12 years, 11 months ago) by dpvc
Use zeroLevelTol values when checking answers that have adaptive parameters.

Revision 4821 - Directory Listing
Modified Fri Mar 2 23:28:52 2007 UTC (12 years, 11 months ago) by sh002i
explain seemingly nonsensical line of code

Revision 4820 - Directory Listing
Modified Fri Mar 2 23:26:30 2007 UTC (12 years, 11 months ago) by sh002i
remove commented-out sql_table_names hash

Revision 4819 - Directory Listing
Modified Fri Mar 2 23:25:35 2007 UTC (12 years, 11 months ago) by sh002i
reorder sections so that they're in the same order as the tables in database.conf
i think the database.conf order makes more sense, anyway. this will make
it easier for me to find things.

Revision 4818 - Directory Listing
Modified Fri Mar 2 23:22:28 2007 UTC (12 years, 11 months ago) by sh002i
confirmed a fix by gavin -- i had said "grep" when i should have said "map".
(there's no need for the grep, in any case)

Revision 4817 - Directory Listing
Modified Fri Mar 2 23:19:55 2007 UTC (12 years, 11 months ago) by sh002i
use updated Merged.pm rather than VersionedMerged.pm

Revision 4816 - Directory Listing
Modified Fri Mar 2 23:18:04 2007 UTC (12 years, 11 months ago) by sh002i
updates to allow merging and versioning to interact gracefully:

- use table aliasing to be able to refer to the same table by two
  different names
- call sql_field_expression to get SQLized field names (the
  implementation in Versioned.pm returns a SUBSTRING(...) expression)
- use the implementations of conv_where and keyparts_to_where from the
  primary table being merged (this allows Versioned.pm to provide
  appropriate WHERE conditions)
- remove Gavin's change that ignores versioned tables

Revision 4815 - Directory Listing
Modified Fri Mar 2 23:12:28 2007 UTC (12 years, 11 months ago) by sh002i
don't quote table names that are scalar references, dereference them
instead

Revision 4814 - Directory Listing
Modified Fri Mar 2 23:11:42 2007 UTC (12 years, 11 months ago) by sh002i
add sql_field_expression method to return a fully-SQLized, quoted
expression that can be used to represent the field in a field list or
WHERE clause (but not as an lvalue in a SET clause)

Revision 4813 - Directory Listing
Modified Fri Mar 2 23:09:49 2007 UTC (12 years, 11 months ago) by sh002i
don't quote table/field names in grok_*_from_vsetID_sql, do it in caller

Revision 4812 - Directory Listing
Modified Fri Mar 2 21:36:00 2007 UTC (12 years, 11 months ago) by glarose
Update for NewSQL new versioning API, make a lot of indenting more
uniform, make display of versioned sets that are assigned to a user
but haven't been taken better.

Revision 4811 - Directory Listing
Modified Fri Mar 2 21:35:13 2007 UTC (12 years, 11 months ago) by glarose
Update for NewSQL versioned API.

Revision 4810 - Directory Listing
Modified Fri Mar 2 21:34:54 2007 UTC (12 years, 11 months ago) by glarose
Finish update for weighted problems; update to make attempts_per_version
work better for number of attempts greater than one.

Revision 4809 - Directory Listing
Modified Fri Mar 2 21:34:12 2007 UTC (12 years, 11 months ago) by glarose
Correct listSetVersions to sort output.

Revision 4808 - Directory Listing
Modified Thu Mar 1 23:35:18 2007 UTC (12 years, 11 months ago) by gage
Documentation additions

Revision 4807 - Directory Listing
Modified Thu Mar 1 22:47:21 2007 UTC (12 years, 11 months ago) by gage
Updated version of the check_modules function.  This should make it easier to
add more functionality to this file.

Revision 4806 - Directory Listing
Modified Thu Mar 1 22:43:38 2007 UTC (12 years, 11 months ago) by gage
Minor documentation changes.
Use html entity to represent dollar sign on the web.

Revision 4805 - Directory Listing
Modified Thu Mar 1 22:20:36 2007 UTC (12 years, 11 months ago) by glarose
Update comments.

Revision 4804 - Directory Listing
Modified Thu Mar 1 22:20:24 2007 UTC (12 years, 11 months ago) by glarose
Update for new NewSQL database API, improve display of test/quiz
assignments.

Revision 4803 - Directory Listing
Modified Thu Mar 1 22:19:40 2007 UTC (12 years, 11 months ago) by glarose
Update assignUseSetVersionToUser and assignProblemSetVersionToUser to
use new NewSQL API.

Revision 4802 - Directory Listing
Modified Thu Mar 1 22:18:56 2007 UTC (12 years, 11 months ago) by glarose
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).

Revision 4801 - Directory Listing
Modified Thu Mar 1 22:15:24 2007 UTC (12 years, 11 months ago) by glarose
Updates for new NewSQL Versioned API; update listProblemVersions,
getAllProblemVersions, getMergedProblemVersion.

Revision 4800 - Directory Listing
Modified Thu Mar 1 22:11:46 2007 UTC (12 years, 11 months ago) by glarose
Update to include needed where_ conversion methods:
set_id_eq_problem_id_eq and user_id_eq_set_id_eq_version_id_eq.

Revision 4799 - Directory Listing
Modified Thu Mar 1 22:10:37 2007 UTC (12 years, 11 months ago) by glarose
Update to avoid versioned tables, which are now dealt with in
VersionedMerge.pm

Revision 4798 - Directory Listing
Modified Thu Mar 1 22:09:51 2007 UTC (12 years, 11 months ago) by glarose
New Schema to support merging of versioned sets in NewSQL.  This is a
horribly brutal hack that seeks to get something working until Sam
comes up with one of his gloriously elegant and sophisticated
solutions.

Revision 4797 - Directory Listing
Modified Thu Mar 1 22:07:11 2007 UTC (12 years, 11 months ago) by glarose
Add stanzas for set_version_merged and problem_version_merged.  These
exist as part of a brutal hack to get NewSQL working with versions.
c.f. DB::Schema::NewSQL::VersionMerged.pm

Revision 4796 - Directory Listing
Modified Tue Feb 27 16:16:41 2007 UTC (12 years, 11 months ago) by glarose
Add conditional to check whether set assignment/unassignment needs to
be done before making a database call to do so.  Resolves a problem I
was having with duplicate entries in set_user being created before a
database error was returned warning about duplicate sets.

Revision 4795 - Directory Listing
Modified Sun Feb 25 20:59:09 2007 UTC (12 years, 11 months ago) by dpvc
Avoid an infinite loop when string-values formulas are used in a List.
Allow diagonstics to work for complex-valued functions.

Revision 4794 - Directory Listing
Modified Sat Feb 24 03:09:07 2007 UTC (12 years, 11 months ago) by dpvc
set the z-index of the answer boxes so that the jsMath equations will
not overlap them.  (Some of the TeX fonts have large depths, and this
can cause them to overlap the links and input widgets on lower
lines in some browsers.)

Also use addEventListener or attachEvent to add the onload handler
since the window.onload handler can only be used by one piece of code.

Revision 4793 - Directory Listing
Modified Thu Feb 22 17:44:31 2007 UTC (13 years ago) by sh002i
THIS UPDATE BREAKS CONTENT GENERATORS: split up methods for versioned
and non-versioned sets, and added new implementations for merged
versioned sets. (i'm mainly committing this so gavin can see what i've
done and give me input.)

Revision 4792 - Directory Listing
Modified Thu Feb 22 16:43:56 2007 UTC (13 years ago) by sh002i
add set_version and problem_version tables, change schema for set_user
and problem_user tables.

Revision 4791 - Directory Listing
Modified Thu Feb 22 01:25:11 2007 UTC (13 years ago) by sh002i
list keyfields explicitly, so that we can have the ProblemVersion
keyfields in the correct order (user_id,set_id,version_id,problem_id)

Revision 4790 - Directory Listing
Modified Tue Feb 20 22:10:09 2007 UTC (13 years ago) by sh002i
restrict where clauses generated from keyparts which don't mention
either set_id or version_id

Revision 4789 - Directory Listing
Modified Tue Feb 20 19:53:47 2007 UTC (13 years ago) by sh002i
added keyparts_to_where wrapper for combined set_id/version_id

Revision 4788 - Directory Listing
Modified Tue Feb 20 00:07:16 2007 UTC (13 years ago) by sh002i
get_fields_where*: when field list is unspecified, use all fields rather
than letting sqlabstract default to "*". (also remove unneeded
Data::Dumper import)

Revision 4787 - Directory Listing
Modified Tue Feb 20 00:05:19 2007 UTC (13 years ago) by sh002i
added make_vsetID_sql, fixed an off-by-1 in grok_setID_from_vsetID_sql

Revision 4786 - Directory Listing
Modified Tue Feb 20 00:04:21 2007 UTC (13 years ago) by sh002i
schema-level support for a version field embedded in the set ID.
TODO:
 - modify DB.pm to NOT use version/non-version specific where clause
names, and commit removal of those names from NewSQL.pm (done but not
committed yet, since we don't want to break things too badly)
 - modify DB.pm to provide a completely separate suite of methods for
versioned sets/problems

Revision 4785 - Directory Listing
Modified Tue Feb 20 00:01:47 2007 UTC (13 years ago) by sh002i
versioned subclasses of UserSet/UserProblem

Revision 4784 - Directory Listing
Modified Tue Feb 20 00:00:02 2007 UTC (13 years ago) by sh002i
remove leftover debugging code (Data::Dumper)

Revision 4782 - Directory Listing
Modified Wed Feb 14 19:29:32 2007 UTC (13 years ago) by sh002i
Set SMTP envelope sender to $ce->{mail}{smtpSender} rather than user's
from address. This prevents some mailservers from rejecting the mail for
having a forged sender address.

Revision 4781 - Directory Listing
Modified Wed Feb 14 19:08:46 2007 UTC (13 years ago) by gage
Added warning message when moodle session is not found.

Revision 4780 - Directory Listing
Modified Wed Feb 14 19:00:02 2007 UTC (13 years ago) by sh002i
revert file-based mail status changes (but keep formatting fixes)

Revision 4778 - Directory Listing
Modified Wed Feb 14 18:16:46 2007 UTC (13 years ago) by sh002i
Set SMTP envelope sender to $ce->{mail}{smtpSender} rather than user's
from address. This prevents some mailservers from rejecting the mail for
having a forged sender address.

Revision 4776 - Directory Listing
Modified Mon Feb 12 21:35:38 2007 UTC (13 years ago) by dpvc
Added comments about how to install the file.

Revision 4775 - Directory Listing
Modified Mon Feb 12 21:32:31 2007 UTC (13 years ago) by dpvc
Completely rewrote the file to use a different technique.  Instead of
looking for unbeforeunload events (which didn't work reliably, since
Firefox will reload the page before it has a chance to install the
handler), we look for F5 key events and F5 ignore keydown events, but
reload the page on F5 keyup instead.  This skips the autorepeating
keys and only reloads the page when the user lets go of the key.  So
there is only one reload.  After several autorepeated F5 keypresses, a
dialog will appear asking you to check if something is holding down
the F5 key.

Revision 4774 - Directory Listing
Modified Sun Feb 11 23:34:31 2007 UTC (13 years ago) by dpvc
Corrected comment indicating time was in micro- rather than
milliseconds.

Revision 4773 - Directory Listing
Modified Sun Feb 11 04:44:27 2007 UTC (13 years ago) by dpvc
Added support for uncheckable radio buttons (when JavaScript it
active).  You specify an uncheckable buttons by including the
uncheckable=>1 or uncheckable=>"shift" options to the RadioButtons()
call.

Revision 4772 - Directory Listing
Modified Sat Feb 10 00:09:52 2007 UTC (13 years ago) by dpvc
New macros for using Radio buttons with the new Parser

Revision 4771 - Directory Listing
Modified Sat Feb 10 00:07:50 2007 UTC (13 years ago) by dpvc
Fixed an error with the custom list checker setting the wrong field
for the checker (OOPS!)

Revision 4770 - Directory Listing
Modified Fri Feb 9 23:35:48 2007 UTC (13 years ago) by dpvc
Implements a JavaScript solution to prevent excessive reloads by
students who prop their books on the F5 key.

Revision 4769 - Directory Listing
Modified Fri Feb 9 01:13:49 2007 UTC (13 years ago) by gage
Changed the transaction log from a course directory log to a system directory log
to work around a bug in surePathToTempFile.

this hack works around bug #1133 for now.

--Mike

Revision 4768 - Directory Listing
Modified Tue Feb 6 22:32:30 2007 UTC (13 years ago) by sh002i
perliminary steps to splitting versioned and non-versioned user sets.
TODO:
 - modify DB.pm to NOT use version/non-version specific where clause
names, and commit removal of those names from NewSQL.pm
 - modify DB.pm to provide a completely separate suite of methods for
versioned sets/problems
 - add VersionedUserSet and VersionedUserProblem records classes, make
them subclasses of UserSet and UserProblem. include fake 'version'
field.
 - add boxing/unboxing routines for those record classes.
 - figure out what to do about listing versioned sets/problems, since
some of the keyparts is going to be synthesized. (post-filter on
get_fields_where?)

Revision 4767 - Directory Listing
Modified Sat Feb 3 15:32:06 2007 UTC (13 years ago) by gage
Changed input to rungeKutta4 so that it matches the pod description --
i.e. it takes as its first argument a reference to a
subroutine defining a vectorField
as opposed to an answer hash.

Revision 4766 - Directory Listing
Modified Sat Feb 3 15:25:18 2007 UTC (13 years ago) by gage
Added new permissable log files.
that can be written to.

Revision 4765 - Directory Listing
Modified Sat Feb 3 15:23:05 2007 UTC (13 years ago) by gage
Begin pod documentation.

Revision 4764 - Directory Listing
Modified Sat Feb 3 15:20:25 2007 UTC (13 years ago) by gage
added a "level" to pretty_print to prevent it from descending too far down
nested hashes.  The default level is set at 3 which is probably enough for
most purposes.

Revision 4763 - Directory Listing
Modified Thu Feb 1 22:43:07 2007 UTC (13 years ago) by glarose
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 4762 - Directory Listing
Modified Thu Feb 1 04:37:11 2007 UTC (13 years ago) by gage
Removed scommented out code and
spiffed up the documentation.

--------------------------------------------------------------------

Revision 4761 - Directory Listing
Modified Wed Jan 31 16:17:48 2007 UTC (13 years ago) by gage
Added code to multi_cmp which makes it easier to  debug.

We will probably want to get rid of this entirely in favor of List answers, but meantime
I'm documenting the problems.

Revision 4760 - Directory Listing
Modified Wed Jan 31 16:16:44 2007 UTC (13 years ago) by gage
Added space when combining preview latex strings    (foo  + bar   became   foo\quadbar  which didn't work
now its foo \quad bar which is better.

Revision 4758 - Directory Listing
Modified Tue Jan 30 21:35:28 2007 UTC (13 years ago) by sh002i
alternate implementation of DelayedMailer that uses Mail::Sender rather
than Net::SMTP. This is somewhat more flexible, but currently doesn't
play well with Safe.pm. (I forget exactly how, but I have it on record
somewhere.)

Revision 4756 - Directory Listing
Modified Wed Jan 24 22:20:35 2007 UTC (13 years ago) by sh002i
fix permission not getting set (introduced with prior changes) UGH!

Revision 4755 - Directory Listing
Modified Fri Jan 19 21:58:11 2007 UTC (13 years, 1 month ago) by sh002i
add guestsPermissionLevel parameter

Revision 4754 - Directory Listing
Modified Fri Jan 19 21:57:57 2007 UTC (13 years, 1 month ago) by sh002i
formatting

Revision 4753 - Directory Listing
Modified Fri Jan 19 16:20:59 2007 UTC (13 years, 1 month ago) by sh002i
the parameter is called moodle17, not moodle_version

Revision 4752 - Directory Listing
Modified Thu Jan 18 21:17:10 2007 UTC (13 years, 1 month ago) by gage
Removed warning message.

Revision 4751 - Directory Listing
Modified Thu Jan 18 20:59:16 2007 UTC (13 years, 1 month ago) by gage
Fixed typo in defining PermissionLevels (missing s in
teachersPermissionLevel) etc.

Revision 4750 - Directory Listing
Modified Thu Jan 18 19:49:26 2007 UTC (13 years, 1 month ago) by sh002i
fixed typo in "non_native"

Revision 4749 - Directory Listing
Modified Thu Jan 18 19:37:49 2007 UTC (13 years, 1 month ago) by sh002i
fixed typo (calling sql->quote instead of sql->_quote)

Revision 4742 - Directory Listing
Modified Mon Jan 8 23:56:16 2007 UTC (13 years, 1 month ago) by sh002i
fixed lexical redefinition warning

Revision 4741 - Directory Listing
Modified Mon Jan 8 22:51:03 2007 UTC (13 years, 1 month ago) by sh002i
added code to display mail merge status from coursedir/DATA/mailmerge.
nothing writes/deletes the status files yet though, that is next. :)

Revision 4740 - Directory Listing
Modified Mon Jan 8 20:35:58 2007 UTC (13 years, 1 month ago) by sh002i
Preliminary Moodle 1.7 support. There is still some work to do on this,
but I think it belongs in MAIN now.

Revision 4739 - Directory Listing
Modified Mon Jan 8 20:22:45 2007 UTC (13 years, 1 month ago) by sh002i
add flag to set problem seed in assignProblemToUser and assignProblemToUserSet

Revision 4738 - Directory Listing
Modified Mon Jan 8 18:32:29 2007 UTC (13 years, 1 month ago) by sh002i
removed unused import of WeBWorK::DB::Utils::initializeUserProblem.

Revision 4737 - Directory Listing
Modified Thu Jan 4 00:02:49 2007 UTC (13 years, 1 month ago) by gage
Fixed typos.

-- Mike

Revision 4736 - Directory Listing
Modified Wed Jan 3 23:59:02 2007 UTC (13 years, 1 month ago) by gage
Gave a bit more information when the scoring data (.csv ) file doesn't exist.  This gives the
user a clue as to what to name the file.

-- Mike

Revision 4735 - Directory Listing
Modified Wed Jan 3 22:47:30 2007 UTC (13 years, 1 month ago) by dpvc
Fixed incorrect lookup of which set to view when viewing problems
"From This Course".  The problem was introduced in version 1.69.
Similar errors were also in the other viewing modes, but were
corrected for "Local Problems" in 1.70 and for "Set Definitions Files"
in 1.73.2.1 (though I have updated the latter to be consistent with
the other cases).

Revision 4733 - Directory Listing
Modified Mon Jan 1 16:20:16 2007 UTC (13 years, 1 month ago) by gage
Cleaned up code, updated README.
There is still much code that needs to be factored.
Merged changes in webwork_xmlrpc_client2.pl into webwork_xmlrp_client.pl
and removed the first file.

-- Mike

Revision 4732 - Directory Listing
Modified Mon Jan 1 15:21:21 2007 UTC (13 years, 1 month ago) by gage
Pointing all clients to https://webwork.rochester.edu   since this is currently
the most stable server.

Revision 4731 - Directory Listing
Modified Mon Jan 1 15:16:30 2007 UTC (13 years, 1 month ago) by gage
Factoring code for the WeBWorK webservice clients

Revision 4730 - Directory Listing
Modified Tue Dec 19 22:25:39 2006 UTC (13 years, 2 months ago) by sh002i
pre-load mod_perl2 so that subsequent "use mod_perl" lines don't load
mod_perl 1. (this wasn't a problem for us, but it was for others.)

Revision 4729 - Directory Listing
Modified Sat Dec 16 14:10:12 2006 UTC (13 years, 2 months ago) by dpvc
Add a new operator // to be the same as / except its TeX form is a/b
rather than \frac{a}{b}.  This makes it possible get horizontal
fractions in exponents, for example, where vertical fractions often
don't look so good.

Revision 4728 - Directory Listing
Modified Sat Dec 16 14:07:58 2006 UTC (13 years, 2 months ago) by dpvc
Use Perl reals rather than Parser Reals in matrix for adaptive
parameters.

Revision 4727 - Directory Listing
Modified Sat Dec 16 14:07:22 2006 UTC (13 years, 2 months ago) by dpvc
Fixed type in comment.

Revision 4726 - Directory Listing
Modified Thu Dec 14 21:46:30 2006 UTC (13 years, 2 months ago) by sh002i
preliminary parser for "=for WeBWorKDocs" sections containing lists of perlrefs.

Revision 4722 - Directory Listing
Modified Sat Dec 9 03:29:56 2006 UTC (13 years, 2 months ago) by sh002i
use student ID for password if password field is defined but empty

Revision 4715 - Directory Listing
Modified Fri Dec 8 20:12:58 2006 UTC (13 years, 2 months ago) by sh002i
handle "added files" properly

Revision 4705 - Directory Listing
Modified Wed Dec 6 02:23:45 2006 UTC (13 years, 2 months ago) by sh002i
don't include Safe::Hole anymore

Revision 4701 - Directory Listing
Modified Tue Dec 5 23:23:07 2006 UTC (13 years, 2 months ago) by sh002i
changes for DelayedMailer

Revision 4700 - Directory Listing
Modified Tue Dec 5 20:59:46 2006 UTC (13 years, 2 months ago) by sh002i
use DelayedMailer instead of RestrictedMailer

Revision 4698 - Directory Listing
Modified Tue Dec 5 20:58:38 2006 UTC (13 years, 2 months ago) by sh002i
a stopgap solution to the PG/Net::SMTP problem

Revision 4697 - Directory Listing
Modified Tue Dec 5 20:57:53 2006 UTC (13 years, 2 months ago) by sh002i
move constituency_hash into Utils.pm

Revision 4696 - Directory Listing
Modified Tue Dec 5 20:56:58 2006 UTC (13 years, 2 months ago) by sh002i
use croak instead of die in constructor

Revision 4695 - Directory Listing
Modified Fri Dec 1 17:19:30 2006 UTC (13 years, 2 months ago) by glarose
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.

Revision 4694 - Directory Listing
Modified Fri Dec 1 17:12:32 2006 UTC (13 years, 2 months ago) by glarose
Add hide_score and hide_work fields to the homework list/editor, and to
the set definition file import.

Revision 4693 - Directory Listing
Modified Fri Dec 1 17:11:18 2006 UTC (13 years, 2 months ago) by glarose
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 4692 - Directory Listing
Modified Fri Dec 1 17:09:40 2006 UTC (13 years, 2 months ago) by glarose
Add hiding of scores for gateway/quiz assignments with hide_score set.

Revision 4691 - Directory Listing
Modified Fri Dec 1 17:08:24 2006 UTC (13 years, 2 months ago) by glarose
Correct braces in eval { }.  I think we can call this a typo.

Revision 4690 - Directory Listing
Modified Fri Dec 1 17:06:40 2006 UTC (13 years, 2 months ago) by glarose
Correct addUserProblem for versioned sets.  This is probably a fix for a
problem that should be dealt with by addressing the issue of versioning
more globally in DB.pm.  For the moment this deals with the need to check
for the existence of a problem against the non-versioned set when adding
problems to a user set version.

Revision 4689 - Directory Listing
Modified Fri Dec 1 17:04:03 2006 UTC (13 years, 2 months ago) by glarose
Add hide_score and hide_work fields to the set and user_set records.
These are currently only used by gateway/quiz assignments.

Revision 4688 - Directory Listing
Modified Fri Dec 1 16:45:35 2006 UTC (13 years, 2 months ago) by glarose
Add hide_score and hide_work columns to the set and set_user tables.
These are currently only used by gateway/quiz assignments.

Revision 4686 - Directory Listing
Modified Thu Nov 30 01:29:39 2006 UTC (13 years, 2 months ago) by sh002i
don't die when scoring file doesn't exist (fixes bug #1138).

Revision 4684 - Directory Listing
Modified Thu Nov 30 01:00:15 2006 UTC (13 years, 2 months ago) by sh002i
read_scoring_file: return a reference to an empty hash if filename is "None".
This satisfies SendMail.pm, which expects a hashref unless there's an error.

Revision 4683 - Directory Listing
Modified Tue Nov 28 22:29:38 2006 UTC (13 years, 2 months ago) by sh002i
fix moodle 1.5/6 session handling

Revision 4682 - Directory Listing
Modified Tue Nov 28 22:16:01 2006 UTC (13 years, 2 months ago) by sh002i
Moodle 1.7 compatibility: This is Mike's current work on Moodle 1.7
compatibility, cross-ported from rel-2-3-exp.

Changes from:
	lib/WeBWorK/Authen/Moodle.pm: 1.9 -> 1.9.2.2
	lib/WeBWorK/DB/Schema/NewSQL/Moodle.pm: 1.5 -> 1.5.4.1

Revision 4680 - Directory Listing
Modified Tue Nov 28 19:12:12 2006 UTC (13 years, 2 months ago) by sh002i
SECURITY: tighter constraints on which macro files can be loaded without
restriction. Previously, any file that *contained* the strings PG.pl,
dangerousMacros.pl, or IO.pl would be loaded with an empty opmask.

This is the second attempt to close this hole. The previous attempt
assumed that | binds tighter than ^ and $, which is not true. (Noticed
by dpvc). It also failed to escape metacharacters in the file names.

Revision 4679 - Directory Listing
Modified Mon Nov 27 22:11:54 2006 UTC (13 years, 2 months ago) by sh002i
added mail_answers_to3, which currently does not work, to eventually
replace mail_answers_to2, which also does not work.

I thought now would be a good time to commit this, so that others can
look at it if they like. The problem is that when RestrictedMailer is
used within a PG safe compartment, it hangs on opening the SMTP
connection and the problem times out after 60 seconds.

This mockup I made works perfectly however, and I can't see how the PG
safe compartment is different. Here it is:

my $mailer = new WeBWorK::Utils::RestrictedMailer(
        params => {
                from => 'sh002i@math.rochester.edu',
                smtp => 'mail.math.rochester.edu',
                headers => 'X-Remote-Host: 128.151.231.10',
                debug => "debug.txt",
                keepconnection => 1,
                subject => "generic subject",
                on_errors => 'die',
        },
        lock_by_default => 1,
        allow_change => [qw/fake_from to fake_to cc fake_cc bcc/],
        allowed_recipients => [qw/sh002i@math.rochester.edu sam@uofr.net/],
        fatal_errors => 1,
);
my $rmailer = new WeBWorK::Utils::RestrictedClosureClass($mailer,
        qw/Open SendEnc Close Cancel skipped_recipients error error_msg/);
my $safe = new Safe;
${$safe->varglob('the_date')} = `date`;
my $hole = new Safe::Hole {};
my $rmailer_wrapped = $hole->wrap($rmailer);
${$safe->varglob('TEST')}{rmailer} = $rmailer_wrapped;
my $result = $safe->reval(<<'EOF');
my $rmailer = $TEST{rmailer};
my $open_result = $rmailer->Open({
        to => 'sam@uofr.net',
        #subject => "this is only a test",
});
print "open_result=$open_result\n";
my $sendenc_result = $rmailer->SendEnc("Hello world, the time is " . $the_date);
print "sendenc_result=$sendenc_result\n";
$rmailer->Close;
EOF
die "reval threw an exception: $@" if $@;

Revision 4678 - Directory Listing
Modified Mon Nov 27 18:57:41 2006 UTC (13 years, 2 months ago) by sh002i
formatting, ordering

Revision 4677 - Directory Listing
Modified Mon Nov 27 18:37:23 2006 UTC (13 years, 2 months ago) by sh002i
Add wrapped RestrictedMailer instance to PG envir.

Revision 4676 - Directory Listing
Modified Mon Nov 27 18:36:21 2006 UTC (13 years, 2 months ago) by sh002i
wrapper for Mail::Sender that restricts the arguemnts that can be passed
to various "dangerous" methods. It is designed for use with
RestrictedClosureClass and Safe::Hole.

NOTE THAT THIS CLASS DOESN'T PROVIDE SAFETY ON ITS OWN. READ THE
COMMENTS FOR MORE INFO.

Revision 4675 - Directory Listing
Modified Mon Nov 27 18:34:56 2006 UTC (13 years, 2 months ago) by sh002i
removed extra blank line

Revision 4674 - Directory Listing
Modified Mon Nov 27 18:32:54 2006 UTC (13 years, 2 months ago) by sh002i
eliminate useless double-assignment (which could cause a later security
issue if someone comments out the second assignment and not the first)

Revision 4673 - Directory Listing
Modified Mon Nov 27 04:21:59 2006 UTC (13 years, 2 months ago) by dpvc
Moved the guts of this to pg/lib/Parser/Legacy/NumberWithUnits.pl,
since most of the code is common.  This is a shell that now only
defines the FormulaWithUnits() function.

Revision 4672 - Directory Listing
Modified Mon Nov 27 04:20:40 2006 UTC (13 years, 2 months ago) by dpvc
Abstracted the NumberWithUnits to a more general ObjectWithUnits and
moved the FormulaWithUnits to this file as well, since most of the
code is common.  Although, strictly speaking, FormulaWithUnits is not
legacy code, since the general object-with-units is here, it will be
easier to maintain FormulaWithUnits here as well.  When the Parser
gets a real units class, all of this can be removed.

Also fixed the unit lookup code to use the actual names from the Units
library, so we can now be more accurate about determining the extent
of the units, and can handle things like '5 kg m / s' now.  In the
case of ambiguous formulas with units, e.g., '5m kg' where m is a
variable, use '5*m kg' or '(5m) kg'.

Revision 4671 - Directory Listing
Modified Mon Nov 27 02:01:24 2006 UTC (13 years, 2 months ago) by gage
Make
Units::fundamental_units  and

Units::known_units  public hashes.

Revision 4670 - Directory Listing
Modified Mon Nov 27 00:08:31 2006 UTC (13 years, 2 months ago) by dpvc
Fixed usage comments to do formulas rather than just numbers.

Revision 4669 - Directory Listing
Modified Mon Nov 27 00:00:46 2006 UTC (13 years, 2 months ago) by dpvc
The Units.pm library only accepts one division within the units, and
the Parser wasn't taking that into account, so students could enter
m/s/s and still get credit even if the units were m/s.  This have been
fixed.

Revision 4668 - Directory Listing
Modified Sun Nov 26 23:59:22 2006 UTC (13 years, 2 months ago) by dpvc
Provides a formula with units (as opposed to a number with units).
This does introduce some ambiguity issues, since variable names could
look like units in some cases.  E.g., s + 5 m/s could look like
(s + 5*m/s) rather than (s + 5) meters/second.

The parser will take the largest string at the end of the answer that
could be treated as units so s + 5m/s is (s+5) meters/second.

The Units.pm library requries units to be separated by * or / and
only one / is allowed, so s + 5m s is (s+5m) seconds not (s+5) m*s.

Something like 5 m/s/s will generate an error (it shouold be written
m/s*s or m/s^2), and 5 kg m/s should be written 5 kg*m/s.

[If we made the hash of known units be public rather than private in
Units, we could do a better job of this, and could treat kg m/s as
kg*m/s for example.]

Revision 4667 - Directory Listing
Modified Sun Nov 26 21:58:43 2006 UTC (13 years, 2 months ago) by dpvc
Fixed a problem where the TeX version included two copies of the units
(one in TeX mode and one from the string() output).

Revision 4666 - Directory Listing
Modified Sun Nov 26 21:57:39 2006 UTC (13 years, 2 months ago) by dpvc
Updated NumberWithUnits to use Parser::LEgacy::NumberWithUnits rather
than having a separate implementation here.  This will guarantee that
it is consistent with num_cmp() and prevents unneeded duplication of
code.

Revision 4665 - Directory Listing
Modified Sun Nov 26 21:28:40 2006 UTC (13 years, 2 months ago) by dpvc
Didn't need to override the perl fields for the integer-only methods,
since all the checking is done in the parser.

Revision 4664 - Directory Listing
Modified Sun Nov 26 21:15:24 2006 UTC (13 years, 2 months ago) by dpvc
This file implements special power operators that check for special
conditions (like no powers of 'e', or only integer powers).  See the
contents of the file for documentation.

Revision 4663 - Directory Listing
Modified Sun Nov 26 20:30:17 2006 UTC (13 years, 2 months ago) by dpvc
Added ability to have additional information given when not enough
test points can be generated for a function comparison.  By default,
this information is NOT shown (since it could give students additional
information about what answer is expectd).  Professors can request it
by setting the 'showTestPointErrors' flag in the Context().

Revision 4662 - Directory Listing
Modified Sun Nov 26 20:11:03 2006 UTC (13 years, 2 months ago) by dpvc
Allow overridden Parser classes to generate error messages that the
student will see.  (For formulas, error messages are trapped silently
by the overridden == and will not be seen.  This lets Parser objects
force a message to be seen.)

Revision 4655 - Directory Listing
Modified Wed Nov 22 17:18:07 2006 UTC (13 years, 3 months ago) by gage
Fixed error in wwassignment_gradeMethods which calculated whether a
problem was correct based on whether the number of correct answers was
greater than 0.   This is inaccurate when an instructor marks a problem
correct for everyone in a class.  This action changes the status to 1
but does not change the "num_correct" parameter.

The wwassignment_gradeMethods is updated to use "status" instead of
"num-correct" in determining the grade for the gradeSimple procedure.
The gradeDeductRetry method still needs modification.

Revision 4654 - Directory Listing
Modified Wed Nov 15 16:50:05 2006 UTC (13 years, 3 months ago) by sh002i
SECURITY: tighter constraints on which macro files can be loaded without
restriction. Previously, any file that *contained* the strings PG.pl,
dangerousMacros.pl, or IO.pl would be loaded with an empty opmask.

Revision 4649 - Directory Listing
Modified Mon Nov 13 18:05:18 2006 UTC (13 years, 3 months ago) by sh002i
make default feedback button name "Email instructor" for those who don't
want to update global.conf.

Revision 4648 - Directory Listing
Modified Mon Nov 13 17:27:51 2006 UTC (13 years, 3 months ago) by sh002i
typo fix

Revision 4647 - Directory Listing
Modified Mon Nov 13 16:53:47 2006 UTC (13 years, 3 months ago) by sh002i
label proctor login_type with the user ID of the student

Revision 4646 - Directory Listing
Modified Mon Nov 13 16:48:39 2006 UTC (13 years, 3 months ago) by sh002i
improvements to Authen logging:
- add login_type field (normal, guest, proctor, proctor_grading)
- add initial_login field to control when success loggin occurs
- log password success/failure directly, but also log overall success or
  failure at end of verify()
- add log_error field to for overall failure message
- improve wording of some error messages

Revision 4645 - Directory Listing
Modified Mon Nov 13 16:19:42 2006 UTC (13 years, 3 months ago) by sh002i
allow replacing feedback button with a link to an arbitrary URL.

Revision 4642 - Directory Listing
Modified Fri Nov 10 17:56:01 2006 UTC (13 years, 3 months ago) by sh002i
complete the fix for the undefined problibs hash problem.

Revision 4638 - Directory Listing
Modified Tue Nov 7 18:27:47 2006 UTC (13 years, 3 months ago) by sh002i
avoid error when the $courseFiles{problibs} hash is undefined.
see: <http://webhost.math.rochester.edu/webworkdocs/discuss/msgReader$4261>

Revision 4636 - Directory Listing
Modified Mon Nov 6 22:30:26 2006 UTC (13 years, 3 months ago) by sh002i
import parse_scoring_file routine (THIRD TIME'S THE CHARM)

Revision 4635 - Directory Listing
Modified Mon Nov 6 22:27:49 2006 UTC (13 years, 3 months ago) by sh002i
import parse_scoring_file routine

Revision 4634 - Directory Listing
Modified Mon Nov 6 22:24:49 2006 UTC (13 years, 3 months ago) by sh002i
accidental commit

Revision 4633 - Directory Listing
Modified Mon Nov 6 22:21:46 2006 UTC (13 years, 3 months ago) by sh002i
import parse_scoring_file routine

Revision 4626 - Directory Listing
Modified Fri Nov 3 23:35:31 2006 UTC (13 years, 3 months ago) by dpvc
Made str_cmp accept blank answers again.  Fixes bug #1123.

Note:  if you use blank answers, the "n of the questions remain
unanswered" message will tell you how many of the answers should be
left blank.  It is probably worth working out a method of having blank
entries that are only marked correct when all the other answers are
correct (this would take a special grader; I have this as part of the
weighted grader, but it is not common knowledge).

Revision 4625 - Directory Listing
Modified Fri Nov 3 23:05:37 2006 UTC (13 years, 3 months ago) by dpvc
Fixed problem with checking Matrices of dimension 1 x n.
(Fixes bug 1122.)

Revision 4601 - Directory Listing
Modified Tue Oct 31 18:53:03 2006 UTC (13 years, 3 months ago) by sh002i
add where_email_address_nonempty, remove commented-out code

Revision 4600 - Directory Listing
Modified Tue Oct 31 18:52:06 2006 UTC (13 years, 3 months ago) by sh002i
remove some commented-out code

Revision 4599 - Directory Listing
Modified Tue Oct 31 18:51:18 2006 UTC (13 years, 3 months ago) by sh002i
add methods that expose the "where" interface of NewSQL

Revision 4598 - Directory Listing
Modified Tue Oct 31 18:46:06 2006 UTC (13 years, 3 months ago) by sh002i
standardize routines for reading scoring files, resolves bug #932.

Revision 4597 - Directory Listing
Modified Mon Oct 30 20:51:25 2006 UTC (13 years, 3 months ago) by sh002i
remove commented-out non-apache2-compatible code

Revision 4596 - Directory Listing
Modified Mon Oct 30 20:47:57 2006 UTC (13 years, 3 months ago) by sh002i
apache2 compatibility fixes

Revision 4595 - Directory Listing
Modified Mon Oct 30 20:46:46 2006 UTC (13 years, 3 months ago) by sh002i
make full copy of param data for apache 2

Revision 4594 - Directory Listing
Modified Wed Oct 25 22:49:54 2006 UTC (13 years, 3 months ago) by sh002i
make this work with Apache2 (i can't believe this wasn't caught earlier)

Revision 4593 - Directory Listing
Modified Wed Oct 25 15:49:00 2006 UTC (13 years, 3 months ago) by sh002i
fix box() to actually do undef=>"" conversion (oops), simplify unbox().

Revision 4592 - Directory Listing
Modified Wed Oct 25 14:25:31 2006 UTC (13 years, 3 months ago) by sh002i
use fetchrow_array rather than fetchrow_arrayref in get iterator

Revision 4591 - Directory Listing
Modified Wed Oct 25 14:24:32 2006 UTC (13 years, 3 months ago) by sh002i
add where_user_id_like()

Revision 4590 - Directory Listing
Modified Wed Oct 25 14:23:48 2006 UTC (13 years, 3 months ago) by sh002i
add where_user_id_like(), make box() more concise, formatting fixes.

Revision 4589 - Directory Listing
Modified Wed Oct 25 14:22:22 2006 UTC (13 years, 3 months ago) by sh002i
construct from hashrefs and arrayrefs in addition to hashes and objects,
add toArray method.

Revision 4588 - Directory Listing
Modified Wed Oct 25 14:20:46 2006 UTC (13 years, 3 months ago) by sh002i
add schema accessor methods (ie $db->User), make gen_new more concise.

Revision 4587 - Directory Listing
Modified Mon Oct 23 17:33:20 2006 UTC (13 years, 4 months ago) by sh002i
add "exists" methods, remove commented-out $where vars, fix usage of
grok_versionID_from_vsetID_sql, make getUserSetVersions behave
correctly.

Revision 4586 - Directory Listing
Modified Mon Oct 23 17:32:01 2006 UTC (13 years, 4 months ago) by sh002i
needs "v" in make/grok_vsetID, move "+0" numeric cast into
grok_versionID_from_vsetID_sql, add parens.

Revision 4585 - Directory Listing
Modified Mon Oct 23 17:30:26 2006 UTC (13 years, 4 months ago) by sh002i
added where_versionedset_user_id_eq_set_id_eq_version_id_le

Revision 4584 - Directory Listing
Modified Mon Oct 23 17:29:52 2006 UTC (13 years, 4 months ago) by sh002i
override _order_by to allow passthrough of literal SQL via scalar refs.

Revision 4583 - Directory Listing
Modified Mon Oct 23 11:43:40 2006 UTC (13 years, 4 months ago) by dpvc
Make sure \cdot is only used for a numeric right-hand part (finishes
fix of bug 1114).

Revision 4582 - Directory Listing
Modified Mon Oct 23 11:38:14 2006 UTC (13 years, 4 months ago) by dpvc
Use \cdot when a number is followed by a numeric fraction.
(Fixes bug 1114.)

Revision 4581 - Directory Listing
Modified Fri Oct 20 16:33:25 2006 UTC (13 years, 4 months ago) by sh002i
This script is for use on the annoyingly-corrupted tmon.out files that
Devel::DProf generates when Safe compartments are used. It escapes
nonprintable characters and spurrious newlines.

Revision 4580 - Directory Listing
Modified Thu Oct 19 17:37:25 2006 UTC (13 years, 4 months ago) by sh002i
change the way where_* subs are called, bugfixes.

Revision 4579 - Directory Listing
Modified Thu Oct 19 17:35:25 2006 UTC (13 years, 4 months ago) by sh002i
move moodle session table access routines to Authen::Moodle.

Revision 4578 - Directory Listing
Modified Wed Oct 18 01:45:04 2006 UTC (13 years, 4 months ago) by dpvc
Update to version 3.3g:

* When the AMSsymbols extension is loaded, the \mathbb macro is now
  changed to use the blackboard bold characters that are in the msbm
  font. (In the past, this would occur when the msbm font is first
  loaded, but the change should be made right away, since a use of
  \mathbb should cause the msbm font to load if it isn't already.)

* Fixed a bug introduced in version 3.3f that causes tex2math (when
  used with autoload) to cause MSIE/PC to stop processing display
  mathematics in some situations.

* Fixed problem with \longmapsto that caused gaps between the
  characters that form the arrow. Also worked around a problem with
  Firefox that caused \mapsto to lose its vertical tick at the
  left-hand end of the arrow.

* Fixed a problem with autoload where multiple calls to tex2math could
  cause tex2math to convert \$ to $ and then later try to interpret
  the $ as a start-of-math delimiter, even though it was previously
  escaped.

* Reorganized the autoload plugin so that jsMath.Autoload.Run() no
  longer needs to be called. In the past, autoload would use tex2math
  to look for text that needs to be converted to SPAN and DIV tags of
  class "math", but would not convert them itself. Now that autoload
  has settings to control what tex2math functions will be performed,
  there is no need to put off the conversion, so autoload now does the
  tex2math conversion immediately. The
  jsMath.Autoload.findMathElements variable is no longer needed, and
  so has been depricated.

* Fixed a problem with tex2math where two escaped dollars in a row
  would not be processed properly (the second would not be treated as
  escaped, and so could be treated as a start-of-math delimiter).

Revision 4577 - Directory Listing
Modified Tue Oct 17 23:42:55 2006 UTC (13 years, 4 months ago) by sh002i
this schema module is used for both the password and permission tables.

Revision 4576 - Directory Listing
Modified Tue Oct 17 23:42:00 2006 UTC (13 years, 4 months ago) by sh002i
fixed a problem where users with no groups or no groups in this course
were excluded from listings. use _course_members_query() from Moodle.pm
to get userids_subquery.

Revision 4575 - Directory Listing
Modified Tue Oct 17 23:40:43 2006 UTC (13 years, 4 months ago) by sh002i
slightly nicer constructor

Revision 4574 - Directory Listing
Modified Tue Oct 17 23:40:26 2006 UTC (13 years, 4 months ago) by sh002i
moved function that generates and SQL statment listing the userids in
the current course, added a function that does the same for groupids.

Revision 4573 - Directory Listing
Modified Tue Oct 17 23:39:14 2006 UTC (13 years, 4 months ago) by sh002i
slightly nicer constuctor

Revision 4572 - Directory Listing
Modified Tue Oct 17 23:38:45 2006 UTC (13 years, 4 months ago) by sh002i
utility bind() method which fills in bind values

Revision 4571 - Directory Listing
Modified Fri Oct 13 21:43:47 2006 UTC (13 years, 4 months ago) by dpvc
Fixed problem with function checking when vars are specified with
limits and the vars are not in alphabetical order. (The Parser expects
the limits and test points to have coordinates specified in
alphabetical order, so they need to be reordered if the author has
them in another order.)

Revision 4570 - Directory Listing
Modified Fri Oct 13 20:37:46 2006 UTC (13 years, 4 months ago) by sh002i
completed NewSQL::Moodle::User module -- seems to work well

Revision 4569 - Directory Listing
Modified Thu Oct 12 22:04:04 2006 UTC (13 years, 4 months ago) by sh002i
first crack at NewSQL-based Moodle::User module... kinda cool, really...

Revision 4568 - Directory Listing
Modified Thu Oct 12 22:02:52 2006 UTC (13 years, 4 months ago) by sh002i
yet more where clause abstractions (annoying but necessary :P)

Revision 4567 - Directory Listing
Modified Wed Oct 11 16:16:51 2006 UTC (13 years, 4 months ago) by sh002i
remove unused functions (left over from GDBM days)

Revision 4566 - Directory Listing
Modified Wed Oct 11 16:15:50 2006 UTC (13 years, 4 months ago) by sh002i
remove unused reference to findDefaults

Revision 4565 - Directory Listing
Modified Tue Oct 10 18:18:53 2006 UTC (13 years, 4 months ago) by sh002i
move creation of sql object into init_sql method (cf Merge.pm)

Revision 4564 - Directory Listing
Modified Tue Oct 10 18:16:17 2006 UTC (13 years, 4 months ago) by sh002i
remove null implementations of n/a oldapi methods, random cleanup.

Revision 4563 - Directory Listing
Modified Tue Oct 10 18:15:22 2006 UTC (13 years, 4 months ago) by sh002i
nice error messages for unimplemented API methods

Revision 4562 - Directory Listing
Modified Tue Oct 10 15:45:11 2006 UTC (13 years, 4 months ago) by jj
Catch errors which get thrown by other filters.

Revision 4561 - Directory Listing
Modified Tue Oct 10 10:58:54 2006 UTC (13 years, 4 months ago) by dpvc
Fixed problem where ShowPast Answers would incorrectly includes
answers for students whose login name have the current student's login
name as a suffix. (Fixes bug #1102)

Revision 4560 - Directory Listing
Modified Fri Oct 6 21:21:25 2006 UTC (13 years, 4 months ago) by sh002i
mark set_merged and problem_merged as non-native

Revision 4559 - Directory Listing
Modified Fri Oct 6 21:18:26 2006 UTC (13 years, 4 months ago) by sh002i
add set_merged and problem_merged "tables" to do in-database merging.

Revision 4558 - Directory Listing
Modified Fri Oct 6 21:17:40 2006 UTC (13 years, 4 months ago) by sh002i
this is the log message for the last version (v1.80): sweeping changes!

PLEASE NOTE THAT VERSION 1.80 AND LATER OF DB.PM WILL NOT WORK WITH
MOODLE UNTIL I UPDATE THE MOODLE SCHEMA MODULES (which should happen
soon).

WARNING: VERY EXPERIMENTAL CHANGES. DO NOT USE ON PRODUCTION SITES.
MAKE A BACKUP OF YOUR DATA BEFORE USING.

replaced ad-hoc argument checking with calls to checkArgs and
checkArgsRefList. this makes the code much more concise and readable.

no longer checking for existence before adding a field -- instead catch
a RecordExists exception which is thrown by NewSQL classes. this will
speed inserts of slightly.

added count* methods for all tables.

switch to using newer NewSQL methods where they'll be more efficient or
readable.

generally regularize code -- resolve indentation problems, get rid of
extraneous empty lines, etc.

rewrote getMergedSets, getMergedProblems, and getAllMergedUserProblems
to use NewSQL::Merged (via set_merged/problem_merged "tables"). The new
merge method (which is done completely withtin the database) is more
than three times as fast for normal merging and more than seven times as
fast for getAllMergedUserProblems.

Revision 4557 - Directory Listing
Modified Fri Oct 6 21:01:22 2006 UTC (13 years, 4 months ago) by sh002i
*** empty log message ***

Revision 4556 - Directory Listing
Modified Fri Oct 6 20:20:35 2006 UTC (13 years, 4 months ago) by sh002i
lots o' fixes

Revision 4555 - Directory Listing
Modified Fri Oct 6 20:19:56 2006 UTC (13 years, 4 months ago) by sh002i
FIELD_DATA() returns a reference to the field_data hash

Revision 4554 - Directory Listing
Modified Fri Oct 6 20:18:52 2006 UTC (13 years, 4 months ago) by sh002i
add a transformation function that acts on fields, whether or not
they're qualified with a table name.

Revision 4553 - Directory Listing
Modified Fri Oct 6 04:35:05 2006 UTC (13 years, 4 months ago) by sh002i
pretty logging!

Revision 4552 - Directory Listing
Modified Fri Oct 6 04:33:16 2006 UTC (13 years, 4 months ago) by sh002i
don't turn on tracing -- we're doing out own debugging in each schema
module now :)

Revision 4551 - Directory Listing
Modified Thu Oct 5 19:44:51 2006 UTC (13 years, 4 months ago) by sh002i
add RecordExists exception: schema modules should throw this exception
if a conflicting record exists on insert.

Revision 4550 - Directory Listing
Modified Thu Oct 5 19:44:04 2006 UTC (13 years, 4 months ago) by sh002i
explicitly turn PrintError off

Revision 4549 - Directory Listing
Modified Thu Oct 5 19:43:33 2006 UTC (13 years, 4 months ago) by sh002i
newsql module for accessing "merged" records as if they existed in a table

Revision 4548 - Directory Listing
Modified Thu Oct 5 19:43:06 2006 UTC (13 years, 4 months ago) by sh002i
newsql-based module for accessing standard webwork SQL tables

Revision 4547 - Directory Listing
Modified Thu Oct 5 19:42:44 2006 UTC (13 years, 4 months ago) by sh002i
this file is now the base class for newsql-based schema modules

Revision 4546 - Directory Listing
Modified Thu Oct 5 11:10:06 2006 UTC (13 years, 4 months ago) by dpvc
Fixed bad check for if the complex number is 1 (caused reduce to
incorrectly remove the complex number when used in multiplication).

Revision 4545 - Directory Listing
Modified Mon Oct 2 17:05:55 2006 UTC (13 years, 4 months ago) by sh002i
put user methods first (in same order as dblayout tables in database.conf)

Revision 4544 - Directory Listing
Modified Mon Oct 2 16:59:25 2006 UTC (13 years, 4 months ago) by sh002i
remove spurrious use lines for Record classes

Revision 4543 - Directory Listing
Modified Mon Oct 2 16:32:51 2006 UTC (13 years, 4 months ago) by sh002i
fixes to index structure.

* the prefix lengths on keyfield indexes is now 255, the length of the field.
* the index that contains all three keyfields is now a UNIQUE KEY
* psvn is no longer the PRIMARY KEY, now a UNIQUE KEY (and it's the
second UNIQUE KEY, after the user_id/set_id one)

also, made wwdb_upgrade a little easier to maintain by not hardcoding
version numbers into the @DB_VERSIONS structure.

Revision 4542 - Directory Listing
Modified Mon Oct 2 15:05:14 2006 UTC (13 years, 4 months ago) by sh002i
alphanumeric keyfields TINYBLOB NOT NULL instead of BLOB for UNIQUE indexing.
check for table existence before doing something with that table.

Revision 4541 - Directory Listing
Modified Mon Oct 2 15:04:27 2006 UTC (13 years, 4 months ago) by sh002i
alphanumeric keyfields TINYBLOB NOT NULL instead of BLOB for UNIQUE indexing.

Revision 4540 - Directory Listing
Modified Fri Sep 29 19:41:36 2006 UTC (13 years, 4 months ago) by sh002i
update sql_moodle to reference remaining routines in sql_single

Revision 4539 - Directory Listing
Modified Fri Sep 29 19:39:55 2006 UTC (13 years, 4 months ago) by sh002i
use $db->rename_tables for course renaming, remove addCourseHelper,
deleteCourseHelper, copyCourseDataHelper and associated infrastructure.
still have to do something about archive/unarchive -- they are not only
mysql specific, but they rely on the database being local, on the
default port, and named "webwork". :P

Revision 4538 - Directory Listing
Modified Fri Sep 29 19:37:55 2006 UTC (13 years, 4 months ago) by sh002i
table renaming support

Revision 4537 - Directory Listing
Modified Fri Sep 29 19:03:00 2006 UTC (13 years, 4 months ago) by sh002i
propagate errors during module preload

Revision 4536 - Directory Listing
Modified Fri Sep 29 19:02:31 2006 UTC (13 years, 4 months ago) by sh002i
remove reference to FileXfer

Revision 4535 - Directory Listing
Modified Fri Sep 29 16:52:23 2006 UTC (13 years, 4 months ago) by sh002i
use $db->create_tables and $db->delete_tables, check for dblayout
existence even if we're using the default dblayoutname, make regex and
error message match for course id checking, removal of "sql" specific
information from POD, formatting fixes, additional warnings about bad
course existence checking code.

Revision 4534 - Directory Listing
Modified Fri Sep 29 16:49:47 2006 UTC (13 years, 4 months ago) by sh002i
add create_tables and delete_tables methods

Revision 4533 - Directory Listing
Modified Fri Sep 29 16:49:08 2006 UTC (13 years, 4 months ago) by sh002i
remove partially finished and sometimes incorrect POD :(

Revision 4532 - Directory Listing
Modified Fri Sep 29 16:47:51 2006 UTC (13 years, 4 months ago) by sh002i
drop_table becomes delete_table (don't want to use SQL terminology
exactly...). don't refer to $self->{record} or $self->{driver} in the
main code, only in the helpers at the bottom. (this might help us with
subclassing for moodle... maybe...)

Revision 4531 - Directory Listing
Modified Fri Sep 29 14:54:35 2006 UTC (13 years, 4 months ago) by sh002i
add create_table and drop_table methods, small cleanups.

Revision 4530 - Directory Listing
Modified Thu Sep 28 23:42:32 2006 UTC (13 years, 4 months ago) by sh002i
incorrectly set type of set_user.status column to INT; should be FLOAT.
if you ran wwdb_upgrade after the last commit, you lost the decimal
portions of any status values. thanks to gavin for noticing.

Revision 4529 - Directory Listing
Modified Thu Sep 28 22:48:23 2006 UTC (13 years, 4 months ago) by sh002i
change key.timestamp type to BIGINT and problem_user.status type to INT.

Revision 4528 - Directory Listing
Modified Wed Sep 27 17:15:18 2006 UTC (13 years, 4 months ago) by dpvc
Fixed problem where a zero with units would me marked as "not looking
like anumber with units".

Revision 4527 - Directory Listing
Modified Tue Sep 26 15:57:41 2006 UTC (13 years, 4 months ago) by sh002i
remove several useless "use Data::Dumper" lines

Revision 4526 - Directory Listing
Modified Tue Sep 26 15:43:26 2006 UTC (13 years, 4 months ago) by sh002i
null-to-empty-string translation. this is necessary right now, but
ultimately undesirable.

Revision 4525 - Directory Listing
Modified Tue Sep 26 15:01:50 2006 UTC (13 years, 4 months ago) by sh002i
SQL::Abstract subclass that allows transformation of SQL identifiers. it
overloads the _table and _quote methods to allow different
transformation routines for table names and column names. the
transformation routines themselves are specified by the new
"transform_table" and "transform_field" parameters to the constructor
that take coderefs.

used by NewSQL to implement tableOverride and fieldOverride.

Revision 4524 - Directory Listing
Modified Mon Sep 25 22:56:58 2006 UTC (13 years, 4 months ago) by sh002i
a new, much more flexible implementation. should be a drop-in
replacement. please test.

Revision 4523 - Directory Listing
Modified Mon Sep 25 22:41:37 2006 UTC (13 years, 4 months ago) by sh002i
set DBI trace level from dbLayout "debug" param. this can be a little chatty...

Revision 4522 - Directory Listing
Modified Mon Sep 25 22:40:56 2006 UTC (13 years, 4 months ago) by sh002i
generate record class methods from a single field data table at compile
time. generate real accessors/mutators rather than using an autoload.
this should speed up record access significantly.

Revision 4521 - Directory Listing
Modified Mon Sep 25 22:35:05 2006 UTC (13 years, 4 months ago) by sh002i
use a single username/password for connecting to the SQL database. this
means that only one DBI handle is created instead of two, and the
Driver's connect/disconnect methods are no-ops.

Revision 4520 - Directory Listing
Modified Mon Sep 25 22:27:43 2006 UTC (13 years, 4 months ago) by sh002i
another false start :(

Revision 4519 - Directory Listing
Modified Mon Sep 25 22:26:38 2006 UTC (13 years, 4 months ago) by sh002i
dymanically generate newRecord subroutines at compile time -- they're
identical except for their names and the tables they access, so they
might as well be generated. slightly more compile-time overhead,
no-to-negligible impact on runtime speed.

Revision 4518 - Directory Listing
Modified Mon Sep 25 22:14:54 2006 UTC (13 years, 4 months ago) by sh002i
tons of "DBFIXME" notes -- how to make database access more efficient

Revision 4517 - Directory Listing
Modified Mon Sep 25 22:02:34 2006 UTC (13 years, 4 months ago) by sh002i
it was not a good idea to put a literal ASCII NUL in this file.

Revision 4516 - Directory Listing
Modified Mon Sep 25 21:44:07 2006 UTC (13 years, 4 months ago) by sh002i
added small fixme note

Revision 4515 - Directory Listing
Modified Mon Sep 25 16:10:36 2006 UTC (13 years, 4 months ago) by glarose
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.

Revision 4514 - Directory Listing
Modified Mon Sep 25 16:05:31 2006 UTC (13 years, 4 months ago) by glarose
Gateway update: report tests graded in the grace period after the due
time as having been completed at exactly the maximum allowed time.
Thus, if a test allows 20 min and there is a grace period (defined in
global.conf) of 2 min, a test submitted after 21 min will be reported
here as having been completed in 20 min, not 21.  This avoids some
confusion for instructors who aren't aware of the grace period.

This update doesn't have any effect on the presentation of non-
versioned sets.

Revision 4513 - Directory Listing
Modified Fri Sep 22 16:36:57 2006 UTC (13 years, 5 months ago) by dpvc
Make ijk mode use the TeX definitions from the i, j and k constants as
defined in the context, if they exist, otherwise fall back on the
defaults.

Revision 4512 - Directory Listing
Modified Thu Sep 21 22:08:49 2006 UTC (13 years, 5 months ago) by dpvc
Fix problem with formula comparisons involving vector-valued formulas.
The coordinates for the vectors used in checking equality were plain
Perl reals rather than Parser-based reals, and so the comparisons were
being done using exact rather than fuzzy comparisons.

Revision 4511 - Directory Listing
Modified Wed Sep 20 23:38:38 2006 UTC (13 years, 5 months ago) by dpvc
Make a more sophisticated unit check so that it will handle things
like "3ft / s" (that don't have a space before the units).

Really need to make a units class for the Parser.

Revision 4510 - Directory Listing
Modified Wed Sep 20 21:50:56 2006 UTC (13 years, 5 months ago) by dpvc
Fixed unit checking so that units can include spaces (like 4 ft /
min).  Also fixed a problem where units were not being reported as
part of the student's entered answer.

Revision 4509 - Directory Listing
Modified Mon Sep 18 21:31:46 2006 UTC (13 years, 5 months ago) by sh002i
superceded by ProblemSetDetail.pm

Revision 4508 - Directory Listing
Modified Mon Sep 18 21:23:57 2006 UTC (13 years, 5 months ago) by sh002i
replaced by FileManger.pm a while ago

Revision 4505 - Directory Listing
Modified Mon Sep 18 20:02:17 2006 UTC (13 years, 5 months ago) by sh002i
parse a cvs commit log email and generate "cvs up" commands to merge the
changes into the current working copy. (all this does is looks for the
"diff" commands and pulls the filename and version numbers out of it.)

Revision 4504 - Directory Listing
Modified Mon Sep 18 18:04:11 2006 UTC (13 years, 5 months ago) by sh002i
use before/after/between from Utils.pm

Revision 4503 - Directory Listing
Modified Mon Sep 18 18:03:50 2006 UTC (13 years, 5 months ago) by sh002i
move before, after, and between subroutines here from Problem/GatewayQuiz

Revision 4502 - Directory Listing
Modified Sun Sep 17 17:44:36 2006 UTC (13 years, 5 months ago) by dpvc
Changed button order to put "save" before "save as" as per Arnie's
suggestion in

   http://webhost.math.rochester.edu/webworkdocs/discuss/msgReader$4100

This avoids "save" disappearing off the right-hand side when the
browser windows isn't big enough to show it.

Revision 4501 - Directory Listing
Modified Fri Sep 15 22:09:36 2006 UTC (13 years, 5 months ago) by sh002i
removed support module for deleted sql dblayout

Revision 4500 - Directory Listing
Modified Fri Sep 15 22:02:37 2006 UTC (13 years, 5 months ago) by sh002i
move contents of CGIDeleteParams.pm to CGI.pm. This removes a level of
indirection that's no longer necessary, and fixes importing.

Revision 4499 - Directory Listing
Modified Fri Sep 15 21:46:22 2006 UTC (13 years, 5 months ago) by sh002i
no longer used -- see CGIDeleteParams

Revision 4498 - Directory Listing
Modified Fri Sep 15 21:44:17 2006 UTC (13 years, 5 months ago) by sh002i
remove unused $db lexical

Revision 4497 - Directory Listing
Modified Fri Sep 15 19:03:39 2006 UTC (13 years, 5 months ago) by sh002i
strictify

Revision 4496 - Directory Listing
Modified Fri Sep 15 19:03:29 2006 UTC (13 years, 5 months ago) by sh002i
use /usr/bin/perl instead of /usr/local/bin/perl

Revision 4495 - Directory Listing
Modified Fri Sep 15 17:53:34 2006 UTC (13 years, 5 months ago) by sh002i
didn't mean to commit that.

Revision 4494 - Directory Listing
Modified Fri Sep 15 17:53:18 2006 UTC (13 years, 5 months ago) by sh002i
make importing actually work in runtime_use. previously, symbols were
being imported into the bogus package "Main", and there was no way to
specify an import list.

Revision 4493 - Directory Listing
Modified Thu Sep 14 16:47:42 2006 UTC (13 years, 5 months ago) by dpvc
Had an error in the new CSS specification, which is fixed here.

Revision 4492 - Directory Listing
Modified Thu Sep 14 16:06:59 2006 UTC (13 years, 5 months ago) by dpvc
Updates for version 3.3e:

* Fixed a problem with how the cookie data is stored for the control
  panel (special characters were not being escaped, which causes
  difficulties with some browsers).

* Fixed a bug where jsMath would not determine the em-size correctly
  in text blocks where the text-indent was set to a non-zero value.

* Added some CSS styles to try to isolate the jsMath control panel
  from changes that might be caused by CSS settings from the main
  page.  (Page authors who set styles that affect the jsMath panel may
  want to add additional CSS rules to reset those within #jsMath_panel
  in order to make the panel continue to look correct.)

* Added \newline as an alternative to \cr and \\.

* Added a new help file explaining the missing font messages and how
  to address them.

Revision 4491 - Directory Listing
Modified Wed Sep 13 23:40:26 2006 UTC (13 years, 5 months ago) by sh002i
precompile many modules at server start time. this allows more compiled
code (parse trees, bytecode, etc.) to be shared among child processes,
and speeds child start time, since that compilation has already been
done in the master process.

you may want to turn this off for development, since it makes the server
take a really long time to start.

Revision 4490 - Directory Listing
Modified Tue Sep 12 17:07:56 2006 UTC (13 years, 5 months ago) by sh002i
indentation fixes: the outdenting of section headers was making this
file really hard for me to read, so i indented them all.

Revision 4489 - Directory Listing
Modified Tue Sep 12 17:06:43 2006 UTC (13 years, 5 months ago) by sh002i
allow empty last field to be present when reading classlist

Revision 4488 - Directory Listing
Modified Mon Sep 11 22:23:45 2006 UTC (13 years, 5 months ago) by dpvc
Allow matrices to set their own templates (instead of using "c" for
all columns), and handle missing open and close delimiters better.

Revision 4487 - Directory Listing
Modified Mon Sep 11 22:21:49 2006 UTC (13 years, 5 months ago) by dpvc
Allow the _check subroutine to affect the {isConstant} field.

Revision 4486 - Directory Listing
Modified Mon Sep 11 20:34:41 2006 UTC (13 years, 5 months ago) by sh002i
add more erorr checking, get settings from global.conf.

Revision 4485 - Directory Listing
Modified Mon Sep 11 20:33:27 2006 UTC (13 years, 5 months ago) by sh002i
add ldap options

Revision 4484 - Directory Listing
Modified Mon Sep 11 20:22:25 2006 UTC (13 years, 5 months ago) by sh002i
added missing ")" to log message

Revision 4483 - Directory Listing
Modified Mon Sep 11 17:13:32 2006 UTC (13 years, 5 months ago) by dpvc
Fixed so this works with MSIE now.

Revision 4481 - Directory Listing
Modified Mon Sep 11 16:39:31 2006 UTC (13 years, 5 months ago) by sh002i
parse "cvs status 2>&1" output and show changed/out-of-date files

Revision 4480 - Directory Listing
Modified Mon Sep 11 16:39:03 2006 UTC (13 years, 5 months ago) by sh002i
get version from command line, don't upload to SF automatically

Revision 4467 - Directory Listing
Modified Sun Sep 10 01:59:19 2006 UTC (13 years, 5 months ago) by dpvc
Second attempt to trap the stderr output of bsdtar.

Revision 4466 - Directory Listing
Modified Sat Sep 9 22:09:55 2006 UTC (13 years, 5 months ago) by gage
Map Moodle groups to WeBWorK sections and recitations

A section is a group that begins with the prefix SEC_
all other groups are recitations.

Revision 4465 - Directory Listing
Modified Sat Sep 9 01:40:30 2006 UTC (13 years, 5 months ago) by dpvc
Use shell_qupte and readpipe to handle tar commands, and include
stderr in the output so that we can report the correct number of files
archived via bsdtar.

Revision 4464 - Directory Listing
Modified Sat Sep 9 00:22:13 2006 UTC (13 years, 5 months ago) by dpvc
Add parenthesis around ijk vectors for string concatenation.

Revision 4463 - Directory Listing
Modified Fri Sep 8 21:01:19 2006 UTC (13 years, 5 months ago) by glarose
Gateway debug: correct code allowing multiple problems to be drawn
from the same problem group.  I think this is correct now (the original
code I wrote was odd enough that it's not at all clear what I was
thinking...).

Revision 4462 - Directory Listing
Modified Fri Sep 8 20:28:54 2006 UTC (13 years, 5 months ago) by glarose
Gateway update to Hardcopy: correct generation of hardcopies including
student solutions to allow the correct answers to be shown before the
due date if the student has used up all attempts on the set.

Revision 4461 - Directory Listing
Modified Fri Sep 8 20:16:19 2006 UTC (13 years, 5 months ago) by sh002i
skip non-directories. prune empty directories in cvs update.

Revision 4460 - Directory Listing
Modified Fri Sep 8 19:53:21 2006 UTC (13 years, 5 months ago) by sh002i
backport (sh002i): better defaults for problem library settings.

Revision 4458 - Directory Listing
Modified Fri Sep 8 14:20:23 2006 UTC (13 years, 5 months ago) by sh002i
forward-port (sh002i): promote empty or missing statuses to the default
status before importing

Revision 4455 - Directory Listing
Modified Thu Sep 7 17:03:51 2006 UTC (13 years, 5 months ago) by sh002i
set default courses dir to /opt/webwork/courses, remove "oldProf" URL

Revision 4454 - Directory Listing
Modified Thu Sep 7 01:18:08 2006 UTC (13 years, 5 months ago) by dpvc
Added ability to overrid TeX and perl versions by specifying a TeX or
perl field in the variable definition.  Also made vector-valued
variables show up in bold.

Revision 4452 - Directory Listing
Modified Wed Sep 6 18:18:30 2006 UTC (13 years, 5 months ago) by sh002i
filter out students without "include_in_email" behavior - bug #938.

Revision 4450 - Directory Listing
Modified Wed Sep 6 16:25:56 2006 UTC (13 years, 5 months ago) by sh002i
fixed bug #1057 -- read_set_def was getting the wrong param passed to it.

Revision 4449 - Directory Listing
Modified Wed Sep 6 14:31:42 2006 UTC (13 years, 5 months ago) by sh002i
backing out of accidental commit.

Revision 4448 - Directory Listing
Modified Tue Sep 5 16:49:55 2006 UTC (13 years, 5 months ago) by sh002i
somehow this got lost

Revision 4443 - Directory Listing
Modified Tue Sep 5 16:27:43 2006 UTC (13 years, 5 months ago) by sh002i
re-adding courses.dist to just HEAD and rel-2-3-dev branches (see below)

i'm re-adding this directory using "cvs add" rather than by copying it
from "courses" in the repository. this avoids having it show up in older
release branches. the downside is that we lose the version history, but
i don't think that's a big problem.

Revision 4441 - Directory Listing
Modified Tue Sep 5 16:00:40 2006 UTC (13 years, 5 months ago) by sh002i
removing courses directory (please read)

i originally moved the courses directory to courses.dist, to preserve
file history, but this wasn't the right strategy, since it caused the
courses directory to disappear from older branches as well. so i copied
it back to courses, and then used "cvs remove" to delete its contents.

so, it will hopefully exist in rel-2-2-dev and earlier releases, but not
in rel-2-3-dev or HEAD.

Revision 4437 - Directory Listing
Modified Fri Sep 1 17:41:24 2006 UTC (13 years, 5 months ago) by sh002i
webwork2 and pg dirs are in /opt/webwork by default now

Revision 4435 - Directory Listing
Modified Fri Sep 1 17:28:51 2006 UTC (13 years, 5 months ago) by sh002i
disable test CG

Revision 4428 - Directory Listing
Modified Fri Sep 1 14:17:43 2006 UTC (13 years, 5 months ago) by sh002i
replaced unicode literals with code points.

Revision 4427 - Directory Listing
Modified Fri Sep 1 14:16:36 2006 UTC (13 years, 5 months ago) by sh002i
make logfile names more regular

Revision 4426 - Directory Listing
Modified Thu Aug 31 20:17:27 2006 UTC (13 years, 5 months ago) by sh002i
remove incorrect "close(FILE)" -- left over from WW1 probably.

Revision 4425 - Directory Listing
Modified Thu Aug 31 01:30:13 2006 UTC (13 years, 5 months ago) by gage
Corrected an error in update_instances that prevented the calendar from updating when
the due date of webwork set was changed. (One brace was out of position.)

You may still need to edit the Webwork link in moodle pointing to the problem with the
newly changed date before the calendar will recognize the change.

Revision 4424 - Directory Listing
Modified Tue Aug 29 11:14:28 2006 UTC (13 years, 5 months ago) by dpvc
Check routine can now return an array rather than an array reference.
(This requires pg/lib/Value/AnswerCheckers.pm to be at least version 1.80).

Revision 4423 - Directory Listing
Modified Tue Aug 29 11:12:56 2006 UTC (13 years, 5 months ago) by dpvc
Allow cmp_compare to return an array of answers, if requested (needed
by parserMultiPart.pl).

Revision 4421 - Directory Listing
Modified Sat Aug 26 23:05:18 2006 UTC (13 years, 5 months ago) by jj
Added local time zone to values which can be configured from within a course.

Revision 4420 - Directory Listing
Modified Sat Aug 26 17:42:51 2006 UTC (13 years, 5 months ago) by gage
Changed addres of link for ClasslistFileFormat to point to the more complete descrition on the twiki

Revision 4417 - Directory Listing
Modified Sat Aug 26 16:55:12 2006 UTC (13 years, 5 months ago) by sh002i
only recognize comments that start at the beginning of a line. this
reduces the changes that a "#" in a field, will cause a real line to be
truncated. (it's unlikely that the student ID will start with a "#".)

yeah, i know the real solution is to use escaping.

should-be-backported-to-rel-2-3-dev

Revision 4416 - Directory Listing
Modified Sat Aug 26 12:56:40 2006 UTC (13 years, 5 months ago) by gage
Fixed problem where blank status  in classlist.lst was not interpreted as enrolled.

Squashes bug 1058

Revision 4415 - Directory Listing
Modified Sat Aug 26 12:33:22 2006 UTC (13 years, 5 months ago) by gage
made the definition of $auxiliaryFilesExist more robust.  This fixes bug 1056 and related bugs

Revision 4413 - Directory Listing
Modified Fri Aug 25 19:43:37 2006 UTC (13 years, 5 months ago) by sh002i
this file hasn't been used in a long time

Revision 4412 - Directory Listing
Modified Fri Aug 25 18:47:47 2006 UTC (13 years, 5 months ago) by glarose
Gateway update of ProblemSetEditor; add problems_per_page verbiage.
I think this is moot, given that (barring an interpretive error
on my part) this file isn't being used, but hopefully it is at least
now consistently moot rather than inconsistently so.

Revision 4411 - Directory Listing
Modified Fri Aug 25 18:42:27 2006 UTC (13 years, 5 months ago) by glarose
Gateway update of ProblemSetDetail: add some sensible defaults
for gateway parameters, remove confusing labels.

Revision 4410 - Directory Listing
Modified Fri Aug 25 18:40:01 2006 UTC (13 years, 5 months ago) by glarose
Gateway update of problemsetlist; add problems_per_page fields,
allow input via problemsPerPage = N in set.def files.

Revision 4397 - Directory Listing
Modified Thu Aug 24 21:16:41 2006 UTC (13 years, 6 months ago) by sh002i
restrict PG access to ImageGenerator object using RestrictedClosureClass
(prevents problem code from monkeying with paths, viewing passwords,
calling methods other than add() and other bad stuff)

Revision 4395 - Directory Listing
Modified Thu Aug 24 21:07:51 2006 UTC (13 years, 6 months ago) by sh002i
Added class to protect objects from evil prying problem code.

Uses the closure-as-object technique to protect the self hash of the
underlying object from problem code. All that the problem code sees is a
blessed coderef. The coderef is a closure over the underlying object and
the list of allowed methods. You can invoke the coderef directly, with
the name of the method to invoke as the first argument, but the class
also provides an AUTOLOAD routine that calls the coderef for you, so you
can continue to use the class as usual.

Revision 4394 - Directory Listing
Modified Thu Aug 24 00:08:18 2006 UTC (13 years, 6 months ago) by apizer
Add License

Revision 4393 - Directory Listing
Modified Thu Aug 24 00:00:15 2006 UTC (13 years, 6 months ago) by dpvc
Updated to version 3.3d (adds a plugin for use with pages that emply
small fonts so that the substricts don't disappear; fixes a problem
with heights being improperly computed in fallback modes; fixes
several problems with Konqueror)

Revision 4392 - Directory Listing
Modified Wed Aug 23 23:53:38 2006 UTC (13 years, 6 months ago) by apizer
Initial version

Revision 4391 - Directory Listing
Modified Wed Aug 23 20:14:34 2006 UTC (13 years, 6 months ago) by dpvc
This file helps WW manage the browsers windows that it opens.  The
current approach is to use a separate window for the Problem Editor
and a third window for viewing the problem when you test it.  This is
fine, except that if you use the navigation links in the editor, those
pages will open int he editor window, and this can mean the editor
window is used for non-editing functions.  Worse, if you click on an
"Edit it" link in this window and expect a new one to open, you will
be surprised to see it appear in the current window.

This javascript file makes the editing window work as it was intended:
clicking on the navigation links opens those pages in the ORIGINAL
window again, not the editor window, so the editor window will be used
only for editing.  It also uses the main window for viewing the
problems, so there are only two main windows now.  This should
simplify the editing of problems.

To use this file, add

  <script src="<!--#url type="webwork" name="htdocs"-->/js/ww-windows.js"></script>

to the .template file that you are using just before the </body> (not
that it must be at the END of the page, or it may not work properly).

This will also fix a problem with Firefox where the editor window
woudl not come to the front if it already exists and inot the
front-most window.

Revision 4390 - Directory Listing
Modified Tue Aug 22 19:00:04 2006 UTC (13 years, 6 months ago) by dpvc
Make links to the Problem Editor in the links menu at the left target
the WW_Editor window, just like other "Edit it" links.

Revision 4389 - Directory Listing
Modified Tue Aug 22 18:37:22 2006 UTC (13 years, 6 months ago) by dpvc
Make the target for the "Show Past Answers" window be WW_Info so that
it is named in a similar way to the other windows used (WW_Editor,
WW_View).  This reduces possible classes with other sites using the
more generic "information".

Revision 4388 - Directory Listing
Modified Sat Aug 19 23:31:38 2006 UTC (13 years, 6 months ago) by dpvc
Fixed the problem I pointed out at MathFest where some errors were not
being reported in the traditional num_cmp() function.  (Things like
'x+3' in a numeric field would not be reported as an error and x would
be treated as 0).  This is due to a change in version 1.14 when Sam
was normalizing the error reporting code; he didn't notice that warn
had been rerouted to die in PG_answer_eval().  I have replaced it.

Revision 4387 - Directory Listing
Modified Fri Aug 18 00:13:50 2006 UTC (13 years, 6 months ago) by dpvc
Added for LaTeXMathML mode.

Revision 4386 - Directory Listing
Modified Thu Aug 17 23:55:17 2006 UTC (13 years, 6 months ago) by dpvc
Added LaTeXMathML mode.

Revision 4385 - Directory Listing
Modified Wed Aug 16 01:42:46 2006 UTC (13 years, 6 months ago) by dpvc
Report the objec type better in parser error messages.

Revision 4384 - Directory Listing
Modified Wed Aug 16 01:41:02 2006 UTC (13 years, 6 months ago) by dpvc
Fixed spelling errors in error messages.

Revision 4383 - Directory Listing
Modified Wed Aug 16 01:40:06 2006 UTC (13 years, 6 months ago) by dpvc
Fixed a problem where Set objects could incorrectly complain about the
parentheses (braces) used to declare the set.

Revision 4382 - Directory Listing
Modified Wed Aug 16 01:37:28 2006 UTC (13 years, 6 months ago) by dpvc
Fixed a bug where substituting values into a Formula object would not
be cleaned up properly (so later actions could incorrectly include the
same substitution).

Revision 4381 - Directory Listing
Modified Mon Aug 14 19:34:14 2006 UTC (13 years, 6 months ago) by sh002i
move bridge creation to mod.html -- that way, the bridge is created the
first time someone asks to create a webwork set. this allows us to
provide the create/administer ww course links right away. cleanup,
formatting. the bridge creation is actually done in
_wwassignment_ensureBridgeExists in lib.php.

also, i hate php.

Revision 4379 - Directory Listing
Modified Mon Aug 14 18:24:44 2006 UTC (13 years, 6 months ago) by sh002i
allow partial URLs in appletPath -- these get the server_root_url
prepended to them.

Revision 4378 - Directory Listing
Modified Mon Aug 14 18:24:05 2006 UTC (13 years, 6 months ago) by sh002i
applet path can now contain partial URLs, which will have the root URL
of the local server prepended to them by findAppletCodebase.

Revision 4377 - Directory Listing
Modified Mon Aug 14 18:21:52 2006 UTC (13 years, 6 months ago) by sh002i
make course title and institution optional

Revision 4376 - Directory Listing
Modified Mon Aug 14 18:15:11 2006 UTC (13 years, 6 months ago) by sh002i
pass server_root_url into safe compartment.

Revision 4375 - Directory Listing
Modified Mon Aug 14 18:14:54 2006 UTC (13 years, 6 months ago) by sh002i
use apache_root_url from course env. for absolute urls in system link

Revision 4374 - Directory Listing
Modified Mon Aug 14 18:14:22 2006 UTC (13 years, 6 months ago) by sh002i
seed the course env. with hostname, port, ssl status, and root URL.

Revision 4373 - Directory Listing
Modified Mon Aug 14 18:13:13 2006 UTC (13 years, 6 months ago) by sh002i
remove huge license headers

Revision 4372 - Directory Listing
Modified Mon Aug 14 17:25:01 2006 UTC (13 years, 6 months ago) by sh002i
don't attempt to output db_version if it's undefined, don't double-space
output quite so much.

Revision 4371 - Directory Listing
Modified Mon Aug 14 17:23:56 2006 UTC (13 years, 6 months ago) by sh002i
don't check course if user says no.
improved status messages.
ignore non_native tables.
allow conversions from TEXT->INT by first converting to VARCHAR(255)

Revision 4370 - Directory Listing
Modified Sat Aug 12 15:44:03 2006 UTC (13 years, 6 months ago) by sh002i
don't need separate code for initilization -- we can just set db_version
to 0 and run through all the upgrade steps normally. since there are no
courses, only the global updates will run, which is fine.

Revision 4369 - Directory Listing
Modified Fri Aug 11 21:51:28 2006 UTC (13 years, 6 months ago) by sh002i
make this compatible with wwdb_upgrade

Revision 4368 - Directory Listing
Modified Fri Aug 11 21:50:40 2006 UTC (13 years, 6 months ago) by sh002i
use mysql depths table by default for images mode.
assume that the depths table is in the main webwork database.
removed a couple of extra blank lines.

Revision 4367 - Directory Listing
Modified Fri Aug 11 20:52:15 2006 UTC (13 years, 6 months ago) by sh002i
newer version in conf/snippets/setHeader.pg

Revision 4366 - Directory Listing
Modified Fri Aug 11 20:51:58 2006 UTC (13 years, 6 months ago) by sh002i
no need for warning about symlinks -- the symlinks are no longer included

Revision 4365 - Directory Listing
Modified Fri Aug 11 18:47:21 2006 UTC (13 years, 6 months ago) by sh002i
this script uses a db_version value to run upgrade code to incrementally
bring the database up-to-date with the current version of webwork. it
can also detect and empty database and initialize it with any system
(non-course) tables (like the depths table) and initilize an up-to-date
db_version value.

Revision 4364 - Directory Listing
Modified Wed Aug 9 21:21:46 2006 UTC (13 years, 6 months ago) by sh002i
check against "database version 0", the db structure during 2.2.x. this
utility is designed to be used ONCE when upgrading from 2.2.x to 2.3.0,
and then all future updates will be handled by wwdb_upgrade. at some
point, i may reinstate the ability to check against the current version,
but at this point it's not necessary.

Revision 4363 - Directory Listing
Modified Wed Aug 9 14:32:14 2006 UTC (13 years, 6 months ago) by sh002i
append "1;" to these files, to satisfy Apache2.

Revision 4360 - Directory Listing
Modified Tue Aug 8 18:38:08 2006 UTC (13 years, 6 months ago) by apizer
remove "Fall 2003" from default set header

Revision 4359 - Directory Listing
Modified Tue Aug 8 16:09:58 2006 UTC (13 years, 6 months ago) by sh002i
remove vestigal gdbm/global_user related stuff.

Revision 4358 - Directory Listing
Modified Tue Aug 8 16:06:13 2006 UTC (13 years, 6 months ago) by sh002i
removed vestigal gdbm code

Revision 4357 - Directory Listing
Modified Tue Aug 8 16:03:25 2006 UTC (13 years, 6 months ago) by sh002i
removed vestigal gdbm/sql options. fix how dblayout radio buttons are
generated, so that the default layout or selected is selected correctly.

Revision 4356 - Directory Listing
Modified Sun Aug 6 18:48:23 2006 UTC (13 years, 6 months ago) by sh002i
change how the html table rows are computed so that only visible fields
are looked at. (pretty sure this works. could use some more testing
though.)

Revision 4355 - Directory Listing
Modified Sat Aug 5 03:36:58 2006 UTC (13 years, 6 months ago) by sh002i
remove mention of GDBM courses.

Revision 4354 - Directory Listing
Modified Sat Aug 5 03:21:10 2006 UTC (13 years, 6 months ago) by sh002i
remove more instances of GDBM-related code

Revision 4353 - Directory Listing
Modified Sat Aug 5 02:53:50 2006 UTC (13 years, 6 months ago) by sh002i
remove vestiges of GDBM database support

Revision 4352 - Directory Listing
Modified Sat Aug 5 02:53:19 2006 UTC (13 years, 6 months ago) by sh002i
allow user to continue if an sql statement fails.

Revision 4351 - Directory Listing
Modified Sat Aug 5 02:15:31 2006 UTC (13 years, 6 months ago) by sh002i
more experiments

Revision 4350 - Directory Listing
Modified Sat Aug 5 02:10:49 2006 UTC (13 years, 6 months ago) by sh002i
add comments indicating that empty strings are stored as null in the DB.
(this is left over from GDBM days, where there was no such thing as an
undefined/null value. at some point, we will make a distinction, at
which time it will become possible to override a value with an empty
string.)

Revision 4342 - Directory Listing
Modified Thu Aug 3 17:26:42 2006 UTC (13 years, 6 months ago) by sh002i
this goes along with WWDBv3 and should be removed as well

Revision 4339 - Directory Listing
Modified Thu Aug 3 17:03:32 2006 UTC (13 years, 6 months ago) by sh002i
this didn't pan out -- i'm finally deleting it

Revision 4338 - Directory Listing
Modified Thu Aug 3 17:02:23 2006 UTC (13 years, 6 months ago) by sh002i
remove this, since it doesn't solve the right problem.

Revision 4337 - Directory Listing
Modified Thu Aug 3 17:01:51 2006 UTC (13 years, 6 months ago) by sh002i
remove CGIParamShim request hack, since CGIParamShim is not the solution

Revision 4336 - Directory Listing
Modified Thu Aug 3 16:29:07 2006 UTC (13 years, 6 months ago) by sh002i
get rid of Apache2::compat line -- should no longer be needed

Revision 4335 - Directory Listing
Modified Thu Aug 3 16:28:48 2006 UTC (13 years, 6 months ago) by sh002i
clean up webservice access, add my WeBWorK::RPC module,use PerlModule
lines rather than eval "use ..."; die $@ if $@;

also comment out $ENV{WEBWORK_ROOT} by default -- it's only necessary if
webservice modules are being used

Revision 4334 - Directory Listing
Modified Thu Aug 3 16:14:55 2006 UTC (13 years, 6 months ago) by sh002i
use port range 9000-9999 for apache2

Revision 4333 - Directory Listing
Modified Thu Aug 3 16:13:48 2006 UTC (13 years, 6 months ago) by sh002i
add SSL directives

Revision 4332 - Directory Listing
Modified Thu Aug 3 15:20:18 2006 UTC (13 years, 6 months ago) by glarose
GatewayQuiz update: improve timer, update error messages when overtime,
maybe some other minor changes I can't think of.

Revision 4331 - Directory Listing
Modified Thu Aug 3 15:19:06 2006 UTC (13 years, 6 months ago) by glarose
GatewayQuiz CSS update: minor change to try and address IE CSS display
errors.

Revision 4330 - Directory Listing
Modified Thu Aug 3 15:16:47 2006 UTC (13 years, 6 months ago) by glarose
GatewayQuiz: update gateway.template to debug alert popups when problems
are previewed or when switching between pages in a multi-page test,
correct for IE CSS display bug.

Revision 4329 - Directory Listing
Modified Tue Aug 1 22:04:30 2006 UTC (13 years, 6 months ago) by glarose
GatewayQuiz template update: update for new timer.  Still has some
bugs in treatment low-time alerts for multipage tests and previews.

Revision 4328 - Directory Listing
Modified Tue Aug 1 22:03:28 2006 UTC (13 years, 6 months ago) by glarose
GatewayQuiz upate: revise style sheet for nicer timer.

Revision 4327 - Directory Listing
Modified Tue Aug 1 22:02:50 2006 UTC (13 years, 6 months ago) by glarose
GatewayQuiz update: revise timer to make display more elegant and
robust.

Revision 4326 - Directory Listing
Modified Tue Aug 1 22:02:07 2006 UTC (13 years, 6 months ago) by glarose
GatewayQuiz Hardcopy update: add note about correctness of student
answers when printing answers for GatewayQuizzes.

Revision 4318 - Directory Listing
Modified Sat Jul 29 16:19:18 2006 UTC (13 years, 6 months ago) by gage
Added rungeKutta4  method to PGnumericalmacros.pl   Updated documentation on rungeKutta4a, an answer filter in PGdiffeqmacros.pl

Revision 4317 - Directory Listing
Modified Fri Jul 28 20:10:28 2006 UTC (13 years, 6 months ago) by glarose
GatewayQuiz Hardcopy update: change random ordering of problems in
Gateway tests to use PGrandom (avoids calling srand() repeatedly),
add student answers to completed gateway tests when correct answers
are shown.  Also cleans up presentation of gateway tests.

Revision 4316 - Directory Listing
Modified Fri Jul 28 20:08:54 2006 UTC (13 years, 6 months ago) by glarose
GatewayQuiz update: use PGrandom to randomly order problems when that is
called for (avoids using srand() repeatedly).

Revision 4315 - Directory Listing
Modified Fri Jul 28 04:33:28 2006 UTC (13 years, 6 months ago) by sh002i
proof-of-concept RPC class that bootstraps itself the same way that
WeBWorK.pm does. this way, we can code in the same idioms we're used to
($r, $r->ce, $r->db, etc.)

Revision 4314 - Directory Listing
Modified Fri Jul 28 03:21:30 2006 UTC (13 years, 6 months ago) by sh002i
use IGNORE to throw away duplicate key errors when a config item already
exists (i.e. from removal and subsequent reinstallation). this preserves
existing values. another way to go would be to use REPLACE to overwrite
existing values. this would ensure that at installation time, the
defaults would be up-to-date.

Revision 4313 - Directory Listing
Modified Fri Jul 28 03:20:32 2006 UTC (13 years, 6 months ago) by sh002i
refinements to ww course linking:
* move statement about the name of the corresponding webwork course
outside the table.
* don't say "link to" in link text.
* in link to webwork admin module, pre-select add course page, and
pre-fill course ID, and db layout
* clean up indentation slightly

Revision 4312 - Directory Listing
Modified Fri Jul 28 02:13:25 2006 UTC (13 years, 6 months ago) by sh002i
only show import/export warning when those functions are selected.

Revision 4311 - Directory Listing
Modified Fri Jul 28 02:10:33 2006 UTC (13 years, 6 months ago) by sh002i
allow for courses with no contact people in the admin course when
deleting or archiving courses.

Revision 4310 - Directory Listing
Modified Fri Jul 28 00:36:59 2006 UTC (13 years, 6 months ago) by sh002i
add /perl-status handler

Revision 4309 - Directory Listing
Modified Thu Jul 27 20:58:18 2006 UTC (13 years, 6 months ago) by glarose
GatewayQuiz ProblemSets update: omit hardcopy checkbox or radio button
for gateway template sets, clean up checking for gateway sets.

Revision 4308 - Directory Listing
Modified Thu Jul 27 20:43:04 2006 UTC (13 years, 6 months ago) by glarose
GatewayQuiz Hardcopy update: preliminary commit to add checks for
versioned sets to allow generation of hardcopies of versioned sets.
Still needs checking to avoid generation of hardcopies for the
template set.

Revision 4307 - Directory Listing
Modified Thu Jul 27 20:40:12 2006 UTC (13 years, 6 months ago) by glarose
GatewayQuiz update for multiple page tests; bug fix, adds better preview/
problem checking state retention when switching between pages.

Revision 4306 - Directory Listing
Modified Thu Jul 27 15:49:23 2006 UTC (13 years, 6 months ago) by glarose
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 4305 - Directory Listing
Modified Thu Jul 27 01:08:04 2006 UTC (13 years, 6 months ago) by sh002i
remove any symbol that begins with an underscore from the course env.
this is to weed out the weird "_</path/to/database.conf" symbols that
were getting through, but it also prevents the purposeful use of
variables like "_some_internal_thing". which is not so bad.

Revision 4304 - Directory Listing
Modified Wed Jul 26 22:20:04 2006 UTC (13 years, 6 months ago) by sh002i
use WeBWorK::Authen::class() to determine the proper Authen class to use.
this is much nicer than embedding that decision in this file. twice.

Revision 4303 - Directory Listing
Modified Wed Jul 26 22:09:19 2006 UTC (13 years, 6 months ago) by sh002i
add class($ce,$type) subroutine to determine correct authen module, docs

Revision 4302 - Directory Listing
Modified Wed Jul 26 21:27:27 2006 UTC (13 years, 6 months ago) by gage
Changed some instances of wwmoodle to wwassignment

Revision 4301 - Directory Listing
Modified Wed Jul 26 13:23:09 2006 UTC (13 years, 6 months ago) by dpvc
Allow matrices to be created from lists of vectors or points, or from
formulas returning vectors or points.

Revision 4300 - Directory Listing
Modified Wed Jul 26 13:18:25 2006 UTC (13 years, 6 months ago) by dpvc
Fixed a problem with derivatives of constant-valued Matrices (and
vectors and points).  They were incorrectly getting an extra level of
nesting.

Revision 4299 - Directory Listing
Modified Wed Jul 26 12:27:07 2006 UTC (13 years, 6 months ago) by dpvc
Extended the differentiation operator to handle multiple derivatives:

	  $f->D("x","y")    is the same as $f->D("x")->D("y")
	  $f->D(2)          is the same as $f->D->D
	  $f->D(2,"x")      is the same as $f->D("x")->D("x")

and so on.

Revision 4298 - Directory Listing
Modified Wed Jul 26 02:54:01 2006 UTC (13 years, 6 months ago) by dpvc
Extended this context to handle multivariable polynomials.  So you can
use things like

	loadMacros("contextLimitedPolynomial.pl");
	Context("LimitedPolynomial")->variables->are(x => 'Real', y => 'Real');
        Context()->flags->set(singlePowers=>1);
	$f = Formula("1 + x + y + 2xy + x^2 + y^2");

Revision 4297 - Directory Listing
Modified Tue Jul 25 23:49:41 2006 UTC (13 years, 6 months ago) by dpvc
Updated to version 3.3c (mostly bugfixes in autoload, tex2math and
CHMmode plugins).  See the change log on the jsMath web site for
complete details.

Revision 4296 - Directory Listing
Modified Tue Jul 25 23:02:12 2006 UTC (13 years, 6 months ago) by sh002i
playing with request methods

Revision 4295 - Directory Listing
Modified Mon Jul 24 23:28:41 2006 UTC (13 years, 7 months ago) by gage
Fixed CGI::radio call (replaced with CGI::radio_group

Fixed   name parameter in Options  (replaced name by -name as required by CGI)

Revision 4294 - Directory Listing
Modified Fri Jul 21 00:36:37 2006 UTC (13 years, 7 months ago) by sh002i
update package name

Revision 4293 - Directory Listing
Modified Fri Jul 21 00:35:49 2006 UTC (13 years, 7 months ago) by sh002i
add WeBWorK::CGIDeleteParams option

Revision 4292 - Directory Listing
Modified Fri Jul 21 00:35:25 2006 UTC (13 years, 7 months ago) by sh002i
update with more notes

Revision 4291 - Directory Listing
Modified Fri Jul 21 00:18:23 2006 UTC (13 years, 7 months ago) by sh002i
this module deletes all parameters from any CGI object. the effect is to
disable sticky parameters completely. this seems to solve the problems
we've been having with parameter management under Apache2. see the tail
end of the notes in CGIParamShim.pm for more details.

Revision 4290 - Directory Listing
Modified Thu Jul 20 23:21:44 2006 UTC (13 years, 7 months ago) by sh002i
fixed syntax of call to radio_group -- leading dashes are required.

the rule is (as defined by CGI::Util::rearrange):

* if the first argument is a hashref, interpret its contents as named
parameters. leading dashes can be used, but are not required.

* otherwise, if the first parameter begins with a dash, interpret the
argument string as named parameters. a leading dash is technically only
required on the first item, but you'd be nuts to mix dash and no-dash.

* otherwise, treat the argument list as non-named parameters.

Revision 4289 - Directory Listing
Modified Thu Jul 20 18:32:25 2006 UTC (13 years, 7 months ago) by sh002i
temporarily enable /test/ url.

Revision 4288 - Directory Listing
Modified Thu Jul 20 18:32:07 2006 UTC (13 years, 7 months ago) by sh002i
testbed

Revision 4287 - Directory Listing
Modified Tue Jul 18 19:51:52 2006 UTC (13 years, 7 months ago) by gage
These two files can be used to render a .pg problem from the command line using
the WebworkWebservice.

They are designed to be used as Unix Filters with BBedit, but can be tweaked to work
on any unix system and probably on windows as well.

These can be useful when you are writing many problems and wish to use your favorite
editor, and don't have direct access to the unix server.

The _rawoutput  version prints and HTML image of the raw XML data returned from the
webservice.  The other returns only the HTML page embedded in the XML data.

Revision 4286 - Directory Listing
Modified Tue Jul 18 16:33:12 2006 UTC (13 years, 7 months ago) by gage
updated help files to conform to changes in the user interface for these
two pages.

Revision 4285 - Directory Listing
Modified Tue Jul 18 15:58:09 2006 UTC (13 years, 7 months ago) by gage
Fixed bug #1037 where the option of adding a blank problem to an empty set was not allowed.

Revision 4284 - Directory Listing
Modified Tue Jul 18 15:30:18 2006 UTC (13 years, 7 months ago) by gage
This commit actually does contain escapeHTML !

There is still a problem (even with standard CGI.  Entering

5"<input name="foo"> into a problem answer blank will produce extraneous HTML
code.  Not sure how dangerous this is, (I think not very -- all it does is louse up
the output for that one viewer.)  The quote is causing more trouble than the <

Revision 4283 - Directory Listing
Modified Tue Jul 18 14:59:05 2006 UTC (13 years, 7 months ago) by gage
Added CGIParamShim as a choice

Revision 4282 - Directory Listing
Modified Tue Jul 18 14:52:40 2006 UTC (13 years, 7 months ago) by gage
Added a rudimentary escapeHTML -- probably enough to keep from ruining HTML output
-- not designed to untaint data.

Revision 4281 - Directory Listing
Modified Tue Jul 18 14:08:21 2006 UTC (13 years, 7 months ago) by gage
Fixed behavior of checkbox_group

Revision 4280 - Directory Listing
Modified Tue Jul 18 13:10:54 2006 UTC (13 years, 7 months ago) by gage
Formatting corrections (including adding some {}).  Checbox_groups does not yet work correctly.
Removed support for sql template in rename, (it's still present in delete).

Revision 4279 - Directory Listing
Modified Mon Jul 17 21:54:38 2006 UTC (13 years, 7 months ago) by gage
Beef up the error reporting in CGIeasytags

Revision 4278 - Directory Listing
Modified Mon Jul 17 21:53:40 2006 UTC (13 years, 7 months ago) by gage
Rolled back a change to hidden_fields subroutine.  CGI::hidden(name=>foo, value=>bar) doesn't work
with standard CGI.  Using default instead of value doesn't work either.  Not sure what is going on.

Returned to using CGI::hidden(foo, bar)       (sigh)

Revision 4277 - Directory Listing
Modified Mon Jul 17 21:51:12 2006 UTC (13 years, 7 months ago) by gage
Added {} to a couple of CGI::Tr to force concatenation.

Revision 4276 - Directory Listing
Modified Mon Jul 17 21:50:26 2006 UTC (13 years, 7 months ago) by gage
Another {} entry.

Revision 4275 - Directory Listing
Modified Mon Jul 17 21:12:44 2006 UTC (13 years, 7 months ago) by dpvc
Make FUNCTION_CMP retain the professor's answer exactly as typed
rather than use the parsed version's reconstructed string.

Revision 4274 - Directory Listing
Modified Mon Jul 17 17:16:37 2006 UTC (13 years, 7 months ago) by gage
Tweaks to the radio_group block, plus some fiddling with the warning mechanism

Revision 4273 - Directory Listing
Modified Sun Jul 16 18:47:39 2006 UTC (13 years, 7 months ago) by sh002i
experimental CGI subclass that defers to WeBWorK::Request for parameter
handling.

Revision 4272 - Directory Listing
Modified Sun Jul 16 02:40:41 2006 UTC (13 years, 7 months ago) by gage
Added {} to some HTML tags.  For some reason they seem to have disappeared?

Revision 4271 - Directory Listing
Modified Sat Jul 15 16:38:50 2006 UTC (13 years, 7 months ago) by gage
This version of WeBWorK::CGI  calls one of the others:

CGI
or WeBWorK::CGIeasytags

or (eventually) WeBWorK::CGIParamshim

Revision 4270 - Directory Listing
Modified Sat Jul 15 16:35:32 2006 UTC (13 years, 7 months ago) by gage
front end for HTML::easytags that imitages CGI behavior for creating HTML tags.
called from WeBWorK::CGI.pm

Revision 4269 - Directory Listing
Modified Sat Jul 15 16:31:16 2006 UTC (13 years, 7 months ago) by gage
Added {} to force concatenation in some tables;

Revision 4268 - Directory Listing
Modified Sat Jul 15 14:23:38 2006 UTC (13 years, 7 months ago) by sh002i
always store values as arrayrefs in paramcache

Revision 4267 - Directory Listing
Modified Sat Jul 15 14:23:06 2006 UTC (13 years, 7 months ago) by sh002i
make reply_with_file work under Apache2

Revision 4266 - Directory Listing
Modified Sat Jul 15 14:11:44 2006 UTC (13 years, 7 months ago) by sh002i
rolled back accidental commit of non-null AllowSubroutineOutput value.
I'm getting kind of sick of Constants.pm -- do we need Constants.pm.dist?
or should we replace this mechanism with PerlSetVar or something?

Revision 4265 - Directory Listing
Modified Sat Jul 15 14:09:57 2006 UTC (13 years, 7 months ago) by gage
Removing obsolete files

Revision 4264 - Directory Listing
Modified Sat Jul 15 14:08:02 2006 UTC (13 years, 7 months ago) by gage
Removing absolete files

Revision 4263 - Directory Listing
Modified Sat Jul 15 14:07:31 2006 UTC (13 years, 7 months ago) by sh002i
load Apache2::Connection, move requires up to the top in a begin block.

Revision 4262 - Directory Listing
Modified Sat Jul 15 14:06:42 2006 UTC (13 years, 7 months ago) by sh002i
dubious hack to support WeBWorK::CGIParamShim. This is not threadsafe,
but then again, neither is Safe.pm, so it's a non-issue so far.

Revision 4261 - Directory Listing
Modified Sat Jul 15 14:04:48 2006 UTC (13 years, 7 months ago) by sh002i
docuemntation fix -- htmlEscape doesn't use CGI::escapeHTML

Revision 4260 - Directory Listing
Modified Fri Jul 14 21:27:33 2006 UTC (13 years, 7 months ago) by gage
Commiting formatting changes

Revision 4259 - Directory Listing
Modified Fri Jul 14 21:25:11 2006 UTC (13 years, 7 months ago) by gage
Committing formatting changes to CGI calls
Adding {} to calls that concatenate their inputs

Revision 4258 - Directory Listing
Modified Fri Jul 14 21:22:04 2006 UTC (13 years, 7 months ago) by gage
Minor formatting changes in CGI calls.  Mostly adding {} at the beginning of functions that
concatenate their inputs.

Revision 4257 - Directory Listing
Modified Fri Jul 14 02:35:53 2006 UTC (13 years, 7 months ago) by gage
Here is a stable? version of CGI.pm for the night.
There are some minor bugs that need to be fixed in the newest version

Revision 4256 - Directory Listing
Modified Fri Jul 14 02:32:28 2006 UTC (13 years, 7 months ago) by gage
Fixed a bug in tables

Revision 4255 - Directory Listing
Modified Fri Jul 14 00:02:44 2006 UTC (13 years, 7 months ago) by gage
*** empty log message ***

Revision 4254 - Directory Listing
Modified Thu Jul 13 23:57:49 2006 UTC (13 years, 7 months ago) by gage
Latest version of CGI  this processes inputs first and is more regular

Revision 4253 - Directory Listing
Modified Thu Jul 13 19:38:19 2006 UTC (13 years, 7 months ago) by gage
Considerably simplified the behavior of radio buttons and select lists.
Let's try it now.

Revision 4252 - Directory Listing
Modified Thu Jul 13 18:56:39 2006 UTC (13 years, 7 months ago) by gage
Replaced "values" by "value" in call to radio_group.  Sorry about that. :-)

Revision 4251 - Directory Listing
Modified Thu Jul 13 17:24:36 2006 UTC (13 years, 7 months ago) by gage
More changes to the select block of WeBWorK::CGI

Revision 4250 - Directory Listing
Modified Thu Jul 13 16:56:41 2006 UTC (13 years, 7 months ago) by gage
Still working on getting the select lists to work correctly

Revision 4249 - Directory Listing
Modified Thu Jul 13 16:30:08 2006 UTC (13 years, 7 months ago) by gage
Fix another glitch -- if not default value is specified select the first value

Revision 4248 - Directory Listing
Modified Thu Jul 13 16:17:52 2006 UTC (13 years, 7 months ago) by gage
Fixed bug in applying labvels to values

Revision 4247 - Directory Listing
Modified Thu Jul 13 15:01:05 2006 UTC (13 years, 7 months ago) by gage
Added handler for CGI::password_field

Revision 4246 - Directory Listing
Modified Thu Jul 13 14:55:46 2006 UTC (13 years, 7 months ago) by gage
Fixed checkbox CGI glitch

Revision 4245 - Directory Listing
Modified Thu Jul 13 14:48:00 2006 UTC (13 years, 7 months ago) by gage
Fixed a glitch in moving auxiliary files.  There was an error when auxiliary files didn't need to be moved.

Revision 4244 - Directory Listing
Modified Thu Jul 13 14:47:21 2006 UTC (13 years, 7 months ago) by gage
Made calls to CGI::    use named parameters so that WeBWorK::CGI handles them properly

Revision 4243 - Directory Listing
Modified Wed Jul 12 17:28:07 2006 UTC (13 years, 7 months ago) by sh002i
support uploads under apache2

Revision 4242 - Directory Listing
Modified Wed Jul 12 04:38:24 2006 UTC (13 years, 7 months ago) by sh002i
added missing "1;" at endo f file

Revision 4241 - Directory Listing
Modified Wed Jul 12 04:37:43 2006 UTC (13 years, 7 months ago) by sh002i
Apache2: use reply_with_redirect rather than ad-hoc method.

Revision 4240 - Directory Listing
Modified Wed Jul 12 04:36:07 2006 UTC (13 years, 7 months ago) by sh002i
Apache2: use reply_with_file rather than ad-hoc method.

Revision 4239 - Directory Listing
Modified Wed Jul 12 04:35:26 2006 UTC (13 years, 7 months ago) by sh002i
Apache 2: replace header_out with headers_out, explicit returns for
do_reply_with_*

Revision 4238 - Directory Listing
Modified Wed Jul 12 04:33:55 2006 UTC (13 years, 7 months ago) by sh002i
replace header_in with headers_in (Apache 2)

Revision 4237 - Directory Listing
Modified Wed Jul 12 04:33:06 2006 UTC (13 years, 7 months ago) by sh002i
use normal print function rather than $r->print, so that we don't have
to load Apache2::RequestIO.

Revision 4236 - Directory Listing
Modified Wed Jul 12 01:27:47 2006 UTC (13 years, 7 months ago) by gage
Changed from use CGI to use WeBWorK::CGI

There is one part of the subrouting hidden_paramters in which I ensure
that there is only one value for each name (replaced @vaules with $value

Revision 4235 - Directory Listing
Modified Wed Jul 12 01:23:54 2006 UTC (13 years, 7 months ago) by gage
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.

Revision 4234 - Directory Listing
Modified Wed Jul 12 01:19:15 2006 UTC (13 years, 7 months ago) by gage
Mostly replace use CGI; with use WeBWorK::CGI

Files with additional changes to CGI calls are
SendMail, SetMaker PGProblemEditor Instructor::Index and FileManager

Revision 4233 - Directory Listing
Modified Wed Jul 12 01:14:46 2006 UTC (13 years, 7 months ago) by gage
Latest version of WeBWorK::CGI.  It can still use a good deal of abstraction
but it appears to work with existing code.  It's meant to be a CGI imitation for
WeBWorK and it's coding style, not a complete duplicate.

The speed seems acceptable but there are very obvious things that could be done to speed it up if needed.

Revision 4232 - Directory Listing
Modified Tue Jul 11 18:18:16 2006 UTC (13 years, 7 months ago) by gage
This hack seems to work -- will revisit to regularize hidden inputs

Revision 4231 - Directory Listing
Modified Tue Jul 11 17:58:38 2006 UTC (13 years, 7 months ago) by gage
Fixed some problems with hidden fields.  Time to go back and regularize the processing.

V: ----------------------------------------------------------------------

Revision 4230 - Directory Listing
Modified Tue Jul 11 16:39:29 2006 UTC (13 years, 7 months ago) by gage
Changed submit button so that the name and label keys are explicitly entered.

Revision 4229 - Directory Listing
Modified Tue Jul 11 16:26:20 2006 UTC (13 years, 7 months ago) by gage
Added end form statement

Revision 4228 - Directory Listing
Modified Tue Jul 11 16:19:18 2006 UTC (13 years, 7 months ago) by gage
Fixed typo (should be keys not key)

Revision 4227 - Directory Listing
Modified Tue Jul 11 16:13:10 2006 UTC (13 years, 7 months ago) by gage
Normalized call for submit button

Revision 4226 - Directory Listing
Modified Tue Jul 11 16:11:13 2006 UTC (13 years, 7 months ago) by gage
Cleaned up some cases where all of the parameters are included in the initial hash.

Revision 4225 - Directory Listing
Modified Tue Jul 11 15:04:49 2006 UTC (13 years, 7 months ago) by gage
Fixed some problems with textarea interpretation.

Revision 4224 - Directory Listing
Modified Tue Jul 11 14:44:55 2006 UTC (13 years, 7 months ago) by gage
Allow textfield   to be interpreted

Revision 4223 - Directory Listing
Modified Tue Jul 11 14:21:36 2006 UTC (13 years, 7 months ago) by sh002i
don't call send_http_header under apache2

Revision 4222 - Directory Listing
Modified Tue Jul 11 14:04:02 2006 UTC (13 years, 7 months ago) by gage
Allow th   to have comma separated entries

Revision 4221 - Directory Listing
Modified Tue Jul 11 13:28:26 2006 UTC (13 years, 7 months ago) by gage
One more glitch in radio buttons fixed.

Revision 4220 - Directory Listing
Modified Tue Jul 11 13:25:56 2006 UTC (13 years, 7 months ago) by gage
Fixed some errors in radio buttons

Revision 4219 - Directory Listing
Modified Tue Jul 11 12:29:16 2006 UTC (13 years, 7 months ago) by gage
Allow table to contain a list of rows (rather than a single one).

Revision 4218 - Directory Listing
Modified Tue Jul 11 12:07:37 2006 UTC (13 years, 7 months ago) by gage
Added handlers for scrolling lists.

Revision 4217 - Directory Listing
Modified Tue Jul 11 03:59:50 2006 UTC (13 years, 7 months ago) by sh002i
only call send_http_header under Apache1.

Revision 4216 - Directory Listing
Modified Tue Jul 11 03:59:08 2006 UTC (13 years, 7 months ago) by sh002i
Apache2 compatibility for HTTP constants. (This may very well be broken,
but I wanted to get it comitted before bed.)

Revision 4215 - Directory Listing
Modified Tue Jul 11 02:53:40 2006 UTC (13 years, 7 months ago) by gage
Modifications so that license and documentation now apply to wwassignment rather wwmoodle
(wwassignment is based on wwmoodle).

Revision 4214 - Directory Listing
Modified Tue Jul 11 02:51:18 2006 UTC (13 years, 7 months ago) by gage
This will now handle at least some popup_menu commands (<select>)

Revision 4213 - Directory Listing
Modified Mon Jul 10 22:18:31 2006 UTC (13 years, 7 months ago) by dpvc
Only remove scrollbars when used within the moodle frame (otherwise
they are eroneously removed even when the full interface is used in
WeBWorK).

Revision 4212 - Directory Listing
Modified Mon Jul 10 20:02:03 2006 UTC (13 years, 7 months ago) by gage
This commits an experimental file to see if HTML generation can be accomplished using HTML::EasyTag as a basis.
It is NOT ready for prime time.

You can install this in a file by replacing

use CGI;

by

use WeBWorK::CGI;

Revision 4211 - Directory Listing
Modified Mon Jul 10 17:48:46 2006 UTC (13 years, 7 months ago) by sh002i
improve formatting for params debugging output.

Revision 4210 - Directory Listing
Modified Sat Jul 8 22:58:55 2006 UTC (13 years, 7 months ago) by gage
We don't need this debug statement, and it causes errors when the course is entered from outside moodle

Revision 4209 - Directory Listing
Modified Sat Jul 8 22:23:46 2006 UTC (13 years, 7 months ago) by gage
Added -override to checkbox for problems already added to this course.  They were sticking when they should not have.

Revision 4208 - Directory Listing
Modified Sat Jul 8 17:29:16 2006 UTC (13 years, 7 months ago) by gage
Finding local problems seems to work correctly now.

Revision 4207 - Directory Listing
Modified Sat Jul 8 17:00:28 2006 UTC (13 years, 7 months ago) by gage
Changes that make it possible to browse this course and the set definition files.  (I think I mislabeled the local_sets
parameter to library_sets)

There is still a problem with viewing local problems.    A directory labeled set0 is interpreted as 0, which in this instance is
not the right thing.  This might not be a new problem.

Revision 4206 - Directory Listing
Modified Sat Jul 8 16:26:34 2006 UTC (13 years, 7 months ago) by gage
Have placed -override=>1  in every CGI::hidden().  So far this seems to fix the problem with misleading sticky behavior.
I have no clue why use CGI qw(-nosticky) didn't work for hidden.  Possibly a bug.  So far the fix continues to work for
apache1.3
without changing the behavior.

After further testing this file should have at least some of the annoying debug statements removed.

Revision 4205 - Directory Listing
Modified Sat Jul 8 14:49:26 2006 UTC (13 years, 7 months ago) by gage
Added -override =>1 back in to some of the CGI::hidden() tags.  Still won't remember which
library it's looking at.

Revision 4204 - Directory Listing
Modified Sat Jul 8 14:42:47 2006 UTC (13 years, 7 months ago) by sh002i
uncomment code

Revision 4203 - Directory Listing
Modified Sat Jul 8 14:42:17 2006 UTC (13 years, 7 months ago) by sh002i
defeat cvs tag parsing

Revision 4202 - Directory Listing
Modified Sat Jul 8 14:07:35 2006 UTC (13 years, 7 months ago) by gage
Try using the -nosticky pragma to see if this fixes the problem.

Revision 4201 - Directory Listing
Modified Sat Jul 8 01:52:01 2006 UTC (13 years, 7 months ago) by gage
Fixed some of the param problems by adding   , override=>1  to the CGI::hidden() calls.
This means that CGI ignores any param() values when assigning value to the field.  We have been
assigning our own updated values in any case, so this is probably what should have been done
from the start.  I'm not 100% sure of this yet however, so I've only fixed a couple of places
in SetMaker.pm where the behavior is weird.  I'd like to here of other weird behavior that could
be attributed to values in forms sticking or not sticking correctly.

Revision 4200 - Directory Listing
Modified Fri Jul 7 23:40:31 2006 UTC (13 years, 7 months ago) by sh002i
fixed paths to config files

Revision 4199 - Directory Listing
Modified Fri Jul 7 23:40:01 2006 UTC (13 years, 7 months ago) by sh002i
wwapache2ctl.dist should be in the repository, not wwapache2ctl

Revision 4198 - Directory Listing
Modified Fri Jul 7 22:27:33 2006 UTC (13 years, 7 months ago) by sh002i
debug() output for untangling CGI/param problems (remove later)

Revision 4197 - Directory Listing
Modified Wed Jul 5 18:28:14 2006 UTC (13 years, 7 months ago) by sh002i
use WeBWorK::Cookie

Revision 4196 - Directory Listing
Modified Wed Jul 5 18:27:18 2006 UTC (13 years, 7 months ago) by sh002i
separate definitions for $warning_handler for Apache 1/2

Revision 4195 - Directory Listing
Modified Wed Jul 5 18:24:43 2006 UTC (13 years, 7 months ago) by sh002i
don't load Apache::Log via global.conf anymore -- special-case it in
WeBWorK::PG::Local instead. this allows for selective loading of
Apache::Log for Apache1 or Apache2::Log and APR::Table for Apache2.

Revision 4194 - Directory Listing
Modified Wed Jul 5 16:40:45 2006 UTC (13 years, 7 months ago) by gage
Added some new modules that are required.  Two of them will only be required once Apache2 is in place.

Revision 4193 - Directory Listing
Modified Fri Jun 30 18:47:09 2006 UTC (13 years, 7 months ago) by sh002i
Install wrapper for param() method when running under mod_perl2. This is
necessary because Apache2::Request's param doesn't support adding
parameters or modifying parameter values.

This is a potentially SLOW workaround, because there's an extra level of
perl code before we get to the XS param().

Revision 4192 - Directory Listing
Modified Thu Jun 29 23:20:48 2006 UTC (13 years, 7 months ago) by sh002i
Progress on Apache2 compatibility -- doesn't work yet.

I've gotten to the point where the login screen can be displayed, but
login will still fail. The issue that i'm currently working on is that
we modify $r->param values extensively in WeBWorK, and that is not
supported in Apache2::Request. I'm not sure why, and no workaround is
given. One solution is to wrap override param() in WeBWorK::Request, but
this would slow things down since the Apache2::Request param method is
written in C.

Revision 4191 - Directory Listing
Modified Thu Jun 29 21:28:23 2006 UTC (13 years, 7 months ago) by sh002i
removed commented-out code that would have needed modification for apache2

Revision 4190 - Directory Listing
Modified Thu Jun 29 21:10:52 2006 UTC (13 years, 7 months ago) by sh002i
WeBWorK::Cookie inherits from Apache::Cookie or Apache2::Cookie
depending on the mod_perl version.

Revision 4189 - Directory Listing
Modified Thu Jun 29 17:54:28 2006 UTC (13 years, 7 months ago) by gage
Fixed behavior of getProblemsForUser()

Now fetches all rows satisfying query, not just the first one.

Revision 4188 - Directory Listing
Modified Thu Jun 29 16:12:01 2006 UTC (13 years, 7 months ago) by gage
Removed update code since I doubt that it will help in converting from wwmoodle to wwassignment.

Revision 4187 - Directory Listing
Modified Thu Jun 29 16:10:43 2006 UTC (13 years, 7 months ago) by gage
changed grade_method to gradingmethod in the wwassignment_grades() subroutine.

Revision 4186 - Directory Listing
Modified Thu Jun 29 16:09:01 2006 UTC (13 years, 7 months ago) by gage
Changes for installing in utf8 directories

Revision 4185 - Directory Listing
Modified Thu Jun 29 15:39:02 2006 UTC (13 years, 7 months ago) by gage
fixed changes in moodle table names and field names
I'm trying to meet moodle coding standards in naming fields

Revision 4184 - Directory Listing
Modified Thu Jun 29 15:20:09 2006 UTC (13 years, 7 months ago) by sh002i
disabled some unneeded modules, to reduce server restart time.

Revision 4183 - Directory Listing
Modified Wed Jun 28 21:13:03 2006 UTC (13 years, 7 months ago) by gage
Fixed error deliberately introduced into input.txt

Revision 4182 - Directory Listing
Modified Wed Jun 28 21:09:10 2006 UTC (13 years, 7 months ago) by gage
These scripts will step through the problemLibrary and check each problem to see if the create WARNING messages when run.

The scripts are still a bit fragile -- use with caution.

VS: ----------------------------------------------------------------------

Revision 4181 - Directory Listing
Modified Wed Jun 28 19:15:03 2006 UTC (13 years, 7 months ago) by jj
Fixed bug which caused warnings in problems containing hints and/or solutions
containing math (i.e., requiring images).

Revision 4180 - Directory Listing
Modified Wed Jun 28 17:03:26 2006 UTC (13 years, 7 months ago) by sh002i
this CG has not been used for a long time

Revision 4179 - Directory Listing
Modified Wed Jun 28 16:20:39 2006 UTC (13 years, 7 months ago) by sh002i
change order of use statements compulsively

Revision 4178 - Directory Listing
Modified Wed Jun 28 16:19:57 2006 UTC (13 years, 7 months ago) by sh002i
eliminate sub redefine warnings

Revision 4177 - Directory Listing
Modified Tue Jun 27 23:28:26 2006 UTC (13 years, 7 months ago) by gage
updating instructions

Revision 4176 - Directory Listing
Modified Tue Jun 27 23:21:41 2006 UTC (13 years, 7 months ago) by gage
Completed (?) revising the names of the subroutines.

The construction of the bridge between moodle and webwork courses now works fairly
smoothly, but doesn't do much yet.  The shortname of the moodle course must match
exactly the name of the WeBWorK course.

We still need to create an editor that will allow you to adjust this.?

Revision 4175 - Directory Listing
Modified Tue Jun 27 20:08:02 2006 UTC (13 years, 7 months ago) by gage
Adding more files for wwassignment

Revision 4174 - Directory Listing
Modified Tue Jun 27 20:04:11 2006 UTC (13 years, 7 months ago) by gage
Combining wwmoodle and wwmoodleset into one module called wwassign

Revision 4173 - Directory Listing
Modified Tue Jun 27 12:47:43 2006 UTC (13 years, 7 months ago) by gage
change wwmoodle_set to wwmoodleset  to conform to moodle coding guidelines

Revision 4172 - Directory Listing
Modified Tue Jun 27 12:30:48 2006 UTC (13 years, 7 months ago) by gage
Replacing the mysql.sql schema which somehow got lost when creating the CVS repository

Revision 4171 - Directory Listing
Modified Mon Jun 26 23:31:52 2006 UTC (13 years, 7 months ago) by dpvc
Updates to use moodle theme to simplify the WW GUI when used in
moodle, and to resize the IFRAME to fit the size of its contents.

Revision 4170 - Directory Listing
Modified Mon Jun 26 23:25:15 2006 UTC (13 years, 7 months ago) by dpvc
Add the moodle theme to the list of available themes.

Revision 4169 - Directory Listing
Modified Mon Jun 26 23:23:35 2006 UTC (13 years, 7 months ago) by dpvc
A theme for use with moodle courses.  It is used to remove portions of
the WeBWorK GUI when the page appears in the IFRAME used by wwmoodleset.

Revision 4168 - Directory Listing
Modified Mon Jun 26 18:16:26 2006 UTC (13 years, 7 months ago) by gage
The last message was garbled.  I've added code that copies auxiliary files when you make a local copy or
an extra copy of a problem file of the form  prob4/prob4.pg

This copy mechanism is not yet used when viewing one of these problems from a temporary file in tmpEdit.  If you
have viewed a problem before you start editing it, your browser will probably use cached images and you
will not have any errors.  If you start editing a problem with auxiliary files before viewing it once in its original
state, then some of the auxiliary images might be missing.

Revision 4167 - Directory Listing
Modified Mon Jun 26 18:05:52 2006 UTC (13 years, 7 months ago) by gage
and copy auxilliary files when making a copy of a problem.  This does not do anything about the creation of temporary files
for viewing.  If you have already viewed the file before you start editing it youthen the temporary links will work.
Make
File::Copy available

Revision 4166 - Directory Listing
Modified Mon Jun 26 18:03:48 2006 UTC (13 years, 7 months ago) by gage
Make File::Copy available

Revision 4165 - Directory Listing
Modified Sat Jun 24 22:23:30 2006 UTC (13 years, 8 months ago) by dpvc
Fixed a couple more issues with blank problems.  Allow files to be
copied even when we can't write the original (this lets you make a
copy of the blank problem or default headers).

Attempt to overcome the copy/rename problem by making it not be a menu
and instead use a checkbox that says whether the problem or header
will replace the one in the current set.  This makes it clear that a
copy is still being made (not that the original is being renamed), but
that the homework set is being altered.  Those are really two
different actions, and it seems to make sense to separate them.  The
default is still to link into the homework set, if there is one.

Revision 4164 - Directory Listing
Modified Sat Jun 24 21:12:29 2006 UTC (13 years, 8 months ago) by dpvc
Changed messages that refer to 'Save as' to use 'Create a copy'
instead (which is the current wording for that function).

Problem:  Since the default in that pop-up menu us "Rename file"
rather than "Create a copy", it is not immediately clear what this
message refers to.

I still think "Create a copy" should be the default rather than
"Rename file", since the latter only makes sense when you got to the
editor from a file linked to a homework set, which is not always the
case (e.g., when you use the Library Browser).  It would also make
these error messages refer to something visible rather than a menu
item that is not showing.

Revision 4163 - Directory Listing
Modified Sat Jun 24 21:04:13 2006 UTC (13 years, 8 months ago) by dpvc
Handle blank problems correctly (they were being flagged as unsafe in
some cases, and produced as many as 3 error messages indicating that
the file had to be "Saved as" before editing).  Also fixed a typo with
hardcopy header checking.

Revision 4162 - Directory Listing
Modified Sat Jun 24 20:31:01 2006 UTC (13 years, 8 months ago) by dpvc
Allow viewing of the default header files (so they can be saved to
local files).

Revision 4161 - Directory Listing
Modified Sat Jun 24 20:08:30 2006 UTC (13 years, 8 months ago) by dpvc
Fixed some typos.

Revision 4160 - Directory Listing
Modified Sat Jun 24 20:01:25 2006 UTC (13 years, 8 months ago) by dpvc
Changed some "Problem sets" to "Homework sets" and added an note when
a file is already included in the target homework set.

Revision 4159 - Directory Listing
Modified Sat Jun 24 19:51:02 2006 UTC (13 years, 8 months ago) by dpvc
Correctly handle viewing of edited files (we are passed relative
paths, but the code used to treat them as absolute paths).

Revision 4158 - Directory Listing
Modified Sat Jun 24 19:38:00 2006 UTC (13 years, 8 months ago) by dpvc
Use a better word order for these messages.

Revision 4157 - Directory Listing
Modified Sat Jun 24 19:35:36 2006 UTC (13 years, 8 months ago) by dpvc
Make edit links use the WW_Editor window.

Revision 4156 - Directory Listing
Modified Sat Jun 24 16:00:36 2006 UTC (13 years, 8 months ago) by gage
Restoring lang.php to wwmoodle-beta-4 original.  (Somehow it had been erased.)

Revision 4155 - Directory Listing
Modified Sat Jun 24 15:53:39 2006 UTC (13 years, 8 months ago) by gage
Updating icon for webwork sets

Revision 4154 - Directory Listing
Modified Sat Jun 24 14:32:09 2006 UTC (13 years, 8 months ago) by gage
Alas, symlinks are not followed, hence you need to copy the help directory and language files to
new locations.

Revision 4153 - Directory Listing
Modified Sat Jun 24 14:19:42 2006 UTC (13 years, 8 months ago) by gage
Install instructions.  These will need to be updated as this module evolves.

Revision 4152 - Directory Listing
Modified Sat Jun 24 14:00:22 2006 UTC (13 years, 8 months ago) by gage
Added README explaining why wwmoodleset was created (so that it complies with
Moodle module naming conventions).   One substantial difference is that the database
calls in wwmoodleset use ADODB (the global $db database connection supplied by moodle)
rather than using a new database connection DB.pm (PEAR?).  In my experience
the latter connection used to access webwork databases was killing the global connection
and calls to moodle databases were failing.

Revision 4151 - Directory Listing
Modified Sat Jun 24 13:57:05 2006 UTC (13 years, 8 months ago) by gage
Prefaced some subroutines with _wwrpc instead of wwmoodleset.  These subroutines
are internal to wwmoodleset (as far as moodle is concerned) and should eventually
be replaced by RPC calls to webwork.

Revision 4150 - Directory Listing
Modified Sat Jun 24 01:47:03 2006 UTC (13 years, 8 months ago) by sh002i
merged in pre-CVS changes from Mike's wwmoodle tree

Revision 4149 - Directory Listing
Modified Sat Jun 24 01:43:44 2006 UTC (13 years, 8 months ago) by gage
Make sure that the user list is restricted to the current course.

cosmetic changes in Permission

Revision 4148 - Directory Listing
Modified Sat Jun 24 01:34:48 2006 UTC (13 years, 8 months ago) by sh002i
renamed wwmoodle_set to wwmoodleset

Revision 4147 - Directory Listing
Modified Sat Jun 24 01:00:44 2006 UTC (13 years, 8 months ago) by sh002i
belatedly adding moodle schema modules

Revision 4144 - Directory Listing
Modified Fri Jun 23 22:07:44 2006 UTC (13 years, 8 months ago) by dpvc
Use tolerance flags from the Real object itself, if available, before
looking at the context.

Revision 4143 - Directory Listing
Modified Fri Jun 23 22:06:47 2006 UTC (13 years, 8 months ago) by dpvc
Fix some problems with the Diagonstics output for Formula objects.
(The tolerances using in the diagnostics didn't always match the ones
used in the actual testing, and the wrong values were sometimes
displayed when a multi-variable function was displayed as a graph.)

Revision 4140 - Directory Listing
Modified Fri Jun 23 20:22:39 2006 UTC (13 years, 8 months ago) by dpvc
New files to bring jsMath up to version 3.3b.

Revision 4138 - Directory Listing
Modified Fri Jun 23 20:06:23 2006 UTC (13 years, 8 months ago) by dpvc
Updated to version 3.3b.  See the change log on the jsMath web site
for details of the changes.

Some of the highlights are:

  Added an extension that implements the \font command. (Now that jsMath
  can auto-load fonts as they are needed, this is feasible to do.)

  Added \eqalign and \displaylines for creating multi-line displayed
  mathematics. Also added \eqalignno, but it works by putting the line
  numbers in a right-justified column separated by 3 em's of space from
  the rest of the alignment (rather than putting them flush right, which
  would be difficult without more substantial changes to
  jsMath). Finally, added \leqalignno, but the line numbers are placed
  on the right not the left (it is really just an alias for \eqalignno,
  and is included only for completeness).

  Added the ability to use \noalign{\vskip ...} and \\[dimen] to
  insert space within an array or alignment. This is not a complete
  implementation of \noalign; only \vskip and \vspace commands are
  processed, and this is only intended as a way of controlling the
  spacing between rows of a table.

  Adjusted the spacing within some alignments to better match actual TeX
  output.

  Added \mbox and \hbox to the commands that are processed correctly
  after ^ and _ (i.e., as unbraced superscripts and subscripts).

  JsMath's implementation of \raise and \lower are non-standard in that
  they do not require an \hbox, as TeX does; indeed using an \hbox would
  cause jsMath to fail (unless it were enclosed in braces). This is no
  longer the case, as these commands now handle \hbox and \mbox as TeX
  does.

  The addition of several new checkboxes on the jsMath control panel
  made the window for the control panel rather tall. This has required a
  reorganization of the control panel, and it now has a horizontal
  rather than a vertical orientation which better matches the aspect
  ratio of most screens.

In addition, version 3.3 introduced an caching mechanism that is
page-based, and "global mode" that allows for an inter-page cache.
This mechanism works with WeBWorK, but because the pages are so short,
it is probably not very helpful.  Also, turning on global mode will
require logging in again (due to the loss of form data when the page
is reloaded).

Revision 4137 - Directory Listing
Modified Fri Jun 23 18:42:31 2006 UTC (13 years, 8 months ago) by gage
A bare bones method for verifying against and LDAP (in this case the LDAP at the U of R)
You will need to change the constants for use with another local LDAP.

this is not at all finished -- in particular there is no check to see if the user is enrolled
in a specific course.

Revision 4136 - Directory Listing
Modified Mon Jun 19 15:57:24 2006 UTC (13 years, 8 months ago) by gage
Allow delete option after archiving course.

Revision 4135 - Directory Listing
Modified Mon Jun 19 15:39:51 2006 UTC (13 years, 8 months ago) by sh002i
Added HTTP-Basic authenticator for WeBWorK:

AuthenWeBWorK.pm - steals $ce/$authz/$db/$authen bootstrapping code from
the dispatcher, overrides Authen's get_credentials method (and clobbers
cookie methods and set_params)

Debug.pm - load WeBWorK::Contsants explicitly in case it isn't already
loaded

Authen.pm - added maybe_kill_cookie shim (so that it can be overridden
elsewhere)

Configure as follows:

<Location /some_protected_location>
 AuthName "My Protected Location"
 AuthType Basic
 PerlAuthenHandler Apache::AuthenWeBWorK
 PerlSetVar authen_webwork_root /path/to/webwork2
 PerlSetVar authen_webwork_course some_course_id
 require valid-user
</Location>

Revision 4134 - Directory Listing
Modified Mon Jun 19 15:13:33 2006 UTC (13 years, 8 months ago) by dpvc
Fixed grade_problem so taht is uses the safe compartment.  (This is
important because the problem can supply its own grader, and that code
shoudl be run in the safe compartment, just like the answer checkers
are.  Without this, graders could call PG_restricted_eval() and
actually get access to the full WW environment rather than the safe
compartment.)

Revision 4133 - Directory Listing
Modified Sat Jun 17 21:45:25 2006 UTC (13 years, 8 months ago) by sh002i
Imported from beta 4

Revision 4132 - Directory Listing
Modified Sat Jun 17 21:35:22 2006 UTC (13 years, 8 months ago) by sh002i
print log messages to debug output

Revision 4131 - Directory Listing
Modified Sat Jun 17 21:21:40 2006 UTC (13 years, 8 months ago) by sh002i
Preliminary config files for Apache 2. These are enough to bootstrap
WeBWorK under Apache 2. None of the WW code has been modified yet, so it
of course barfs as soon as you visit /webwork2. However, the config
problems are resolved and real porting can begin.

Revision 4130 - Directory Listing
Modified Fri Jun 16 20:26:48 2006 UTC (13 years, 8 months ago) by sh002i
This utility automates updating config files from their corresponding
.dist files. Run like this:

  bin/ww-update-config conf/global.conf

You can specify either the conf file or its .dist file -- the other one
will be deduced automatically. You can specify multiple files. This is
useful:

  bin/ww-update-config bin/*.dist conf/*.dist

Revision 4129 - Directory Listing
Modified Thu Jun 15 14:48:19 2006 UTC (13 years, 8 months ago) by gage
Implemented unarchiving function to complement archiving function.

Archive exports the course database to courseName/DATA and then tas and gzips the directory courseName to
courseDirectory/courseName.tar.gz

Unarchive allows one to choose files of the type courseDirectory/courseName.tar.gz  and then
ungzip, untar them to courseDirectory/courseName   -- the database record in courseName/DATA is
then loaded into the webwork database.

So far there is only minimal error checking about whether all or part of the course exists when unarchiving.

There are not yet features for archiving and then deleting a course -- these two operations have to be done
separately for now.

Revision 4128 - Directory Listing
Modified Sat Jun 10 14:20:42 2006 UTC (13 years, 8 months ago) by gage
Fixed spelling typo in comment

Revision 4127 - Directory Listing
Modified Sat Jun 10 14:18:56 2006 UTC (13 years, 8 months ago) by gage
Add contact person for a new course to the admin course as a student.
Student's have no access to CourseAdmin features.

Revision 4126 - Directory Listing
Modified Sat Jun 10 01:50:54 2006 UTC (13 years, 8 months ago) by sh002i
don't call formatDateTime unless the result is used (closes bug #830)

Revision 4125 - Directory Listing
Modified Thu Jun 8 23:27:02 2006 UTC (13 years, 8 months ago) by sh002i
check for a valid moodle session when the webwork key matches an expired
session. this allows for seamless re-login when the webwork timeout is
shorter than the moodle timeout.

Revision 4124 - Directory Listing
Modified Wed Jun 7 23:01:44 2006 UTC (13 years, 8 months ago) by gage
Make sure that WeBWorK::Constants has been loaded before this file is evaluated.

Revision 4122 - Directory Listing
Modified Wed Jun 7 19:30:51 2006 UTC (13 years, 8 months ago) by sh002i
replace "SELECT *" with explicit list of fields to avoid problems when
columns are ordered differently in the database. fixes bug #1033.

Revision 4121 - Directory Listing
Modified Mon Jun 5 20:43:22 2006 UTC (13 years, 8 months ago) by dpvc
Fixed a problem where things like x+4x would be accepted even in
single-power mode (the initial x was not being identified as a single
power of x correctly).

Revision 4120 - Directory Listing
Modified Wed May 31 22:59:58 2006 UTC (13 years, 8 months ago) by sh002i
script for generating release tarballs and uploading them to SF

Revision 4119 - Directory Listing
Modified Wed May 31 22:59:33 2006 UTC (13 years, 8 months ago) by sh002i
fixed path to docs directory

Revision 4115 - Directory Listing
Modified Wed May 31 18:41:23 2006 UTC (13 years, 8 months ago) by jj
Fixed bug for selecting problems from the ProblemLibrary database.  Problems which have no associated textbook were mucking things up, even if no textbook was selected.

Revision 4114 - Directory Listing
Modified Wed May 31 18:25:18 2006 UTC (13 years, 8 months ago) by sh002i
support SSL mode for devel.webwork.rochester.edu systems.
uncomment the line "SSL=-DSSL" in bin/wwapachectl to enable.
note that if you do this, only https requests will be serviced.
you must be in the unix group wwdev (for access to the ssl crt and key)

Revision 4113 - Directory Listing
Modified Wed May 31 01:07:25 2006 UTC (13 years, 8 months ago) by gage
Roll back unwanted change to wwsh

Revision 4112 - Directory Listing
Modified Wed May 31 01:05:41 2006 UTC (13 years, 8 months ago) by gage
Scripts for cleaning up code in problems.  (Written by Davide Cervone)

Revision 4111 - Directory Listing
Modified Mon May 29 21:57:06 2006 UTC (13 years, 8 months ago) by sh002i
Set server root (-d) to $WEBWORKROOT, create "run" directory if
necessary. (This is for devel's Apache/SSL, which wants to put an
httpd.mm file in "$SERVERROOT/run".)

Revision 4108 - Directory Listing
Modified Thu May 25 16:37:15 2006 UTC (13 years, 8 months ago) by sh002i
improvements to URL handling.
* use use_abs_url option of systemLink to generate URLs, rather than
hardcoding logic.
* don't generate a full URL for the return to your work link. it isn't
needed.
* in the "This feedback message was automatically generated by the
WeBWorK system at" message, give the URL to the webwork home module,
rather than just the host and port.

Revision 4107 - Directory Listing
Modified Thu May 25 16:35:10 2006 UTC (13 years, 8 months ago) by sh002i
added use_abs_url option to systemLink: If set to a true value, the
scheme, host, and port are prepended to the URL. This is useful for
links which must be usable on their own, such as those sent via email.

Revision 4106 - Directory Listing
Modified Thu May 25 12:06:35 2006 UTC (13 years, 9 months ago) by gage
Corrected typ in spelling of moodle_table_prefix  variable.

Revision 4105 - Directory Listing
Modified Thu May 25 04:01:44 2006 UTC (13 years, 9 months ago) by sh002i
use correct $moodle_table_prefix variable from global.conf (was
$moodle_prefix). include moodlekey table for now.

Revision 4104 - Directory Listing
Modified Thu May 25 03:14:13 2006 UTC (13 years, 9 months ago) by gage
Added in applet support (applets are now searched for in specified directories.)

Revision 4103 - Directory Listing
Modified Thu May 25 03:12:57 2006 UTC (13 years, 9 months ago) by gage
Added  definition for $moodle_table_prefix.

REmoved commented out moodlekey table

Revision 4102 - Directory Listing
Modified Thu May 25 03:08:50 2006 UTC (13 years, 9 months ago) by gage
Replaced instance of fetch_moodle_cookie with fetch_moodle_session

Revision 4101 - Directory Listing
Modified Wed May 24 23:30:23 2006 UTC (13 years, 9 months ago) by sh002i
almost totally works now
* fixed passwork checking (call to md5_hex was wrong)
* added debugging output
* renamed fetch_moodle_cookie to fetch_moodle_session
* commented out unused moodle_session_expired

Revision 4100 - Directory Listing
Modified Wed May 24 23:28:24 2006 UTC (13 years, 9 months ago) by sh002i
add moodlekey methods (these should go away eventually, but the current
implementation of Authen::Moodle needs them)

Revision 4099 - Directory Listing
Modified Tue May 23 20:47:27 2006 UTC (13 years, 9 months ago) by gage
Support for finding applets in one of several locations.

Revision 4098 - Directory Listing
Modified Tue May 23 20:45:02 2006 UTC (13 years, 9 months ago) by gage
Added support for searching for appletin  anumber of places defined in
$pg{directories}{appletPath}  in global.conf

Revision 4096 - Directory Listing
Modified Tue May 23 17:38:29 2006 UTC (13 years, 9 months ago) by sh002i
changed how activity is determined. previously, check_session was being
called with updateTimestamp=1, which would cause all active sessions to
be "touched" so as to prolong their validity. also, it's not really
approriate to call check_session in this way to begin with. we already
grabbed the key, and we know it matches, so we don't want to grab it
again. so instead i just put the timestamp comparison directly into this
file.

see also UserList.pm 1.79.

Revision 4093 - Directory Listing
Modified Tue May 23 11:51:55 2006 UTC (13 years, 9 months ago) by dpvc
Fixed a problem where a pick screen error was produced if a student
entered a vector-valued formula rather than a constant vector when
parallel answers are being checked and the student used the Preview
button to submit the answer.

Revision 4092 - Directory Listing
Modified Mon May 22 21:39:07 2006 UTC (13 years, 9 months ago) by sh002i
add charset=utf-8 to content type header

Revision 4091 - Directory Listing
Modified Sun May 21 00:52:20 2006 UTC (13 years, 9 months ago) by gage
Added support for directories for housing applet files

Revision 4090 - Directory Listing
Modified Sun May 21 00:51:25 2006 UTC (13 years, 9 months ago) by gage
Added onSubmit to form so that javaScript functions can be triggered by the submit button.

check that this still works on windows MSIE

Revision 4089 - Directory Listing
Modified Sun May 21 00:50:04 2006 UTC (13 years, 9 months ago) by gage
$formFields is needed by at least one grader (sequentialGrader) in order to function.

Is there a better way?

Revision 4088 - Directory Listing
Modified Sun May 21 00:44:40 2006 UTC (13 years, 9 months ago) by gage
added findAppletFile  to dangerous macros.

This is still not in its final form which should involve checking the url
rather than the file location.

Revision 4087 - Directory Listing
Modified Thu May 18 19:52:12 2006 UTC (13 years, 9 months ago) by sh002i
replace @DB_LAYOUT_ORDER and %DB_LAYOUT_DESCRIPTIONS with values from
course environment. remove form fields for 'sql' and 'gdbm' layouts.

Revision 4086 - Directory Listing
Modified Thu May 18 19:49:26 2006 UTC (13 years, 9 months ago) by sh002i
fixed typo in last commit.

Revision 4085 - Directory Listing
Modified Thu May 18 19:46:08 2006 UTC (13 years, 9 months ago) by sh002i
add @dblayout_order and %dbLayout_descr (to replace constants in CourseAdmin.pm)

Revision 4084 - Directory Listing
Modified Thu May 18 19:32:53 2006 UTC (13 years, 9 months ago) by sh002i
modifications necessary to support moodle tables:

* respect non_native flag in dbLayout

With these changes, courses with the sql_moodle dbLayout can be created,
deleted, renamed, and archived using the WeBWorK course management
tools.

Revision 4083 - Directory Listing
Modified Thu May 18 19:32:41 2006 UTC (13 years, 9 months ago) by sh002i
modifications necessary to support moodle tables:

* respect non_native flag in dbLayout
* don't attempt to add users if user table is non_native
* rather than checking for the string "sql_single" in renameCourse and
  archiveCourse, and erroring out otherwise, we check to see if there is
  a copyCourseDataHelper or archiveCourseHelper implementation
  (respectively). new getHelperRef subroutine helps with this.

With these changes, courses with the sql_moodle dbLayout can be created,
deleted, renamed, and archived using the WeBWorK course management
tools.

Revision 4082 - Directory Listing
Modified Thu May 18 19:27:57 2006 UTC (13 years, 9 months ago) by sh002i
added stub for sql_moodle. this just copies the subroutines from sql_single.pm.

Revision 4081 - Directory Listing
Modified Thu May 18 19:27:00 2006 UTC (13 years, 9 months ago) by sh002i
add non_native=>1 param to moodle tables. CourseManagement.pm will
ignore them.

Revision 4080 - Directory Listing
Modified Thu May 18 19:25:44 2006 UTC (13 years, 9 months ago) by sh002i
use new config options for authentication modules (see global.conf).

Revision 4079 - Directory Listing
Modified Tue May 16 21:35:17 2006 UTC (13 years, 9 months ago) by sh002i
fixed a variable name from previous change

Revision 4078 - Directory Listing
Modified Tue May 16 21:25:14 2006 UTC (13 years, 9 months ago) by sh002i
check more config files (basically all the files with .dist versions are
checked now)

Revision 4077 - Directory Listing
Modified Tue May 16 21:12:01 2006 UTC (13 years, 9 months ago) by sh002i
housekeeping

Revision 4076 - Directory Listing
Modified Tue May 16 21:11:52 2006 UTC (13 years, 9 months ago) by sh002i
load php4 module

Revision 4075 - Directory Listing
Modified Tue May 16 21:11:07 2006 UTC (13 years, 9 months ago) by sh002i
add $moodle_* seed variables for database.conf
add authentication module selector

Revision 4074 - Directory Listing
Modified Tue May 16 21:10:35 2006 UTC (13 years, 9 months ago) by sh002i
add sql_moodle database layout

Revision 4073 - Directory Listing
Modified Tue May 16 21:06:47 2006 UTC (13 years, 9 months ago) by sh002i
actually check in session key format changes:
* session key is now 32 chars rather than 40, to make it a little more
  manageable in length
* session key now only uses letters and numbers, rather than some
  special characters.

Revision 4072 - Directory Listing
Modified Tue May 16 18:58:04 2006 UTC (13 years, 9 months ago) by sh002i
small changes to configuration:
* session key is now 32 chars rather than 40, to make it a little more
  manageable in length
* session key now only uses letters and numbers, rather than some
  special characters.
* variables $database_dsn, $database_username, $database_password, and
  $database_debug are defined in global.conf before database.conf is
  loaded. this means that in the typical case, database.conf doesn't
  need to be modified at all.
* changes to database.conf to support $database_dsn, $database_username,
  $database_password, and $database_debug variables.
* changes to some comments in database.conf, and removal of SQL/GDBM
  stubs.

Revision 4071 - Directory Listing
Modified Tue May 16 00:31:06 2006 UTC (13 years, 9 months ago) by dpvc
Fix jsMath output in the answer preview when the student answer
conains < or > (make sure they don't look like tags).

Revision 4069 - Directory Listing
Modified Fri May 12 18:40:06 2006 UTC (13 years, 9 months ago) by sh002i
check for 'dbupgrade' table and 'db_version' value within that table.

Revision 4068 - Directory Listing
Modified Fri May 12 18:39:10 2006 UTC (13 years, 9 months ago) by sh002i
some progress

Revision 4067 - Directory Listing
Modified Wed May 10 21:50:41 2006 UTC (13 years, 9 months ago) by sh002i
some improvements:
* warn if dbLayoutName doesn't match for a course (this can be extended
  to to more sophisticated checking)
* add a summary of tables that weren't checked because they weren't part
  of any course
* -n flag == don't attempt to fix problems

Revision 4066 - Directory Listing
Modified Wed May 10 02:08:35 2006 UTC (13 years, 9 months ago) by sh002i
a utility to check and repair the webwork SQL database.

functionality so far:

* check for table existence, add tables that don't exist
* check for field existence, add fields that don't exist
* check field types, change types of fields that have incorrect types

still TODO:

* check index structure with SHOW INDEXES FROM
* add indexes that aren't present
* display tables in webwork database that weren't part of any course
* check for dbupgrade table, offer to add it

Revision 4065 - Directory Listing
Modified Mon May 8 19:38:40 2006 UTC (13 years, 9 months ago) by apizer
removed warn message used to debug changes.

Revision 4064 - Directory Listing
Modified Mon May 8 18:23:10 2006 UTC (13 years, 9 months ago) by apizer
Added an email link so that one can easily email student(s) after e.g.
giving then an extension.

Revision 4063 - Directory Listing
Modified Sun May 7 22:01:57 2006 UTC (13 years, 9 months ago) by gage
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 4062 - Directory Listing
Modified Sun May 7 21:46:43 2006 UTC (13 years, 9 months ago) by gage
Replaced the use of checkKey by check_session to conform to the new subroutines in Authen.pm

Revision 4061 - Directory Listing
Modified Tue Apr 25 17:05:27 2006 UTC (13 years, 9 months ago) by sh002i
pass relative paths to Problem in sourceFilePath (see bug #1016)

Revision 4059 - Directory Listing
Modified Mon Apr 24 16:00:09 2006 UTC (13 years, 10 months ago) by sh002i
accidentally used $self->ce rather than $self->r->ce in revert_handler

Revision 4058 - Directory Listing
Modified Tue Apr 18 23:27:33 2006 UTC (13 years, 10 months ago) by sh002i
reverting to 1.40 -- accidental commit

Revision 4057 - Directory Listing
Modified Tue Apr 18 23:27:32 2006 UTC (13 years, 10 months ago) by sh002i
SECURITY: prevent reading/saving files outside of templates directory.

Revision 4051 - Directory Listing
Modified Mon Apr 17 21:17:12 2006 UTC (13 years, 10 months ago) by sh002i
Resolve bug #994 ("Try it" yields:  sourceFilePath is unsafe!)

SetMaker uses a relative path for sourceFilePath, which is nice, but
which path_is_subdir didn't account for. Added thrid argument,
$allow_relative, to that utility which causes $dir to be prepended to
$path. Modified Problem.pm to trigger this behavior.

Revision 4050 - Directory Listing
Modified Wed Apr 12 18:54:39 2006 UTC (13 years, 10 months ago) by sh002i
Use undefstr to convert undefined values to the string "###UNDEF###". If
you think a value you're sending to debug() might be undefiend, send it
as a separate item in the argument list rather than concatenating it or
interpolating it into a string. For example, say:

	debug("now myVal=", $myVal, ", exiting");

If $myVal is undefined, you'll see:

	now myVal=###UNDEF###, exiting

Revision 4049 - Directory Listing
Modified Wed Apr 12 18:51:21 2006 UTC (13 years, 10 months ago) by sh002i
Support for new Authen class:

* Use new Authen::Proctor subclass for proctor verification rathern than old
  verifyProctor method of Authen.

Revision 4048 - Directory Listing
Modified Wed Apr 12 18:51:06 2006 UTC (13 years, 10 months ago) by sh002i
Fix checkKeyFields to actually work with "versioned" user_id field in
key records.

Revision 4047 - Directory Listing
Modified Wed Apr 12 18:50:53 2006 UTC (13 years, 10 months ago) by sh002i
Beginnings of a Authen-subclass implementation of Moodle-cookie based
authentication.

Revision 4046 - Directory Listing
Modified Wed Apr 12 18:50:37 2006 UTC (13 years, 10 months ago) by sh002i
Support for new Authen class:

* Use new Authen::Proctor subclass for proctor verification rathern than old
  verifyProctor method of Authen.
* Remove unfinished code fragment introduced in 1.79. Harmless but annoying.
* Change names of login module constants from AUTHEN_MODULE and
  PROCTOR_AUTHEN_MODULE to LOGIN_MODULE and PROCTOR_LOGIN_MODULE.

Revision 4045 - Directory Listing
Modified Wed Apr 12 18:50:11 2006 UTC (13 years, 10 months ago) by sh002i
New subclassable architecture. Should function identically to old
implementation (modulo bugs). verifyProctor has been replaced with an
Authen::Proctor subclass, which overrides several methods and consists
of about 30 real lines of code. Cool.

Revision 4044 - Directory Listing
Modified Thu Apr 6 00:23:59 2006 UTC (13 years, 10 months ago) by dpvc
Fixed a bug that caused can error when a Complex1 object was passed to
the answer checker (rather than a string that needs to be parsed).

Revision 4043 - Directory Listing
Modified Thu Apr 6 00:20:01 2006 UTC (13 years, 10 months ago) by dpvc
Fixed getFlag so that it sodesn't accidentally create the {context}
field of an object that doesn't already have one (Perl will create
hashes that don't already exist if you reference them).  This was
causing problems with the ans_array processing

Revision 4042 - Directory Listing
Modified Sun Apr 2 12:32:02 2006 UTC (13 years, 10 months ago) by dpvc
When a file is uploaded and there is an error opening the destination
file, the error message now includes the system error report and the
file is no longer printed (causing a WeBWorK error).

Revision 4041 - Directory Listing
Modified Fri Mar 31 22:59:43 2006 UTC (13 years, 10 months ago) by dpvc
A change to the way lists are processed in AnswerChecker.pm in
December (v1.75) requires that implicitList => 0 be added to the
defaults for variable_cmp().

Revision 4033 - Directory Listing
Modified Tue Mar 21 14:13:21 2006 UTC (13 years, 11 months ago) by dpvc
Updated jsMath to version 3.2

Changes include a number of bug fixes, some enhancements to
the TeX emulation, new extensions for AMS symbols and \boldsymbol
(though these require laoding additional fonts onto the server), and
the elimination of the need for the blank.gif image for most browsers.

Revision 4032 - Directory Listing
Modified Tue Mar 21 14:05:21 2006 UTC (13 years, 11 months ago) by dpvc
Fixed a problem were the no-font message wasn't being disabled
properly (due to changes in the CSS names used by jsMath).

Revision 4031 - Directory Listing
Modified Thu Mar 2 17:03:54 2006 UTC (13 years, 11 months ago) by apizer
missed one line

Revision 4030 - Directory Listing
Modified Thu Mar 2 16:50:39 2006 UTC (13 years, 11 months ago) by apizer
Fixed Bug 988.
Use sortByName instead of sort to sort the keys in the %answerHash

Revision 4029 - Directory Listing
Modified Tue Feb 21 22:00:29 2006 UTC (14 years ago) by glarose
Clean up verifyProctor() in Authen.pm, improve proctor authorization
logging.

Revision 4028 - Directory Listing
Modified Sat Feb 18 22:42:55 2006 UTC (14 years ago) by dpvc
Change check for zero from fuzzy check to strict check (when the
problem used absolute tolerances, in particular, this can causebig
problems).

Revision 4026 - Directory Listing
Modified Tue Feb 14 12:51:15 2006 UTC (14 years ago) by dpvc
Updated to v3.1e (fixes problem with incorrect URL's in MSIE, reported
as bug #982.)

Revision 4022 - Directory Listing
Modified Mon Feb 13 20:56:27 2006 UTC (14 years ago) by glarose
Update gateway template to clarify time warnings.

Revision 4021 - Directory Listing
Modified Fri Feb 10 01:09:08 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (move [edit] link for Course/Set Info to
top, resolving bug #978.)

Revision 4019 - Directory Listing
Modified Thu Feb 9 23:20:20 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (Preserve gateway test display options in
colum header links.)

Revision 4016 - Directory Listing
Modified Tue Feb 7 23:07:08 2006 UTC (14 years ago) by dpvc
Update to version 3.1d of jsMath (works around a bug in Firefox
1.5.0.1 on the PC that causes the browser to crash when jsMath is loaded).

Revision 4015 - Directory Listing
Modified Tue Feb 7 21:03:25 2006 UTC (14 years ago) by sh002i
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))

Revision 4012 - Directory Listing
Modified Tue Feb 7 19:20:57 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (change underscores to spaces in siblings
list, add tooltop for overflowing siblings.)

Revision 4011 - Directory Listing
Modified Tue Feb 7 19:20:09 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (provisionally cut off overflowing text
and reduce font sizes in menus.)

Revision 4010 - Directory Listing
Modified Fri Feb 3 18:21:26 2006 UTC (14 years ago) by sh002i
set $main::VERSION to "2.x" -- nice generic value for CVS.

Revision 4008 - Directory Listing
Modified Fri Feb 3 14:05:25 2006 UTC (14 years ago) by glarose
Modify putUserProblem call to allow for versioned sets.

Revision 4007 - Directory Listing
Modified Fri Feb 3 00:22:15 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (disable editFileSuffix since it is not
used and is dumb.)

Revision 4002 - Directory Listing
Modified Thu Feb 2 22:29:43 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (Moved snippet of ContentGenerator.pm
that checked to see if the "report bugs" link could be showed inside
the clause that requires the authentication to have been verified.)

Although it was not noted in the original commit message, this commit
also removes trailing newlines from error reporting messages in Authz. I
assume this is so that the file/lineno is appened by Perl.

Revision 4001 - Directory Listing
Modified Thu Feb 2 22:19:03 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (removed grey box around problem text
because MSIE is awful. This fixes the grey-box problem mentioned in bug
#945.)

Revision 3999 - Directory Listing
Modified Wed Feb 1 19:24:36 2006 UTC (14 years ago) by apizer
List students last name first

Revision 3997 - Directory Listing
Modified Wed Feb 1 00:24:22 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (Use File::Path::mkpath to create the
hardcopy directory. mkpath() functions like ``mkdir -p'' in that it will
create multiple directory elements if needed. Closes bug #950.

Use the standard File::Temp::tempdir function instead of
makeTempDirectory() to create the actual working directory.

Add spaces after the "[edit]" links when PG errors are reported.)

Revision 3993 - Directory Listing
Modified Tue Jan 31 18:28:56 2006 UTC (14 years ago) by sh002i
moved from webwork2/bin

Revision 3992 - Directory Listing
Modified Mon Jan 30 16:20:09 2006 UTC (14 years ago) by dpvc
When checking for division by zero, don't do fuzzy check.

Revision 3991 - Directory Listing
Modified Sun Jan 29 20:50:37 2006 UTC (14 years ago) by jj
Fix bug related to $mail{feedbackRecipients} being set in web configuration (reported on wwdevel.  I don't think this has a bug number.

Revision 3988 - Directory Listing
Modified Sat Jan 28 04:33:08 2006 UTC (14 years ago) by dpvc
Updated to v3.1c (added \def and \newcommand macros, fixed several
bugs).

Revision 3987 - Directory Listing
Modified Fri Jan 27 18:19:13 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (add GD and Net::SMTP, used by PG, and
remove silly test module.)

Revision 3985 - Directory Listing
Modified Fri Jan 27 17:53:48 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (Updated modules/executables list, cleaned up output.

Output now specifies that $PATH is being searched for executables, and
lists the contents of $PATH. Same with @INC. It's a little easier to
tell if a module/executable has not been found: The "found" lines are
prefixed by some space, which makes the not found '**' prefix stand out.
When a module fails to load, but it's not because it wasn't found, the
error message is given.)

Revision 3983 - Directory Listing
Modified Fri Jan 27 03:34:26 2006 UTC (14 years ago) by sh002i
these files are no longer used

Revision 3982 - Directory Listing
Modified Fri Jan 27 03:33:49 2006 UTC (14 years ago) by sh002i
moving local utilities to admintools module

Revision 3981 - Directory Listing
Modified Fri Jan 27 03:32:30 2006 UTC (14 years ago) by sh002i
moving local utilities out of webwork2/bin

Revision 3980 - Directory Listing
Modified Thu Jan 26 22:02:26 2006 UTC (14 years ago) by sh002i
test commit with very very very very very very very very very very very very very very very very very long first line.

Revision 3979 - Directory Listing
Modified Thu Jan 26 22:02:25 2006 UTC (14 years ago) by sh002i
test commit with very very very very very very very very very very very very very very very very very long first line.

Revision 3978 - Directory Listing
Modified Thu Jan 26 22:01:43 2006 UTC (14 years ago) by sh002i
test commit with very very very very very very very very very very very very very very very very very long first line.

Revision 3977 - Directory Listing
Modified Thu Jan 26 22:01:00 2006 UTC (14 years ago) by sh002i
test commit with very very very very very very very very very very very very very very very very very long first line.

Revision 3976 - Directory Listing
Modified Thu Jan 26 21:59:50 2006 UTC (14 years ago) by sh002i
test commit with very very very very very very very very very very very very very very very very very very very very long first line.
and here's the second line!

Revision 3975 - Directory Listing
Modified Thu Jan 26 21:45:42 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-patches: (make addCourse, deleteCourse more
robust.
- pre-check permissions before trying to mkdir/rmtree
- treat creation errors on directories other than the root as warnings
- treat deletion errors on all directories as warnings
- treat sql_single "drop table" errors as warnings
- supress DBI's error reporting for command-line addcourse/delcourse)

Revision 3973 - Directory Listing
Modified Wed Jan 25 23:13:56 2006 UTC (14 years ago) by sh002i
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 3971 - Directory Listing
Modified Wed Jan 25 12:47:17 2006 UTC (14 years ago) by dpvc
Forward port to HEAD (Prevent "unquoted dx may conflict with future
usage" messages.)

Revision 3969 - Directory Listing
Modified Tue Jan 24 23:41:40 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (remove extraneous instructor tools link)

Revision 3967 - Directory Listing
Modified Tue Jan 24 23:40:43 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (removed bad characters)

Revision 3965 - Directory Listing
Modified Tue Jan 24 23:34:20 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (re-add $courseDirs{DATA}, since it is
still potentially useful.)

Revision 3963 - Directory Listing
Modified Tue Jan 24 23:27:02 2006 UTC (14 years ago) by sh002i
forward-port from rel-2-2-dev: (make webwork code output siblings div/h2
code, rather than template. this allows for the siblings box to be named
according to its contents.)

Revision 3951 - Directory Listing
Modified Tue Jan 24 02:05:09 2006 UTC (14 years ago) by sh002i
from rel-2-2-dev: (make templates validate)

Revision 3949 - Directory Listing
Modified Mon Jan 23 21:21:15 2006 UTC (14 years, 1 month ago) by sh002i
forward port: (fix width issues with info box.

restrict width of info box to exactly 40% of the page width. we can't
use "max-width" because MSIE doesn't support it.

set "overflow:auto" to enable scroll bars when the content can't be
wrapped to 40%. this is a little nicer than the contents running over
the border of the box, but MSIE makes bad choices about how to size the
box so as to avoid unnecessary scroll bars. (it sizes the element first
and then adds scroll bars, so it adding a horizontal scroll makes the
content area smaller than the content, necessitating a vertical scroll
bar as well. pretty annoying.)

Tested this in WinIE, Firefox, and Safari.)

Revision 3945 - Directory Listing
Modified Sun Jan 22 03:07:55 2006 UTC (14 years, 1 month ago) by sh002i
forward-port: (use darker foreground colors instead of bright background
color for message classes for now.)

Revision 3943 - Directory Listing
Modified Sun Jan 22 02:55:02 2006 UTC (14 years, 1 month ago) by sh002i
forward-port: (update info() for new stylesheet.)

Revision 3941 - Directory Listing
Modified Sun Jan 22 02:53:24 2006 UTC (14 years, 1 month ago) by sh002i
forward-port: (use info() from Login.pm)

Revision 3939 - Directory Listing
Modified Sun Jan 22 02:52:11 2006 UTC (14 years, 1 month ago) by sh002i
forward-port: (Don't output DIV tag in info() unless there's something
to display.)

Revision 3937 - Directory Listing
Modified Sun Jan 22 02:41:44 2006 UTC (14 years, 1 month ago) by sh002i
forward-port (Don't output DIV tag in info() unless there's something to
display.)

Revision 3935 - Directory Listing
Modified Sun Jan 22 02:29:40 2006 UTC (14 years, 1 month ago) by sh002i
forward-port to HEAD (Fixed error in variable names that was breaking
the code in HEAD. -gage)

Revision 3933 - Directory Listing
Modified Sat Jan 21 13:21:18 2006 UTC (14 years, 1 month ago) by dpvc
Updated to version 3.1b, which fixes several bugs in the fallback
modes, and a bug when <BR> tags appear within the mathematics (this
will not affect WW users).  See the jsMath website for the complete
change long.

Revision 3930 - Directory Listing
Modified Fri Jan 20 00:37:36 2006 UTC (14 years, 1 month ago) by sh002i
forward-port to HEAD (fixed accidental commit of local version)

Revision 3927 - Directory Listing
Modified Fri Jan 20 00:21:14 2006 UTC (14 years, 1 month ago) by sh002i
forward-port to head (roll back part of change in version 1.58.)

Revision 3925 - Directory Listing
Modified Fri Jan 20 00:17:39 2006 UTC (14 years, 1 month ago) by sh002i
forward-port to head (partial clean up rendering of the info box. it
will now not show up unless it has content, and the headings will be
rendered more nicely.)

Revision 3924 - Directory Listing
Modified Fri Jan 20 00:11:50 2006 UTC (14 years, 1 month ago) by sh002i
*** empty log message ***

Revision 3922 - Directory Listing
Modified Thu Jan 19 01:11:37 2006 UTC (14 years, 1 month ago) by sh002i
forward-port from rel-2-2-dev (add h2 sizing for InfoPanel)

Revision 3920 - Directory Listing
Modified Thu Jan 19 01:09:59 2006 UTC (14 years, 1 month ago) by sh002i
forward-port from rel-2-2-dev (lots of formatting/indentation fixes,
also fix issue with text decoration in masthead.)

Revision 3918 - Directory Listing
Modified Thu Jan 19 01:05:46 2006 UTC (14 years, 1 month ago) by sh002i
Forward-port from rel-2-2-patches: housekeeping.

added copyright notices.
UTF-8 => utf-8.
removed byte-order marker added by bbedit.
removed commented-out elements.

Revision 3915 - Directory Listing
Modified Tue Jan 17 02:20:19 2006 UTC (14 years, 1 month ago) by dpvc
Fixed problem with formula-valued matrices producing an error message
incorrectly.  (Was checking the wrong attribute of the entries.)

Revision 3913 - Directory Listing
Modified Tue Jan 17 01:56:24 2006 UTC (14 years, 1 month ago) by dpvc
Fixed problem with variables that are multiplied with no space between
them (e.g., "ax") that was introduced when I changed the pattern to
allow multi-letter variable names.

The solution is to first check against the defined names before
checking for the more complete name pattern.

Revision 3912 - Directory Listing
Modified Fri Jan 13 21:15:19 2006 UTC (14 years, 1 month ago) by sh002i
changed license and readme to have generic "2.x" version numbers and no
specific readme test. (i may add some message about this being an
unreleased development version or something at a later date.)

Revision 3907 - Directory Listing
Modified Wed Jan 11 23:08:44 2006 UTC (14 years, 1 month ago) by dpvc
Merge with HEAD (removal of commented-out messages)

Revision 3905 - Directory Listing
Modified Wed Jan 11 23:00:24 2006 UTC (14 years, 1 month ago) by dpvc
Merge to HEAD (remove DPVC comments).

Revision 3903 - Directory Listing
Modified Wed Jan 11 22:56:12 2006 UTC (14 years, 1 month ago) by dpvc
Merge to HEAD (Don't scan templates/tmpEdit for pg files in the Library Browser).

Revision 3901 - Directory Listing
Modified Wed Jan 11 22:41:51 2006 UTC (14 years, 1 month ago) by dpvc
Merge changes with HEAD (Re-target view and edit links to use the view
and edit windows)

Revision 3898 - Directory Listing
Modified Tue Jan 10 03:40:40 2006 UTC (14 years, 1 month ago) by dpvc
Updated to jsMath version 3.1.  This fixes problems with Firefox, and
includes several new features, including the ability to autoload
extensions to jsMath on the fly.  Perhaps most important is the fact
that the main jsMath files have been compressed so that they will
download twice as fast as before.

Revision 3897 - Directory Listing
Modified Tue Jan 10 00:33:19 2006 UTC (14 years, 1 month ago) by sh002i
Using Mike's fix for bug #942, because it was nicer.
Forward-ported from rel-2-2-dev revision 1.75.2.2 to HEAD.

Revision 3894 - Directory Listing
Modified Tue Jan 10 00:08:59 2006 UTC (14 years, 1 month ago) by sh002i
Resolves bug #942, in which a missing permission level field causes a
warning:

This is in fact due to UserList assuming that $record{permission} is
defined when it is allowed to be undefined (as per the format of
classlist files).

I added a case that sets is to $default_permission_level if it is not
defined.

FIXED in branch rel-2-2-dev revision 1.75.2.1.
Forwarded-ported with no modifications to HEAD in this revision.

Revision 3892 - Directory Listing
Modified Mon Jan 9 23:57:28 2006 UTC (14 years, 1 month ago) by sh002i
I've modified the renameCourse code to simply issue a warning when a
course directory (other than the course root dir) is not movable. I've
also added error checking for some of the more common reasons for
directories to not be movable, so that the warning message is more
informative.

Resolves bug #943.
Originally committed to branch rel-2-2-dev.
Forward-ported without modification to HEAD.

Revision 3890 - Directory Listing
Modified Mon Jan 9 19:15:01 2006 UTC (14 years, 1 month ago) by jj
Fixed the following bug: if you are importing multiple sets and (stupidly) include the line "the following file(s)" in your multiple selection (which can happen if you are trying to get everything), then you would get a cryptic error and nothing would be imported.

Revision 3888 - Directory Listing
Modified Sun Jan 8 18:18:17 2006 UTC (14 years, 1 month ago) by gage
Merging changes from rel-2-2-dev into HEAD

Revision 3883 - Directory Listing
Modified Sun Jan 8 01:29:13 2006 UTC (14 years, 1 month ago) by gage
Changes to respond to bug report #936

Revision 3878 - Directory Listing
Modified Sat Jan 7 02:08:52 2006 UTC (14 years, 1 month ago) by gage
PG Problem Editor Help Page

Revision 3877 - Directory Listing
Modified Sat Jan 7 02:07:26 2006 UTC (14 years, 1 month ago) by gage
PG problem editor help

Revision 3876 - Directory Listing
Modified Sat Jan 7 01:14:54 2006 UTC (14 years, 1 month ago) by gage
This fixes the bug specifically reported in bug report #935.

There are still problems with saving local copies of set headers.

Revision 3874 - Directory Listing
Modified Fri Jan 6 17:48:17 2006 UTC (14 years, 1 month ago) by glarose
Gateway bugfix: correct (or work around) missing score/values.

Revision 3873 - Directory Listing
Modified Mon Jan 2 23:24:48 2006 UTC (14 years, 1 month ago) by glarose
Gateway update: don't display gateway sets in siblings sidebar of
ProblemSet list for all users, regardless of permissions.  This may
or may not be the desired behavior.  I like it because it forces
the user to go to a test from the ProblemSets page where we rewrite
the link with the more intuitive (but longer) text "Take new [test
name] test".

Revision 3872 - Directory Listing
Modified Sat Dec 31 16:31:48 2005 UTC (14 years, 1 month ago) by dpvc
Added ability to supply a code reference (rather than a Value object)
for the typeMatch and extra fields for the List answer checker (and
the String answer checker).  This makes these more useful in
overriding the match for specific problems that want better error
messages, for example.

Revision 3871 - Directory Listing
Modified Sat Dec 31 16:29:29 2005 UTC (14 years, 1 month ago) by dpvc
Avoid error when a CODE reference is checked to see if it is a Value object.

Revision 3870 - Directory Listing
Modified Sat Dec 31 15:00:37 2005 UTC (14 years, 1 month ago) by dpvc
Added ability to specify variables that are part of the union/list
rather than requiring just constants.  E.g.,

       interval_cmp("(1,a),(2a-1,a)",unions=>'no',var=>'a');

or

       interval_cmp("(x,y),(2x,3y)",unions=>'no',vars=>['x','y']);

Revision 3869 - Directory Listing
Modified Sat Dec 31 14:57:39 2005 UTC (14 years, 1 month ago) by dpvc
Added a new flag that controls how a list with a single entry that is
a list is handled.  In the past, the student could not specify such an
item, but now the default is to form a list with a single entry that
is a list, provided the student has used parens explicitly around his
list.  So "1,2" will be a list with two items and "(1,2)" will be a
list with one item (a list).  This improves the ability to use the
list checker for lists of arbitrary pairs (like "(1,max)") especially
when you want to check for lists of these (e.g., "(1,max),(2,min)"),
since otherwise a single pair "(1,max)" entered by the student would
become the list "1,max" rather than the list containing the single
pair.

If you really want "(1,max)" to become the list "1,max", use

   List("1,max")->cmp(implicitList=>0);

to prevent single lists from forming a list of a single item.

Revision 3868 - Directory Listing
Modified Sat Dec 31 02:42:46 2005 UTC (14 years, 1 month ago) by dpvc
Now that the Parser allows multi-letter variable names, there is no
need to handle C0 specially.

Revision 3867 - Directory Listing
Modified Sat Dec 31 02:41:16 2005 UTC (14 years, 1 month ago) by dpvc
Now that the parser accepts multi-character variables, there is no
need for the special treatment of dx.  Also, allow the context to
specify the default variable to use, and if not available, take the
LAST varaible alphabetically, not the first.  (x is more likely to be
last, and the author might have added dx as a variable so that it will
not cause an error if used in other answers in the problem, for
example.)

Revision 3866 - Directory Listing
Modified Sat Dec 31 01:39:54 2005 UTC (14 years, 1 month ago) by dpvc
Allow multi-letter variable names and names like x1, x2, etc.

Revision 3865 - Directory Listing
Modified Fri Dec 30 20:45:54 2005 UTC (14 years, 1 month ago) by apizer
Put the phrase "Click the icon  for page and item specific help" at the
top since in most cases this is what people will want. If it's not there
people may give up before they get to it at the bottom of the page.  Also
delete "(if it is available)" since it gives no useful information.

Arnie

Revision 3864 - Directory Listing
Modified Fri Dec 30 19:06:34 2005 UTC (14 years, 1 month ago) by dpvc
No longer needed.

Revision 3863 - Directory Listing
Modified Thu Dec 29 01:40:38 2005 UTC (14 years, 1 month ago) by gage
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 3862 - Directory Listing
Modified Wed Dec 28 02:34:01 2005 UTC (14 years, 1 month ago) by gage
three more help files

Revision 3861 - Directory Listing
Modified Tue Dec 27 00:35:03 2005 UTC (14 years, 1 month ago) by gage
Fixed theme item in the Constants.pm file.

Revision 3860 - Directory Listing
Modified Tue Dec 27 00:34:18 2005 UTC (14 years, 1 month ago) by gage
Added popuplist widget to Config.pm.  Modified Constants.pm to
allow choice of theme from a pop up menu.

Revision 3859 - Directory Listing
Modified Mon Dec 26 23:53:13 2005 UTC (14 years, 1 month ago) by gage
Turn off debugging.

Allow the theme to be edited for each course. (This is slightly dangerous
since a misspelling of the theme could cause troubles.)
It would be helpful to have a pop-up menu widget for Config.pm -- similar to
the boolean or permission pop ups, but where the values
can be specified.

Revision 3858 - Directory Listing
Modified Mon Dec 26 22:06:37 2005 UTC (14 years, 1 month ago) by gage
Modifications which replace SetsAssignedToUsers.pm by UserDetail.pm

Added instructor help link to the links in the left margin.
There is no specific student help link.

Added some more configuration variables to Constants.pm

Revision 3857 - Directory Listing
Modified Mon Dec 26 22:04:31 2005 UTC (14 years, 1 month ago) by gage
This file replaces the SetsAssignedToUser.pm module.  It allows you to
change the dates on several homework sets for a single student from one page.
This is a common activity, particularly when adding students, and is now a
much faster procedure.

Revision 3856 - Directory Listing
Modified Mon Dec 26 22:02:58 2005 UTC (14 years, 1 month ago) by gage
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 3855 - Directory Listing
Modified Mon Dec 26 21:59:56 2005 UTC (14 years, 1 month ago) by gage
Improvements to the help displayed for each page.

Revision 3854 - Directory Listing
Modified Thu Dec 22 18:51:27 2005 UTC (14 years, 2 months ago) by glarose
Gateway update: correct handling of gateway data input from def file.

Revision 3853 - Directory Listing
Modified Thu Dec 22 18:50:40 2005 UTC (14 years, 2 months ago) by glarose
Gateway update: correct handling of gateway data when editing sets.

Revision 3852 - Directory Listing
Modified Thu Dec 22 18:50:06 2005 UTC (14 years, 2 months ago) by glarose
Gateway update: fix typo.

Revision 3851 - Directory Listing
Modified Thu Dec 22 18:49:40 2005 UTC (14 years, 2 months ago) by glarose
Gateway update: revise display of versioned and non-versioned sets.  Now
all regular sets are sorted to the top of the list, with gateway tests
at the bottom.  Use view_proctored_tests parameter to decide if proctored
tests should be hidden.  Now uses new listUserSets and listUserSetVersions
routines from DB.

Revision 3850 - Directory Listing
Modified Thu Dec 22 18:48:06 2005 UTC (14 years, 2 months ago) by glarose
Gateway update: reflect use of listUserSets to list non-versioned sets

Revision 3849 - Directory Listing
Modified Thu Dec 22 18:47:20 2005 UTC (14 years, 2 months ago) by glarose
Gateway update: use listUserSets and listUserSetVersions to show grades
for all sets.

Revision 3848 - Directory Listing
Modified Thu Dec 22 18:46:25 2005 UTC (14 years, 2 months ago) by glarose
Gateway update:
 - correct error check in deleteUserSet to allow deletion of set versions
 - change countUserSets to only count non-versioned sets
 - add countUserSetVersions to count versioned sets
 - change listUserSets to not list versioned sets
 - add listUserSetVersions to list versioned sets
These should resolve bug #894.

Revision 3847 - Directory Listing
Modified Thu Dec 22 18:43:33 2005 UTC (14 years, 2 months ago) by glarose
Gateway update: restore runtimer() to gateway.template (though for some
reason it no longer likes the onload() handler in the body tag?).  add
nocache headers to try and avoid pernicious use of the back button.
correct javascript timer to avoid negative times.

Revision 3846 - Directory Listing
Modified Thu Dec 22 18:41:59 2005 UTC (14 years, 2 months ago) by glarose
Gateway update: change $gatewayGracePeriod

Revision 3845 - Directory Listing
Modified Thu Dec 22 05:26:08 2005 UTC (14 years, 2 months ago) by sh002i
i've been playing with a docbook version of the installation manual.
converting the twiki installation manual is too time-consuming for it to
be ready for 2.1.4, so this can just sit here until 2.1.5 or later.

Revision 3844 - Directory Listing
Modified Thu Dec 22 02:42:54 2005 UTC (14 years, 2 months ago) by dpvc
Fixed some problems with alignment in Firefox 1.5 (will be part of 3.1
release, but that is being held up for the moment).

Revision 3843 - Directory Listing
Modified Wed Dec 21 23:24:43 2005 UTC (14 years, 2 months ago) by glarose
Gateway update: deal with missing problem groups in gateway tests slightly
more gracefully.

Revision 3842 - Directory Listing
Modified Wed Dec 21 23:23:58 2005 UTC (14 years, 2 months ago) by glarose
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

Revision 3841 - Directory Listing
Modified Wed Dec 21 23:21:00 2005 UTC (14 years, 2 months ago) by glarose
Gateway update: add a gateway.css style file for gateway styles

Revision 3840 - Directory Listing
Modified Wed Dec 21 23:20:17 2005 UTC (14 years, 2 months ago) by glarose
Gateway update: add gateway.css stylesheet to gateway template

Revision 3839 - Directory Listing
Modified Wed Dec 21 23:19:01 2005 UTC (14 years, 2 months ago) by glarose
Gateway update: add view_proctored_tests permission level and
gateway_grace_period parameter to global.conf.  view_proctored_tests
will be used to determine if proctored tests by default appear in
a students' problem_set_list.  gateway_grace_period is the time
after the actual time limit for the set that we will still grade
it.

Revision 3838 - Directory Listing
Modified Wed Dec 21 18:10:12 2005 UTC (14 years, 2 months ago) by sh002i
don't need this anymore

Revision 3837 - Directory Listing
Modified Mon Dec 19 20:18:55 2005 UTC (14 years, 2 months ago) by sh002i
make links() work better with new template, emit "courses" link even
when not logged in.

Revision 3836 - Directory Listing
Modified Mon Dec 19 20:18:28 2005 UTC (14 years, 2 months ago) by sh002i
make siblings() work better with new template

Revision 3835 - Directory Listing
Modified Mon Dec 19 03:42:12 2005 UTC (14 years, 2 months ago) by sh002i
removed cruft

Revision 3834 - Directory Listing
Modified Mon Dec 19 03:42:05 2005 UTC (14 years, 2 months ago) by sh002i
graceful failure if needed data is not supplied

Revision 3833 - Directory Listing
Modified Mon Dec 19 03:41:29 2005 UTC (14 years, 2 months ago) by sh002i
create $authz and $authen regardless of whether we have a courseID

Revision 3832 - Directory Listing
Modified Mon Dec 19 03:41:10 2005 UTC (14 years, 2 months ago) by sh002i
use new theme/template arrangment

Revision 3831 - Directory Listing
Modified Mon Dec 19 03:40:58 2005 UTC (14 years, 2 months ago) by sh002i
instead of a template hash, we give the default theme name and default
template name.

Revision 3830 - Directory Listing
Modified Mon Dec 19 03:37:33 2005 UTC (14 years, 2 months ago) by sh002i
moved template files into theme directories

Revision 3829 - Directory Listing
Modified Mon Dec 19 00:13:00 2005 UTC (14 years, 2 months ago) by sh002i
added math-based template hack on it and figure out how it sucks.

Revision 3828 - Directory Listing
Modified Sun Dec 18 22:38:58 2005 UTC (14 years, 2 months ago) by sh002i
get rid of submiterror escape

Revision 3827 - Directory Listing
Modified Sun Dec 18 22:37:18 2005 UTC (14 years, 2 months ago) by sh002i
get rid of submitError usage

Revision 3826 - Directory Listing
Modified Sun Dec 18 22:00:58 2005 UTC (14 years, 2 months ago) by sh002i
change it back

Revision 3825 - Directory Listing
Modified Sun Dec 18 21:44:54 2005 UTC (14 years, 2 months ago) by sh002i
test fix of copyright symbol

Revision 3824 - Directory Listing
Modified Sun Dec 18 21:39:04 2005 UTC (14 years, 2 months ago) by sh002i
the left half of the logo from http://webwork.rochester.edu

Revision 3823 - Directory Listing
Modified Fri Dec 16 23:13:27 2005 UTC (14 years, 2 months ago) by sh002i
don't write globalUserID to course.conf file.

Revision 3822 - Directory Listing
Modified Fri Dec 16 23:03:06 2005 UTC (14 years, 2 months ago) by sh002i
disable gdbm and sql database layouts, remove unneeded config options.
this is the first step in removing support for these deprecated database
layouts.

Revision 3821 - Directory Listing
Modified Fri Dec 16 21:58:14 2005 UTC (14 years, 2 months ago) by sh002i
remove global_user from classlists (gdbm is dead)

Revision 3820 - Directory Listing
Modified Fri Dec 16 18:41:19 2005 UTC (14 years, 2 months ago) by jj
Added more permission levels for the course configuration module.

Revision 3819 - Directory Listing
Modified Fri Dec 16 18:29:09 2005 UTC (14 years, 2 months ago) by dpvc
Updated to version 3.0 of jsMath (see the jsMath web site for details
of the changes in this version).

Also updated the jsMath-ww.js bootstrap code to use the window onLoad
handler to do one call to jsMath at the end rather than lots of calls
for pages that show multiple problems (like the library browser).

Revision 3818 - Directory Listing
Modified Fri Dec 16 18:19:00 2005 UTC (14 years, 2 months ago) by jj
Changed the permission setting for whether or not hardcopy can show correct answers before the answer date.  The old value was really for the "Show Past Answers" button, not for being able to see correct answers early.

Revision 3817 - Directory Listing
Modified Fri Dec 16 17:59:24 2005 UTC (14 years, 2 months ago) by dpvc
No longer used by jsMath.

Revision 3816 - Directory Listing
Modified Thu Dec 15 19:42:28 2005 UTC (14 years, 2 months ago) by sh002i
accept display of edited problems even if they are from a gateway test,
but only if we have permission. fixed bug #868.

Revision 3815 - Directory Listing
Modified Thu Dec 15 19:11:06 2005 UTC (14 years, 2 months ago) by sh002i
refactored copy-and-pasted code

Revision 3814 - Directory Listing
Modified Wed Dec 14 17:47:00 2005 UTC (14 years, 2 months ago) by sh002i
Really fix fun_cmp equivalence warning message.

We show the equivalence message when: we're not in preview mode AND the
answers are equivalent AND the answers are not identical. We DON'T CARE
whether the answers are correct or not, because that leaks information
in multipart questions when $showPartialCorrectAnswers is off.

Both the Parser-version (FUNCTION_CMP) and the non-Parser-version
(ORIGINAL_FUNCTION_CMP) behave as descibed above now.

And this time we test *before* we commit...

Revision 3813 - Directory Listing
Modified Wed Dec 14 16:42:40 2005 UTC (14 years, 2 months ago) by gage
Removed unneeded spacing.  The spacing problem has been
fixed by aligning the login status information to the right.
That's a better fix than the non-breaking spaces.

Revision 3812 - Directory Listing
Modified Wed Dec 14 00:51:23 2005 UTC (14 years, 2 months ago) by sh002i
parser version was ok, bug #752 fixed in non-parser version.

Revision 3811 - Directory Listing
Modified Wed Dec 14 00:16:50 2005 UTC (14 years, 2 months ago) by gage
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 3810 - Directory Listing
Modified Tue Dec 13 19:33:33 2005 UTC (14 years, 2 months ago) by sh002i
remove dummy checkboxes for the time being, sort of closing bug #805.

Revision 3809 - Directory Listing
Modified Tue Dec 13 18:28:52 2005 UTC (14 years, 2 months ago) by sh002i
use Parser-based num_cmp and fun_cmp by default.

Revision 3808 - Directory Listing
Modified Tue Dec 13 18:23:46 2005 UTC (14 years, 2 months ago) by sh002i
give answer is equivalent message regardless of correctness.
fixes bug #752.

Revision 3807 - Directory Listing
Modified Tue Dec 13 18:18:34 2005 UTC (14 years, 2 months ago) by sh002i
push loginstatus over to the right

Revision 3806 - Directory Listing
Modified Mon Dec 12 22:24:55 2005 UTC (14 years, 2 months ago) by sh002i
added some notes at the bottom.

Revision 3805 - Directory Listing
Modified Mon Dec 12 21:30:33 2005 UTC (14 years, 2 months ago) by sh002i
fixed divide-by-zero error when calculating index.

Revision 3804 - Directory Listing
Modified Sun Dec 11 01:33:31 2005 UTC (14 years, 2 months ago) by gage
Put a little space between the bread crumb path and the login status information.

Revision 3803 - Directory Listing
Modified Fri Dec 9 15:51:31 2005 UTC (14 years, 2 months ago) by sh002i
note the "force renumber" is always enabled when problems are being
reordered.

Revision 3802 - Directory Listing
Modified Thu Dec 8 19:16:09 2005 UTC (14 years, 2 months ago) by sh002i
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 3801 - Directory Listing
Modified Thu Dec 8 18:10:22 2005 UTC (14 years, 2 months ago) by sh002i
quick hack to prevent path text and loginstatus text from overlapping.

Revision 3800 - Directory Listing
Modified Wed Dec 7 16:13:48 2005 UTC (14 years, 2 months ago) by dpvc
Prevent error message when num_cmp specifies the same string more than
once (e.g., upper and lower case versions of the same thing).

Revision 3799 - Directory Listing
Modified Tue Dec 6 21:11:07 2005 UTC (14 years, 2 months ago) by sh002i
remove specific login error mesasges -- log to login.log instead. some
messages leaked information. (i.e. "user not found" versus "incorrect
password".)

Revision 3798 - Directory Listing
Modified Tue Dec 6 19:56:31 2005 UTC (14 years, 2 months ago) by sh002i
fixed warnings in &nav and &options when set is not asssigned.

Revision 3797 - Directory Listing
Modified Tue Dec 6 19:55:42 2005 UTC (14 years, 2 months ago) by sh002i
removed useless debugging statement

Revision 3796 - Directory Listing
Modified Tue Dec 6 02:31:34 2005 UTC (14 years, 2 months ago) by apizer
Allow the admin course to be hidden by the hide_directort technique

Revision 3795 - Directory Listing
Modified Mon Dec 5 19:43:38 2005 UTC (14 years, 2 months ago) by sh002i
add permission for viewing problem debugging info.

Revision 3794 - Directory Listing
Modified Mon Dec 5 17:58:01 2005 UTC (14 years, 2 months ago) by sh002i
comment cleanup -- ignore

Revision 3793 - Directory Listing
Modified Mon Dec 5 17:50:00 2005 UTC (14 years, 2 months ago) by sh002i
added proper phrase quoting to rfc822_mailbox -- fixes bug #875.

Revision 3792 - Directory Listing
Modified Mon Dec 5 16:09:56 2005 UTC (14 years, 2 months ago) by sh002i
Corrected error message when mailing to an address is not allowed. This
used to refer to the courseWeBWorK.ph file, which is WW1-specific. It
now mentions global.conf and course.conf.

Revision 3791 - Directory Listing
Modified Sat Dec 3 21:24:56 2005 UTC (14 years, 2 months ago) by gage
Fixed typo in instructor links for problem.

Revision 3790 - Directory Listing
Modified Sat Dec 3 21:18:35 2005 UTC (14 years, 2 months ago) by gage
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 3789 - Directory Listing
Modified Sat Dec 3 21:17:09 2005 UTC (14 years, 2 months ago) by gage
Modifying messages given when editing set detail.

Revision 3788 - Directory Listing
Modified Fri Dec 2 23:35:15 2005 UTC (14 years, 2 months ago) by sh002i
1-liner adding course hiding support. place a file named
"hidden_directory" in a course directory and it will not show up in the
courses list on the WeBWorK home page. it will still appear in the
CourseAdmin module. The file can be added/removed via UNIX access or by
using the FileManager module.

Revision 3787 - Directory Listing
Modified Fri Dec 2 18:37:44 2005 UTC (14 years, 2 months ago) by gage
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 3786 - Directory Listing
Modified Thu Dec 1 20:35:49 2005 UTC (14 years, 2 months ago) by sh002i
*** empty log message ***

Revision 3785 - Directory Listing
Modified Thu Dec 1 20:34:49 2005 UTC (14 years, 2 months ago) by sh002i
*** empty log message ***

Revision 3784 - Directory Listing
Modified Thu Dec 1 20:21:56 2005 UTC (14 years, 2 months ago) by sh002i
*** empty log message ***

Revision 3783 - Directory Listing
Modified Thu Dec 1 19:48:05 2005 UTC (14 years, 2 months ago) by sh002i
SystemAuth=no

Revision 3782 - Directory Listing
Modified Thu Dec 1 13:17:27 2005 UTC (14 years, 2 months ago) by dpvc
Fixed a problem with not including parentheses when a negative number
is the base of a power. (And in general, when a negative is used as an
operand of a higher-precendence operation, but it really only affected
powers.)

Revision 3781 - Directory Listing
Modified Tue Nov 29 21:25:25 2005 UTC (14 years, 2 months ago) by apizer
Add underscores to the anonymous unique identifier for
questionnaires in WW 2 by using
${setNumber}_${courseName}_$psvnNumber

Revision 3780 - Directory Listing
Modified Mon Nov 28 20:49:57 2005 UTC (14 years, 2 months ago) by sh002i
reinstated "report bugs" item in links()

Revision 3779 - Directory Listing
Modified Tue Nov 22 01:44:55 2005 UTC (14 years, 3 months ago) by gage
Modifications that set problems with path .../Library/setFoo/problemBar to reference the "Library" component in
bugzilla.

Also the problemSeed is added to the url sent to bugzilla e.g.

/webwork/shared-courses/gage_course_single_sql/templates/rochesterLibrary/setMAAtutorial/simplemultiplechoiceexample.pg_with_problemSeed=4655

this means that you can't click on the link, but it automatically includes a seed which might be helpful.
It is not guaranteed that this the seed that caused problems -- that depends on how the
bug is submitted -- but it is often the case that this seed caused the problem.

-- Mike

Revision 3778 - Directory Listing
Modified Tue Nov 22 01:42:19 2005 UTC (14 years, 3 months ago) by sh002i
fixed a couple of bugs in the previous commit:
* links() preserves displayMode/showOldAnswers properly (bug #896)
* loginstatus() fixes formatting
* ur.template fixes a typo

Revision 3777 - Directory Listing
Modified Mon Nov 21 21:47:12 2005 UTC (14 years, 3 months ago) by sh002i
reorganization and small changes for recent modifications to links().

split into two parts:
* ur.template classes: These classes appear in ur.template and are NOT
emitted by WeBWorK code. They need only appear in this template.
* WeBWorK classes: These classes are emitted by WeBWorK code and should
appear in ANY WeBWorK template.

moved "minimal list style" to "div.Links ul" and "div.Links ul ul".
div.Links is a ur.template class, and the proper place for styling the
link menu lists is in ur.template. Consequently, any UL in a Links div
gets styled this way, not just ULs of class LinksMenu. (In fact, class
LinksMenu no longer exists.)

Revision 3776 - Directory Listing
Modified Mon Nov 21 21:41:07 2005 UTC (14 years, 3 months ago) by sh002i
changes to links subroutine:
* sublists are now within list items, as required by html spec
* use &makeLinks helper to generate links (makes the code easier to read)
* hilite the "active" link item with a strong tag and the "active" class
* change the way displayMode and showOldAnswers are preserved, and
  preserve them in all the links. (see comments in code)
changes to help subroutine:
* add alt-text for help icon (" ? ") to conform to html spec

As of now, all the code generated by template functions in this file is
XHTML 1.0 Transitional compliant. The same cannot be said for the code
generated by other content generators or PG.

Revision 3775 - Directory Listing
Modified Mon Nov 21 21:24:24 2005 UTC (14 years, 3 months ago) by sh002i
change "die" to "croak" in a couple of places to make error messages
more useful.

Revision 3774 - Directory Listing
Modified Mon Nov 21 21:23:10 2005 UTC (14 years, 3 months ago) by sh002i
don't check "if loggedin" before calling loginstatus. loginstatus now
says "not logged in" when the user is not logged in.

Revision 3773 - Directory Listing
Modified Mon Nov 21 21:20:19 2005 UTC (14 years, 3 months ago) by sh002i
fix doctype, remove duplicate "message" escape.

Revision 3772 - Directory Listing
Modified Mon Nov 21 21:06:32 2005 UTC (14 years, 3 months ago) by sh002i
don't need this any more -- wwsh now uses the perl debugger instead.

Revision 3771 - Directory Listing
Modified Mon Nov 21 21:05:34 2005 UTC (14 years, 3 months ago) by sh002i
use the perl debugger for a shell instead of PSH. this gets us a
readline (or readline-like?) editing environment, which is much nicer to
work with.

Revision 3770 - Directory Listing
Modified Mon Nov 21 17:33:07 2005 UTC (14 years, 3 months ago) by sh002i
utility script to create tarballs of problem libraries.

Revision 3769 - Directory Listing
Modified Mon Nov 21 13:13:35 2005 UTC (14 years, 3 months ago) by dpvc
Fixed a problem with formatStudentAnswer not being defined in the
special context created for this answer checker.

Revision 3768 - Directory Listing
Modified Fri Nov 18 18:30:12 2005 UTC (14 years, 3 months ago) by sh002i
give the style used for the attempt results summary a structural name
(attemptResultsSummary) rather than a sort-of-stylistic name (emphasis).

Revision 3767 - Directory Listing
Modified Fri Nov 18 18:13:25 2005 UTC (14 years, 3 months ago) by sh002i
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.

Revision 3766 - Directory Listing
Modified Fri Nov 18 15:49:31 2005 UTC (14 years, 3 months ago) by apizer
Make notification message more explicit.

Revision 3765 - Directory Listing
Modified Thu Nov 17 22:57:39 2005 UTC (14 years, 3 months ago) by dpvc
Handle the new global.conf setting for jsMath's processDoubleClicks option.

Revision 3764 - Directory Listing
Modified Thu Nov 17 22:56:23 2005 UTC (14 years, 3 months ago) by dpvc
Updated jsMath to version 2.4a.  This fixes a number of alignment
problems.  Most of these are for math in tables, and baseline
alignment issues in MSIE.  A new feature is the ability to
double-click on a mathematical expression on get a small window witht
eh TeX source code for the expression.  This can be disabled by
setting

    $pg{displayModeOptions}{jsMath}{processDoubleClicks} = 0;

in gloabl.conf.

[jsMath v2.4a also includes a number of new features for the tex2math
plugin, but this is not used by WeBWorK, so they will not be listed
here.  See the jsMath home page for more details.]

Revision 3763 - Directory Listing
Modified Thu Nov 17 13:21:43 2005 UTC (14 years, 3 months ago) by dpvc
Give better error messages when the entries in Points, Vectors and
Matrices are not of the right type.

Revision 3762 - Directory Listing
Modified Thu Nov 17 13:20:50 2005 UTC (14 years, 3 months ago) by dpvc
Adjusted the parentheses slightly so that matrices will only be formed
in Matrix context, not Point or Vector context (this produced
confusing messages for students in some circumstances where they didn't
balence their parentheses correctly).

Revision 3761 - Directory Listing
Modified Wed Nov 16 22:04:55 2005 UTC (14 years, 3 months ago) by sh002i
also get rid of fixed height for siblings list :-P

Revision 3760 - Directory Listing
Modified Wed Nov 16 22:03:41 2005 UTC (14 years, 3 months ago) by sh002i
back out of overflow:auto feature since it makes mozilla unhappy
sometimes.

Revision 3759 - Directory Listing
Modified Sat Nov 12 01:31:10 2005 UTC (14 years, 3 months ago) by gage
Roll back my changes.  Use Davide's method of detecting the preview Button

Revision 3758 - Directory Listing
Modified Sat Nov 12 00:58:57 2005 UTC (14 years, 3 months ago) by gage
Check to see if $inputs_ref->{previewAnswers} is defined.  If it is then
the preview button has been pressed.  In this case emit a warning if
the answer has been given previously regardless of whether the answer is
correct or incorrect.  The warning message indicates that the previous
matching answer might have been either a preview or a submitted answer.

Let's see how this works.

Revision 3757 - Directory Listing
Modified Sat Nov 12 00:50:07 2005 UTC (14 years, 3 months ago) by dpvc
Take care of the issue where Preview could be used to gather
information about whether an answer is correct by using the "this
answer is the same as the previous one" message.  Now if Preview is
used, the warning is given whether the answer is right or not.

(Maybe it is not necessary to check for correct at all, since that was
there to prevent the message from being issued when there are multiple
answer blanks and the student is working on other ones.  But the exact
match check will take care of those.  Should the message be issued if
the student changes a correct answer to an equivalent one?)

Revision 3756 - Directory Listing
Modified Sat Nov 12 00:34:33 2005 UTC (14 years, 3 months ago) by dpvc
Updated a comment to make it more accurate.

Revision 3755 - Directory Listing
Modified Sat Nov 12 00:31:22 2005 UTC (14 years, 3 months ago) by dpvc
Make had the right idea, but used the wrong context (or what might be
the wrong context in some circumstances).

Revision 3754 - Directory Listing
Modified Sat Nov 12 00:30:31 2005 UTC (14 years, 3 months ago) by dpvc
Roll back Mike's change, since this can cause unwanted error messages
in list comparisons and other situations where the equality check
could compare different types of objects (for example) or where the
comparison could legitimately fail.  We only want to report errors
here when the user-supplied checker code fails.

This change would cause errors to be reported, for example, when the
user (incorrectly) entered a vector one time and then a formula
(correctly) the next time.  When the previous answer is checked against
the current one, this change would report an error rather than
silently ignoring the error, as it should.

Revision 3753 - Directory Listing
Modified Sat Nov 12 00:13:03 2005 UTC (14 years, 3 months ago) by gage
Changes to code checking whether the previous answer is equivalent to the current answer.
In this module additional code was answer to check for errors in the overloaded ==
in case the two Values can't be compared.

In PGanswermacros.pl the filter which handles "parse_previous_answer"
was modified to make sure the context is the same in the previous answer and the current answer.

Revision 3752 - Directory Listing
Modified Sat Nov 12 00:12:54 2005 UTC (14 years, 3 months ago) by gage
Changes to code checking whether the previous answer is equivalent to the current answer.
In this module additional code was answer to check for errors in the overloaded ==
in case the two Values can't be compared.

In PGanswermacros.pl the filter which handles "parse_previous_answer"
was modified to make sure the context is the same in the previous answer and the current answer.

Revision 3751 - Directory Listing
Modified Thu Nov 10 16:12:07 2005 UTC (14 years, 3 months ago) by gage
Create the [HTML_TMP]/hardcopy directory if it doesn't exist.  This is something of
a hack done in Hardcopy.pm at the moment.  I think this should be moved over
to makeTempDirectory in Utils, but that would require more checking than I can
do right at the moment.

-- Mike

Revision 3750 - Directory Listing
Modified Tue Nov 8 20:47:12 2005 UTC (14 years, 3 months ago) by sh002i
this commit fixes quite possible the stupidest thing i've ever done.
wondering where messages like this

	$GlobalSets[1] (ID Sec9.2ParametricEq) not defined -- skipping
	at /ww/webwork/webwork2/lib/WeBWorK/ContentGenerator/Hardcopy.pm
	line 286.

were coming from?
the answer is:

	$GlobalSets[1] = undef;

which is a line i put in there for testing and never removed. i am very
sorry. :-(

Revision 3749 - Directory Listing
Modified Tue Nov 8 20:24:08 2005 UTC (14 years, 3 months ago) by sh002i
fix error message for undefined global sets to print array index instead
of "$i".

Revision 3748 - Directory Listing
Modified Mon Nov 7 21:30:46 2005 UTC (14 years, 3 months ago) by sh002i
don't override loginstatus/links (they can handle not being logged in
now). also, stop using CGI::Pretty.

Revision 3747 - Directory Listing
Modified Mon Nov 7 21:30:21 2005 UTC (14 years, 3 months ago) by sh002i
don't override loginstatus/links (they can handle not being logged in
now)

Revision 3746 - Directory Listing
Modified Mon Nov 7 21:29:27 2005 UTC (14 years, 3 months ago) by sh002i
clear Authen.pm's verify cache upon logout, don't overload if_loggedin()
or links() anymore.

Revision 3745 - Directory Listing
Modified Mon Nov 7 21:28:17 2005 UTC (14 years, 3 months ago) by sh002i
allow links() and loginstatus() to operate properly even if no user is
logged in. uses new method was_verified() in Authen.pm. also, stop using
CGI::Pretty, for speed and download size.

Revision 3744 - Directory Listing
Modified Mon Nov 7 21:21:01 2005 UTC (14 years, 3 months ago) by sh002i
stop using CGI::Pretty, for speed and output size.

Revision 3743 - Directory Listing
Modified Mon Nov 7 21:18:37 2005 UTC (14 years, 3 months ago) by sh002i
store authenticator in $r.

Revision 3742 - Directory Listing
Modified Mon Nov 7 21:18:13 2005 UTC (14 years, 3 months ago) by sh002i
add slot for WeBWorK::Authen object. we can use it for checking login
status.

Revision 3741 - Directory Listing
Modified Mon Nov 7 21:17:41 2005 UTC (14 years, 3 months ago) by sh002i
add caching of verify() result, reorganize file, add docs.

Revision 3740 - Directory Listing
Modified Mon Nov 7 21:16:42 2005 UTC (14 years, 3 months ago) by sh002i
updated "test" template for debugging. all current template escapes are
now represented, and their output is surrounded by visible DIVs. much
more useful now. ;)

Revision 3739 - Directory Listing
Modified Mon Nov 7 21:15:20 2005 UTC (14 years, 3 months ago) by sh002i
slight tweak to stylesheet to correct placement of loginstatus message
regardless of whether it uses a <DIV> or a <SPAN>.

Revision 3738 - Directory Listing
Modified Thu Nov 3 04:18:21 2005 UTC (14 years, 3 months ago) by sh002i
fixed code to filter out undefined sets, improved error reporting when
that happens.

Revision 3737 - Directory Listing
Modified Wed Nov 2 18:58:15 2005 UTC (14 years, 3 months ago) by sh002i
removed unmaintained templates

Revision 3736 - Directory Listing
Modified Tue Nov 1 01:51:32 2005 UTC (14 years, 3 months ago) by gage
Added rudimentary link to report problems directly.  It does this by constructing a link
to the bugzilla CGI that includes information on the file name of the problem and the library
in which the problem is stored.  This is probably still pretty fragile.  A separate
module could be constructed to more intelligently report bugs.

-- Mike

Revision 3735 - Directory Listing
Modified Mon Oct 31 21:19:40 2005 UTC (14 years, 3 months ago) by apizer
Create an anonymous unique identifier for
questionnaires in WW 2 by using
$setNumber$courseName$psvnNumber in place of
$psvnNumber.

Revision 3734 - Directory Listing
Modified Wed Oct 26 16:46:04 2005 UTC (14 years, 3 months ago) by sh002i
cleaned up error reporting for status methods. if arguments are not
defined and non-empty, a warning is given (using "carp") and an
undefined value is returned.

Revision 3733 - Directory Listing
Modified Wed Oct 26 16:40:32 2005 UTC (14 years, 3 months ago) by sh002i
possible fix for problem when status_abbrev_has_behavior is used with an
abbrev that doesn't map to any status.

Revision 3732 - Directory Listing
Modified Wed Oct 26 16:31:33 2005 UTC (14 years, 3 months ago) by sh002i
more debugging

Revision 3731 - Directory Listing
Modified Wed Oct 26 16:24:35 2005 UTC (14 years, 3 months ago) by sh002i
typos...whoops...

Revision 3730 - Directory Listing
Modified Wed Oct 26 16:24:00 2005 UTC (14 years, 3 months ago) by sh002i
made code for filtering guest users a little more clear.

Revision 3729 - Directory Listing
Modified Wed Oct 26 16:21:54 2005 UTC (14 years, 3 months ago) by sh002i
changed erorrs to warnings for the time being.

Revision 3728 - Directory Listing
Modified Wed Oct 26 16:18:35 2005 UTC (14 years, 3 months ago) by sh002i
only check status behaviors for guest users that have a defined status.
apparently, status can still sometimes be empty.

Revision 3727 - Directory Listing
Modified Wed Oct 26 15:51:15 2005 UTC (14 years, 3 months ago) by sh002i
added error checking to ensure that arguments to status lookup methods
are defined.

Revision 3726 - Directory Listing
Modified Tue Oct 25 20:34:19 2005 UTC (14 years, 3 months ago) by gage
Fixed bug #870 so that setHeaders can be viewed and edited.

Revision 3725 - Directory Listing
Modified Sat Oct 22 04:30:03 2005 UTC (14 years, 4 months ago) by dpvc
Updated to jsMath v2.3b.  See the jsMath website for the change log
for this version.

Revision 3724 - Directory Listing
Modified Thu Oct 20 19:40:43 2005 UTC (14 years, 4 months ago) by gage
Fixed an error where files of type 'source_path_for_problem_file' were
not redirected in the save_handler

Revision 3723 - Directory Listing
Modified Thu Oct 20 00:57:19 2005 UTC (14 years, 4 months ago) by dpvc
A new parser object that handles popup menus.  Mainly this is so that
you can use them with the MultiPart object, which requires all the
objects to be Value objects.  See the comments in the file for
documentation and examples.

Revision 3722 - Directory Listing
Modified Wed Oct 19 01:49:17 2005 UTC (14 years, 4 months ago) by gage
Corrected misspelling

Revision 3721 - Directory Listing
Modified Mon Oct 17 17:36:29 2005 UTC (14 years, 4 months ago) by sh002i
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 3720 - Directory Listing
Modified Mon Oct 17 14:01:00 2005 UTC (14 years, 4 months ago) by gage
Changed wording on link.

Revision 3719 - Directory Listing
Modified Mon Oct 17 13:58:07 2005 UTC (14 years, 4 months ago) by gage
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 3718 - Directory Listing
Modified Mon Oct 17 03:42:42 2005 UTC (14 years, 4 months ago) by gage
Refactored much of the action in PGProblemEditor.pm  This allows a user inteface
which mimics the interface for the Hmwk sets editor and for the Classlist editor.

It also allows all of the temporary edit files to be placed in one location.
This allows one to "temporarily" edit a library file to try to see what is wrong with it.

It is also now much easier to make a local copy of a library file for your current problem set
so that you can tweak it.

It has been fairly well tested by one person (me) but there may still be bugs.

-- Mike

Revision 3717 - Directory Listing
Modified Mon Oct 17 03:37:36 2005 UTC (14 years, 4 months ago) by gage
Added support for a directory for temporary edit files  default:  templates/tmpEdit

Revision 3716 - Directory Listing
Modified Sun Oct 16 03:37:17 2005 UTC (14 years, 4 months ago) by dpvc
In the past, when Value objects were inserted into strings, they would
automatically include parentheses so that if you had $f equal to 1+x
and $g equal to 1-x, then Formula("$f/$g") would mean (1+x)/(1-x)
rather than 1+(x/1)-x, which is what would happen as a straing string
substitution.

The problem is that this would also happen for real numbers, vectors,
and everything else, even when it wasn't necessary.  So if $x=Real(3),
then "Let x = $x" would be "Let x = (3)".

I have changed the behavior of the string concatenation for Value
objects so that parentheses are only added in a few cases: for
Formulas, Complex numbers, and Unions.  This makes the other Value
objects work more like regular variables in strings, but might cause
some problems with strings that are used as formulas.  For example, if
$a = Real(-3), then "x + 2 $a" will become "x + 2 -3", or "x-1" rather
than the expected "x - 6".  (The old approach would have made it "x +
2 (-3)" which would have worked properly).  For the most part, it is
easier to use something like "x + 2*$a" or even "x" + 2*$a in this
case, so the extra trouble of having to avoid parentheses when you
really meant to substitute the value into a string didn't seem worth
it.

Revision 3715 - Directory Listing
Modified Sun Oct 16 03:27:35 2005 UTC (14 years, 4 months ago) by dpvc
Added a new experimental diagonstic function for the function answer
checker.  When enabled, it will produce graphs of the correct answer,
the student answer, and the absolute and relative errors, and will
list the data points used in the comparison, plus the numerical values
of the results and errors.

To enable the diagnostic, use

   ANS(fun_cmp($f,diagnostics=>1));

Note that only single-variable functions can be graphed at the moment,
so if you are using a multi-variable check, you need to disable the
graphing.  To do this use

   ANS(fun_cmp($f,vars=>['x','y'],diagnostics=>[showGraphs=>0]));

The diagnostic mode is only available for the Parser-based versions of
the function checker, and (of course) with the native Parser objects
as well:

   ANS(Formula($f)->cmp(diagnostics=>1));

There are now Context settings to control the diagnostics, which can
be set through Context()->diagnostics->set().  For example

   Context()->diagnostics->set(formulas=>{showGraphs=>0});

would turn off graphs for all functions comparisons.  Some of the
other values you can set are:

   formulas => {
     showTestPoints => 1,        # show the test points and function values
     showRelativeErrors => 1,    # show the relative errors for the student answer
     showAbsoluteErrors => 1,    # show the absolute errors for the student answer
     showGraphs => 1,            # show the various graphs
     graphRelativeErrors => 1,   #  show the relative error graph
     graphAbsoluteErrors => 1,   #  show the absolute error graph
     clipRelativeError => 5,     #  don't show relative errors above 5
     clipAbsoluteError => 5,     #  don't show absolute errors above 5
     plotTestPoints => 1,        #  include dots at the test points
     combineGraphs => 1,         #  show correct and student graphs in one image
   },
   graphs => {
     divisions => 75,       # the number of data points to plot
     limits => [-2,2],      # the lower and upper limit of the plot
                            #  (taken from the function limits if not provided)
     size => 250,           # pixel size of the image (could be [width,height])
     grid => [10,10],       # number of grid lines in each direction
     axes => [0,0],         # where to put axes relative to origin
   }

Any of these can be set in the Context(), or in the answer checker
itself.  If you set diagnostics to an array reference, the entries in
the array refer to element of the formulas hash.  If you set
diagonstics to a hash reference, then you can set values in either the
formulas or graphs hashes, as in:

   ANS(Formula($f)->cmp(diagnostics=>{
     formulas => {showAbsoluteErrors=>0},
     graphs => {size=>300, divisions=>100},
   }));

If you want all function checkers to show diagnostics, use

   Context()->diagonstics->set(formulas=>{show=>1});

The image file names are modified to include the current time so that
the names will be unique.  This avoids problems with the browser cache
showing a old image when a new one has been generated.  But this also
means that the temporary image directory will fill up fast, so you may
need to empty it if you use the diagnostic images frequently.

This is just a first attempt at a diagnostic feature.  I think it will
help when you are not sure if the tolerances are set properly, or if
you think a student answer should be markes correct but isn't, as it
will point out which point(s) are not being accepted.

Revision 3714 - Directory Listing
Modified Sun Oct 16 02:44:34 2005 UTC (14 years, 4 months ago) by dpvc
Modified context data objects to provide a copy method so that the
various types of data can copy themselves (and can provide a more
comprehensive copy if necessary).

Revision 3713 - Directory Listing
Modified Fri Oct 14 23:33:58 2005 UTC (14 years, 4 months ago) by dpvc
Let Parser object's cmp(debug=>1) option set the debug feature of the
answer evaluator.

Revision 3712 - Directory Listing
Modified Fri Oct 14 21:19:59 2005 UTC (14 years, 4 months ago) by sh002i
added "height: 10em; overflow: auto;" for div.Siblings fixing bug #581.

Revision 3711 - Directory Listing
Modified Fri Oct 14 19:10:04 2005 UTC (14 years, 4 months ago) by sh002i
show first pdflatex error (bug #850), HTML escaping.

- generate_hardcopy_pdf() now reports the first error encountered in
  hardcopy.log in the list of errors.
- variables substituted into errors strings are now displayed inside
  <code>..</code> tags, and their values are escpaed with CGI/pm's
  escapeHTML() function.

Revision 3710 - Directory Listing
Modified Tue Oct 11 22:44:49 2005 UTC (14 years, 4 months ago) by sh002i
eliminate undefined value usage in unformatDateTime, fixing bug #826.
also factored out error reporting into unformatDateTime_error and
improved formatting slightly.

Revision 3709 - Directory Listing
Modified Tue Oct 11 22:06:34 2005 UTC (14 years, 4 months ago) by sh002i
added sorting of set definition files, fixing bug #809.
also added no_chdir=>1 flag to File::Find::find and modified
$get_set_defs_wanted accordingly.

Revision 3708 - Directory Listing
Modified Tue Oct 11 21:13:26 2005 UTC (14 years, 4 months ago) by sh002i
added check to ensure that permission level is numeric, fixing bug #822.

Revision 3707 - Directory Listing
Modified Tue Oct 11 21:04:08 2005 UTC (14 years, 4 months ago) by sh002i
added $default_permission_level

Revision 3706 - Directory Listing
Modified Tue Oct 11 20:45:36 2005 UTC (14 years, 4 months ago) by sh002i
don't show "act as" link unless the user is actually allowed to.

Revision 3705 - Directory Listing
Modified Tue Oct 11 20:44:59 2005 UTC (14 years, 4 months ago) by sh002i
stop redirecting to Login when user is not allowed to "act as". Instead,
throw an exception.

Revision 3704 - Directory Listing
Modified Tue Oct 11 17:59:30 2005 UTC (14 years, 4 months ago) by jj
Added syntactic sugar for pop_up_lists.

A common situation is that a problem includes a short multiple-choice question along with other answers.  Often, these questions are written as fill-in-the-blank where the student is told a list of legal words to put in the blanks.  The idea is to make it as simple as possible for problem writers to replace the fill-in-the-blank with a drop-down list of alternatives.

So, now the text of a problem can contain

 is the function increasing on [0,1]? \{ pop_up_list(['?', 'yes', 'no']) \}

instead of

 is the function increasing on [0,1]? \{ pop_up_list('?' => '?', 'yes' => 'yes', 'no' => 'no') \}

The result is checked with something like

 ANS(str_cmp('yes'));

Existing problems are unaffected since the added syntax uses a reference to a list (the extra square brackets).

Revision 3703 - Directory Listing
Modified Mon Oct 10 23:47:26 2005 UTC (14 years, 4 months ago) by dpvc
Add a new context flag that controls how the student answer should be
displayed.  The formatStudentAnswer flag can be set to 'evaluated'
(the default), which shows the final numeric answer; 'parsed', which
shows the fully parsed version (including extra parentheses for
clarity); or 'reduced', which performs constant operations, but
doesn't perform function evaluations or named-constant substitutions.

For example, if the student answers 1+2+sqrt(3), then 'evaluated' will
produce  4.73205, 'reduced' will show 3+sqrt(3), and 'parsed' will
show 1+2+sqrt(3).

Revision 3702 - Directory Listing
Modified Mon Oct 10 23:41:05 2005 UTC (14 years, 4 months ago) by dpvc
If constant functions are not being reduced, don't mark the function
call as constant (since otherwise it might be evaluated later accidentally).

Revision 3701 - Directory Listing
Modified Mon Oct 10 22:36:54 2005 UTC (14 years, 4 months ago) by sh002i
putting site_info back in htdocs. see bug #832.

Revision 3700 - Directory Listing
Modified Mon Oct 10 22:34:18 2005 UTC (14 years, 4 months ago) by sh002i
make sure there are answer blanks before printing \begin{itemize}. fixes
bug #859.

Revision 3699 - Directory Listing
Modified Mon Oct 10 22:18:01 2005 UTC (14 years, 4 months ago) by sh002i
added full_name and rfc822_mailbox methods for convenience.

Revision 3698 - Directory Listing
Modified Mon Oct 10 22:17:27 2005 UTC (14 years, 4 months ago) by sh002i
added names to From: and To: email addresses, if users have names
defined. noted in global.conf.dist that feedbackRecipients can include
user names.

Revision 3697 - Directory Listing
Modified Mon Oct 10 22:02:22 2005 UTC (14 years, 4 months ago) by sh002i
fix for bug #832 -- default site_info.txt is blank and in correct place.

Revision 3696 - Directory Listing
Modified Mon Oct 10 12:37:13 2005 UTC (14 years, 4 months ago) by dpvc
Fixed a bug where correct_ans could not be overridden in the cmp()
method for Lists.

Revision 3695 - Directory Listing
Modified Sat Oct 8 22:20:49 2005 UTC (14 years, 4 months ago) by sh002i
fix for bug 815 "Emphasize set name on the Assign users to Set page (set
detail page)"

Revision 3694 - Directory Listing
Modified Sat Oct 8 22:13:26 2005 UTC (14 years, 4 months ago) by sh002i
added check for $total==0 to eliminate potential DIV error (bug #855)

Revision 3693 - Directory Listing
Modified Sat Oct 8 22:07:39 2005 UTC (14 years, 4 months ago) by sh002i
disallow login of "dropped" practice users (bug #387). also don't show
Guest Login button if there are no "dropped" practice users.

Revision 3692 - Directory Listing
Modified Sat Oct 8 22:02:39 2005 UTC (14 years, 4 months ago) by sh002i
fixed typo.

Revision 3691 - Directory Listing
Modified Sat Oct 8 21:56:46 2005 UTC (14 years, 4 months ago) by sh002i
added "include_in_email" behavior to Enrolled and Audit statuses.

Revision 3690 - Directory Listing
Modified Sat Oct 8 21:55:41 2005 UTC (14 years, 4 months ago) by sh002i
modify usage of user status to take advantage of new status system. the
most extensive change is in UserList, where the names of statuses are
now shown in the status column along with the abbreviation that's
actually set in the database, and the edit popup shows the actual names
that are defined in global.conf.

Revision 3689 - Directory Listing
Modified Fri Oct 7 02:38:41 2005 UTC (14 years, 4 months ago) by dpvc
Corrected a problem with contexts not being reset properly after
num_cmp or fun_cmp.

Revision 3688 - Directory Listing
Modified Wed Oct 5 18:16:52 2005 UTC (14 years, 4 months ago) by sh002i
Implemented status system as per bug #743.

The status system consists of a new hash in the course environment,
%statuses, that maps status names (like "Enrolled", "Drop", "Audit") to
(a) a list of allowed abbreviations for the status and (b) a list of
behaviors the system should have when dealing with users who have the
status.

I didn't want to have to mangle that hash-of-hashes-of-arrays myself in
many modules, but I also didn't want to devote an entire module
(Status.pm) to it. So, I'm trying a little experiment: I've added them
as methods to WeBWorK::CourseEnvironment. My thinkint is that since all
the data for these operations comes from the course environment, so why
not have them be course environment methods? Here they are:

    status_abbrev_to_name($status_abbrev)
        Given the abbreviation for a status, return the name. Returns undef
        if the abbreviation is not found.

    status_name_to_abbrevs($status_name)
        Returns the list of abbreviations for a given status. Returns an
        empty list if the status is not found.

    status_has_behavior($status_name, $behavior)
        Return true if $status_name lists $behavior.

    status_abbrev_has_behavior($status_abbrev, $behavior)
        Return true if the status abbreviated by $status_abbrev lists
        $behavior.

Since I removed the previous $siteDefaults{status} hash from
global.conf, I have already switched modules that formerly used that
hash over to using the new methods:

Authen.pm: use status_abbrev_has_behavior($status, "allow_course_access")
to determine if a user should be allowed to log in.

Feedback.pm: look up status abbreviation using status_abbrev_to_name()
and print the result for the status field in the email.

Instructor.pm: use status_abbrev_has_behavior($status, "include_in_assignment")
to determine if a user should be included in an assignment.

UserList.pm and UsersAssignedToSet.pm: use status_abbrev_to_name() to
get name of CSS class.

Revision 3687 - Directory Listing
Modified Mon Oct 3 04:45:37 2005 UTC (14 years, 4 months ago) by jj
Added e-mail feedback verbosity to config area.

Revision 3686 - Directory Listing
Modified Mon Oct 3 04:32:08 2005 UTC (14 years, 4 months ago) by jj
Added email subject line to config variable.

Revision 3685 - Directory Listing
Modified Mon Oct 3 04:29:56 2005 UTC (14 years, 4 months ago) by jj
Allow basic types to specify the width of their input fields, and changed the handling of the long doc strings.  The long string is no longer sent as a parameter where it might be truncated.

Revision 3684 - Directory Listing
Modified Mon Oct 3 00:52:02 2005 UTC (14 years, 4 months ago) by jj
Made a little more html use CGI::* methods.

Revision 3683 - Directory Listing
Modified Sun Oct 2 20:40:30 2005 UTC (14 years, 4 months ago) by jj
Added some todo items, and fixed minor bug with the minimum number of
displayModes (it was supposed to be a variable).

Revision 3682 - Directory Listing
Modified Sun Oct 2 19:51:45 2005 UTC (14 years, 4 months ago) by jj
New Config module.  It will put its course settings in a file simple.conf
along side course.conf.  Changes are:

  URLPath.pm: wiring so the Config module can be called

  ContentGenerator.pm: link in left panel to Config module

  CourseEnvironment.pm: evaluate simple.conf.  File name can be specified
    when creating a new CourseEnvironment.  This allows it to be bypassed
    (which is currently used), or to test a simple settings file (not
    used now, but it might be useful).

  Constants.pm: all data about configuration is stored here.  New values
    can just be added here, unless they are a new type.

  Config.pm: new module for limited course configuration.

Note, it might be better to move the new variable in Constants.pm to
another file.  Committing changes to Constants.pm can be an extra
hassle since it contains some site specific configuration.

Revision 3681 - Directory Listing
Modified Sun Oct 2 19:44:44 2005 UTC (14 years, 4 months ago) by jj
Add location/name of simple configuration file.  It is written by the Config module.

Revision 3680 - Directory Listing
Modified Sun Oct 2 12:13:16 2005 UTC (14 years, 4 months ago) by dpvc
Removed unneeded "my" for a varaible that is already local.

Revision 3679 - Directory Listing
Modified Sat Oct 1 01:17:24 2005 UTC (14 years, 4 months ago) by dpvc
Major update to allow ImplicitPlane objects to be created
automatically by the Parser when it sees equal signs.  This makes it
possible to use ImplicitPlanes in Lists.  (Before, when the List was
turned into a Formula returning a List, the equality became a plane
old equality rather than an ImplicitPlane object.)

This is a bit of a hack for now until I can make List and other Value
objects be allowed to have Formulas as their entries rather than turn
into Formulas returning Lists (or whatever type).

Revision 3678 - Directory Listing
Modified Sat Oct 1 01:13:27 2005 UTC (14 years, 4 months ago) by dpvc
Handle the names of entries in Lists and Formulas returning lists
better.  Also do better typechecking on these lists.  Finally, allow
better typechecking for String objects that are being used when a
Formula answer is allowed.

Revision 3677 - Directory Listing
Modified Sat Oct 1 01:10:27 2005 UTC (14 years, 4 months ago) by dpvc
Allow context to override object class used to create formula objects
(so that things like ImplicitPlane can create instances of themselves
automatically when needed).

This mechanism needs to be enlarged to encompass the other Value
object classes as well (like the Context()->{parser}{...} hash).

The real problem is that the List object probably shouldn't create a
formula returning a list when it is passed formulas, since there
really isn't much need for a formula returning a list to be
autogenerated (you can create one by hand using Formula if needed).

Right now, ALL the Value objects make themselves into Formulas when
one of their entries is a formula.  For example, Point(1,"x") produces
the same thing as Formula("(1,x)"), and List(1,"x") is the same as
Formula("1,x").  This is good for points, but not so good for lists.
And it might sometimes be nice to have a Vector of Formulas, or a
Matrix with Formula entries (rather than Formulas returning Vectors or
Matrices).  But this would require some serious changes internally in
the Value objects, which make assumptions about their values being
constant.  Changing that will be for another day...

Revision 3676 - Directory Listing
Modified Sat Oct 1 00:59:06 2005 UTC (14 years, 4 months ago) by dpvc
Correctly create Formula returning List when a list has formula
entries.

Revision 3675 - Directory Listing
Modified Fri Sep 30 19:36:57 2005 UTC (14 years, 4 months ago) by sh002i
added manage_course_files activity. changed FileManger to use new
activity. added hasPermissions() checks to Index and Contentgenerator to
only show File Manger when user has permission.

Revision 3674 - Directory Listing
Modified Fri Sep 30 19:32:17 2005 UTC (14 years, 4 months ago) by sh002i
fix error reporting for include() function.

Revision 3673 - Directory Listing
Modified Fri Sep 30 19:31:35 2005 UTC (14 years, 4 months ago) by sh002i
give user an error message if they can't act as another user.
see bug #846.

Revision 3672 - Directory Listing
Modified Fri Sep 30 19:16:52 2005 UTC (14 years, 4 months ago) by sh002i
modifications to support changes to global.conf.dist adding %userRoles
hash and changing the meaning of values in %permissionLevels.

Authz will now look up the role obtained from %permissionLevels in the
%userRoles hash, and compare the resulting number with the user's
permission level.

Revision 3671 - Directory Listing
Modified Fri Sep 30 19:15:26 2005 UTC (14 years, 4 months ago) by sh002i
implemented named roles for permissions system. %userRoles maps role
names to numeric permission levels, and %permissionLevels now maps
activities* to role names. A slight change to Authz.pm accompanies this
change to do the role-to-permission-level lookups.

* a.k.a. operations, privilegespermissions, gotta get the terminology
straight. think of the users!

%userRoles should be used by modules such as UserList for providing more
intelligent editing of the permission_level field. Another possible use
would be to for pretty-printing user types -- a user could be called a
student, ta, professor, etc. based on what role corresponded to their
permission_level.

Revision 3670 - Directory Listing
Modified Thu Sep 29 22:08:43 2005 UTC (14 years, 4 months ago) by dpvc
Only add the 'dx' variable if it isn't already in the context.

Revision 3669 - Directory Listing
Modified Thu Sep 29 22:02:07 2005 UTC (14 years, 4 months ago) by dpvc
Fixed a problem with the automatic upgrading of object classes for
when Value objects are subclassed but are not entered into the
precedence list.

Revision 3668 - Directory Listing
Modified Thu Sep 29 17:41:09 2005 UTC (14 years, 4 months ago) by apizer
Improve the label on submit button in single user mode.

Revision 3667 - Directory Listing
Modified Thu Sep 29 01:57:56 2005 UTC (14 years, 4 months ago) by gage
Allow making a local copy of a library problem with a single button push.

The user interface is still cluttered.  I think I'll rewrite the bottom button rows
using radio buttons and a 'Take action' submit button as on the Classlist and Homework set editor
pages.

Revision 3666 - Directory Listing
Modified Thu Sep 29 01:25:20 2005 UTC (14 years, 4 months ago) by gage
Simplified the interface for users (who can only download one set at a time and can only download one user).
It could be made slightly more general -- it currently implicitly assumes that either one can edit both
multiple sets and multiple users or one can edit only a single user and a single set.

Removed an error in the [edit] link when there is an error.  The anchor HTML tags were wrapped two layers deep
around the reference.

Can probably still use some more tweaks in the interface.

-- Mike

Revision 3665 - Directory Listing
Modified Wed Sep 28 23:26:06 2005 UTC (14 years, 4 months ago) by gage
Changed the wording of the initial course.conf file.

Revision 3664 - Directory Listing
Modified Wed Sep 28 23:24:15 2005 UTC (14 years, 4 months ago) by gage
Formatting change for readability

Revision 3663 - Directory Listing
Modified Wed Sep 28 21:46:26 2005 UTC (14 years, 4 months ago) by sh002i
fixed problem with `!' in set IDs, improved error reporting.

the `!' poblem was caused by passing UserSets to ScrollingRecordList
instead of passing GlobalSets. UserSets have a two-part key (user ID and
set ID), and ScrollingRecordList concatenates them with a `!' to create
the value names. This is a desireable behavior, but not one that I
remembered. Whoops.

Revision 3662 - Directory Listing
Modified Wed Sep 28 20:40:20 2005 UTC (14 years, 4 months ago) by dpvc
Fixed a bug where if you specified a variable other than dx, the
division by zero check didn't work properly.

Revision 3661 - Directory Listing
Modified Wed Sep 28 11:11:29 2005 UTC (14 years, 4 months ago) by dpvc
Fixed typo in comments.

Revision 3660 - Directory Listing
Modified Wed Sep 28 01:07:59 2005 UTC (14 years, 4 months ago) by apizer
Make email addresses active on the classlist page just as they are on
the student progress page.

Revision 3659 - Directory Listing
Modified Tue Sep 27 23:32:41 2005 UTC (14 years, 4 months ago) by sh002i
set a default value for hardcopy_format if it's not given.

Revision 3658 - Directory Listing
Modified Tue Sep 27 21:46:50 2005 UTC (14 years, 4 months ago) by sh002i
pointless confusion, while humorous, is not good for maintainability.

Revision 3657 - Directory Listing
Modified Tue Sep 27 21:44:01 2005 UTC (14 years, 4 months ago) by sh002i
formatting

Revision 3656 - Directory Listing
Modified Tue Sep 27 03:58:06 2005 UTC (14 years, 4 months ago) by sh002i
percent sign snuck in there oops

Revision 3655 - Directory Listing
Modified Mon Sep 26 04:11:25 2005 UTC (14 years, 4 months ago) by gage
Changed the numerical values of lbf to make it more accurate (assuming that lbf is an abbreviation for ft-lbs which I doubt).

Also replaced the conversion factor for pounds with a more accurate figure.

Revision 3654 - Directory Listing
Modified Sat Sep 24 02:38:19 2005 UTC (14 years, 5 months ago) by dpvc
Updated to be able to handle empty anwswer blanks.  There is a new
parameter for the MultiPart object (allowBlankAnswers) that controls
whether the checker routine will be called even when there are blank
entries (normally, the checker is not called unless all the entries
are non-blank).  Use

  $mp = MultiPart(1,2)->with(checkTypes=>0,allowBlankAnswers=>0);

to have the checker routine called when answers are left blank.

You can now also include blank answers in the list itself:

  $mp = MultiPart(1,2,"");

(there is no need to include allowBlankAnswers in this case, because
the blank string will take care of itself.

Revision 3653 - Directory Listing
Modified Sat Sep 24 00:51:58 2005 UTC (14 years, 5 months ago) by dpvc
Prevent empty answers that are marked as correct from being counted as
unanswered blanks.  This avoids the "all the above are correct/at
least one of the above are NOT correct" problem, and suppresses the "n
questions remain unanswered" message when the empty questions are
counted as correct.

Revision 3652 - Directory Listing
Modified Sat Sep 24 00:47:30 2005 UTC (14 years, 5 months ago) by dpvc
Added ability to have answers that are empty strings.  String("") now
will produce a valid string object regardless of the Context's defined
string values.  (You can prevent this using

       Context()->flags->set(allowEmptyStrings=>0);

if you wish).  String("")->cmp will produce an answer checker for an
empty string (it removes the blank checker that WW installs).

Revision 3651 - Directory Listing
Modified Fri Sep 23 23:31:15 2005 UTC (14 years, 5 months ago) by sh002i
added download_hardcopy_format_pdf permission, set to $guest. This
allows professors to turn off hardcopy altogether by setting all the
download_hardcopy_format_* permissions to undef. Also change the default
permisisonLevel for $guest to -5, to match the permissionLevels for the
practiceUsers in defaultClasslist.lst. (It was supposed to be -5 all
along.)

Revision 3650 - Directory Listing
Modified Fri Sep 23 23:27:03 2005 UTC (14 years, 5 months ago) by sh002i
Use new hardcopy param names.

Revision 3649 - Directory Listing
Modified Fri Sep 23 23:26:35 2005 UTC (14 years, 5 months ago) by sh002i
Extensive refactor/rewrite.

There are probably going to be bugs here that we squished in the old
version of Hardcopy, but it seems to be pretty robust after an evening
of testing. Alert me if you see problems.

Features:

* standard ScrollingRecordLists are used for user and set selection.
* TeX source is written incrementally instead of being accumulated in
  memory.
* arguments to shell commands are now quoted using String::ShellQuote
* modular design allows adding additional formats easily (i.e. dvi, ps)
* error reporting code is simplified.
* if errors/warnings occur, user will see them on screen instead of
  getting the hardcopy file.
* on the error screen, user can click to get (possibly broken) hardcopy
  if it exists.
* on the error screen, user can click to get interesting temporary
  files. (for PDF format these are hardcopy.{tex,log,aux} and
  pdflatex.std{out,err}.)
* on the error screen, if an error concerns a particular problem, an
  "edit problem" link is included.
* probably more stuff i'm forgetting

Revision 3648 - Directory Listing
Modified Thu Sep 22 18:58:12 2005 UTC (14 years, 5 months ago) by sh002i
changed label for context URL to "Click this link to see the page from
which the user sent feedback".

Revision 3647 - Directory Listing
Modified Thu Sep 22 18:45:40 2005 UTC (14 years, 5 months ago) by sh002i
restrict dates to < 10 years in the future -- see bug #829.

Revision 3646 - Directory Listing
Modified Thu Sep 22 18:06:52 2005 UTC (14 years, 5 months ago) by sh002i
since the subject line can be changed now, email filters would be wise
to rely on something more static. i've added X-WeBWorK-* headers to
accomodate this:

  X-WeBWorK-Module
  X-WeBWorK-Course
  X-WeBWorK-User
  X-WeBWorK-Section
  X-WeBWorK-Recitation
  X-WeBWorK-Set
  X-WeBWorK-Problem

Revision 3645 - Directory Listing
Modified Thu Sep 22 17:48:38 2005 UTC (14 years, 5 months ago) by sh002i
implement customizable feedback subject line. The following escape
sequences are recognized:

  %c = course ID
  %u = user ID
  %s = set ID
  %p = problem ID
  %x = section
  %r = recitation
  %% = literal percent sign

Revision 3644 - Directory Listing
Modified Thu Sep 22 14:11:33 2005 UTC (14 years, 5 months ago) by apizer
Add section and recitation to feedback subject line as per Gavin's
suggestion.

Revision 3643 - Directory Listing
Modified Wed Sep 21 20:26:29 2005 UTC (14 years, 5 months ago) by apizer
fixed small typo

Revision 3642 - Directory Listing
Modified Wed Sep 21 18:25:52 2005 UTC (14 years, 5 months ago) by sh002i
added "use WeBWorK::Debug" to allow debug() statements to work.

Revision 3641 - Directory Listing
Modified Tue Sep 20 23:42:22 2005 UTC (14 years, 5 months ago) by dpvc
Fixed a problem with reporting the directories where files with given
types should be uploaded.

Revision 3640 - Directory Listing
Modified Mon Sep 19 17:11:26 2005 UTC (14 years, 5 months ago) by jj
Fix bug 819.  This adds a method to DB for getting all merged problems
for a (student,set) combination so that the problem value can be
correct.  See bug 819 for additional comments on how this affects
scoring when an individual student is given an override value for
"weight".

Revision 3639 - Directory Listing
Modified Mon Sep 19 16:25:41 2005 UTC (14 years, 5 months ago) by sh002i
added nice custom formatting routines for user/set/problem data:

  * uses "yes" and "no" for true/false values
  * formats dates
  * uses "unlimited" for -1 max_attempts
  * uses pretty names for the status
  * decodes the answer string
  * lines up output

Revision 3638 - Directory Listing
Modified Mon Sep 19 00:58:35 2005 UTC (14 years, 5 months ago) by dpvc
Fixed bug where str_cmp("0") was changing the correct answer to "",
making it impossible to get correct.

Revision 3637 - Directory Listing
Modified Mon Sep 19 00:16:24 2005 UTC (14 years, 5 months ago) by dpvc
Prevent the empty list from having open and close be set to 'start'
(a value used internally).

Revision 3636 - Directory Listing
Modified Sat Sep 17 20:14:02 2005 UTC (14 years, 5 months ago) by gage
Expanded information in error messages.

Revision 3635 - Directory Listing
Modified Sat Sep 17 20:12:01 2005 UTC (14 years, 5 months ago) by gage
Added \usepackage{epstopdf}  on the suggestion of Frank Wolfs to the TeX header.

This allows the CAPA files to print pictures with pdflatex even though they
use .eps figures.

Revision 3634 - Directory Listing
Modified Sat Sep 17 16:32:43 2005 UTC (14 years, 5 months ago) by jj
Use underscore2nbsp from higher up module.  Hopefully this fixes bug
841.

Revision 3633 - Directory Listing
Modified Sat Sep 17 13:22:52 2005 UTC (14 years, 5 months ago) by dpvc
Don't allow wrapping in label for ans_array errors.

Revision 3632 - Directory Listing
Modified Sat Sep 17 13:22:19 2005 UTC (14 years, 5 months ago) by dpvc
Improved layout and labeling of error messages.

Revision 3631 - Directory Listing
Modified Sat Sep 17 13:02:24 2005 UTC (14 years, 5 months ago) by dpvc
The Parser answer checkers used to give the student answer as the
parsed but unevaluated answer.  This has been changed so that the
student answer is now the computed result, no the parsed answer.
The answer preview still shows the parsed equation.  This is more
consistent with the traditional answer checkers, and probably is more
valuable to the students.

Revision 3630 - Directory Listing
Modified Sat Sep 17 12:39:09 2005 UTC (14 years, 5 months ago) by dpvc
Better error messages for unreduced unions.

Revision 3629 - Directory Listing
Modified Sat Sep 17 12:25:38 2005 UTC (14 years, 5 months ago) by dpvc
Improved error message layout and labeling for when ans_array is used.

Revision 3628 - Directory Listing
Modified Sat Sep 17 12:22:25 2005 UTC (14 years, 5 months ago) by dpvc
Improved error messages for formulas returning infinity

Revision 3627 - Directory Listing
Modified Fri Sep 16 19:08:17 2005 UTC (14 years, 5 months ago) by sh002i
feedback is now sent to users with receive_feedback permission
regardless of the contents of the feedbackRecipients list in
global.conf. Comments in global.conf now read:

  By default, feeback is sent to all users who have permission to
  receive_feedback. If this list is non-empty, feedback is also sent to
  the addresses specified here.

  * If you want to disable feedback altogether, leave this empty and set
    submit_feeback => $nobody in %permissionLevels below. This will
    cause the feedback button to go away as well.

  * If you want to send email ONLY to addresses in this list, set
    receive_feedback => $nodoy in %permissionLevels below.

  It's often useful to set this in the course.conf to change the
  behavior of feedback for a specific course.

Revision 3626 - Directory Listing
Modified Fri Sep 16 18:50:50 2005 UTC (14 years, 5 months ago) by sh002i
use new feedbackMacro(), put "edit this problem" inside the problem DIV.

Revision 3625 - Directory Listing
Modified Fri Sep 16 18:50:17 2005 UTC (14 years, 5 months ago) by sh002i
use new feedbackMacro()

Revision 3624 - Directory Listing
Modified Fri Sep 16 18:49:08 2005 UTC (14 years, 5 months ago) by sh002i
added feedbackHelper to consolidate generation of feedback form.

Revision 3623 - Directory Listing
Modified Fri Sep 16 18:47:42 2005 UTC (14 years, 5 months ago) by sh002i
allow printing of error message upfront when there are no recipients.

Revision 3622 - Directory Listing
Modified Fri Sep 16 17:58:47 2005 UTC (14 years, 5 months ago) by sh002i
cosmetic changes (blank lines, comments, ordering)

Revision 3621 - Directory Listing
Modified Thu Sep 15 20:24:44 2005 UTC (14 years, 5 months ago) by gage
Modifications to the directions for archiving courses.

Revision 3620 - Directory Listing
Modified Thu Sep 15 14:26:35 2005 UTC (14 years, 5 months ago) by dpvc
Bring jsMath up to version 2.1d, which fixes a number of small bugs,
including:

  o There was a problem with image fonts where the cached data about
    the size of the images was not being checked properly, so was
    recomputed every time a character was displayed. The cache is now
    properly handled, so that should speed up image mode.

  o Fixed a bug where loading extra fonts while in image mode would
    cause the data about previously loaded image fonts to be lost.

  o Fixed a bug with "Hi-Res Fonts for Printing" where the fonts where
    incorrectly scaled so that they appear far too small. (This worked
    in an early beta version of jsMath v2, but apparently hasn't
    worked properly in any production version.)

  o Fixed a long-standing bug where horizontal lines are only
    displayed in black, not in the color specified by \color (or by a
    style from the surrounding text).

  o Fixed a similar bug with \rule so that it now produces a box with
    the color of the surrounding text.

  o Dimensions can now be enclosed in braces (for example, \rule can
    be \rule{10pt}{5pt}{3pt} as well as \rule 10pt 5pt 3pt).

  o Fixed a bug where extra space was inserted in some equations for
    browsers that don't allow absolute positioning within an in-line
    element (e.g., Opera).

Revision 3619 - Directory Listing
Modified Wed Sep 14 23:44:52 2005 UTC (14 years, 5 months ago) by gage
Hide the "important message" text unless there is actually a message in site_info.txt

Revision 3618 - Directory Listing
Modified Tue Sep 13 18:00:13 2005 UTC (14 years, 5 months ago) by apizer
In hardcopy, a TeX file download has to have the extension .tex, not .pdf

Revision 3617 - Directory Listing
Modified Tue Sep 13 17:08:46 2005 UTC (14 years, 5 months ago) by apizer
Change back to  $mail{smtpServer}  = 'mail.yourschool.edu';

Revision 3616 - Directory Listing
Modified Tue Sep 13 16:24:21 2005 UTC (14 years, 5 months ago) by dpvc
Fixed problem with recognizing MINF in NUM_CMP.

Revision 3615 - Directory Listing
Modified Tue Sep 13 14:07:32 2005 UTC (14 years, 5 months ago) by dpvc
The ORIGINAL_NUM_CMP was calling str_cmp as a code reference rather
than as the more modern AnswerEvaluator object.  This causes error
messages when string answers were used.  It now uses the evaluate()
method of the AnswerEvaluator.

Revision 3614 - Directory Listing
Modified Tue Sep 13 01:24:36 2005 UTC (14 years, 5 months ago) by gage
Add clarification to error message for surePathToFile

Revision 3613 - Directory Listing
Modified Mon Sep 12 23:28:37 2005 UTC (14 years, 5 months ago) by dpvc
Fixed an error where scalar() was used on a hash ref.
Fixed a misfeature where operations on formulas could return Value
objects of other classes; they should always return formulas, even
when the formula is constant.

Revision 3612 - Directory Listing
Modified Mon Sep 12 20:26:01 2005 UTC (14 years, 5 months ago) by dpvc
Avoid undefined value of $name.

Revision 3611 - Directory Listing
Modified Sat Sep 10 18:21:46 2005 UTC (14 years, 5 months ago) by gage
Restored changes that were accidentally clobbered
when the gateway changes were checked in.

Email now uses post processing to email students.

Revision 3610 - Directory Listing
Modified Fri Sep 9 20:52:03 2005 UTC (14 years, 5 months ago) by gage
Fixed some documentation comments.

Revision 3609 - Directory Listing
Modified Fri Sep 9 20:51:21 2005 UTC (14 years, 5 months ago) by gage
Fixed a bug in which, if the Hardcopy call was the first one to
need to create the  directory at (e.g.)  /ww/htdocs/tmp/myCourse
then the creation of myCourse would fail.  If /ww/htdocs/tmp/myCourse/gif already
existed things would go fine.

I think that more has to be done here.  We need to look at how myCourse is
created when storing a gif or html is the first action and handle these
all the same.  One of the difficulties is that the tmp directory might
be located anywhere -- it is not guaranteed to be under /ww/webwork/webwork2/htdocs
-- at least as we have defined it at the moment.

Revision 3608 - Directory Listing
Modified Thu Sep 8 17:52:51 2005 UTC (14 years, 5 months ago) by gage
Display the information in site_info.txt on the webwork2 homepage as
well
as on login pages.

Revision 3607 - Directory Listing
Modified Thu Sep 8 02:54:48 2005 UTC (14 years, 5 months ago) by dpvc
Sam changed open(LOG,...) to open(my $log, ...), but didn't change the
usages of LOG to $log, so the show answers page was always reporting
no past answers available.  Now the values are being shown.  (I'm not
sure why it is necessary to make a local variable for LOG, but
at least it works now.)

Revision 3606 - Directory Listing
Modified Wed Sep 7 20:57:52 2005 UTC (14 years, 5 months ago) by sh002i
string2hash will now handle strings with newlines, fixing GDBM.

Revision 3605 - Directory Listing
Modified Wed Sep 7 18:02:06 2005 UTC (14 years, 5 months ago) by sh002i
disable newlines every 76 characters in base64-encoded answers. this is
nice for examining database contents manually since it prevents newlines
from being introduced into database records.

Revision 3604 - Directory Listing
Modified Wed Sep 7 01:18:00 2005 UTC (14 years, 5 months ago) by gage
Typographic clean up of global.conf.dist

Revision 3603 - Directory Listing
Modified Wed Sep 7 01:10:58 2005 UTC (14 years, 5 months ago) by dpvc
Added support for cplx_cmp() using the Parser.  Move
lib/Parser/Legacy/PGcomplexmacros.pl to the pg/macros directory to use
it.  As with the other legacy macros, $useOldAnswerMacros can be
controlled to determine whether the new or the old macros are used.

There is a new mode 'strict_cartesian' that is parallel to
'strict_polar'.  You must enter a+bi form, but the a and b can have
operations within them.

Revision 3602 - Directory Listing
Modified Wed Sep 7 01:06:13 2005 UTC (14 years, 5 months ago) by dpvc
Added "strict" versions of the limited complex contexts that don't
allow operations within the real and imaginary parts.  Also cleaned up
some of the code and fixed a few situations that had been missed
before.

Note that in strict mode, e^(pi i) is accepted, but e^(pi/2 i) is
not.  Should that be changed?  It would be possible to make a context
in which a*e^(b*pi/c i) is accepted.

Revision 3601 - Directory Listing
Modified Tue Sep 6 21:02:05 2005 UTC (14 years, 5 months ago) by dpvc
Movified the copying of functions from Complex1:: into main:: to avoid
conflicts with the PGcommonFunctions.pl versions (these errors were
trapped, but still show up in the error log unnecessarily).

Also commented out some code that was not doing anything other than
producing error messages in the error log.  (It was left over from a
syntax check on the professor's answer, but the actual check was
removed, leaving a portion that tries to process the answer, but
usually fails (because things like "1+4i" need to be converted to
"1+4*i" before they can be used in PG_answer_eval, but that was not
being done).

Because of this, it is not possible currently to do cplx_cmp("1+4i"),
and instead you must to cplx_cmp(new Complex(1,4)).

To fix this, you would need to call check_syntax (and the other
filters that are called on the student's answer) before calling
PG_answer_eval.  Of course, you should only do this when the
professor's answer isn't already a Complex object.

I am going to work on a Legacy module like the ones for num_cmp and
fun_cmp to replace cplx_cmp, which should avoid these problems and
make the changes suggested above unnecessary.

Revision 3600 - Directory Listing
Modified Tue Sep 6 18:55:20 2005 UTC (14 years, 5 months ago) by apizer
transparent (lower case t) is not valid with dvipng 1.2. I changed the note
and went back to Transparent in the default.

Revision 3599 - Directory Listing
Modified Tue Sep 6 14:18:28 2005 UTC (14 years, 5 months ago) by sh002i
uh, hasPermissions() is a method, so it actually gets 3 arguments. print
the arguments received as part of the error message. TESTED THIS TIME!

Revision 3598 - Directory Listing
Modified Tue Sep 6 14:17:44 2005 UTC (14 years, 5 months ago) by sh002i
call hasPermissions() with two arguments (it doesn't use the eUserID
anyway.

Revision 3597 - Directory Listing
Modified Mon Sep 5 23:43:38 2005 UTC (14 years, 5 months ago) by sh002i
fix for security aspect of bug #715 -- reject calls with @_ != 2.

Revision 3596 - Directory Listing
Modified Fri Sep 2 22:29:59 2005 UTC (14 years, 5 months ago) by dpvc
Fixed error in atan2 where second argument was not promoted to a Real.

Revision 3595 - Directory Listing
Modified Fri Sep 2 00:06:21 2005 UTC (14 years, 5 months ago) by jj
Fixed bug in use of advanced display panel which prevented it from displaying
problems.  Default values like "All Textbooks" needed to be cleared so it
wouldn't be mistaken for actual textbook names.

Revision 3594 - Directory Listing
Modified Thu Sep 1 01:10:35 2005 UTC (14 years, 5 months ago) by dpvc
Implemented Mike's suggestion of combining a directory upward only
when the directory contains one pg file and the name of the file is
the same as the name of the directory containing it.  I have removed
the condition that there need to be other (non-pg) files in the
directory, as the check takes time, and is no longer necessary.

Revision 3593 - Directory Listing
Modified Tue Aug 30 16:36:16 2005 UTC (14 years, 5 months ago) by apizer
Change arguments passed to dvipng

Revision 3592 - Directory Listing
Modified Tue Aug 30 13:11:49 2005 UTC (14 years, 5 months ago) by sh002i
fixed error message when answer log does not exist

Revision 3591 - Directory Listing
Modified Tue Aug 30 12:21:36 2005 UTC (14 years, 5 months ago) by dpvc
The perl method for UOP and BOP now put spaces around the operator, to
prevent Perl from thinking that things like -e is a file test and
*Parser::Function->call is a name reference.  (Some of these had been
done by hand earlier, but now the base BOP and UOP classes handle it,
so we should not have problems in the future).  I removed the ad hoc
fixes from several other locations (Parser/Function.pm,
Parser/Context/Default.pm).

Also extended the operator definitions to allow operators to create
function-call syntax in perl mode (for when the operator doesn't
correspond to a perl operator).

Revision 3590 - Directory Listing
Modified Tue Aug 30 05:49:59 2005 UTC (14 years, 5 months ago) by jj
Fixes bug in add where blank values were being turned into 0 by mysql for columns of type integer.  The analogous change was previously made to put.  This bug showed up when renumbering problems in ProblemSetDetail (e.g., renumbering) when a set was already assigned to users.

Revision 3589 - Directory Listing
Modified Tue Aug 30 00:44:53 2005 UTC (14 years, 5 months ago) by dpvc
Added the ability to put class-specific answer-checker defaults into
the Context object.  For example,

    Context("Vector")->{cmpDefaults}{Vector}{promotePoints} = 1;

would make all Vector answer checkers include promotePoints=>1
automatically.  (Note however that if a subclass of Vector is used, it
will not get this defaults, since its class name would be different.
Perhaps something more sophisticated will be needed in the future.)

Revision 3588 - Directory Listing
Modified Tue Aug 30 00:41:34 2005 UTC (14 years, 5 months ago) by dpvc
Added a parserCustomization.pl file that is loaded whenever the
Parser.pl file is.  This can be used on a course-by-course basis to
customize features of the Parser.  Some examples are listed in the
file.

You need to be VERY careful when doing this, as this will affect ALL
problems that use the Parser.  Your changes may cause some .pg files
to fail if they rely on the default behavior that you are changing.

If you wish to override settings in one of the predefined contexts
(like "Vector"), then define $context{Vector} as a copy of
$Parser::Context::Default::context{Vector}, as in the commented out
examples.  Then Context("Vector") will use your copy rather than the
original.  If you were to change the version in
Parser::Context::Default, that would change the parser for ALL
courses, not just yours.

Revision 3587 - Directory Listing
Modified Tue Aug 30 00:36:55 2005 UTC (14 years, 5 months ago) by dpvc
Added a Point context that is a copy of the Vector context.  This will
allow users to override some settings in Vector context (namely, how
they are entered and displayed) without preventing users from being
able to enter points (in Point context).

Revision 3586 - Directory Listing
Modified Mon Aug 29 22:58:13 2005 UTC (14 years, 5 months ago) by gage
Removed unused variable.
Fixed an incorrect error message.

Revision 3585 - Directory Listing
Modified Mon Aug 29 22:56:07 2005 UTC (14 years, 5 months ago) by gage
Corrected a mistake in a debugging message.

Revision 3584 - Directory Listing
Modified Sun Aug 28 23:09:27 2005 UTC (14 years, 5 months ago) by jj
Fixed a bug where a set named "0" would not be sticky in the Target Set
list (because it looked kind of like an empty/undefined name).

Revision 3583 - Directory Listing
Modified Sun Aug 28 20:54:51 2005 UTC (14 years, 5 months ago) by jj
Allow use of an activity log which logs every click, stored on a
per-course basis.  It is turned off by default.  It can be turned
on/off for individual courses.  The three pieces here:

  global.conf.dist: adds a place to define the log file.  Here an
    empty value signals to not do this logging.

  ContentGenerator.pm: check to see if the log file is defined (and
    (non-trivial), and if so, write a log entry.  We check if it is
    defined at this point to both save some time, and because if we
    get to writeCourseLog and the log isn't defined, we get a pink
    screen.

    The bulk of the text of the log entry is performed by a new method
    prepare_activity_entry.  By default, this gives the url, and a list
    of all the cgi parameters (except for key and passwd).  This method
    can be overridden by individual modules.  The default format may
    change.  It may take some fine tuning to see what is best.

    Also, this is one of the first functions called by go.  We may want
    it to go after the action has taken place if we want instructor
    modules to be able to report results of their work through this log.

  SetMaker.pm: gives an example of overriding prepare_activity_entry.
    SetMaker has lots (and lots and lots) of data stored in cgi
    parameters.  We probably don't want to log that.  We might want to
    log a little more in SetMaker than we do here (target set), but
    this gives a start.

Revision 3582 - Directory Listing
Modified Sat Aug 27 21:34:47 2005 UTC (14 years, 5 months ago) by apizer
comment out hack for peekaboo bug

Revision 3581 - Directory Listing
Modified Fri Aug 26 18:03:39 2005 UTC (14 years, 5 months ago) by sh002i
replaced $externalPrograms{netpbm} with lexical $netpbm_prefix. this
will prevent netpbm from going into the cource environment (where is it
not needed) and makes it clear that it is a prefix and not the path to a
program.

Revision 3580 - Directory Listing
Modified Fri Aug 26 17:30:05 2005 UTC (14 years, 5 months ago) by jj
When dealing with showOldAnswers defaults, allow control of who get get the system default after the due date instead of hard-wiring it.  Default value is that students don't initially get old answers after the due date, but professors do.

Revision 3579 - Directory Listing
Modified Fri Aug 26 16:52:57 2005 UTC (14 years, 5 months ago) by sh002i
improved handling of symlinks in listFilesRecursiveHelper. symlinks to
files are now treated as files instead of directories.

Revision 3578 - Directory Listing
Modified Fri Aug 26 14:06:39 2005 UTC (14 years, 5 months ago) by jj
Fix bug where perl functions which may need parentheses by forcing them
when the function starts Parser::Function->.  This seems to work, but
there might be a better way to do it, or need other cleaning up.

Revision 3577 - Directory Listing
Modified Fri Aug 26 04:19:09 2005 UTC (14 years, 5 months ago) by jj
When making on-the-fly image names, replace periods in the student login
name to avoid problems with pdflatex.  Changed the replacement in set
names to use the same new trick (the old way had an infintesimal chance
of collision).  The new scheme is first double all instances of "Q".  Then
replace periods with "-Q-".

Revision 3576 - Directory Listing
Modified Thu Aug 25 20:01:25 2005 UTC (14 years, 5 months ago) by glarose
Add some electrical units.  Take two, hopefully in the correct branch
this time.

Revision 3574 - Directory Listing
Modified Thu Aug 25 18:32:01 2005 UTC (14 years, 5 months ago) by jj
Updated instructions to match changes to global.conf.dist and the move
or PGanswermacros.pl.

Revision 3573 - Directory Listing
Modified Thu Aug 25 18:24:55 2005 UTC (14 years, 5 months ago) by jj
A separate copy of this file is no longer needed.

Revision 3572 - Directory Listing
Modified Thu Aug 25 18:21:21 2005 UTC (14 years, 5 months ago) by jj
This makes the pg/lib/Parser/Legacy copy of PGanswermacros.pl the
official copy here.  This still leaves the original answer evaluators as
the default, but simplifies the update process, and we don't have to
maintain two copies of the original functions.

Revision 3571 - Directory Listing
Modified Thu Aug 25 18:17:14 2005 UTC (14 years, 5 months ago) by jj
Load Parser::Legacy.

This change is needed for the current version of extraAnswerEvaluators.pl
to work out of the box.  By default, one will still get the original
(non-Parser) versions of num_cmp and fun_cmp, but turning on the
Parser-based versions will be much easier (just one line to change, or
override on a course by course basis).

There will be a companion change in the pg directories.

Revision 3570 - Directory Listing
Modified Thu Aug 25 17:02:28 2005 UTC (14 years, 5 months ago) by glarose
Intialize tth preamble variable to avoid undefined errors when running
in formattedText mode.

Revision 3569 - Directory Listing
Modified Thu Aug 25 03:40:44 2005 UTC (14 years, 5 months ago) by dpvc
Fixed problem with Context's not properly initializing themselves with
the WW environment parameters (like zeroLevelTol and useBaseTenLog).
The copy method and the method that did an initialized copy used to be
separate routines, but that turned out to be unnecessary, so they have
now been merged (copy always tries to initialize the WW values when it
can, and when the copied context doesn't already have them).

The reason this is complicated is that a number contexts are set up
before the global.conf data is available, so these can't be
initialized with the WW values.  Also, these default contexts are
stored in the persistant processes, and we don't want to leave
possibly course-specific values lying around in them, so whenever a
context is selected, it is copied from the standard version and the
WW parameters are inserted into it.  The problem author can only
modify the copy, not the original, so this is OK with mod_perl.

The context's copy method now always tries to initialize (we used to
have to call initCoopy to get a copy that has the WW parameters
inserted).  That turned out to cause trouble with code that handled
contexts without the usual Context() command.

Revision 3568 - Directory Listing
Modified Thu Aug 25 03:32:16 2005 UTC (14 years, 5 months ago) by dpvc
Fixed log and log10 perl methods so that log obeys the useBaseTenLog
flag, and log10 doesn't try to call main::log10, which is not
available from within this preloaded package.  The in- and outside
the safe compartment stuff is very confusing, and functions that are
not overloaded native perl functions seem to be not callable from the
Value::Formula package, so the perl method now calls
Parser::Function->call() directly (doesn't look pretty, but I've given
up on that).

Revision 3567 - Directory Listing
Modified Thu Aug 25 00:58:21 2005 UTC (14 years, 5 months ago) by dpvc
Avoid undefined due_date when problem is viewed from the library
browser.

Revision 3566 - Directory Listing
Modified Thu Aug 25 00:35:18 2005 UTC (14 years, 5 months ago) by dpvc
In order to overcome an MSIE bug that affects jsMath, the call is
changed from jsMath.ProcessBeforeShowing() to jsMath.wwProcess(),
which is added by the jsMath-ww.js file.  (This routine uses an onload
handler for MSIE to put off the processing until MSIE can handle it
properly, but allows all others to do it at the usual time.)

Revision 3565 - Directory Listing
Modified Thu Aug 25 00:31:57 2005 UTC (14 years, 5 months ago) by dpvc
Updates to overcome yet another bug in MSIE.  It turns out that MSIE
can completely botch up the display if jsMath.ProcessBeforeShowing()
is performed at the point in the web page that we have to put it, so
we call wwProcess instead, and if it is in MSIE, we add an onload
handler to call ProcessBeforeShowing.  It's a hack, but it works.

Revision 3564 - Directory Listing
Modified Wed Aug 24 20:22:32 2005 UTC (14 years, 6 months ago) by jj
Make it so that by default, practice users don't see saved answers.  That can be controlled in global.conf.dist.  Also, default to not showing saved answers after the due date.  In all cases, the Apply options button can adjust what you want.

Also fixed a bug with showOldAnswers related to '', 0, and undef being similar in perl.

Revision 3563 - Directory Listing
Modified Wed Aug 24 19:41:59 2005 UTC (14 years, 6 months ago) by jj
Fixed bug 753.  The number of all users needs to be recomputed after action
handlers in case some users were imported or deleted.

Revision 3562 - Directory Listing
Modified Wed Aug 24 19:07:10 2005 UTC (14 years, 6 months ago) by dpvc
Changed stringify to check for an answer that is zero by using the
zeroLevelTol value directly (rather than use the fuzzy equality check
for zero, which depends on the tolType in a bad way).

Revision 3561 - Directory Listing
Modified Wed Aug 24 16:58:12 2005 UTC (14 years, 6 months ago) by jj
Fixed minor glitch where the toggle for show saved answers might be set wrong for the first time a student looks at a problem.

Revision 3560 - Directory Listing
Modified Wed Aug 24 11:44:49 2005 UTC (14 years, 6 months ago) by dpvc
Made relative tolerances the default for when the tolType is not one
of 'relative' or 'absolute'.

Revision 3559 - Directory Listing
Modified Wed Aug 24 02:22:59 2005 UTC (14 years, 6 months ago) by jj
Removed initialize function which did nothing.  Moved the actual assignments/unassignments to pre_header_initialize so they could use the messaging system.

Revision 3558 - Directory Listing
Modified Wed Aug 24 01:52:27 2005 UTC (14 years, 6 months ago) by jj
Added safety toggle for unassignment on this page (like other places where
sets can be unassigned).

Revision 3557 - Directory Listing
Modified Wed Aug 24 01:35:01 2005 UTC (14 years, 6 months ago) by jj
Hopefully fixed the logic of setting numerical tolerance defaults.

Revision 3556 - Directory Listing
Modified Tue Aug 23 23:59:46 2005 UTC (14 years, 6 months ago) by jj
Fixed problem with display_matrix_mm so its behaviour matches its
documentation.  This may break problems which relied on its previous
incorrect behavior.

Revision 3555 - Directory Listing
Modified Tue Aug 23 23:57:01 2005 UTC (14 years, 6 months ago) by dpvc
Use a default for the zeroLevelTol set in the current context.

Revision 3554 - Directory Listing
Modified Tue Aug 23 23:10:02 2005 UTC (14 years, 6 months ago) by jj
Deleted commented out line (which had been used for debugging).

Revision 3553 - Directory Listing
Modified Tue Aug 23 22:56:50 2005 UTC (14 years, 6 months ago) by jj
This adds wiring to the pg side for special bits of html to be included before/after the body of a problem.  You also need to update global.conf (and probably want to update Tasks.pm).

A commented out example in global.conf.dist shows how to use this to produce boxed problems a la the Union College server.  In this approach, the added parts are not used for problems rendered in the Library Browser or Problem Set Detail.

This addresses bug 817.  This solution may not be suitable for inclusion of needed bits for modes such as asciimath or tth because the those bits of html are probably needed for display in the Library Browser.  It is hard to distinguish bits which are always wanted, and those which are only wanted for use by Problem.

Revision 3552 - Directory Listing
Modified Tue Aug 23 22:53:25 2005 UTC (14 years, 6 months ago) by jj
Allow snippets of html (or Tex) to be specified in global.conf to be inserted right before/after the body of a problem.  A commented out example which produces boxed problem in HTML is given.  In this approach, the added parts are not used for problems rendered in the Library Browser or Problem Set Detail.

This addresses bug 817.  This solution may not be suitable for inclusion of needed bits for modes such as asciimath or tth because the those bits of html are probably needed for display in the Library Browser.  It is hard to distinguish bits which are always wanted, and those which are only wanted for use by Problem.

To make use of this, you need to update your global.conf, and make the corresponding pg update.

Revision 3551 - Directory Listing
Modified Mon Aug 22 19:55:40 2005 UTC (14 years, 6 months ago) by jj
Previously, the "Unassign selected sets from selected users" button did
not work.  Now it works.  To help avoid inadvertant unassignments, the button
was moved lower on the page and put in the "danger" background color.  I
also made the assign and unassign buttons the same length for better
aesthetics.

Some things still to do in this module:
  - maybe move unassign even lower
  - maybe have a safety radio button to unassignments like on other
    unassign pages
  - move the action from body() to pre_header_initialize() so that
    addgoodmessage/addbadmessage will work like on other pages
  - get return values from the assignment/unassignment commands in
    case something goes wrong.  Right now, the system can explode and it
    will still say "All assignments were made successfully".
  - it could also report some information on assignments/unassignments
    actually made vs. combinations which were skipped.

Revision 3550 - Directory Listing
Modified Mon Aug 22 19:22:31 2005 UTC (14 years, 6 months ago) by jj
Fixed function unassignSetsFromUsers.

Revision 3549 - Directory Listing
Modified Mon Aug 22 03:27:59 2005 UTC (14 years, 6 months ago) by dpvc
Changed default directory shown to be the templates directory.
Changed GZIP and UNGZIP to 'Make Archive' and 'Unpack Archive'.

Revision 3548 - Directory Listing
Modified Mon Aug 22 02:40:26 2005 UTC (14 years, 6 months ago) by jj
Changed "current set" to target set to match terminology at the top of the
page.

Revision 3547 - Directory Listing
Modified Mon Aug 22 01:26:04 2005 UTC (14 years, 6 months ago) by jj
Part of change dealing with bug 813.

Possible things still to do here:
   change names of variables to reflect that they contain commands and
     not scripts
   have a variable for the path to cat
   remove the scripts themselves

Revision 3546 - Directory Listing
Modified Mon Aug 22 01:23:16 2005 UTC (14 years, 6 months ago) by jj
Moves configuration of gif2png and friends to global.conf.  Individual
paths, and/or arguments to the conversion statements can be adjusted.

To make use of this change, update global.conf and pg/macros/dangerousmacros.pl
This should close bug 813.  At some time, the scripts should be removed
from the bin directory.

Revision 3545 - Directory Listing
Modified Sun Aug 21 23:54:27 2005 UTC (14 years, 6 months ago) by jj
Update help file to match some recent changes in checking of answers which
are intervals.

Revision 3544 - Directory Listing
Modified Sun Aug 21 21:46:49 2005 UTC (14 years, 6 months ago) by jj
Removed bits which were accidentally included during last commit.

Revision 3543 - Directory Listing
Modified Sun Aug 21 18:12:30 2005 UTC (14 years, 6 months ago) by jj
Should fix bug 696 by replacing consecutive whitespace with a single
space for answers in an individual ans_rule.

Revision 3542 - Directory Listing
Modified Sun Aug 21 16:02:42 2005 UTC (14 years, 6 months ago) by jj
Fixed some indenting.

Revision 3541 - Directory Listing
Modified Sun Aug 21 12:03:13 2005 UTC (14 years, 6 months ago) by dpvc
Updated to 2.1a, which fixes a problem with the domain checking when
the server is running on a non-standard port number.

Revision 3540 - Directory Listing
Modified Sun Aug 21 05:21:07 2005 UTC (14 years, 6 months ago) by jj
level_curve_check now forces the use of the old style (not Parser::Legacy)
answer evaluators resolving bug 820.

Revision 3539 - Directory Listing
Modified Sun Aug 21 00:04:40 2005 UTC (14 years, 6 months ago) by dpvc
Updated to handle jsMath version 2.

Revision 3538 - Directory Listing
Modified Sun Aug 21 00:03:38 2005 UTC (14 years, 6 months ago) by dpvc
Changes needed for version 2 of jsMath.  Since the image font fallback
method works well enough without having the TeX fonts installed, the
font warning message has been turned off by default.  There is also a
new parameter that controls whether the image fonts are to be used, so
if you don't want to unpack the jsMath-fonts.tar.gz file (for space
considerations), you should set

      $pg{displayModeOptions}{jsMath}{noImageFonts} = 1;

in global.conf.

Revision 3537 - Directory Listing
Modified Sat Aug 20 23:59:53 2005 UTC (14 years, 6 months ago) by dpvc
Updated jsMath to v2.1 (which includes the new control panel and the
new image font fallback method).  You will need to unpack the
jsMath-fonts.tar.gz file in the htdocs/jsMath directory to form the
htdocs/jsMath/fonts directory.  The commands

     cd htdocs/jsMath
     tar vfzx jsMath-fonts.tar.gz

should do it.

Finally, you need to corrections to pg/macros/PG.pl and
global.conf.dist to complete the installation.

Revision 3536 - Directory Listing
Modified Sat Aug 20 23:07:13 2005 UTC (14 years, 6 months ago) by dpvc
Added code to handle the case where the professor's answer is in
expondential notation using a little e instead of a big one.  (Perl
will convert .0000001 to 1E-07, for example, before it is passed to
num_cmp.)

Revision 3535 - Directory Listing
Modified Wed Aug 17 16:05:48 2005 UTC (14 years, 6 months ago) by sh002i
re-added timer for entire content generation process.

Revision 3534 - Directory Listing
Modified Tue Aug 16 18:57:35 2005 UTC (14 years, 6 months ago) by sh002i
enabled logging

Revision 3533 - Directory Listing
Modified Tue Aug 16 17:58:38 2005 UTC (14 years, 6 months ago) by jj
Make title look nicer for times when the set name has underscores in it.

Revision 3532 - Directory Listing
Modified Tue Aug 16 16:47:27 2005 UTC (14 years, 6 months ago) by sh002i
disabled logging for small file test

Revision 3531 - Directory Listing
Modified Mon Aug 15 22:42:37 2005 UTC (14 years, 6 months ago) by dpvc
Fixed more undefined values

Revision 3530 - Directory Listing
Modified Mon Aug 15 22:38:56 2005 UTC (14 years, 6 months ago) by apizer
Remove the no longer valid message:
This may take a long time. Even if your browser times
out, all the files will be exported

Revision 3529 - Directory Listing
Modified Mon Aug 15 01:50:21 2005 UTC (14 years, 6 months ago) by dpvc
Changed Context() call to direct reference to context, so as not to
leave the wrong content selected as the current one.

Revision 3528 - Directory Listing
Modified Sun Aug 14 16:52:11 2005 UTC (14 years, 6 months ago) by gage
Add the beginnings of a facility for archiving a course.  This method uses mysqldump
and therefore will work only with a mysql database.  Many things are still hardwired
In particular mysqldump is hardwired.
The database name is hardwired to  "webwork"

Archiving consists of dumping the tables associated to the course to a file
$courseID/DATA/$courseID_mysql.database  (this file can be used
to created a new database for the course.  it will not overwrite existing
tables however.)

Then the entire course directory is tarred and gzipped and placed
in the courses directory with the naem $courseID.tar.gz

Currently nothing is deleted from the database and no directories are deleted.
So the implementation is fairly safe, but not yet very useful for course management.

There is not yet a facility for automatically importing the archived course.

Revision 3527 - Directory Listing
Modified Sun Aug 14 12:16:25 2005 UTC (14 years, 6 months ago) by dpvc
Eliminate extra insetting of tables within the results area (e.g.,
tables produced by the matrix array answer checkers).

Revision 3526 - Directory Listing
Modified Sun Aug 14 11:43:04 2005 UTC (14 years, 6 months ago) by dpvc
Added mising ';' in viewOptions

Revision 3525 - Directory Listing
Modified Sun Aug 14 00:23:10 2005 UTC (14 years, 6 months ago) by dpvc
Added methods for testing containment of one set in another, and so
on.  These include:

     $A->contains($B)        Test if $B is a subset of $A (or an
                             element of $A if $B$ is a real number).

     $A->isSubsetOf($B)      Test if $A is a subset of $B.

     $A->isEmpty             True if $A is the empty set.

     $A->intersects($B)      True if $A and $B have numbers in common.

     $A->intersect($B)       The set of numbers common to both $A and $B.

Be careful of the difference between "intersect" and "intersects".
One is a set the other a true/false value.

Revision 3524 - Directory Listing
Modified Sun Aug 14 00:18:46 2005 UTC (14 years, 6 months ago) by dpvc
Added a copy method that produces a deep copy of the given object.
This probably should be used through the new() methods to ducplicate
the data used when creating an object, otherwise changes to the
sub-objects will cause changes to the outer one.  For example, if an
interval is used to create a union and then the internal data for the
interval is changed by hand, the changes will also occur in the
union.  That is, Value objects contain their data by REFERENCE.  This
should probably be changed, but fortunately, no one should be
adjusting the internal structure of the objects by hand.

Revision 3523 - Directory Listing
Modified Sat Aug 13 22:38:39 2005 UTC (14 years, 6 months ago) by dpvc
Added canBeInUnion and isSetOfReals methods to the Parser package
(similar to the ones in the Value package), replacing the
canBeInterval flag and other ad hoc checks.

Removed ability to form interval like [a] now that we have sets.

Revision 3522 - Directory Listing
Modified Sat Aug 13 22:34:31 2005 UTC (14 years, 6 months ago) by dpvc
Maintain parentheses correctly when converting to perl.

Revision 3521 - Directory Listing
Modified Sat Aug 13 21:47:32 2005 UTC (14 years, 6 months ago) by jj
Add style for comments originating from COMMENT() and rendered in the
Library browser.

Revision 3520 - Directory Listing
Modified Sat Aug 13 21:45:46 2005 UTC (14 years, 6 months ago) by jj
Implimentation of COMMENT for comments to appear in the library browser.

Revision 3519 - Directory Listing
Modified Sat Aug 13 21:35:56 2005 UTC (14 years, 6 months ago) by jj
Print contents of COMMENT() commands in the Library Browser.

Revision 3518 - Directory Listing
Modified Sat Aug 13 21:34:50 2005 UTC (14 years, 6 months ago) by dpvc
Allow a list of numbers to be converted to a set.

Revision 3517 - Directory Listing
Modified Sat Aug 13 21:31:46 2005 UTC (14 years, 6 months ago) by dpvc
Pass the canBeInUnion call on to the Formula's root node

Revision 3516 - Directory Listing
Modified Sat Aug 13 20:59:28 2005 UTC (14 years, 6 months ago) by dpvc
Added isSetOfReals and canBeInUnion methods to the Value objects, and
replaced the ad hoc tests for these conditions to call these
routines.

Cleaned up the make() methods for Intervals, Sets and Unions, and
improved the new() methods to handle more cases better.

Fixed Value::makeValue() to handle an array reference correctly.

I don't THINK any of this will break anything.  :-)

Revision 3515 - Directory Listing
Modified Sat Aug 13 20:55:35 2005 UTC (14 years, 6 months ago) by dpvc
Make formulas that produce lists get default open and close parens,
and have them retained in Formula() results.

Revision 3514 - Directory Listing
Modified Sat Aug 13 19:10:41 2005 UTC (14 years, 6 months ago) by dpvc
Make sure the singletons are sorted before comparing them to the
intervals (and each other).

Revision 3513 - Directory Listing
Modified Sat Aug 13 18:51:54 2005 UTC (14 years, 6 months ago) by jj
Fixed treatment of options in setting the mode and optional parameters
related to reducing unions.

Revision 3512 - Directory Listing
Modified Sat Aug 13 18:19:01 2005 UTC (14 years, 6 months ago) by dpvc
Can't use the length check when reducing unions, since it could
contain a single set that is not reduced, and we need to check that,
too.

Revision 3511 - Directory Listing
Modified Sat Aug 13 17:50:11 2005 UTC (14 years, 6 months ago) by dpvc
Fixed reduction warnings for individual sets, intervals and unions (in
making it work for lists, I broke it for the single items).

Revision 3510 - Directory Listing
Modified Sat Aug 13 17:32:58 2005 UTC (14 years, 6 months ago) by dpvc
Fixed a problem with redefine when used with classes that store their
data in a on-standard form (i.e., by overridding the create()
method).  Now they can define uncreate() to get the original data back
for use with redefine().

Revision 3509 - Directory Listing
Modified Sat Aug 13 17:24:00 2005 UTC (14 years, 6 months ago) by dpvc
Fixed mad error message (change needed due to new message translation
facility).

Revision 3508 - Directory Listing
Modified Sat Aug 13 16:58:56 2005 UTC (14 years, 6 months ago) by dpvc
Added isReduced method to tell if a Union, Set or Interval is already
reduced.  Fixed up sort to use CORE::sort, and added sort and reduce
to Intervals, which do nothing, but are there for consistency.

Revision 3507 - Directory Listing
Modified Sat Aug 13 16:57:14 2005 UTC (14 years, 6 months ago) by dpvc
Fixed error in testing is a union is reduced (didn't test if sets
within a union were reduced properly).

Revision 3506 - Directory Listing
Modified Sat Aug 13 16:47:23 2005 UTC (14 years, 6 months ago) by jj
Moved a chunk of duplicated code to its own function, and tweaked the setting
of the context in a few cases.

Revision 3505 - Directory Listing
Modified Sat Aug 13 16:33:50 2005 UTC (14 years, 6 months ago) by dpvc
Added sort methods to Union and Set that return objects with their
data sorted.

Revision 3504 - Directory Listing
Modified Sat Aug 13 15:57:17 2005 UTC (14 years, 6 months ago) by dpvc
Moved the union and set reduction checks from cmp_equal to cmp_compare
so that the messages can be produced even in lists of unions.

Improved the message facilities for the list comparison so that
cmp_compare can make errors that refer to the number of the entry in
the student's answer (otherwise an extra "There was a problem with
your nth value" message needs to be prepended, which looks bad if it
can be avoided).

Use the "extra" answer checker to report syntax error messages in unordered
lists.

Revision 3503 - Directory Listing
Modified Sat Aug 13 15:44:41 2005 UTC (14 years, 6 months ago) by dpvc
Fixed problem with call to $equation->Error (due to change in
error-handling that allows for translation of error messages).

Revision 3502 - Directory Listing
Modified Sat Aug 13 05:54:10 2005 UTC (14 years, 6 months ago) by jj
If a problem file sets $refreshCachedImages=1 inside the pg file, then
cached copies of on the fly graphics are ignored and the graphic is
regenerated.

Revision 3501 - Directory Listing
Modified Sat Aug 13 01:40:45 2005 UTC (14 years, 6 months ago) by dpvc
Added differentiation of (single-variable) functions created with
parserFunction.

Revision 3500 - Directory Listing
Modified Sat Aug 13 01:39:14 2005 UTC (14 years, 6 months ago) by dpvc
Fixed typo in previous update.

Revision 3499 - Directory Listing
Modified Sat Aug 13 00:41:24 2005 UTC (14 years, 6 months ago) by dpvc
Added sets to the differentiation information (no derivatives allowed)

Revision 3498 - Directory Listing
Modified Sat Aug 13 00:35:11 2005 UTC (14 years, 6 months ago) by dpvc
Fixed a typo in an error message.

Revision 3497 - Directory Listing
Modified Sat Aug 13 00:25:27 2005 UTC (14 years, 6 months ago) by dpvc
Added ability for Unions and Sets to simplify themselves
(automatically or on demand), and added flags to the Context and
answer checkers to control these features.  The new Context flags
are

    reduceUnions                tells whether unions are automatically
                                reduced when they are created.

    reduceUnionsForComparison   tells whether unions are reduced
                                before comparing them for equality
                                or inequality (etc) if they aren't
                                reduced already.

    reduceSets                  tells whether redundent elements are
                                removed from sets as they are created.

    reduceSetsForComparison     tells whether sets are reduced before
                                comparing them.

All of these default to true.

The Interval, Set, Union, and List answer checkers not have two new
flags for controlling these values:

    studentsMustReduceUnions    tells whether unions and sets will be
                                counted as incorrect when they are not
                                reduced to non-overlapping intervals
                                and at most one set with no repeated
                                entries.

    showUnionReduceWarnings     tells whether an error message will
                                be produced for non-reduced unions and
                                sets, or if they will be marked wrong
                                silently.  (Not available in Lists.)

Both of these are true by default, since most professors probably want
their students to write intervals in reduced form.  (Is this true?)
This corresponds the the current behavior of the interval checkers,
which require the student's answer to be the same set of intervals as
in the professor's, but with the addition of an error message when the
student answer is not reduced.

Revision 3496 - Directory Listing
Modified Fri Aug 12 23:33:06 2005 UTC (14 years, 6 months ago) by jj
Print titles with underscores replaced by non-breaking spaces.  It makes
the names of courses and problem sets look nicer for students.  Also
removed a function which was already commented out, and not needed.

Revision 3495 - Directory Listing
Modified Fri Aug 12 23:21:52 2005 UTC (14 years, 6 months ago) by dpvc
Fixed use of undefined value for $position in TeX and String methods.

Revision 3494 - Directory Listing
Modified Fri Aug 12 23:02:11 2005 UTC (14 years, 6 months ago) by dpvc
Made the 'R' constant in Interval context show up as a bold R in TeX
mode.

Revision 3493 - Directory Listing
Modified Fri Aug 12 22:56:04 2005 UTC (14 years, 6 months ago) by dpvc
Detect preview mode correctly for either WW1 or WW2.

Revision 3492 - Directory Listing
Modified Fri Aug 12 22:55:19 2005 UTC (14 years, 6 months ago) by dpvc
Adjust spacing.

Revision 3491 - Directory Listing
Modified Fri Aug 12 22:54:38 2005 UTC (14 years, 6 months ago) by dpvc
Mark function as constant if it is.

Revision 3490 - Directory Listing
Modified Fri Aug 12 18:55:46 2005 UTC (14 years, 6 months ago) by jj
Update interval notation information for students based on recent
improvements in the Parser.

Revision 3489 - Directory Listing
Modified Fri Aug 12 18:43:25 2005 UTC (14 years, 6 months ago) by jj
Completed conversion of interval_cmp to use Parser objects.  Also, minor
updates to number_list_cmp.

Revision 3488 - Directory Listing
Modified Fri Aug 12 17:40:07 2005 UTC (14 years, 6 months ago) by dpvc
Avoid problem with undefined value being passed to protectHTML.

Revision 3487 - Directory Listing
Modified Fri Aug 12 17:09:42 2005 UTC (14 years, 6 months ago) by dpvc
Changed how Intervals implement the requireParenMatch flag for the
interval and union answer checker.  (Use a Context flag rather than a
flag on the interval itself.)  Moved the getFlag method from
Formula.pm to Value.pm so it can be used by any object class.  New
feature where classes can add more context flags to set (and reset
after the answer checker runs).

Revision 3486 - Directory Listing
Modified Fri Aug 12 15:53:02 2005 UTC (14 years, 6 months ago) by sh002i
renamed weird $QuellSubroutineOutput to $DenySubroutineOutput. This will
better match $AllowSubroutineOutput.

Revision 3485 - Directory Listing
Modified Fri Aug 12 02:47:30 2005 UTC (14 years, 6 months ago) by sh002i
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.

Revision 3484 - Directory Listing
Modified Fri Aug 12 01:26:11 2005 UTC (14 years, 6 months ago) by dpvc
Removed erroneous dollar sign.

Revision 3483 - Directory Listing
Modified Fri Aug 12 01:21:48 2005 UTC (14 years, 6 months ago) by dpvc
Added redefine() function to complement undefine() for various
Context() values.  For example

      Context()->operators->undefine('+');

makes '+' undefined, but

      Context()->operators->redefine('+');

will put it back.  You can specify a context from which to take the
redefinition, and a name in that context, as in

      Context()->operators->redefine('U',from=>"Interval");
      Context()->operators->redefine('u',from=>"Interval",using=>"U");
      Context()->operators->redefine('U',from=>$content);

where $content is a reference to a Context object.

The undefine() function lets you undefine several items at once, as in

      Context()->operators->undefine('+','-');

For redefine, you must put multiple names in square brackets because
of the optional parmeters:

      Context()->operators->redefine(['+','-']);

Revision 3482 - Directory Listing
Modified Fri Aug 12 01:15:30 2005 UTC (14 years, 6 months ago) by dpvc
Fixed bug with missing fields in initialization.

Revision 3481 - Directory Listing
Modified Thu Aug 11 22:11:53 2005 UTC (14 years, 6 months ago) by sh002i
added implementation of options() which call optionsMacro(). the version
in Problem.pm takes care to preserve the editMode and sourceFilePath
parameters.

Revision 3480 - Directory Listing
Modified Thu Aug 11 22:10:30 2005 UTC (14 years, 6 months ago) by sh002i
improvements to view options.

removed default options() implementation and helper function
viewOptions(), and added more modular optionsMacro() method, which is
intended to be called from content generators which require an options
panel.

POD for optionsHelper():

=item optionsMacro(options_to_show => \@options_to_show, extra_params =>
\@extra_params)

Helper macro for displaying the View Options panel.

@options_to_show lists the options to show, from among this list
"displayMode", "showOldAnswers", "showHints", "showSolutions". If no
options are given, "displayMode" is assumed.

@extraParams is dereferenced and passed to the hidden_fields() method.
Use this to preserve state from the content generator calling
optionsMacro().

This macro is intended to be called from an implementation of the
options() method. The simplest way to to this is:

 sub options { shift->optionsMacro }

=cut

Revision 3479 - Directory Listing
Modified Thu Aug 11 22:07:50 2005 UTC (14 years, 6 months ago) by sh002i
moved style information for viewOptions div from ContentGenerator.pm.

Revision 3478 - Directory Listing
Modified Thu Aug 11 21:40:55 2005 UTC (14 years, 6 months ago) by sh002i
revert to using mydisplayMode for the param name (whoops).

Revision 3477 - Directory Listing
Modified Thu Aug 11 20:57:18 2005 UTC (14 years, 6 months ago) by dpvc
Added ability to subtract intervals, sets and unions.  Adjusted the
precedence of the union 'U' to be above _ and + so that things like
(1,5) U (7,10) - {8} U (2,3) will do ((1,5) U (7,10)) - ({8} U (2,3))
rather than the previous (1,5) U ((7,10) - {8}) U (2,3).  Finally,
added a constant 'R' to the Interval context that is equivalent to
(-inf,inf), so you can do things like R-{0} now.

Still need to work out reducing unions so that things like (1,3)U(2,4)
can become (1,4).

Revision 3476 - Directory Listing
Modified Thu Aug 11 20:32:15 2005 UTC (14 years, 6 months ago) by sh002i
hide options panel here too -- closes bug #802.

Revision 3475 - Directory Listing
Modified Thu Aug 11 20:27:07 2005 UTC (14 years, 6 months ago) by sh002i
removed view options panel, "try it" link preserves displayMode. closes
bug #802.

Revision 3474 - Directory Listing
Modified Thu Aug 11 14:37:18 2005 UTC (14 years, 6 months ago) by dpvc
Changes needed for new Set object, plus for moving string, TeX and
perl into Value.pm.  Also removed unneeded spaces in perl versions of
the constants (these were to fix problems with the minus sign, but
that is now being handled by the minus operators themselves).

Revision 3473 - Directory Listing
Modified Thu Aug 11 14:34:24 2005 UTC (14 years, 6 months ago) by dpvc
Changes needt for Set object, and fixed a bug with unions containing
constant intervals with non-constant ones.

Revision 3472 - Directory Listing
Modified Thu Aug 11 14:33:09 2005 UTC (14 years, 6 months ago) by dpvc
Changes needed to Set object.  Also, use Parser to handle unions
defined as strings rather than doing it by hand (that's the whole
point, isn't it?).  Added object promotion from lower-precedence
classes (for better error messages), and fixed up the comparison
routine.

Revision 3471 - Directory Listing
Modified Thu Aug 11 14:28:07 2005 UTC (14 years, 6 months ago) by dpvc
Changes needed for Set object, better handling of an interval given as
a string, and a few misc. fixes.

Revision 3470 - Directory Listing
Modified Thu Aug 11 14:25:53 2005 UTC (14 years, 6 months ago) by dpvc
Changes needed for new Set object, and moving of string, TeX and perl
methods to Value.pm

Revision 3469 - Directory Listing
Modified Thu Aug 11 14:23:16 2005 UTC (14 years, 6 months ago) by dpvc
Added changes needed for the new Set object.

Revision 3468 - Directory Listing
Modified Thu Aug 11 14:22:36 2005 UTC (14 years, 6 months ago) by dpvc
Added in the Set object class.  Also made more comprehensive defaults
for string, TeX and perl output, so these don't have to be subclassed
so often.  These handle looking up the open and close parens and
recursively handling the entries in a list-type object.

Revision 3467 - Directory Listing
Modified Thu Aug 11 14:20:31 2005 UTC (14 years, 6 months ago) by dpvc
Properly maintain open and close parens in emtpy lists.

Revision 3466 - Directory Listing
Modified Thu Aug 11 14:19:26 2005 UTC (14 years, 6 months ago) by dpvc
Added new Set object class to the Parser.  It implements a finite set
of real numbers, for use with unions and intervals.  E.g., (1,2) U {3}
or (1,2) U {3,4,5}.  You can created Set objects in your perl code via
the Set() command, e.g, Set(3,4,5) or Set("{1,2,3}").  You should set
the Context to Context("Interval") if you plan to use Set objects, as
this defined the braces to form sets (rather than using them as
parentheses, which is the default WW behavior).  Note that in Interval
context, you can NOT use braces as parentheses.

Current, Set objects are only allowed to be sets of numbers.  It would
be possible to extend that in the future.

Revision 3465 - Directory Listing
Modified Thu Aug 11 00:38:33 2005 UTC (14 years, 6 months ago) by dpvc
Make upper-case alias a hidden one (since it is not needed for the
pattern).

Revision 3464 - Directory Listing
Modified Thu Aug 11 00:37:35 2005 UTC (14 years, 6 months ago) by dpvc
Dereference aliases to aliases properly.

Revision 3463 - Directory Listing
Modified Wed Aug 10 23:05:41 2005 UTC (14 years, 6 months ago) by jj
Default behavior of number_list_cmp set to be backward compatible
(no hints of any kind or partial credit).  These features can now be
activated by optional arguments.

Also improvements on parser-based interval_cmp.

Revision 3462 - Directory Listing
Modified Wed Aug 10 18:57:17 2005 UTC (14 years, 6 months ago) by jj
Hopefully improved some of how the temporary context is set for number_list_cmp.
Many whitespace changes (spaces to tabs).  Work in progress for a version of
interval_cmp which uses Parser, temporarily called interval_cmp2.

Revision 3461 - Directory Listing
Modified Wed Aug 10 18:02:31 2005 UTC (14 years, 6 months ago) by sh002i
make .def searching thread-safe (resolves bug #814).

changed @found_set_defs to be a lexical local to get_set_defs().
replaced get_set_defs_wanted() with a closure over @found_set_defs
defined in get_set_defs().

output is identical to the previous case, but no global(-ish) variables
are used.

Revision 3460 - Directory Listing
Modified Wed Aug 10 15:07:12 2005 UTC (14 years, 6 months ago) by dpvc
Interval (and Union) checker now accepts requireParenMatch flag for
deciding whether the interval type must match.  Setting
requireParenMatch to 0 will let (1,2) match (1,2] or [1,2], etc.

Revision 3459 - Directory Listing
Modified Wed Aug 10 15:05:34 2005 UTC (14 years, 6 months ago) by dpvc
Cosmetic change.

Revision 3458 - Directory Listing
Modified Wed Aug 10 14:28:59 2005 UTC (14 years, 6 months ago) by dpvc
The Parser versions of num_cmp and fun_cmp incorrectly left the
current Context set to the base context used by the answer checker.
The Context is now correctly reset to the one in effect before the
call to num_cmp or fun_cmp.

Also removed some redundant values in if-then checks.

Revision 3457 - Directory Listing
Modified Wed Aug 10 14:22:48 2005 UTC (14 years, 6 months ago) by dpvc
Enable commas when mode=>"frac" is specified.

Revision 3456 - Directory Listing
Modified Tue Aug 9 22:22:46 2005 UTC (14 years, 6 months ago) by sh002i
groundwork for preserving non-authentication state (which probably won't
get used)

Revision 3455 - Directory Listing
Modified Mon Aug 8 15:56:09 2005 UTC (14 years, 6 months ago) by jj
Changed number_list_cmp to use Parser.

Revision 3454 - Directory Listing
Modified Thu Aug 4 23:30:22 2005 UTC (14 years, 6 months ago) by sh002i
add special case for no problems, closing bug #811.

Revision 3453 - Directory Listing
Modified Thu Aug 4 22:45:34 2005 UTC (14 years, 6 months ago) by sh002i
fix bug #803: corrected typo that prevented course renaming from working.

Revision 3452 - Directory Listing
Modified Thu Aug 4 21:35:19 2005 UTC (14 years, 6 months ago) by sh002i
cosmetic changes, disable experimental components by default.

Revision 3451 - Directory Listing
Modified Thu Aug 4 00:58:39 2005 UTC (14 years, 6 months ago) by dpvc
Can't separate the form into two separate forms (as in the previous
update) otherwise the values of the checkboxes in the lower section
are lost when a button in the upper section is clicked.  So we'll have
to assume that if a user selects a file, he really wants it to be
uploaded.  (He can always use the BACK button on the browser to back
out of it if necessary.)

Revision 3450 - Directory Listing
Modified Wed Aug 3 22:25:31 2005 UTC (14 years, 6 months ago) by sh002i
test

Revision 3449 - Directory Listing
Modified Wed Aug 3 22:19:59 2005 UTC (14 years, 6 months ago) by jj
Added problem count to basic library panel, and text chapters/sections
to advanced library panel.

Revision 3448 - Directory Listing
Modified Mon Aug 1 22:03:38 2005 UTC (14 years, 6 months ago) by sh002i
fixed indentation (see crabby reminder below).

The code I just fixed was using four spaces for one level of indentation
and a tab character for two levels of indentation. apparently, this is a
variation on the "use spaces for indentation" philosophy that also
replaces any run of eight spaces with a tab. this is NOT the way we've
been doing things in webwork, and consistency is important (I think).

===> the webwork indentation policy <===

We use the TAB character to indicate a level of indentation, and SPACE
characters to line things up in lists. I understand there is some debate
as to whether is it appropriate to use "hard" tabs in text files. We do
it because some of the WeBWorK developers prefer to view the code with
wider indentation (say, eight columns) and some prefer narrower
indentation (say, three or four columns). Thus, we use hard tabs for
initial indentation and let each developer chose a tab width using their
editor.

Here in an example of when to use tabs and spaces. ---> represents a tab
character.

my %errors = (
--->not_found            => "The record was not found.",
--->invalid_id           => "The record ID is invalid.",
--->undefined_or_unknown => "The record was undefined or unknown.",
);

sub bar {
--->my ($self, @recs) = @_;
--->foreach my $rec (@recs) {
--->--->my $Rec = $self->getRec($rec);
--->--->if ($Rec->error) {
--->--->--->warn $errors{$Rec->error};
--->--->} else {
--->--->--->foo($Rec->a, $Rec->b);
--->--->--->baz(
--->--->--->--->origin             => $Rec->origin,
--->--->--->--->destination        => $Rec->destination,
--->--->--->--->widgets_per_second => $Rec->widgets_per_second,
--->--->--->--->score              => $Rec->score,
--->--->--->--->email_address      => $Rec->email_address,
--->--->--->);
--->--->}
--->}
}

As you can see, indentation that is used to "line up" elements on
adjacent lines uses spaces, while indentation that is used to indicate
some structural heirarchy in the code uses tabs.

Revision 3447 - Directory Listing
Modified Mon Aug 1 19:23:58 2005 UTC (14 years, 6 months ago) by dpvc
Added a hack to get around Netscape 7.1 bug with onChange event
handler not being called when an upload file has been selected.

Revision 3446 - Directory Listing
Modified Mon Aug 1 15:14:20 2005 UTC (14 years, 6 months ago) by dpvc
Fixed a bug that would cause step() to produce an error when called on
a constant value.  Also, added fact() function that was defined in
Algparser but not in Parser (which uses x! notation).

Revision 3445 - Directory Listing
Modified Mon Aug 1 14:20:16 2005 UTC (14 years, 6 months ago) by dpvc
Added missing "step" function that was defined in the AlgParser but
not in the Parser.

Be sure to copy the updated PGanswermacros.pl to the pg/macros directory.

Revision 3444 - Directory Listing
Modified Mon Aug 1 13:10:52 2005 UTC (14 years, 6 months ago) by dpvc
Make List("1,2,3") work like List("1","2","3") rather than produce a
list with one element that is a list.

Revision 3443 - Directory Listing
Modified Mon Aug 1 12:42:21 2005 UTC (14 years, 6 months ago) by dpvc
Added postfilter to Parser-based implementation of NUM_CMP so that the
student's answer is updated to be the result of evaluating the answer
(when there is no error in evaluating the answer).  This correctly
reflects the behaviour of the original NUM_CMP.

Revision 3442 - Directory Listing
Modified Mon Aug 1 12:37:35 2005 UTC (14 years, 6 months ago) by dpvc
Fixed typo that caused hilighting of the position of errors to be lost.

Revision 3441 - Directory Listing
Modified Mon Aug 1 12:04:23 2005 UTC (14 years, 6 months ago) by dpvc
Updates to make mode=>'frac' properly emulate the original num_cmp
behavior (it now allows decimals and fractions instead of requiring a
fraction).  There is also a new LimitedNumeric-StrictFraction context
(not currently used) that disallows decimals and requires fractions.

Revision 3440 - Directory Listing
Modified Mon Aug 1 12:01:39 2005 UTC (14 years, 6 months ago) by dpvc
Folded in Mike's changes for status messages.

Revision 3439 - Directory Listing
Modified Sun Jul 31 19:49:51 2005 UTC (14 years, 6 months ago) by jj
Update to match revision in database structure (chapter and section tables).

Revision 3438 - Directory Listing
Modified Sun Jul 31 18:13:50 2005 UTC (14 years, 6 months ago) by gage
Sort course names without regard to case.

Revision 3437 - Directory Listing
Modified Sun Jul 31 17:27:21 2005 UTC (14 years, 6 months ago) by gage
Updating the user interface.  The checkbox to include webwork administrators in s
a course is now on by default.

The default templates course to copy when creating a new course can now be set in global.conf.
This is the course that automatically comes up by default in the pop-up menu.

Revision 3436 - Directory Listing
Modified Sun Jul 31 17:24:50 2005 UTC (14 years, 6 months ago) by gage
Make "modelCourse" the default course to use as a model when creating a new course.
The contents of the templates directory of modelCourse is copied into the templates
directory of the new course.

Revision 3435 - Directory Listing
Modified Sun Jul 31 15:33:56 2005 UTC (14 years, 6 months ago) by gage
Changed unordered list to ordered list.

Revision 3434 - Directory Listing
Modified Sun Jul 31 15:26:18 2005 UTC (14 years, 6 months ago) by gage
User interface changes added.  All courses are sorted without regard to case.
The main page now lists all available courses and their database type -- finding the
database type slows things down a bit, so this might not be a desirable feature when
there are many courses.

It also discovers missing course.conf files.  If the course.conf file is missing then it's more
likely that the database type is not accurate.

Revision 3433 - Directory Listing
Modified Sat Jul 30 17:26:45 2005 UTC (14 years, 6 months ago) by gage
Added useful links to the macro list and the pod_docs
in addition to the incomplete manpages.

These are still temporary measures for improving the documentation
for those writing problems.

Revision 3432 - Directory Listing
Modified Sat Jul 30 01:49:44 2005 UTC (14 years, 6 months ago) by gage
I've changed errorOutput($error,$details) to accept a reference to a string
or to an array for $details.  These are automatically converted to the proper form.
References should be used when the $details points to a large number of bytes, such
as the contents of a file.

This version is not faster than the original method where $details was always a
string, sometimes a very long string.  It does seem to save memory however.

Further savings in memory could be obtained by print directly, but there are a few instances
which call errorOutput and then do further formatting before printing.

At the moment it doesn't seem to be worth it to make the change from return to print.

Revision 3431 - Directory Listing
Modified Sat Jul 30 00:13:44 2005 UTC (14 years, 6 months ago) by jj
Fix glitch in keeping menus in sync in advanced search panel, and deal
better with undefined parameters.

Revision 3430 - Directory Listing
Modified Fri Jul 29 21:43:07 2005 UTC (14 years, 6 months ago) by gage
Backing out of the changes just made for a moment.  I've discovered that making this switch:

CGI::p(CGI::code($details)),

to

CGI::code(CGI::p($details)),

speeds things up immensly.  (From 165 seconds down to 12 seconds on the example I'm doing.)

Even without any other changes. Since the other changes complicate things a bit, I'll put
off adding the ability to have $details be a reference.

It's possible that allowing $details to be passed as a reference is a good idea anyway,
on general principles.  I want first to see if it makes a difference in terms of memory
consumption.

Revision 3429 - Directory Listing
Modified Fri Jul 29 21:27:48 2005 UTC (14 years, 6 months ago) by gage
When print error output errorOutput($error, $details)
allow $details to be a reference to a string or a reference
to an array.  This may not make much difference when the details
are short, but it can make a very large difference if the details
are long.

Revision 3428 - Directory Listing
Modified Fri Jul 29 21:25:24 2005 UTC (14 years, 6 months ago) by gage
Make sure that the timers flush after every print . :-)

Revision 3427 - Directory Listing
Modified Fri Jul 29 20:45:41 2005 UTC (14 years, 6 months ago) by jj
More improvements on library - advanced panel.  Still a work in progress.

Revision 3426 - Directory Listing
Modified Fri Jul 29 19:44:04 2005 UTC (14 years, 6 months ago) by sh002i
Fix use of $SIG{__WARN__} and $SIG{__DIE__}.

* Each change to $SIG{__WARN__} and $SIG{__DIE__} is now dynamically
scoped with "local", rather than changing globally and then restoring at
the end of the block.

* The special value "DEFAULT" is used instead of sub {CORE::die(@_)} or
sub {CORE::warn(@_)} when preparing to eval STRING code.

* Where $SIG{__WARN__} and $SIG{__DIE__} are overridden to do
preprocessing with PG_errorMessage, the previously installed handlers
will be called instead of the built-in warn or die functions after
preprocessing occurs. (For example, the warn and die handlers defined in
Apache::WeBWorK or the warn handler defined in WeBWorK::PG will be
called.)

* The behavior in process_answers is modified so that the custom
handlers are installed once before the answer evaluation loop. This
causes them to be in effect during the setup/teardown code, but I don't
think this will be a problem.

Revision 3425 - Directory Listing
Modified Thu Jul 28 21:25:44 2005 UTC (14 years, 6 months ago) by jj
Fixed minor glitch from problems not associated to any textbook.

Revision 3424 - Directory Listing
Modified Thu Jul 28 21:12:53 2005 UTC (14 years, 6 months ago) by jj
Added advanced search panel for database library.  Still more features
to come.

Revision 3423 - Directory Listing
Modified Thu Jul 28 19:49:32 2005 UTC (14 years, 6 months ago) by gage
Adding final problems for modelCourse

Revision 3422 - Directory Listing
Modified Thu Jul 28 19:46:45 2005 UTC (14 years, 6 months ago) by gage
adding setDemo files to modelCourse

Revision 3421 - Directory Listing
Modified Thu Jul 28 19:45:24 2005 UTC (14 years, 6 months ago) by gage
adding more files to make modelCourse conform with hosted.webwork version

Revision 3420 - Directory Listing
Modified Thu Jul 28 19:42:53 2005 UTC (14 years, 6 months ago) by gage
updating modelCourse to conform to hosted.webwork

Revision 3419 - Directory Listing
Modified Thu Jul 28 19:39:10 2005 UTC (14 years, 6 months ago) by gage
Updating modelCourse to conform to the version currently on hosted.webwork

Revision 3418 - Directory Listing
Modified Thu Jul 28 19:11:32 2005 UTC (14 years, 6 months ago) by gage
Correcting version of modelCourse to bring it in line with the model course currently on
hosted.webwork

Revision 3417 - Directory Listing
Modified Thu Jul 28 17:22:09 2005 UTC (14 years, 6 months ago) by gage
Adding template contents to modelCourse

Revision 3416 - Directory Listing
Modified Thu Jul 28 15:24:27 2005 UTC (14 years, 6 months ago) by gage
Added a missing start_form and hidden authentication.  These had been
dropped in a recent revision.

This closes bug #806

Revision 3415 - Directory Listing
Modified Wed Jul 27 18:48:50 2005 UTC (14 years, 6 months ago) by jj
Fixed bug for problem library version 2 - now it can select problems from
all sections, or all chapters and all sections, etc.

Revision 3414 - Directory Listing
Modified Wed Jul 27 17:04:53 2005 UTC (14 years, 6 months ago) by jj
Changed column label of Id to Login Name to be consistent with other pages.
Also aligned the headers to top, which looks nicer if needed for a narrow
browser window.

Revision 3413 - Directory Listing
Modified Wed Jul 27 16:43:19 2005 UTC (14 years, 6 months ago) by jj
More changes for problem library version 2: changed interface for getting
lists of problems so variable amounts of data can be passed.  Also removed
an unneeded button.

Revision 3412 - Directory Listing
Modified Wed Jul 27 16:42:27 2005 UTC (14 years, 6 months ago) by jj
More changes for problem library version 2.

Revision 3411 - Directory Listing
Modified Wed Jul 27 16:31:18 2005 UTC (14 years, 6 months ago) by jj
Changes for problem library version 2 to support recent change to setmaker.

Revision 3410 - Directory Listing
Modified Wed Jul 27 16:30:41 2005 UTC (14 years, 6 months ago) by jj
Mainly improvements for problem library version 2.  Also removed comments
and added "Edit it" link back in for library problems.  These were not the
only read-only problems in a course, and being able to Edit it, and then
save as is pretty useful.

Revision 3409 - Directory Listing
Modified Tue Jul 26 22:28:56 2005 UTC (14 years, 6 months ago) by jj
Initial support for version 2 of the problem library.

Revision 3408 - Directory Listing
Modified Tue Jul 26 22:28:16 2005 UTC (14 years, 6 months ago) by jj
Update to support version 2 of the ProblemLibrary.

Revision 3407 - Directory Listing
Modified Tue Jul 26 21:15:04 2005 UTC (14 years, 6 months ago) by jj
Preparing for upgrading webwork part of problem library code.  Adding a
variable for version so we can maintain backward compatibility.

Revision 3406 - Directory Listing
Modified Tue Jul 26 20:49:09 2005 UTC (14 years, 6 months ago) by glarose
Update Scoring.pm to deal with versioned (gateway) sets.  For sets with
assignment_type of 'gateway' or 'proctored_gateway' we report the user's
score to be the score s/he attained on her or his most successful
version of the set.

Revision 3405 - Directory Listing
Modified Tue Jul 26 17:39:22 2005 UTC (14 years, 6 months ago) by jj
The two middle parts of the top area really go together, so the line between
them is now less emphatic.

Revision 3404 - Directory Listing
Modified Tue Jul 26 17:35:54 2005 UTC (14 years, 6 months ago) by jj
Lots of indentation fixup, and started adding code for new and improved
problem library.  Still compatible with current "Problem Library".

Revision 3403 - Directory Listing
Modified Tue Jul 26 16:35:10 2005 UTC (14 years, 6 months ago) by sh002i
first steps towards an SQL-specific version of DB.pm. I'm not quite sure
how I'm going to proceed on this. We tried too much abstraction, but I
don't want to end up with not enough abstraction, either.

Revision 3402 - Directory Listing
Modified Mon Jul 25 17:29:31 2005 UTC (14 years, 6 months ago) by jj
Add browsing by set definition files.  It will do a full search for these
files, and do some work to find the actual pg files.  Also, a minor fix
in the lists of sets in the current course (the "Select ..." line was being
added twice in some cases), some indentation fixing in the souce, and
renamed a variable.  Long ago, SetMaker used set definition files, and
then that was replaced with database lookup but a variable still had
setdef in its name.  Now that it uses both, this needing fixing.

Revision 3401 - Directory Listing
Modified Sat Jul 23 21:13:42 2005 UTC (14 years, 7 months ago) by gage
Adding experimental modules which support Preflight

Revision 3400 - Directory Listing
Modified Fri Jul 22 22:59:12 2005 UTC (14 years, 7 months ago) by gage
Made listVariables and listFormVariables synonyms for listing all variables available to
the problem.

Revision 3399 - Directory Listing
Modified Fri Jul 22 22:54:57 2005 UTC (14 years, 7 months ago) by jj
Say something useful if there is an error when creating a new set.  Also
fixed some indentation.

Revision 3398 - Directory Listing
Modified Fri Jul 22 22:48:28 2005 UTC (14 years, 7 months ago) by jj
Redo change allowing . in set names.

Revision 3397 - Directory Listing
Modified Fri Jul 22 22:34:53 2005 UTC (14 years, 7 months ago) by jj
Rearrange top panels (change really from Bill Z.) plus some tiny cosmetic
changes.

Revision 3396 - Directory Listing
Modified Fri Jul 22 21:20:07 2005 UTC (14 years, 7 months ago) by jj
Made comparison safer when turning blank fields undefined (some are already
undefined).

Revision 3395 - Directory Listing
Modified Wed Jul 20 23:56:30 2005 UTC (14 years, 7 months ago) by gage
Fixed bug #781 and #783.  Mostly involves editing the message
given instructors on the Grades.pm page.

Revision 3394 - Directory Listing
Modified Wed Jul 20 22:35:04 2005 UTC (14 years, 7 months ago) by gage
Add a check box that determines whether the csv entries are padded
with spaces.  Padding with spaces makes the text easier to read
but it interfers with some spread sheets which expect the csv entries
to contain no extraneous spaces.

We are still not using the CPAN standard CVS input/output mechanisms.
The code is in this module but it is not being used.

-- Mike

Revision 3393 - Directory Listing
Modified Wed Jul 20 18:30:59 2005 UTC (14 years, 7 months ago) by gage
Added a modification of the grades that shows where the
state_summary_msg can be added.  This message is
printed at the bottom of each problem page.  The current default
is a blank message, which means that the default message
defined in Problem.pm is printed.

There is currently no way to turn the message off entirely.  Perhaps
on the next revision.

Revision 3392 - Directory Listing
Modified Wed Jul 20 18:28:55 2005 UTC (14 years, 7 months ago) by gage
Fixed error that kept the script from working on courses whose
names contained an underscore.

Added `   ` around course names to handle courses whose names
have hyphens in them (and other weird characters)

Added print comments so that you see a running commentary of what
is being changed.  Once this script is debugged we might want
to turn these off.

Revision 3391 - Directory Listing
Modified Wed Jul 20 18:14:58 2005 UTC (14 years, 7 months ago) by gage
Changes to the reports of a problem status.  This closes bug #631.  It
also reports blank errors differently from incorrect answers to support
sequential problem graders.  Finally it adds a "state_summary_msg" field
to the problem state which can be used to completely replace the
report on the current problem state usually printed at the bottom of a
problem page.

Revision 3390 - Directory Listing
Modified Wed Jul 20 18:12:37 2005 UTC (14 years, 7 months ago) by gage
Added a ResultsAlert style ot ResultsWithError and ResultsWithoutError.
I am using it to color yellow a message alerting a student to the
existence of unanswered questions within a problem.

Revision 3389 - Directory Listing
Modified Tue Jul 19 17:22:53 2005 UTC (14 years, 7 months ago) by sh002i
changed default paths from /usr/local to /usr as per old email:

On Aug 24, 2004, at 11:23 AM, Arnold Pizer wrote:

> In the tarball for WW 1.9 I reset all paths to /usr/bin/ (rather than
> /usr/local/bin which FreeBSD or at least Hoss uses).  That way things
> work out of the box for most linux systems (all that I have played
> with).  I think it would be a good thing to do with future releases on
> WW 2.

Sounds good to me.
-sam

Revision 3388 - Directory Listing
Modified Mon Jul 18 23:10:35 2005 UTC (14 years, 7 months ago) by glarose
Add command-line utility to update sql and sql_single databases to include
gateway fields.  Use: wwdb_addgw [-h] [sql|sql_single]

Adds fields to the set and set_user tables in the WeBWorK mysql databases
that are required for the gateway module.  The script prompts for which
courses to modify.  Adding gateway database fields to existing courses
should have no effect on those courses, even if they are running under a
non-gateway aware version of the WeBWorK system.  (I haven't rigorously
tested this.)

If -h is supplied, the script hides the mysql password when it prompts for
it (this assumes that a Unix based stty -echo works).  If sql or sql_single
are supplied, they become the default database format.

Note that this has been tested, but not rigorously.  Please let me know
if you find that it does not perform as advertised.  It might be wise to
back up the database tables before using, and to check that it does what
we expect (that is, adds columns to the set and set_user tables) after
running it.

Revision 3387 - Directory Listing
Modified Sat Jul 16 22:31:41 2005 UTC (14 years, 7 months ago) by gage
Added documentation for macros used in constructing
sequential problems.

Revision 3386 - Directory Listing
Modified Sat Jul 16 22:01:08 2005 UTC (14 years, 7 months ago) by gage
Macros that aid the construction sequentialProblems.  For these
problems certain sections of text are hidden until earlier
answers have been answered correctly.

-- Mike

Revision 3385 - Directory Listing
Modified Sat Jul 16 21:59:35 2005 UTC (14 years, 7 months ago) by gage
Added support for sequentialProblems.

Revision 3384 - Directory Listing
Modified Sat Jul 16 19:24:31 2005 UTC (14 years, 7 months ago) by jj
Fixed typo related to useBaseTenLog.

Revision 3383 - Directory Listing
Modified Fri Jul 15 02:57:01 2005 UTC (14 years, 7 months ago) by jj
Fixed typo.

Revision 3382 - Directory Listing
Modified Thu Jul 14 20:37:35 2005 UTC (14 years, 7 months ago) by jj
In the login log, this will get the host's name if apache has been
configured to do that, otherwise it should get the ip number, and if
that somehow fails, we note it in the login log instead of to the user.

Revision 3381 - Directory Listing
Modified Thu Jul 14 20:20:15 2005 UTC (14 years, 7 months ago) by jj
When putting entries into the mysql database, put in "" as NULL.  The
counterpart when retreiving values (that NULL is converted to "") is
already part of gets.

Revision 3380 - Directory Listing
Modified Thu Jul 14 18:17:58 2005 UTC (14 years, 7 months ago) by jj
If HostnameLookups is off in Apache's httpd.conf, then remote_host returns
an undefined value.  Better than this fix would be to use get_remote_host,
but I couldn't get that to work on my system.

Revision 3379 - Directory Listing
Modified Thu Jul 14 16:23:11 2005 UTC (14 years, 7 months ago) by glarose
Correct commit of file with unresolved conflicts.

Revision 3378 - Directory Listing
Modified Thu Jul 14 14:30:19 2005 UTC (14 years, 7 months ago) by glarose
Add gateway template to templates hash.

Revision 3377 - Directory Listing
Modified Thu Jul 14 13:15:27 2005 UTC (14 years, 7 months ago) by glarose
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 3376 - Directory Listing
Modified Wed Jul 13 18:03:18 2005 UTC (14 years, 7 months ago) by glarose
Test commit prior to initial full commit of files for addition of the
Gateway testing module.  (CVS reports that Authz.pm has changed, but
unix diff shows no changes, so this is testing if CVS will actually
register a change to the file.)

Revision 3375 - Directory Listing
Modified Wed Jul 13 03:03:25 2005 UTC (14 years, 7 months ago) by dpvc
This file implements an easy way to add functions that are defined
within the Parser's Context.  See the comments in the file itself for
documentation on how to use it.

Revision 3374 - Directory Listing
Modified Wed Jul 13 01:46:49 2005 UTC (14 years, 7 months ago) by dpvc
Wrong correction in the previous commit.  Use CODE::push

Revision 3373 - Directory Listing
Modified Wed Jul 13 01:23:38 2005 UTC (14 years, 7 months ago) by gage
Made modifications that allow use of complex numbers in matrices.  You can
also LR decompose a non-square matrix.  Documentation is still needed
and further testing.

Revision 3372 - Directory Listing
Modified Wed Jul 13 01:22:43 2005 UTC (14 years, 7 months ago) by gage
Made modifications that allow the use of complex numbers in matrices

Revision 3371 - Directory Listing
Modified Tue Jul 12 22:39:56 2005 UTC (14 years, 7 months ago) by dpvc
Make error messages potentially localizable (by making them use
sprintf-style strings rather than variable subtitution).

Revision 3370 - Directory Listing
Modified Tue Jul 12 22:29:53 2005 UTC (14 years, 7 months ago) by dpvc
A first pass at making parser error messages localizable.  The
Context()->{error}{msg} hash can be used to specify translations of
the standard messages.  For example,

    Context()->{error}{msg}{'Division by zero'} = "Don't divide by zero, dude!";
    Context()->{error}{msg}{'Function '%s' has too many inputs'} =
        "You passed too many arguments to '%s'";

(I didn't translate into another language, here, but you could do
that, too.)

The msg hash could also be used within answer checkers to make certain
answer messages more appropriate for the given type of expected answer.

Revision 3369 - Directory Listing
Modified Tue Jul 12 21:05:37 2005 UTC (14 years, 7 months ago) by dpvc
Fixed various perl compiler warnings (due to extra "my", and so on).

Revision 3368 - Directory Listing
Modified Tue Jul 12 02:06:03 2005 UTC (14 years, 7 months ago) by dpvc
Fixed typo.

Revision 3367 - Directory Listing
Modified Tue Jul 12 02:02:46 2005 UTC (14 years, 7 months ago) by dpvc
Fixed problem with minus signs in formulas that are turned into perl
mode.  Perl needs extra spaces to avoid problems with -e type operators.

Revision 3366 - Directory Listing
Modified Tue Jul 12 00:52:47 2005 UTC (14 years, 7 months ago) by sh002i
added login logging and site_checkPassword support. closes bug #729. see
that bug for more information.

Revision 3365 - Directory Listing
Modified Tue Jul 12 00:52:00 2005 UTC (14 years, 7 months ago) by sh002i
added login log.

Revision 3364 - Directory Listing
Modified Fri Jul 8 21:45:14 2005 UTC (14 years, 7 months ago) by jj
Fixed typo in installation instructions.

Revision 3363 - Directory Listing
Modified Thu Jul 7 02:40:52 2005 UTC (14 years, 7 months ago) by gage
Added some pod documentation to this file.  It needs more -- several methods
of MatrixReal1 have been overridden

Revision 3362 - Directory Listing
Modified Wed Jul 6 15:38:06 2005 UTC (14 years, 7 months ago) by dpvc
Make tth use unicode for the preview (as it does for the calls within
the body of the problem).  Also, do the preview in display mode, but
fix the tables so that they won't have unwanted borders (really need
to fix the ur.css to get this right) and remove the unneeded initial
<BR> that tth produces.

Revision 3360 - Directory Listing
Modified Tue Jul 5 22:13:16 2005 UTC (14 years, 7 months ago) by gage
Added some pod documentation

Revision 3359 - Directory Listing
Modified Tue Jul 5 21:58:51 2005 UTC (14 years, 7 months ago) by sh002i
chech tthPreamble path and mtime to deal with changes to the file
between runs. this is necessary now that dangerousMacros.pl is cached.
Closes bug #798.

Revision 3358 - Directory Listing
Modified Tue Jul 5 20:49:16 2005 UTC (14 years, 7 months ago) by dpvc
A couple of other problem set -> homework set changes.

Revision 3357 - Directory Listing
Modified Tue Jul 5 18:56:12 2005 UTC (14 years, 7 months ago) by sh002i
renamed "problem set" to "homework set" in page content.
closes bug #797.

Revision 3356 - Directory Listing
Modified Tue Jul 5 18:20:24 2005 UTC (14 years, 7 months ago) by sh002i
Added support for the tthPreamble.tex file. The effect of this code is
the same as the corresponding code in dangerousMacros.pl:tth(), but the
technique is slightly different.

This is a hack. Eventually, we'd like to have a common out-of-sandbox
method of calling TTH.

Closes bug #799.

Revision 3355 - Directory Listing
Modified Tue Jul 5 18:16:12 2005 UTC (14 years, 7 months ago) by sh002i
fixed tiny indentation problem

Revision 3354 - Directory Listing
Modified Tue Jul 5 17:54:39 2005 UTC (14 years, 7 months ago) by dpvc
Fixed incorrect method call to SaveHiidenFlags (should have been
HiddenFlags).

Revision 3353 - Directory Listing
Modified Tue Jul 5 01:43:30 2005 UTC (14 years, 7 months ago) by dpvc
Don't load Parser.pl (it causes trouble with the Matrix.pm module).
We only needed it because of the calls to Real() that were being used
by Formula objects, so have them call Value::Real directly.

be sure to get the latest versions of Parser and Value (including the
top-level Parser.pm and Value.pm) in order to use this update.

Revision 3352 - Directory Listing
Modified Tue Jul 5 01:38:19 2005 UTC (14 years, 7 months ago) by dpvc
Modified the perl() method to make calles to Value:: directly rather
than to the main:: stubs for creating Value objects.  This will make
it work better from within packages or when Parser.pl hasn't been
loaded.

A few things still won't work in this case; e.g., calls to Closed()
for intervals (these could be handled better using ->with()) and to
functions like Factorial and log10 that are defined in Parser.pl.

Finally, there should be better object-based control over what
routines are called to create these objects, so that subclasses of the
Value objects will be able to be generated correctly.

Revision 3351 - Directory Listing
Modified Tue Jul 5 00:31:57 2005 UTC (14 years, 7 months ago) by gage
Modified formatting

Revision 3350 - Directory Listing
Modified Tue Jul 5 00:08:54 2005 UTC (14 years, 7 months ago) by dpvc
Main file that calls in the legacy modules.

Revision 3349 - Directory Listing
Modified Mon Jul 4 22:11:08 2005 UTC (14 years, 7 months ago) by gage
Add comment

Revision 3348 - Directory Listing
Modified Mon Jul 4 20:18:40 2005 UTC (14 years, 7 months ago) by dpvc
Folded in Mike's changes to checkbox_cmp.

Revision 3347 - Directory Listing
Modified Mon Jul 4 20:12:22 2005 UTC (14 years, 7 months ago) by dpvc
This is an attempt at making the traditional answer checkers call the
new Parser in place of their original ones.  That is, if you follow
the instructions in the README file, then problems that use
std_num_cmp(), fun_cmp(), etc. will really be using the new Parser
instead of the original PGanswermacros.pl versions.

The old answer checkers are still available, and can be switched back
on a site-wide, course-wide, or problem-by-problem basis.  See the
README for details.

Revision 3346 - Directory Listing
Modified Mon Jul 4 19:52:38 2005 UTC (14 years, 7 months ago) by gage
Rewrote checkbox_cmp as an AnswerEvaluator

Revision 3345 - Directory Listing
Modified Mon Jul 4 19:49:06 2005 UTC (14 years, 7 months ago) by gage
Reworked some of the code for AnswerEvaluator

The messages printed out when using the debug flag should now
be somewhat better.

-- Mike

Revision 3344 - Directory Listing
Modified Mon Jul 4 19:39:37 2005 UTC (14 years, 7 months ago) by dpvc
Fixed problem with sorting (problem with $a, $b, I think).

Revision 3343 - Directory Listing
Modified Mon Jul 4 16:21:04 2005 UTC (14 years, 7 months ago) by dpvc
Handle TeX versions of variables whose names include underscores
better.

Revision 3342 - Directory Listing
Modified Mon Jul 4 15:53:26 2005 UTC (14 years, 7 months ago) by dpvc
Better messages when adaptive parameters are too big.

Revision 3341 - Directory Listing
Modified Mon Jul 4 15:43:53 2005 UTC (14 years, 7 months ago) by dpvc
Implement "remove trailing zeros" format, like in prfmt().  I still
think '%g' works better in most cases ('%f#' will print larger values
without using scientific notation, which is nice, but will print small
numbers like .000000005 as 0, even though the fuzzy comparison of this
to zero will not be true.)

Revision 3340 - Directory Listing
Modified Mon Jul 4 15:22:40 2005 UTC (14 years, 7 months ago) by gage
Commenting out unused code.  This file still needs a lot of work.

Revision 3339 - Directory Listing
Modified Mon Jul 4 15:22:22 2005 UTC (14 years, 7 months ago) by dpvc
Don't use the overloaded Real class for doing adaptive parameter
checks (use non-fuzzy checks, since we are checking the fuzziness by hand).

Revision 3338 - Directory Listing
Modified Mon Jul 4 15:21:52 2005 UTC (14 years, 7 months ago) by gage
Restored str_filters -- removing it broke some of the other answer evaluators.

str_filters takes a string, filters it and then returns the filtered string.

The actual filters have been changed to work with answer hashes rather than with
strings, so str_filters warps the string in an answer hash before sending it through
the filters.

sorry for the breakage.

-- Mike

Revision 3337 - Directory Listing
Modified Mon Jul 4 13:18:47 2005 UTC (14 years, 7 months ago) by dpvc
Better spacing of jsMath output in the answer preview area.

Revision 3336 - Directory Listing
Modified Mon Jul 4 13:15:57 2005 UTC (14 years, 7 months ago) by dpvc
Change so as not to use raw HTML in the error messages.

Revision 3335 - Directory Listing
Modified Mon Jul 4 03:28:09 2005 UTC (14 years, 7 months ago) by dpvc
Allow Parser::Number::NoDecimals() to accept a context to be modified
(rather than always changing the curent context).

Revision 3334 - Directory Listing
Modified Sun Jul 3 20:10:37 2005 UTC (14 years, 7 months ago) by dpvc
Updates to allow string matches to be case-insensitive.  This is now
the default, and can be overridden in the Context by setting the
string's "caseSensitive" attribute.  e.g.:

	 Context()->strings->add("FooBar"=>{caseSensitive=>1});

would rewuire "FooBar" to be entered exactly as typed.

Revision 3333 - Directory Listing
Modified Sun Jul 3 20:06:33 2005 UTC (14 years, 7 months ago) by dpvc
Adjusted some spacing

Revision 3332 - Directory Listing
Modified Sun Jul 3 20:05:28 2005 UTC (14 years, 7 months ago) by dpvc
Fixed a bug in the enable/disable routines that would cause them to
always work on the current context rather than the one whose
enable/disable method was being called.

Revision 3331 - Directory Listing
Modified Sat Jul 2 17:04:31 2005 UTC (14 years, 7 months ago) by dpvc
Fixed an error in creating the tarred archives (I had messed it up
when adding the report of how many files were archived).

Revision 3330 - Directory Listing
Modified Sat Jul 2 16:52:31 2005 UTC (14 years, 7 months ago) by dpvc
Major updates to the file manager to allow it to:

1.  Show dates and sizes of files (optionally, since some browsers
    don't handle the CSS to change to a monospaced font).

2.  Provide better control over renaming of uploaded files whose
    names already exist (there is a checkbox for overwriting them
    automatically; if unchecked, the user is prompted for a new name).

3.  Allow the creation or gzipped tar archives from files in the
    course directory.  Multiple files and directories can be selected
    to be included in the archive.  If only one file is selected, the
    archive will have it's name with ".tgz" appended; if mulitple
    files are selected, the archive will get a unique name starting
    with the course ID.

4.  Provide a checkbox that controls whether uploaded .tgz archives
    are unpacked automatically, and a second that controls whether the
    unpacked archive file is deleted afterward.  Files from the
    archive will be unpacked into the current directory, and will
    overwrite existing files silently.

5.  Follow symbolic links that are to files or directories within the
    course hierarchy.  In addition, there is a new variable in
    global.conf that provides a list of "valid links"; these are
    directories to which the FileManager is allowed to follow symbolic
    links.  The system administator can add directories to this list
    in order to allow professors to access limited areas outside their
    course directory (but they still need to have a symblic link
    within their course to those areas in order to view them).

I think this covers all the current FileManager requests, and this
closes bug#791.

Revision 3329 - Directory Listing
Modified Fri Jul 1 23:52:12 2005 UTC (14 years, 7 months ago) by gage
Moved the task of sending the emails to the students to a post_processing portion of the
request handling.

When you email a class, an HTML message is returned informing you that the messages will
be sent.  Once the process is completed an email notification is sent to the user (instructor)
sending the email.

This has been lightly tested.

Revision 3328 - Directory Listing
Modified Fri Jul 1 15:52:36 2005 UTC (14 years, 7 months ago) by gage
Added commment

Revision 3326 - Directory Listing
Modified Fri Jul 1 12:14:40 2005 UTC (14 years, 7 months ago) by gage
Fixed a bug in which the constant 'function'   BASE64_ENCODED was not being
evaluated inside the matching and substitution statements.  Replaced
the constant by using the construction
our $BASE64_ENCODED = 'base64_encoded:';
instead.  The variable is properly interpolated inside the matching
and substitution statements.

Revision 3325 - Directory Listing
Modified Wed Jun 29 17:10:11 2005 UTC (14 years, 7 months ago) by gage
Added comments.

Revision 3324 - Directory Listing
Modified Wed Jun 29 16:19:42 2005 UTC (14 years, 7 months ago) by gage
Fixed bug in radio_cmp closing bug #258.  We now check to make
sure that only a single string is being passed and not an array.
(The latter occurs if checkboxes are used instead of radio buttons.)
The presence of two checked checkboxes triggers a warning.

Revision 3323 - Directory Listing
Modified Wed Jun 29 02:48:55 2005 UTC (14 years, 7 months ago) by gage
MASSIVE changes to str_cmp and related subroutines (mostly in STR_CMP).

This answer evaluator now produces an AnswerEvaluator type rather than
a subroutine.

Revision 3322 - Directory Listing
Modified Wed Jun 29 02:47:40 2005 UTC (14 years, 7 months ago) by gage
Corrected how preview_latex_strings are handled when two
AnswerHashes are ANDed or ORed.

Revision 3321 - Directory Listing
Modified Wed Jun 29 02:46:08 2005 UTC (14 years, 7 months ago) by gage
Fixed a problem with showing answers when printing hardcopy
(no idea why this wasn't reported earlier).  The CGI::checkboxes
use "on"  and nothing to denote whether a checkbox is checked.
We expect 1 or 0 (or undef).

Revision 3320 - Directory Listing
Modified Tue Jun 28 19:38:16 2005 UTC (14 years, 7 months ago) by gage
Format changes.

Revision 3319 - Directory Listing
Modified Tue Jun 28 19:36:52 2005 UTC (14 years, 7 months ago) by gage
Many changes to this file.  I've fixed multi_cmp which
will check a comma separated string of answers.

I have commented out many other routines which do not appear
to be in use.

Revision 3318 - Directory Listing
Modified Tue Jun 28 00:16:08 2005 UTC (14 years, 7 months ago) by sh002i
set closed message differentiates between sets that have not yet opened
and sets that used to be open. resolves bug #724.

Revision 3317 - Directory Listing
Modified Tue Jun 28 00:14:18 2005 UTC (14 years, 7 months ago) by sh002i
fixed comment about port number to describe new >= 8000 numbering scheme

Revision 3316 - Directory Listing
Modified Mon Jun 27 00:06:30 2005 UTC (14 years, 7 months ago) by gage
Removed warning message about "users" . We closed the bug defining
multiple users  awhile ago so we don't need this anymore.  It's
causing trouble
with UserList.pm which now has fields
visible_users and prev_visible_users.

Revision 3315 - Directory Listing
Modified Sat Jun 25 16:21:46 2005 UTC (14 years, 7 months ago) by gage
Fixed an incorrect error message when using the revert button.

Revision 3314 - Directory Listing
Modified Fri Jun 24 20:11:23 2005 UTC (14 years, 8 months ago) by gage
Fixed conceptual error in compare_vec_solution.  This should fix bug
#670.  In my opinion the entire concept of vec_solution_cmp should be
reconsidered.  In solving an underdetermined linear equation of the form
Ax-b=0 it seems to me that the solutions answer in the form:
x= a +bt+cu+ds  where a,b,c,d are vectors should simply be evaluated
to see if it satisfies Ax-b=0 for 5 or six values of a,b,c,d  --
checking the solution should use a
vector valued version of fun_cmp.

As it is, the student's coefficients for a,b,c,d are compared with the
instructors to see if they span the same space. This is quite a bit more
complicated -- and indeed the method came up with the wrong answer.

I believe I have the method corrected, but I would suggest that this
answer evaluator be replaced with one which operates more
directly and is therefore easier to maintain.  Am I missing something in
this analysis?  Has someone else created answer evaluators for this type
of problem?

 -- Mike

Revision 3312 - Directory Listing
Modified Thu Jun 23 17:53:32 2005 UTC (14 years, 8 months ago) by apizer
When sorting by clicking a label, concatonate visable user id's into a
string so that more my be sent without exceeding MSIE limit on URL's

Arnie

Revision 3311 - Directory Listing
Modified Thu Jun 23 02:33:03 2005 UTC (14 years, 8 months ago) by gage
The TIMEOUT constant which is now defined in WeBWorK::Cosntants  and is
(and was) used in WeBWorK::PG::Local  gives the time in seconds
that is allowed for rendering one PG problem.  The old value was 5 minutes
which was probably way too long. The default in WeBWorK::Constants has been
set to 60 seconds.  If no value is set then 10 seconds is used.

-- Mike

Revision 3310 - Directory Listing
Modified Wed Jun 22 16:13:18 2005 UTC (14 years, 8 months ago) by gage
Tweaked documentation

Revision 3309 - Directory Listing
Modified Wed Jun 22 15:54:16 2005 UTC (14 years, 8 months ago) by gage
Additional changes to the writeLogs functions.  Now surePathToFile
is used to make sure that the logs are created if they are not
already there.

Revision 3308 - Directory Listing
Modified Wed Jun 22 15:21:43 2005 UTC (14 years, 8 months ago) by gage
Resetting Timing::Logfile to empty.

I have left the default value for dvipngArgs so that it works with
dvipng versions greater than 1.0

Revision 3307 - Directory Listing
Modified Wed Jun 22 15:18:32 2005 UTC (14 years, 8 months ago) by gage
Use the Timing::HiRes module to calculate timing data for each
request. This gives more accurate timing data (using the unix
time gives only to the nearest second).  I am printing the elapsed
time to 3 decimal places, it could be to 6 if that is desirable.

This will help us evaluate whether changes are increasing or decreasing
the speed with which requests are serviced.

Revision 3306 - Directory Listing
Modified Wed Jun 22 15:13:40 2005 UTC (14 years, 8 months ago) by gage
Added documentation to writeTimingLogEntry

Revision 3305 - Directory Listing
Modified Tue Jun 21 19:56:00 2005 UTC (14 years, 8 months ago) by jj
New context which allows students to use C(n,r) and P(n,r) in their
answers.  To support this, the webwork versions of these functions
have been moved from PGaux... to PGcommon...

Revision 3304 - Directory Listing
Modified Tue Jun 21 19:43:59 2005 UTC (14 years, 8 months ago) by apizer
Put in hacks to get around: Maximum URL Length Is 2,083 Characters in Internet
Explorer.  When sorting by clicking labels we use the GET method and send the
user_id's of the visable users so that we only sort visable users but for over
about 110 students this is above MSIE's limit. If the total URL is under the
limit we will pass visable users. If it is over, we will not pass any and all
users will be displayed. The is almost enought to amke me use FireFox.
Maybe we should replace the GET method by POST but that requires a greater change.

Arnie

Revision 3303 - Directory Listing
Modified Tue Jun 21 14:48:02 2005 UTC (14 years, 8 months ago) by apizer
When exporting classlist to a file, tell the user the name and location of the
resulting file (e.g. templates/math1.lst) so they can find it in the File Mannager

Arnie

Revision 3302 - Directory Listing
Modified Tue Jun 21 02:13:06 2005 UTC (14 years, 8 months ago) by apizer
The classlist data can now be sorted by clicking on headings.

Revision 3301 - Directory Listing
Modified Mon Jun 20 22:40:34 2005 UTC (14 years, 8 months ago) by jj
Allow access to new file comparison module.  It is not linked to from
anywhere, but now you can bring it up with
  http://server/webwork2/coursename/instructor/compare

Revision 3300 - Directory Listing
Modified Mon Jun 20 22:38:16 2005 UTC (14 years, 8 months ago) by jj
New module for comparing two pg files in webwork.  You get both rendered
versions of the files and diffs.  This initial version is pretty much
just bare-bones.

Revision 3299 - Directory Listing
Modified Fri Jun 17 15:39:26 2005 UTC (14 years, 8 months ago) by apizer
Sorting by permission now works.

Revision 3298 - Directory Listing
Modified Thu Jun 16 15:32:02 2005 UTC (14 years, 8 months ago) by dpvc
New flag showAllErrors for when a custom checker is supplied.  This
will cause all errors generated in the user's code to be reported
(normally, messages from the Value and Parser packages are ignored).

Revision 3297 - Directory Listing
Modified Thu Jun 16 04:04:23 2005 UTC (14 years, 8 months ago) by dpvc
Fixed typos in comments.

Revision 3296 - Directory Listing
Modified Thu Jun 16 04:03:40 2005 UTC (14 years, 8 months ago) by dpvc
Fixed a problem with auto-generated functions getting an incomplete
variable list.

Revision 3295 - Directory Listing
Modified Thu Jun 16 00:52:13 2005 UTC (14 years, 8 months ago) by gage
Fixed documentation for $graph->size()

Revision 3294 - Directory Listing
Modified Wed Jun 15 23:55:17 2005 UTC (14 years, 8 months ago) by dpvc
Implements a Parser context in which only polynomials (of a single
variable) can be entered.  Only sums of multiples of powers of the
variable are allowed to be entered (though the coefficients can
contain mathematical operations).  An optional flag lets you specify
that only one term of each degree is allowed, so the student would
have to combine 1+x+x+x^2 to get 1+2x+x^2 in that case.

Revision 3293 - Directory Listing
Modified Wed Jun 15 22:21:08 2005 UTC (14 years, 8 months ago) by gage
Added separate file for rendering operation

Revision 3292 - Directory Listing
Modified Wed Jun 15 22:17:24 2005 UTC (14 years, 8 months ago) by gage
Cosmetic change to pretty_print_rh

Revision 3291 - Directory Listing
Modified Wed Jun 15 22:00:32 2005 UTC (14 years, 8 months ago) by jj
Changed whitespace removal of TeX strings to safer version.

Revision 3290 - Directory Listing
Modified Wed Jun 15 21:46:12 2005 UTC (14 years, 8 months ago) by jj
This change affects course creation using mysql.  Field types are now
determined by DB/Record/*.pm in the function SQL_TYPES.  Key fields
which are text are set to binary types (blobs) so that indexing on those
fields is case sensitive.  The net result should be fast database access
while still having it be case-sensitive in the searching.

Revision 3287 - Directory Listing
Modified Fri Jun 10 18:02:24 2005 UTC (14 years, 8 months ago) by apizer
Added the ability to change passwords on the classlist page and fixed up sorting a bit.
For example commented out sorting by permission which didn't work.  I'll work on sorting
next fixing the above and allowing profs to sort by clicking on heading as on the
Student Progress page.

Arnie

Revision 3285 - Directory Listing
Modified Fri Jun 10 16:06:55 2005 UTC (14 years, 8 months ago) by gage
Bringing HEAD and rel-2-1-patches in line

Revision 3284 - Directory Listing
Modified Fri Jun 10 16:01:29 2005 UTC (14 years, 8 months ago) by gage
Bring HEAD and rel-2-1-patches in line with each other.

Revision 3281 - Directory Listing
Modified Fri Jun 10 02:23:58 2005 UTC (14 years, 8 months ago) by gage
This file can contain a system wide message.  It is displayed on each
login page.  It's location and name are specified in global.conf

Revision 3280 - Directory Listing
Modified Fri Jun 10 02:22:24 2005 UTC (14 years, 8 months ago) by gage
Corrected usage help message

Revision 3274 - Directory Listing
Modified Thu Jun 9 11:16:01 2005 UTC (14 years, 8 months ago) by dpvc
Fixed Disable() and Enable() so that they can be called as

    Context()->functions->disable()
and
    Context()->functions->enable()

as well as

    Parser::Context::Functions::Disable()
and
    Parser::Context::Functions::Enable()

The former is the preferred syntax.

Revision 3273 - Directory Listing
Modified Mon Jun 6 02:32:20 2005 UTC (14 years, 8 months ago) by dpvc
Forgot to check hardcopy mode.  Fixed some problems with that.  The
answer array items have to turn off verbatim mode that is used when
answer are included in the hardcopy.  This causes paragraph breaks
between entries in a singleResult MultiPart that includes ans_arrays,
which make the output less pretty, but at least they show up.

Revision 3272 - Directory Listing
Modified Mon Jun 6 00:46:00 2005 UTC (14 years, 8 months ago) by dpvc
Added styles to make Parser's ans_array methods show up properly in
the student answer and correct answer blocks.

The style for the td in the results table causes havoc for tables that
are nested in there.  This solves is for Parser produced answer
arrays, but it is still messed up for the standard ans_array() and for
the output of tth (the formatted text option).

The way the style for this table is handled should probably be
changed.  Perhaps if we could override for td's in tables nested in
the results area?  I don't know enough about CSS to figure that out.

Revision 3270 - Directory Listing
Modified Mon Jun 6 00:01:44 2005 UTC (14 years, 8 months ago) by dpvc
This file implements a Multi-Part parser object that allows you to tie
several input blanks to a single answer checker that can compare the
student's answers in several blanks in order to determine which are
correct.

For example:

      $mp = MultiPart("x^2",1,-1)->with(
        singleResult => 1,
        checker => sub {
          my ($correct,$student,$self) = @_;  # get the parameters
          my ($f,$x1,$x2) = @{$student};      # extract the student answers
          Value::Error("Function can't be the identity") if ($f == 'x');
          Value::Error("Function can't be constant") if ($f->isConstant);
          return $f->eval(x=>$x1) == $f->eval(x=>$x2);
        },
      );
           .
      BEGIN_TEXT
        \(f(x)\) = \{$mp->ans_rule(20)\} produces the same value
        at \(x\) = \{$mp->ans_rule(10)\} as it does at \(x\) = \{$mp->ans_rule(10)\}.
      END_TEXT

      ANS($mp->cmp);

This produces three answer blanks all tied to the same checker, which
is supplied by the user when the MultiPart is specified.  This one
checks if two inputs to a function provide the same output.

The answer blanks can each produce a separate row in the results area
at the top of the page, or they con be combined into a single row, as
in this case.  The checker routine can provide error messages for
individual parts via the setMessage() method, or for the problem as a
whole, as above.  Finally, the ans_array() method can be used to
produce answer blanks for individual entries for those objects that
support such arrays.

See the documentation at the top of the file for additional details.

Revision 3269 - Directory Listing
Modified Sun Jun 5 23:52:11 2005 UTC (14 years, 8 months ago) by dpvc
Added ability to have Matrix, Vector and Point objects produce input
arrays similar to the ones available in PGmatrixmacros.pg.  This
provides some substantial new functionality, and it may still have
some shaking down to do, but it should not affect the existing
functionality of the answer checkers.

To create an answer array for a matrix, vector or point, use the new
ans_array() or named_ans_array() methods of these objects.  For
example:

	Context("Matrix");
	$M = Matrix([1,2],[3,4]);

	BEGIN_TEXT
	\{$M->TeX\} = \{$M->ans_array\}
	END_TEXT

	ANS($M->cmp);

This creates a matrix, then prints it ans creates an answer array of
the appropriate size for the matrix.  The answer checker will
automatically know to handle the multiple entry blanks.

To used a named answer rule, use:

	Context("Matrix");
	$M = Matrix([1,2],[3,4]);

	BEGIN_TEXT
	\{$M->TeX\} = \{$M->named_ans_array('fred')\}
	END_TEXT

	NAMED_ANS(fred => $M->cmp);

Both methods also take an optional argument that specifies the width
of the answer rules.  The default is 5.

You can get a multi-input point or vector array as well, and you can
make column vectors as follows:

        Context("Vector");
	$V = ColumnVector("1+x","3x","1-x");

	BEGIN_TEXT
	\{$V->TeX\} = \{$V->ans_array\}
	END_TEXT

	ANS($V->cmp);

Note that you can make answer arrays for matrices and vectors of
formulas as well as constants, provided the formula is an explicit
matrix or vector of formulas, and is not obtained by matrix
arithmatic.

For concistencey, all objets now have ans_rule and named_ans_rule
methods as well.  The default width is 20 for these.

Revision 3268 - Directory Listing
Modified Sun Jun 5 23:36:28 2005 UTC (14 years, 8 months ago) by dpvc
Removed some unused lines and comments.
Removed unnecessary spaces from around answer-rule-extension rules,
and made the TeX version of this rule be based on the width, as is
the case for ans_rule.

Revision 3267 - Directory Listing
Modified Sun Jun 5 23:25:20 2005 UTC (14 years, 8 months ago) by dpvc
Allow for vectors to be marked as Column Vectors.

Revision 3266 - Directory Listing
Modified Sun Jun 5 23:24:29 2005 UTC (14 years, 8 months ago) by dpvc
Better handling of delimiters that are explicitly set byt he user.
Fixed an incorrect call during object class promotion.
Added ability to sepcify that a vector is a Column Vector.

Revision 3265 - Directory Listing
Modified Sun Jun 5 23:22:20 2005 UTC (14 years, 8 months ago) by dpvc
Better handling of open and close delimiters that are explicitly set.

Revision 3264 - Directory Listing
Modified Sun Jun 5 23:18:01 2005 UTC (14 years, 8 months ago) by dpvc
Fix some incorrect calls when the promoting types to higher precedence
object types.

Revision 3263 - Directory Listing
Modified Sun Jun 5 23:08:32 2005 UTC (14 years, 8 months ago) by dpvc
Fixed a bug with Matrix->perl() method that would cause an extra level
of nesting in constant matrices.

Revision 3262 - Directory Listing
Modified Sun Jun 5 20:25:27 2005 UTC (14 years, 8 months ago) by jj
Fixed typo

Revision 3261 - Directory Listing
Modified Sat Jun 4 13:50:41 2005 UTC (14 years, 8 months ago) by dpvc
Avoid possible infinite loop with length and typeref calls.

Revision 3260 - Directory Listing
Modified Sat Jun 4 13:50:01 2005 UTC (14 years, 8 months ago) by dpvc
Remove unneeded comment.

Revision 3259 - Directory Listing
Modified Fri Jun 3 22:03:23 2005 UTC (14 years, 8 months ago) by dpvc
Added a ->with() method that lets you set fields of a Parser object as
you create it.  For example:

    $f = Formula("sqrt(x)")->with(limits=>[0,3]);

or

    ANS(Formula("(x+1)/x")->with(checkUndefinedPoints=>1,test_at=>[[0]])->cmp);

or

    ANS($f->with(test_points=>[[0],[1],[2]])->cmp);

Revision 3258 - Directory Listing
Modified Fri Jun 3 19:14:00 2005 UTC (14 years, 8 months ago) by dpvc
Better control over number of points that can be undefined, and
new ability to specify required test points plus additional random
ones.  (Previously, if you set the test points, no random points were
generated.)  For example:

     $f = Formula("(x^2-1)/(x-1)");
     $f->{test_at} = [[1]];  # test at x=1 plus random points

as opposed to

     $f->{test_points} = [[-1],[0],[1]];

which tests only the points x = -1, x = 0 and x = 1.

Revision 3257 - Directory Listing
Modified Thu Jun 2 22:50:24 2005 UTC (14 years, 8 months ago) by dpvc
Modified the Formula answer checker to allow checking of points where
the functions are undefined (i.e., attempt to check that the domains
agree).  This can be enabled by setting the checkundefinedPoints flag
in the Context(), or in the formula itself.  Test points where the
function is undefined will be retained and the student's answer will
have to be undefined at the same points.  If the points are selected
at random, the points where the function is undefined are kept in
addition to the ones where it is defined, so the required number of
test points where the function IS defined will still need to be
found.  The number of undefined points can be up to the number of
defined points.  This number can be reduced by setting the
max_undefined flag.  If you want to guarantee that a specific
undefined point be tested, you can provide that point using the
test_points field of the formula.  For example:

     Context()->flags->set(checkUndefinedPoints=>1);
     $f = Formula("(x^2-1)/(x-1)");
     $f->{test_points} = [[-1],[0],[1],[2]];
     ANS($f->cmp);

will guarantee that the singularity at x=1 is tested, so the answer
x+1 will not be marked as correct.

If an answer matches at all the test points where the functions are
both defined, but some of the undefind points differ between the two
functions, the answer checker will generate an error message
indicating that the domains of the functions don't agree.  (This is
ONLY generated with the functions match except for that.)  This can be
controlled by setting the showDomainErrors flag in the formula's cmp()
call:

     ANS($f->cmp(showDomainErrors=>0));

The default is to show these errors.

Revision 3256 - Directory Listing
Modified Thu Jun 2 19:53:06 2005 UTC (14 years, 8 months ago) by dpvc
Fixed an accidental hard-coded operation from always being "add" to
being the correct operation when promoting the operations to an object
of higher precedence.  (But since formulas are normally the highest
precedence, this will never have occurred.)

Revision 3255 - Directory Listing
Modified Thu Jun 2 18:22:58 2005 UTC (14 years, 8 months ago) by apizer
Make all sorts case insensitive

Revision 3254 - Directory Listing
Modified Thu Jun 2 16:37:11 2005 UTC (14 years, 8 months ago) by gage
Allows connection of WeBWorK with Moodle via SOAP.   This
feature is still under development.

Revision 3253 - Directory Listing
Modified Thu Jun 2 16:32:52 2005 UTC (14 years, 8 months ago) by gage
These two files provide a connection via SOAP with Moodle.  You will
need to modify the webwork.apache-config file as well.

Revision 3252 - Directory Listing
Modified Thu Jun 2 15:18:50 2005 UTC (14 years, 8 months ago) by apizer
1. Don't put any spaces before any numerical data in .csv output.  Excel
doesn't have a problem with this but other spreadsheets do according to Mike.

2. Keep backups of all totals files and never overwrite a backup.  The File
Manager can be used to delete any unwanted backups.

Arnie

Revision 3251 - Directory Listing
Modified Wed Jun 1 17:22:23 2005 UTC (14 years, 8 months ago) by apizer
Add the line
Any changes made below will be reflected in the set for ALL students.
to the top of the Hmwk Set Editor page

Arnie

Revision 3250 - Directory Listing
Modified Wed Jun 1 15:05:17 2005 UTC (14 years, 8 months ago) by apizer
Sorting to three levels is obtained by clicking on headings.

Arnie

Revision 3249 - Directory Listing
Modified Wed Jun 1 05:23:07 2005 UTC (14 years, 8 months ago) by sh002i
test of logging

Revision 3248 - Directory Listing
Modified Wed Jun 1 05:22:51 2005 UTC (14 years, 8 months ago) by sh002i
start using activitymail-from script again

Revision 3247 - Directory Listing
Modified Tue May 31 19:53:44 2005 UTC (14 years, 8 months ago) by jj
Allow periods in set names.  This has been tested for a while without
ill effects.  Such sets already exist - they can be created
in the Library Browser, but when they were exported, they could not be
re-imported.

Revision 3246 - Directory Listing
Modified Tue May 31 16:54:14 2005 UTC (14 years, 8 months ago) by apizer
On web page, display a pretty sort_mthod_name. E.g. remove underscores.

Arnie

Revision 3245 - Directory Listing
Modified Fri May 27 17:41:27 2005 UTC (14 years, 8 months ago) by apizer
pad entries with appended (rather than prepended) spaces so that sorting
will work properly in Excel, etc.

Arnie

Revision 3244 - Directory Listing
Modified Fri May 27 16:34:29 2005 UTC (14 years, 8 months ago) by apizer
The sorting order in scoring files is now never random. It is by last name,
then first name, and then by user_id and is case insensitive.  Before it
was by last name only and case sensitive.

Arnie

Revision 3243 - Directory Listing
Modified Fri May 27 04:01:39 2005 UTC (14 years, 8 months ago) by gage
changed a substitution call so that the directory path is recalculated
every time listLib is called.  Before the substitution pattern was
calculated only when the child first started up and this caused
bad problems if a new call to listLib had a different library than
the one used when the child was initialized.

-- Mike

Revision 3242 - Directory Listing
Modified Thu May 26 18:18:40 2005 UTC (14 years, 8 months ago) by apizer
Allow sorting by first name, last name, or email address.  Also default
sorting is by last name, then by first name, then by user_id where as before
it was by last name only.

Revision 3241 - Directory Listing
Modified Thu May 26 18:13:27 2005 UTC (14 years, 8 months ago) by sh002i
test of logging

Revision 3240 - Directory Listing
Modified Thu May 26 18:13:02 2005 UTC (14 years, 8 months ago) by sh002i
We're waiting on Hoss to recover the /usr/local/bin/activitymail-from
script from backup. In the mean time, I've set the from address to
webwork@math.rochester.edu, which is allowed by SourceForge.

Revision 3239 - Directory Listing
Modified Thu May 26 15:12:36 2005 UTC (14 years, 8 months ago) by apizer
(1) problem numbers are left alligned
(2) problem values are listed
(3) no special message is given if problem value is 0

Revision 3238 - Directory Listing
Modified Thu May 26 12:59:19 2005 UTC (14 years, 8 months ago) by gage
This is the model course that we use as a template to create new
courses on the development machine.

Revision 3237 - Directory Listing
Modified Fri May 20 16:34:20 2005 UTC (14 years, 9 months ago) by gage
Added a location for site_info.txt

Revision 3236 - Directory Listing
Modified Fri May 20 16:31:33 2005 UTC (14 years, 9 months ago) by gage
The info section of the login picks up HTML text contained in the
webwork2/htdocs/site_info.txt  file.  This allows a site administrator
to post a message of the day or urgent site information which is
read by everyone logging into webwork.

The contents of the
course/templates/login_info.txt file is printed after
the site_info.txt message.

Revision 3235 - Directory Listing
Modified Fri May 20 16:28:25 2005 UTC (14 years, 9 months ago) by gage
Modifications that support import and export to gzipped disk files

Revision 3234 - Directory Listing
Modified Fri May 20 16:27:43 2005 UTC (14 years, 9 months ago) by gage
Import and Export now create gzipped files in the template directory
of the admin course.  These files can than be downloaded using
the FileManager.  The export and import process are still VERY slow, but
at least it no longer matters if your browser times out.

Revision 3233 - Directory Listing
Modified Thu May 19 20:53:18 2005 UTC (14 years, 9 months ago) by gage
Fixed problems with calculating the average grade correctly.

Regularized the code in Stats and StudentProgress
the next step is to a good chunk of the code which does the actual
arithmetic to a spot in Utils/  so that it can be called by
both Stats and StudentProgress.

This fixes bug 784

Revision 3232 - Directory Listing
Modified Thu May 19 16:17:44 2005 UTC (14 years, 9 months ago) by gage
Use base64 to save answers -- this ensures that symbols
in the answer won't cause trouble.  I have added a string
to the beginning of the encoded passage:

base64_encoded:AFDWERADADFRET

-- Mike

Revision 3231 - Directory Listing
Modified Thu May 19 15:34:48 2005 UTC (14 years, 9 months ago) by sh002i
useless commit to test logging

Revision 3230 - Directory Listing
Modified Thu May 19 01:09:03 2005 UTC (14 years, 9 months ago) by gage
Committing a new xmlrpc client to replace xmlrpc_client4

Revision 3229 - Directory Listing
Modified Thu May 19 01:07:29 2005 UTC (14 years, 9 months ago) by gage
Add a stub to allow SOAP access to webservice

Revision 3228 - Directory Listing
Modified Thu May 19 01:06:02 2005 UTC (14 years, 9 months ago) by gage
Clean up commented out code.

Revision 3227 - Directory Listing
Modified Thu May 19 00:55:38 2005 UTC (14 years, 9 months ago) by gage
I've updated the clients so they work with the current configuration of
the apache server running in my directory  (http://devel.webwork.rochester.edu:8002)

Once the webwork.apache-config files have been updated they should work on other
systems that are up-to-date with the cvs.

-- Mike

Revision 3226 - Directory Listing
Modified Tue May 17 18:40:12 2005 UTC (14 years, 9 months ago) by apizer
Put a spce in after bolf faced words

Revision 3225 - Directory Listing
Modified Sat May 14 01:42:25 2005 UTC (14 years, 9 months ago) by dpvc
Changed loadMacros() to use search for amcros files via a
user-cusomizable path of directories.  This is specified in the
global.conf file, and can include any number of directories.

The path can include "." to mean look in the .pg file's directory.
This makes it possible to store special macros files with the code
that uses them.

By default, the path is ".", the course/templates/macro directory,
then the pg/macros directory (in that order).  This duplicates the
current behaviour, except for the ".", which is new.

You must also make the updates to the global.conf,
webwork2/lib/WeBWorK/PG.pm, and webwork2/lib/WeBWorK/PG/Local/pm files.

Revision 3224 - Directory Listing
Modified Sat May 14 01:32:19 2005 UTC (14 years, 9 months ago) by dpvc
Changes needed to make loadMacros() look through a path of directories
rather than just course/templates/macros and pg/macros.  You can
specify the path in the global.conf file.

You also need to make the update to pg/macros/dangerousMacros.pl

Revision 3223 - Directory Listing
Modified Wed May 11 14:32:58 2005 UTC (14 years, 9 months ago) by gage
encoding answers in base64 -- this should keep import and
export from breaking.

Revision 3222 - Directory Listing
Modified Wed May 11 14:31:10 2005 UTC (14 years, 9 months ago) by gage
Allow library search to follow links.

This is needed since the initial path to a library
from a course is usually a link from the templates directory.

Revision 3221 - Directory Listing
Modified Mon May 2 00:58:00 2005 UTC (14 years, 9 months ago) by dpvc
During a call(), if the evaluation produced an error message generated
by Value::Error, report it, otherwise report a generic message.

Revision 3220 - Directory Listing
Modified Mon May 2 00:56:19 2005 UTC (14 years, 9 months ago) by dpvc
Changed the call method to check if the function is actually defined
inthe parser before calling the parser method.  This allows things
like C(n,r) to be moved here but not automatically included in the
Context.

Revision 3219 - Directory Listing
Modified Fri Apr 29 22:30:55 2005 UTC (14 years, 9 months ago) by dpvc
Added derivative of |x| as x/|x|.

Revision 3218 - Directory Listing
Modified Fri Apr 29 02:37:13 2005 UTC (14 years, 9 months ago) by dpvc
Fixed a bug with adaptive parameters where the relative tolerance
was not being properly computed.  This allowed large constants to be
treated as correct when they shouldn't be.

Revision 3217 - Directory Listing
Modified Wed Apr 27 21:30:13 2005 UTC (14 years, 9 months ago) by dpvc
Copy parameters like limits, etc, to the newly created formula when
'C0' is added by the "upToConstant=>1" option in formula cmp().

Revision 3216 - Directory Listing
Modified Wed Apr 27 21:29:10 2005 UTC (14 years, 9 months ago) by dpvc
Use correct form of "x" with lists (rather than hack using split()).

Revision 3215 - Directory Listing
Modified Sat Apr 16 02:31:20 2005 UTC (14 years, 10 months ago) by gage
Providing an initial fix for bug 784.  I'd like to
continue to work on this module and factor out some of
the calculation loops in order to place them in Utils.

For now this hack (which involves splitting
$num_of_attemts into two variables so it can be updated
and used for two different purposes) should work.

--Mike

Revision 3214 - Directory Listing
Modified Sat Apr 9 18:33:07 2005 UTC (14 years, 10 months ago) by gage
Provide a default warning subroutine if none has been defined.

Revision 3213 - Directory Listing
Modified Sat Apr 9 18:00:42 2005 UTC (14 years, 10 months ago) by gage
Updating the webwork daemon.  Small changes that make the url compatible with
the current ports that we are using.

--Mike

Revision 3212 - Directory Listing
Modified Sat Apr 9 17:03:58 2005 UTC (14 years, 10 months ago) by gage
Bringing this client up-to-date with the current version of the xmlrpc daemon.

-- Mike

Revision 3211 - Directory Listing
Modified Sat Apr 9 15:36:26 2005 UTC (14 years, 10 months ago) by gage
Added utf8 to the modules called to set up AlgParser.  Davide Cervone found this
fix which corrects bug #754

Revision 3210 - Directory Listing
Modified Thu Mar 31 19:44:49 2005 UTC (14 years, 10 months ago) by dpvc
Added a check that the coordinates are numeric.  This avoids an error
were <i+j+k> was accepted as OK.

Revision 3209 - Directory Listing
Modified Tue Mar 29 21:23:34 2005 UTC (14 years, 10 months ago) by jj
Adding sql types for database entries for use on creation.  Many of them
can probably be tweaked to take up less space (e.g., we don't need 4 bytes
to store the published information).

Revision 3208 - Directory Listing
Modified Tue Mar 29 19:16:36 2005 UTC (14 years, 10 months ago) by dpvc
Provide an easy means of generating a custom answer checker based on
an user-supplied subroutine.  Most of the work is done by the Parser's
answer checker framework, and the user's routine is called at the
point that the student's answer is compared to the correct answer.

Revision 3207 - Directory Listing
Modified Tue Mar 29 13:14:17 2005 UTC (14 years, 10 months ago) by dpvc
Handle error messages in the list checker better.  In particular, make
the error messages generated by custom checkers called on elements in
the list look better.  Also, in an ordered list, if the student enters
extra values, call an answer checker to do a syntax check.  (By
default, use the first element again, but the user can supply a
separate object to use for the checker using the extra=>object
option.)

Revision 3206 - Directory Listing
Modified Tue Mar 29 03:25:29 2005 UTC (14 years, 10 months ago) by dpvc
Compartmentalize the equality check one step further.  The cmp_equal
method now calls a new cmp_compare method to perform the actual
comparison (rather than use == directly).  The cmp_compare method
either calls a user-supplied checker routine, or defaults to using the
== operator.  The list checker also uses cmp_compare to check the
individual items in the list.  The list checker also calls a new
cmp_list_checker method to perform the list check.  This can be
overridden by a user-supplied list-checking routine.

To supply an alternate checking routine, use the "checker" option to
the cmp() method of the correct answer object.  For example:

    sub check {
      my ($correct,$student,$ans) = @_;
      return 0 unless $correct->length == $student->length;
      my ($x,$y) = $student->value;  # break up a point;
      return $x**2 - $y**2 = 1;      # check if it is on a hyperbola
    }
    Point(1,0)->cmp(checker=>~~&check);

This will check if the student's point lies on the given hyperbola.  All
the usual error messages will be issued if the student's answer is not
a point, or is of the wrong dimension, etc.

You can use

    sub list_check {
      my ($correct,$student,$ans) = @_;
      my @correct = @{$correct}; my @student = @{$student};
      ...
      return ($score,@errors);
    }
    List(...)->cmp(list_checker=>~~&list_check);

to replace the list-checking routine with your own custom one.  The
$correct and $student values are array references to the elements in
the lists provided by the professor and student.  (Note that you do
NOT get a List() object; this allows you to handle lists of formulas,
since a List of formulas becomes a formula returning a list).  The
checker routine should return the number of correct elements in the
student's list ($score), and a list of error messages produced while
checking the two lists (@errors).  (This is a list of messages, since
you might want to include an error for each entry in the list, for
example).

If your checker or list_checker routine wants to die with an error
message, use Value::Error(message).  This will put the message in the
WeBWorK display area at the top of the page.  If you use die(message),
or if the code fails due to a runtime error, then "pink screen of
death" will be produced indicating the error and asking the student to
report the error to the professor.

Revision 3205 - Directory Listing
Modified Tue Mar 29 02:55:10 2005 UTC (14 years, 10 months ago) by dpvc
Properly handle string values in postprocessing of vectors and other
related lists.  (It used to report a dimension error for things like 'NONE').

Revision 3204 - Directory Listing
Modified Mon Mar 28 23:47:50 2005 UTC (14 years, 10 months ago) by dpvc
Peroperly negate infinities even when reduceConstants is not in
effect.

Revision 3203 - Directory Listing
Modified Mon Mar 28 23:46:06 2005 UTC (14 years, 10 months ago) by dpvc
Handle extra parentheses better.

Revision 3202 - Directory Listing
Modified Mon Mar 28 23:45:27 2005 UTC (14 years, 10 months ago) by dpvc
Handle log as ln or log properly.

Revision 3201 - Directory Listing
Modified Mon Mar 21 19:41:15 2005 UTC (14 years, 11 months ago) by apizer
## Make lookups case insensitive.  Otherwise indices seem not to be used
which slows things down drastically.  See openwebwork-devel@lists.sourceforge.net
discussion.

Revision 3200 - Directory Listing
Modified Mon Mar 21 18:51:43 2005 UTC (14 years, 11 months ago) by apizer
*** empty log message ***

Revision 3199 - Directory Listing
Modified Sun Mar 20 13:13:44 2005 UTC (14 years, 11 months ago) by dpvc
Implements an experimental answer checker for implicitly defined
curves and surfaces.

Revision 3198 - Directory Listing
Modified Sat Mar 19 01:11:06 2005 UTC (14 years, 11 months ago) by dpvc
Corrected display error where negative numbers were enclosed in
parentheses.

Revision 3197 - Directory Listing
Modified Fri Mar 18 17:28:10 2005 UTC (14 years, 11 months ago) by dpvc
Fixed sign error in correct answer, and chamged f(x) to f(x,y) in the
statement of the problem.

Revision 3196 - Directory Listing
Modified Wed Mar 16 13:40:29 2005 UTC (14 years, 11 months ago) by dpvc
Implements an answer evaluator that checks if a students answer
satisfies a given equality.  See the comments in the file for details
about how to use the answer checker.

Revision 3195 - Directory Listing
Modified Wed Mar 16 13:36:33 2005 UTC (14 years, 11 months ago) by dpvc
Now that the uverloaded operators handle subclassing properly, we can
use promotePrecedence in the compare routines, just in case we define
a subclass with even HIGHER precedence!

Revision 3194 - Directory Listing
Modified Wed Mar 16 13:35:01 2005 UTC (14 years, 11 months ago) by dpvc
removed a commented-out line that was no longer needed.

Revision 3193 - Directory Listing
Modified Wed Mar 16 13:33:59 2005 UTC (14 years, 11 months ago) by dpvc
Fixed a typo.

Revision 3192 - Directory Listing
Modified Wed Mar 16 13:30:28 2005 UTC (14 years, 11 months ago) by dpvc
Update the overloaded operators so that they can be overridden by
subclasses of the predefined object classes.  This involves calling
the objects method rather than using a hard reference to the routine
in the parent class.

Also, change the name of the string comparison routine to
compare_string to avoid conflicts with cmp that is used to produce the
answer checker for the class.

Finally, in Value.pm, promotePrecedence no longer has to do fancy
footwork to get "special" precedence to work (this was a hack to get
around the misfeature of the overloaded operators -- now that that is
being handled correctly, there is no need for it).

Revision 3191 - Directory Listing
Modified Wed Mar 16 04:17:35 2005 UTC (14 years, 11 months ago) by dpvc
Fixed error with asec and acsc where the parameters were not being
passed properly.

Revision 3190 - Directory Listing
Modified Wed Mar 16 02:47:04 2005 UTC (14 years, 11 months ago) by gage
Added a link from the logo to the home webpage for webwork.

Revision 3189 - Directory Listing
Modified Wed Mar 16 02:46:31 2005 UTC (14 years, 11 months ago) by gage
Changed port range to 8000-8999 instead of 11000 to 11999

Revision 3188 - Directory Listing
Modified Sun Feb 27 04:05:48 2005 UTC (14 years, 11 months ago) by gage
Still fiddling with the links so that one can jump from instructor
page editors to the actual display and back easily.

Revision 3187 - Directory Listing
Modified Sat Feb 26 23:03:12 2005 UTC (14 years, 11 months ago) by gage
Allow subclasses of AnswerEvalutor to be used.  Check for a match
with a substring AnswerEvaluator instead of equality.

Revision 3180 - Directory Listing
Modified Sat Feb 19 16:47:36 2005 UTC (15 years ago) by gage
Small correction that makes sure that _init subroutines are read
properly.  The original works on some versions of perl, but not on
others.

Revision 3177 - Directory Listing
Modified Fri Feb 18 00:04:09 2005 UTC (15 years ago) by dpvc
Missed one situation when making the previous update.  Fixed it.

Revision 3175 - Directory Listing
Modified Thu Feb 17 17:42:36 2005 UTC (15 years ago) by gage
Fixed error in PGProblemEditor.pm that prevented you from adding new problem in
a set.  Added comment to ProblemSetDetail.pm

Revision 3174 - Directory Listing
Modified Thu Feb 17 16:12:45 2005 UTC (15 years ago) by dpvc
Fixed it so that direct calls to the add, sub, mult, etc functions
would work as expected (even though there is no need to call them directly).

Revision 3172 - Directory Listing
Modified Tue Feb 15 21:58:54 2005 UTC (15 years ago) by dpvc
Updated the answer checkers so that you can more easily specify how
the correct answer shoudl be displayed.  In the past, you could use
something like Real(sqrt(2))->cmp(correct_ans=>"sqrt(2)") to do this,
but that is awkward.  Now the Compute() function (which parses and
then evaluates a string) sets things up so that the original string
will be what is used as the correct answer.  That means
Compute("sqrt(2)")->cmp will have the same result as the example
above.

You can also set the {correct_ans} properly of any Parser object to
have that value used as the correct answer.  For example

     $x = Real(sqrt(2));
     $x->{correct_ans} = "sqrt(2)";
     ANS($x->cmp)

would also produce the same answer checker as the two previous
examples.  All three methods should work.  Use the one that is most
convenient for you.

Revision 3171 - Directory Listing
Modified Tue Feb 15 21:53:23 2005 UTC (15 years ago) by dpvc
Improved the Real(), Complex(), Point(), Vector(), Matrix() and
String() constructors so that they will process formulas passed to
them as strings rather than requiring perl objects for these.

For example, you can use Real("2/3") rather than Real(2/3) if you
want.  Also, Real("1+x") will return a formula returning a real
(essentially the same as Formula("1+x") in this case).

Revision 3166 - Directory Listing
Modified Tue Feb 15 02:20:52 2005 UTC (15 years ago) by dpvc
Fixed an error with Matrix() that could cause it to loop infinitely
when bad data is passed to it.

Also, allow Matrix(), Point(), Vector(), and Real() to accept string
values that are evaluated to produce the value returned.

(Sorry, accidentally committed with a blank message.)

Revision 3165 - Directory Listing
Modified Tue Feb 15 02:16:10 2005 UTC (15 years ago) by dpvc
*** empty log message ***

Revision 3160 - Directory Listing
Modified Sun Feb 13 17:50:55 2005 UTC (15 years ago) by gage
Initialize dates to be now+ one week for the open date and
now + two weeks for the due and answer dates.  This makes
it less likely that the date will be undefined.

Revision 3159 - Directory Listing
Modified Thu Feb 10 22:34:01 2005 UTC (15 years ago) by dpvc
Fixed a problem that caused errors to occur when ImplicitPlane() was
called with a formula whose constant term is a negative number that is
produced by a computation.

Revision 3158 - Directory Listing
Modified Wed Feb 9 18:36:18 2005 UTC (15 years ago) by apizer
Allow labels A - ZZ

Arnie

Revision 3150 - Directory Listing
Modified Sun Feb 6 20:47:20 2005 UTC (15 years ago) by gage
Added links to problems to the stats page.

Revision 3149 - Directory Listing
Modified Sun Feb 6 20:45:39 2005 UTC (15 years ago) by gage
Fixed formatting on sidebar links.  Added sub links for student and set to the Statistics link

Revision 3140 - Directory Listing
Modified Sun Feb 6 15:20:51 2005 UTC (15 years ago) by gage
backporting this file

Revision 3136 - Directory Listing
Modified Sat Feb 5 14:07:55 2005 UTC (15 years ago) by jj
Work around IE bug for ordered lists.  Maybe someday this can be undone.

Revision 3135 - Directory Listing
Modified Sat Feb 5 01:47:49 2005 UTC (15 years ago) by gage
Changed formatting when reporting success index.  Success index is now reported in %

Revision 3134 - Directory Listing
Modified Sat Feb 5 01:34:48 2005 UTC (15 years ago) by gage
Removed commented out code.

Fixed a problem with calculating the success index. (the number of
attempts was inappropriately zeroed out with each problem.

Revision 3133 - Directory Listing
Modified Sat Feb 5 01:32:56 2005 UTC (15 years ago) by gage
minor cleanup -- removed a variable that had been defined twice.

Revision 3132 - Directory Listing
Modified Fri Feb 4 20:03:59 2005 UTC (15 years ago) by toenail
Added friendly message when no set is selected.
Fixes #750

Revision 3129 - Directory Listing
Modified Sat Jan 29 01:29:41 2005 UTC (15 years ago) by jj
Removes starting and ending whitespace from most of the form field entries
when adding users.  Some instructors add students by doing copy/paste from
elsewhere.  This frequently picks up whitespace which causes the user id
field to fail in checkKeyFields.

Revision 3128 - Directory Listing
Modified Sat Jan 29 01:23:57 2005 UTC (15 years ago) by gage
Fixed problem with hardcopy editing.  This case had simply not been handled
in the code even though it's the same behavior for hardcopy headers as it is for
screen headers.

This fixes bug #763

Revision 3127 - Directory Listing
Modified Sat Jan 29 01:21:19 2005 UTC (15 years ago) by gage
CourseID is now part of the subject line when feedback is sent.
This allows you to filter out feedback by course, which is handy
for those of use receiving lots of feedback emails.

Revision 3126 - Directory Listing
Modified Sat Jan 29 01:19:48 2005 UTC (15 years ago) by gage
Better error message if there is a multiply defined user.

Revision 3125 - Directory Listing
Modified Sat Jan 29 01:18:33 2005 UTC (15 years ago) by gage
Adds checks to make sure that the multiple user problem is really gone.

Revision 3124 - Directory Listing
Modified Fri Jan 28 21:24:18 2005 UTC (15 years ago) by sh002i
Added WWDBv3 and stylesheet settings from my local copy.

Revision 3123 - Directory Listing
Modified Fri Jan 28 01:04:06 2005 UTC (15 years ago) by gage
I believe this will fix the bug which sometimes causes multiple users
to appear in the parameters.  The problem is that Login.pm filters out
user, key, passwd  values and then passes the remaining values to
hidden_fields to be printed on the "relogin" page.  Unfortunately if
hidden_fields is passed an empty array then it prints ALL values in the
parameter hash as hidden fields.  So if only user and key are present
they will be printed as hidden fields.  If user, key and a non-filtered
paramter value are present then only the non-filtered parameter value
will be printed.

The current fix is a conditional which doesn't call hidden_fields at all
if there are no parameters left after the filtering operation.

--Mike

Revision 3111 - Directory Listing
Modified Thu Jan 27 04:26:37 2005 UTC (15 years ago) by dpvc
Added Text/Binary/Automatic buttons for conversion of line-breaks on
file uploads.  (Downloaded files are not modified, since we don't know
the user's platform.  Could try to use the HTTP_USERAGENT environment
variable to determine this.)

Also produce a warning message if a file is put in the wrong directory
(e.g., .def files should be put in templates).

Fixed some incorrect indenting.

Revision 3110 - Directory Listing
Modified Thu Jan 27 00:15:55 2005 UTC (15 years ago) by sh002i
Moved stylesheet into a separate file. Created new htdocs/css directory,
added stylesheet to that directory (ur.css). Include stylesheet in
ur.template with new "url" template escape:

<!--#url type="webwork" name="stylesheet"-->

This is 132 lines that Template.pm doesn't have to parse and 4368 bytes
that don't have to get sent to the client with every request.

Revision 3109 - Directory Listing
Modified Wed Jan 26 01:09:07 2005 UTC (15 years ago) by dpvc
Bring jsMath up to version 1.7e.

Version 1.7 introduced improved alignment in arrays, and the quality
of stretchable delimiters in some browsers.  It also fixed a couple of
bugs.  Most of the sub-versions were work-arrounds for bugs in MSIE.
Finally, there is support for controlling the style used for displayed
equations.  (Normally they are centered, but that can now be
controlled using the div.typeset CSS style.)  A number of minor
spacing problems on the PC also were corrected.

Revision 3102 - Directory Listing
Modified Tue Jan 25 21:22:35 2005 UTC (15 years ago) by toenail
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 3094 - Directory Listing
Modified Wed Jan 19 21:54:34 2005 UTC (15 years, 1 month ago) by jj
Fix typo on button.

Revision 3093 - Directory Listing
Modified Sun Jan 16 00:52:49 2005 UTC (15 years, 1 month ago) by gage
Undoing some of the temporary changes I made to the warn message.

This may break what happens with xmlrpc however. (sigh)

Revision 3092 - Directory Listing
Modified Sat Jan 15 23:56:12 2005 UTC (15 years, 1 month ago) by gage
modified the way we attempt to find out the referring page.

Revision 3091 - Directory Listing
Modified Sat Jan 15 21:24:29 2005 UTC (15 years, 1 month ago) by gage
modified code for checking multiple user names.  We'll see if we can
track down the problem.

--Mike

Revision 3090 - Directory Listing
Modified Sat Jan 15 18:46:57 2005 UTC (15 years, 1 month ago) by gage
Commented out escapeHTML() of warning messages since it prevented
using tables when outputing info about answer evaluators.

Can someone tell me whether there is another reason why not allowing
HTML in warning messages is or would be important?  If so we can
figure out another way to debug answer evaluators.

-- Mike

Revision 3089 - Directory Listing
Modified Fri Jan 14 03:15:33 2005 UTC (15 years, 1 month ago) by toenail
new regexp matching can now match on permission level too

Revision 3087 - Directory Listing
Modified Tue Jan 11 22:46:29 2005 UTC (15 years, 1 month ago) by gage
Fixing an error in defining $ENV{WEBWORK_ROOT}.  Now it points to the
generic '/opt/webwork2'

Revision 3086 - Directory Listing
Modified Sat Jan 8 16:42:10 2005 UTC (15 years, 1 month ago) by dpvc
Fixed a bug with the file editor that did not process the file name
correctly in the top-level directory.

Fixed a bug in uploading a file where the name was given a sequence
number even when one was not needed.

Revision 3076 - Directory Listing
Modified Thu Jan 6 21:04:40 2005 UTC (15 years, 1 month ago) by sh002i
fixes to set assignment code

Revision 3075 - Directory Listing
Modified Thu Jan 6 21:04:29 2005 UTC (15 years, 1 month ago) by sh002i
small changes to keep up with DBv3 API

Revision 3074 - Directory Listing
Modified Tue Jan 4 17:56:33 2005 UTC (15 years, 1 month ago) by dpvc
Fixed index problem with matrix multiplciation.  (It was returning the
transpose!)

Revision 3073 - Directory Listing
Modified Sat Jan 1 22:35:10 2005 UTC (15 years, 1 month ago) by gage
Changes made to simplify the implementation of XMLRPC access to
the functionality of WeBWorK.

There is still a problem with making sure that the proper warning
mechanism is passed into the problem rendering compartment.
The proper permissions for creating directories also does not
get transmitted properly.

I would like to change the way that the defineEnvirVars subroutine is
passed into the Local.pm object.  I'd like to either pass the
environment as a hash or explicitly pass a reference to define
EnvirVars rather than inherit it from PG.  In particular I'd like
to be able to define environment variables directly in RenderProblem.pm
instead of faking it by defining fake problem objects.

Revision 3072 - Directory Listing
Modified Sat Jan 1 22:34:43 2005 UTC (15 years, 1 month ago) by gage
Changes made to simplify the implementation of XMLRPC access to
the functionality of WeBWorK.

There is still a problem with making sure that the proper warning
mechanism is passed into the problem rendering compartment.
The proper permissions for creating directories also does not
get transmitted properly.

I would like to change the way that the defineEnvirVars subroutine is
passed into the Local.pm object.  I'd like to either pass the
environment as a hash or explicitly pass a reference to define
EnvirVars rather than inherit it from PG.  In particular I'd like
to be able to define environment variables directly in RenderProblem.pm
instead of faking it by defining fake problem objects.

Revision 3071 - Directory Listing
Modified Sat Jan 1 22:29:41 2005 UTC (15 years, 1 month ago) by gage
Temporary modifications which allow the Warning mechanisms to work when
using the XML access methods.

This needs to be looked at again.  There is also a problem with defining
permissions for creating directories.  There is a temporary #FIXME
that seems to work.

Revision 3070 - Directory Listing
Modified Tue Dec 28 04:59:52 2004 UTC (15 years, 1 month ago) by gage
Modifications that allow the XMLRPC modules to function.

Revision 3069 - Directory Listing
Modified Tue Dec 28 04:56:27 2004 UTC (15 years, 1 month ago) by gage
Added modifications that support the creation of blank problems
to be added to sets.  blankProblem.pg is stationery for a new
problem.

Revision 3068 - Directory Listing
Modified Mon Dec 27 21:41:02 2004 UTC (15 years, 1 month ago) by gage
Minimal code for a client which will connect to the xmlrpc access within webwork 2

Use at your own risk :-)

Revision 3067 - Directory Listing
Modified Mon Dec 27 18:10:52 2004 UTC (15 years, 1 month ago) by gage
Fixed problem that was preventing HTML_dpng from working.

Several initialization problems are currently hacked.

I'd like to be able to get the initial request object from SOAP::Lite;
I also don't know how to get the port that the server is using:

$Apache->server->server_hostname works but
$Apache->server->port   doesn't

Still no support for jsMath mode

Revision 3066 - Directory Listing
Modified Mon Dec 27 17:20:16 2004 UTC (15 years, 1 month ago) by gage
Catch multiply defined user warning.

Revision 3065 - Directory Listing
Modified Mon Dec 27 17:18:59 2004 UTC (15 years, 1 month ago) by gage
More files for supporting access to problems via XMLRPC code
(see comment for WebworkWebservice.pm)

Revision 3064 - Directory Listing
Modified Mon Dec 27 17:18:17 2004 UTC (15 years, 1 month ago) by gage
Adding support for an XMLRPC mode which allows access to
some of Webworks functionality.  These files largely
duplicate the functionality of the daemons running on devel.webwork
and webwork.math  which support the display of the Problem Library.

There are still some problems with displaying equations in HTML_dpng
and also in jsMath mode.

There is a lot of overlap code with PG.pm which needs to be factored out
eventually.  I'm uploading the code now so that others can suggest
improvements and ideas for factoring code.

Revision 3063 - Directory Listing
Modified Thu Dec 23 02:15:17 2004 UTC (15 years, 2 months ago) by dpvc
Work around MSIE bug.  (Can't do height:100% for the size of the
scrolling list.  Every other browser in the world seems to be able to
handle this.)

Revision 3062 - Directory Listing
Modified Tue Dec 21 18:44:49 2004 UTC (15 years, 2 months ago) by gage
fixed error when set number or problem number is not defined
Kept fix that keeps set 0 and problem 0 from being replaced by blanks.

Revision 3061 - Directory Listing
Modified Tue Dec 21 17:47:57 2004 UTC (15 years, 2 months ago) by toenail
Fixed minor display problem where empty (not-overriden) date values
were being displayed as 12/31/1969

Closes #748

Revision 3060 - Directory Listing
Modified Tue Dec 21 15:29:55 2004 UTC (15 years, 2 months ago) by toenail
Added the following features:

* Searching on any user data field
* Sorting by any two fields
* Reports duplicate names on classlist import

Closes #654, #664, and #684

Revision 3059 - Directory Listing
Modified Tue Dec 21 04:41:03 2004 UTC (15 years, 2 months ago) by sh002i
Added course renaming to CourseManagement, CourseAdmin.

It works like this:

- move the course directory
- move any course subdirectories that are still at their old locations
  (like if they were outside the course directory)
- create a new database using addCourseHelper()
- copy the course data into the new course database using
  copyCourseDataHelper() (INSERT INTO $new SELECT * FROM $old)
- delete the old course database using deleteCourseHelper()

TODO:
* write helpers for gdbm and sql layouts
* write command-line script

Revision 3058 - Directory Listing
Modified Mon Dec 20 21:08:06 2004 UTC (15 years, 2 months ago) by sh002i
expansion of Mike's caching fixes. see below:

* separate setCachedUser($userID) method allows explicit setting of user
  to cache. This is needed because $r->param("user") is not always set
  (i.e. in the case of the initial request for a guest login.
* don't store a copy of a reference to %permissionLevels, as this isn't
  any more efficient than accessing the course environment directly.
* always construct the Authz instance.
* fall back on accessing the database if hasPermissions() is called with
  a user other than the cached user (or if no user is cached).
* warning output (and assume no permission) if PermissionLevel record
  doesn't exist or permission level is empty.
* warn (and assume no permission) if activity is not found in the
  %permissionLevels hash.
* don't pass $ce and $db to new(), since they are available in $r.

Revision 3057 - Directory Listing
Modified Mon Dec 20 16:21:50 2004 UTC (15 years, 2 months ago) by gage
Fixed double declaration of $user

Revision 3056 - Directory Listing
Modified Mon Dec 20 15:24:16 2004 UTC (15 years, 2 months ago) by sh002i
escaped hyphen in r.e. to avoid interpretation as range operator.

Revision 3055 - Directory Listing
Modified Sun Dec 19 22:41:34 2004 UTC (15 years, 2 months ago) by gage
Fixed small bug in the message passing facility

Revision 3054 - Directory Listing
Modified Sun Dec 19 22:39:59 2004 UTC (15 years, 2 months ago) by gage
Changed message passing when there is a duplicate administrator.

use addbadmessage() facility instead of warn

Revision 3053 - Directory Listing
Modified Sun Dec 19 22:08:36 2004 UTC (15 years, 2 months ago) by gage
The permission levels are now checked when the authz instance
is created.  This reduces the number of calls to the database.
It could cause trouble if there is a change in permission status
between the time when the instance is created and when it is used.
Since this all occurs while rendering one webpage, I don't think
that this time difference will ever cause trouble.

-- Mike

Revision 3052 - Directory Listing
Modified Sun Dec 19 00:53:27 2004 UTC (15 years, 2 months ago) by gage
Changed
unless $value =~ m/^[\w-.]*$/

to
unless $value =~ m/^[.\w-]*$/

for some reason having the period at the end was causing the warning:

False [] range "\w-" before HERE mark in regex m/^[\w- << HERE .]*$/ at
/home/gage/webwork/webwork-modperl/lib/WeBWorK/DB.pm line 1974.

Revision 3051 - Directory Listing
Modified Sat Dec 18 22:35:00 2004 UTC (15 years, 2 months ago) by gage
Call  $r->param("user") only in scalar context

Revision 3050 - Directory Listing
Modified Sat Dec 18 22:21:26 2004 UTC (15 years, 2 months ago) by gage
allow . in login names   -- cross your fingers and hope this works.

Revision 3049 - Directory Listing
Modified Sat Dec 18 22:20:42 2004 UTC (15 years, 2 months ago) by gage
make sure that $r->param("users") is only used in a scalar context.

Revision 3048 - Directory Listing
Modified Sat Dec 18 22:11:21 2004 UTC (15 years, 2 months ago) by gage
Make sure that $r->param("user") is only called in scalar context.

Revision 3047 - Directory Listing
Modified Sat Dec 18 21:52:58 2004 UTC (15 years, 2 months ago) by gage
Changed comment to This answer is the same as the one you just submitted
or previewed.  This addreses bug #557

Revision 3046 - Directory Listing
Modified Sat Dec 18 21:22:20 2004 UTC (15 years, 2 months ago) by gage
Modifications to make sure that problems with weight 0
print weight as 0 rather than as a blank.

This addresses bug  #730

Revision 3045 - Directory Listing
Modified Sat Dec 18 20:41:26 2004 UTC (15 years, 2 months ago) by gage
Added a line to check for empty records.  The hope is that this fixes
bug #733

Revision 3044 - Directory Listing
Modified Sat Dec 18 20:31:46 2004 UTC (15 years, 2 months ago) by gage
Added summary column for the total value of webwork problems done (sum
of the weights of each of the problems correctly completed)

Added column for percentage correct (total weight of correct problems
divided by the total weight of all of the problems).

This set still needs major dehackifying!!!!!!
This fixes bug #747.  I hope that I've put in enough
checks to satisfy bug #746 as well.  I will close that bug.

Revision 3043 - Directory Listing
Modified Sat Dec 18 16:12:19 2004 UTC (15 years, 2 months ago) by gage
Added an option to rename the "Change Display Settings" submit buttton.

Revision 3042 - Directory Listing
Modified Sat Dec 18 16:11:16 2004 UTC (15 years, 2 months ago) by gage
Removed the student progress lines from the Stats.pm page.  They are
still available in the StudentProgress.pm module

Revision 3041 - Directory Listing
Modified Sat Dec 18 16:09:54 2004 UTC (15 years, 2 months ago) by gage
Changed some UI features.  In particular the scrolling list is now
used both for selecting students to send mail to AND for selecting
the preview message (if multiple students are selected the first is used
as the preview).  The "command table" is now one line taller than it
was, but it it now effectively narrower (just two columns) -- the last
column has only the row and column options and is not used that much.

Revision 3040 - Directory Listing
Modified Fri Dec 17 18:06:38 2004 UTC (15 years, 2 months ago) by gage
Removed a warn statement

Made sure that r->param('user') is only called in scalar
context.

Revision 3039 - Directory Listing
Modified Fri Dec 17 17:11:46 2004 UTC (15 years, 2 months ago) by gage
Added a check to handle  the  case when the $errors flag was not defined.

Revision 3038 - Directory Listing
Modified Fri Dec 17 17:10:05 2004 UTC (15 years, 2 months ago) by gage
Added some styles to use when editing a temporary file.  This alerts
the user that the file has not yet been permanently saved.

Revision 3037 - Directory Listing
Modified Fri Dec 17 17:08:37 2004 UTC (15 years, 2 months ago) by gage
Massive overhaul of this file to put dehackify the code, at least somewhat.

The cases for handling each file type and each action are pretty cleanly laid out.

The next reasonable step would be to reorganize the code by subclassing it.

Since in almost all cases the link knows what file type it wants to be edited
when it calls the editor, the links could specifically call the subclass editor.
This would either reduce or eliminate the need for the file_type parameter.

Properly done subclassing would make it easier to add a new file type.

Currently you need to add code in about four  places:  UI code in body,
action code in saveFileChanges,   path finding code in getFilePaths,
and redirect code in pre_header_initialize.

For a subclass this code could all be adjacent.

Revision 3036 - Directory Listing
Modified Fri Dec 17 17:03:43 2004 UTC (15 years, 2 months ago) by gage
Added a link which allows one to add a blank problem to an existing set.

Revision 3035 - Directory Listing
Modified Fri Dec 17 17:02:37 2004 UTC (15 years, 2 months ago) by gage
Added code to display {status_message} when call is redirected from
PGProblemEditor.pm

If course_info.txt does not exist as a file create it (using `echo "">course_info.txt`)
Hope that's not too dangerous, but I didn't feel like opening the file :-)

This keeps unnecessary warnings from occuring later when a user would be warned that the
course_info.txt file didn't exist.

Revision 3034 - Directory Listing
Modified Fri Dec 17 16:59:48 2004 UTC (15 years, 2 months ago) by gage
Move options subroutine up to ContentGenerator.

Cleanup commented out code

Add facility for reading {status_message} to display messages when a call
is redirected from PGProblemEditor.pm

Revision 3033 - Directory Listing
Modified Fri Dec 17 16:57:53 2004 UTC (15 years, 2 months ago) by gage
Preserve display options when using the "up" arrow in navigation.

Some code that helps pass messages through {status_message}  when a call
is redirected to ProblemSet (e.g. from PGproblemEditor.pm)

Revision 3032 - Directory Listing
Modified Fri Dec 17 16:55:04 2004 UTC (15 years, 2 months ago) by gage
No need to show options on the Home.pm page

Revision 3031 - Directory Listing
Modified Fri Dec 17 16:53:01 2004 UTC (15 years, 2 months ago) by gage
Make sure that the instructor links preserve the displayOptions, namely
the displayMode and the ability to view the old answers.

Revision 3030 - Directory Listing
Modified Thu Dec 16 02:30:42 2004 UTC (15 years, 2 months ago) by sh002i
ordered has_many, creation date setting.

* has_explicit_order() adds a wrapper for a has_many() accessor that
sorts the returned records as per a comma-separated list field.
* creation dates are now set properly using a before_create trigger.
* also there is the beginnings of an assign_to_participants() routine.

Revision 3029 - Directory Listing
Modified Thu Dec 16 02:25:47 2004 UTC (15 years, 2 months ago) by sh002i
added fisher_yates_shuffle() inplace-randomization routine.

Revision 3028 - Directory Listing
Modified Fri Dec 10 16:39:00 2004 UTC (15 years, 2 months ago) by sh002i
commit test

Revision 3027 - Directory Listing
Modified Fri Dec 10 16:38:11 2004 UTC (15 years, 2 months ago) by sh002i
quote from address

Revision 3026 - Directory Listing
Modified Fri Dec 10 16:16:38 2004 UTC (15 years, 2 months ago) by sh002i
added note (really just a commit test)

Revision 3025 - Directory Listing
Modified Fri Dec 10 16:13:22 2004 UTC (15 years, 2 months ago) by sh002i
fix for from address

Revision 3024 - Directory Listing
Modified Fri Dec 10 16:07:57 2004 UTC (15 years, 2 months ago) by sh002i
fixed name of _bool_normalizer, removed old student_id constraint

Revision 3023 - Directory Listing
Modified Fri Dec 10 16:05:53 2004 UTC (15 years, 2 months ago) by sh002i
mail from: "$RealName via activitymail <activitymail@devel...>"

Revision 3022 - Directory Listing
Modified Thu Dec 9 23:28:35 2004 UTC (15 years, 2 months ago) by sh002i
fixes, uniqueness constraints, CSV list handling

* internal subroutines now have `_' prefix.
* added uniqneness constraints (has_unique_columns)
* added has_cs_list() to declare that a column is a comma-sep. list

Revision 3021 - Directory Listing
Modified Thu Dec 9 16:30:12 2004 UTC (15 years, 2 months ago) by sh002i
refactored status/role lookups, added abstract set/problem support

Revision 3020 - Directory Listing
Modified Thu Dec 9 16:28:20 2004 UTC (15 years, 2 months ago) by sh002i
activitymail now logs to SF mailing list

Revision 3019 - Directory Listing
Modified Tue Dec 7 16:04:18 2004 UTC (15 years, 2 months ago) by sh002i
fixed incorrect error message for getUserProblems()

Revision 3018 - Directory Listing
Modified Tue Dec 7 03:47:57 2004 UTC (15 years, 2 months ago) by sh002i
docs

Revision 3017 - Directory Listing
Modified Tue Dec 7 02:42:59 2004 UTC (15 years, 2 months ago) by sh002i
ordering, normalizers, booleans, documentation. details:

* changed order of table classes so that the has_a() part of a
  relationship occurs before the has_many() part.
* added WeBWorK::DBv3::NormalizerMixin, simiar to Class::Trigger, to
  manage normalizer subroutines for per-column normalization.
* overloaded normalize_column_values to all normalizers for changed
  fields.
* implemented predefined has_a_boolean() normalizer definition.
* defined boolean fields in tables using has_a_boolean().
* added/clarified docs.

still to do:

* add inflators/deflators for durations
* add triggers for setting creation dates

Revision 3016 - Directory Listing
Modified Fri Dec 3 02:19:03 2004 UTC (15 years, 2 months ago) by sh002i
creates user, section, recitation, and participant records.

Revision 3015 - Directory Listing
Modified Thu Dec 2 04:31:36 2004 UTC (15 years, 2 months ago) by sh002i
support for importing roles and statuses from global.conf. the rest
should be considerably easier than this. i hope. i really do.

Revision 3014 - Directory Listing
Modified Wed Dec 1 21:54:54 2004 UTC (15 years, 2 months ago) by apizer
Add hack to get around MSIE peekaboo bug.

Arnie

Revision 3013 - Directory Listing
Modified Thu Nov 25 05:51:37 2004 UTC (15 years, 2 months ago) by sh002i
changed upgrade_schema to take a DBI database handle instead of
connecting/disconnecting itself.

Revision 3012 - Directory Listing
Modified Thu Nov 25 05:50:51 2004 UTC (15 years, 2 months ago) by sh002i
the beginnings of an upgrade script. currently deals with converting
permission levels to roles properly! :)

Revision 3011 - Directory Listing
Modified Thu Nov 25 05:50:01 2004 UTC (15 years, 2 months ago) by sh002i
a few things.

* added lock/unlock tables
* stopped using Class::DBI::MySQL and Class::DBI::AutoLoader
* init() routine allows runtime settings
* LOCK/UNLOCK TABLES wrapper
* inflation/deflation for role.privs (done manually with &priv_list
since you have to associate a column with a class to use has_a, and I
just want it to be a damn list!)
* a tiny bit more testing

Revision 3010 - Directory Listing
Modified Tue Nov 23 02:50:13 2004 UTC (15 years, 3 months ago) by sh002i
preliminary WWDBv3 support.

Features:

* automatic schema updating (see WeBWorK::DBv3::Utils).
* basic table structure constructed by set_up_table().
* has_a/has_many relationships declared explicitly.
* works!

Limitations:

* uses Class::DBI::mysql explicitly. Needs to use BaseDSN instead.
* connection information is currently hardcoded into DBv3.pm. It needs
to be brought in at compile time, so there are constraints on how this
can be done.
* no wrappers for LOCK/UNLOCK TABLES yet.
* no inflating/deflating for dates, comma separated lists, etc. yet.
* basically no testing.

Revision 3009 - Directory Listing
Modified Mon Nov 22 17:43:16 2004 UTC (15 years, 3 months ago) by sh002i
added $guest to permissionLevels hash. Guests to not have the following
permissions that students do:

* report_bugs
* submit_feedback
* change_password
* change_email_address
* record_answers_after_open_date_with_attempts

Revision 3008 - Directory Listing
Modified Mon Nov 22 17:21:09 2004 UTC (15 years, 3 months ago) by sh002i
fixed headers

Revision 3007 - Directory Listing
Modified Mon Nov 22 17:19:39 2004 UTC (15 years, 3 months ago) by sh002i
made similar changes to default admin-course classlist. admin's password
is "admin".

Revision 3006 - Directory Listing
Modified Mon Nov 22 17:16:32 2004 UTC (15 years, 3 months ago) by sh002i
new default classlist file.

* no more all-caps first/last names
* global_user status is drop
* global_user and practice users have empty passwords specified
* practice users have permission level -5
* professor has password "professor" specified
* professor has permission level 10

Revision 3005 - Directory Listing
Modified Sat Nov 20 16:57:09 2004 UTC (15 years, 3 months ago) by dpvc
Bring jsMath up to date.  In particular, include changes that provide
new LaTeX environments (matrix, pmatrix, etc.)

Revision 3004 - Directory Listing
Modified Fri Nov 19 19:13:53 2004 UTC (15 years, 3 months ago) by sh002i
added "login" permission, handling code. also fixed some heinous
formatting.

Revision 3003 - Directory Listing
Modified Fri Nov 19 19:13:20 2004 UTC (15 years, 3 months ago) by sh002i
added "login" permission, handling code.

Revision 3002 - Directory Listing
Modified Fri Nov 19 18:30:16 2004 UTC (15 years, 3 months ago) by sh002i
"remove this comment on the next line if they get left in by accident"

Revision 3001 - Directory Listing
Modified Thu Nov 18 16:04:37 2004 UTC (15 years, 3 months ago) by gage
These changes elevate the Options panel to ContentGenerator.pm
Some of the changes are a bit hackish, but I believe that they
are sufficient for the moment.  I expect much of the machinery
to be replaced by an "options" table in the new database.

The current options state consists of two values:  displayMode (for
viewing equations) and showOldAnswers (for showing answers between
one session and the next).  "Sticky answers" which show form entries
when the form is submitted and returned is a feature which is always on,
as I believe it should be.

Known bugs:

The options state is lost when visiting the Instructor pages, editing
problems, and probably sending instructor feedback.  (I have made sure
that state was passed for the main links, I hope, but there are many
other possible links where state can get lost. My hope is that storing
state in the database will make it unnecessary to hunt down every link
where state needs to be preserved.)

Default options are set in the subroutine options in ContentGenerator.pm
This is called before body, where the option panel is displayed, but not
before the initialization phase.  Modules that need options in the
initialization phase (currently only Problem.pm) need to set them
themselves.

Removed File Transfer from instructor links.  File Manager works fine.

Revision 3000 - Directory Listing
Modified Thu Nov 18 16:00:37 2004 UTC (15 years, 3 months ago) by gage
These changes elevate the Options panel to ContentGenerator.pm
Some of the changes are a bit hackish, but I believe that they
are sufficient for the moment.  I expect much of the machinery
to be replaced by an "options" table in the new database.

The current options state consists of two values:  displayMode (for
viewing equations) and showOldAnswers (for showing answers between
one session and the next).  "Sticky answers" which show form entries
when the form is submitted and returned is a feature which is always on,
as I believe it should be.

Known bugs:

The options state is lost when visiting the Instructor pages, editing
problems, and probably sending instructor feedback.  (I have made sure
that state was passed for the main links, I hope, but there are many
other possible links where state can get lost. My hope is that storing
state in the database will make it unnecessary to hunt down every link
where state needs to be preserved.)

Default options are set in the subroutine options in ContentGenerator.pm
This is called before body, where the option panel is displayed, but not
before the initialization phase.  Modules that need options in the
initialization phase (currently only Problem.pm) need to set them
themselves.

Revision 2998 - Directory Listing
Modified Thu Nov 18 01:45:29 2004 UTC (15 years, 3 months ago) by gage
Made modifications to the user interface so that "show saved answers"
can now be turned off.  If the default mode was on, then this feature
could never be turned off. (Unchecked check boxes don't return 0, they
are simply not defined.)

Revision 2996 - Directory Listing
Modified Thu Nov 11 15:52:08 2004 UTC (15 years, 3 months ago) by gage
Added line to shift column numbers so that they start at 1 instead of
0 (this brings this in line with the modifications made to SendMain.pm)

To do:  merge the two procedures used in sendmail and in grades.pm which
merge scoring data with the message.  Then future updates won't break
the code.

Revision 2995 - Directory Listing
Modified Thu Nov 11 15:40:21 2004 UTC (15 years, 3 months ago) by gage
removed FIXME comment that is no longer needed.

Revision 2994 - Directory Listing
Modified Wed Nov 10 21:17:38 2004 UTC (15 years, 3 months ago) by toenail
Enormous speed increase by not doing unneccesary
assignments or deletions when the user/set record already exists (or not).

Revision 2991 - Directory Listing
Modified Tue Nov 9 15:23:38 2004 UTC (15 years, 3 months ago) by gage
Defined some variables that were causing warning messages.
Someone more familiar with this script should look at this
to make sure that this subsection of the parser is working correctly.

-- Mike

Revision 2990 - Directory Listing
Modified Tue Nov 9 00:05:27 2004 UTC (15 years, 3 months ago) by gage
Made changes which remove duplication between the code in Webwork.pm
and code in WW2.1  -- This should make it easier to maintain the webwork
daemons when changes are made in the core webwork code.

The changes in Daemon_ww.pm were aimed at trying to make it easier
to reload the script into the daemon without shutting down the daemon.

If the daemon shuts own its is sometimes some time before the socket
attached to the port is released.  This code attempts to fix this, but
not very successfully.


More changes are on the way so that the daemon can run behind apache.

Revision 2989 - Directory Listing
Modified Tue Nov 9 00:03:37 2004 UTC (15 years, 3 months ago) by gage
Made changes which remove duplication between the code in Webwork.pm
and code in WW2.1  -- This should make it easier to maintain the webwork
daemons when changes are made in the core webwork code.

More changes are on the way so that the daemon can run behind apache.

Revision 2988 - Directory Listing
Modified Fri Nov 5 17:54:12 2004 UTC (15 years, 3 months ago) by jj
Avoids some name collisions for images converted from gif to png in
hardcopy, specifically if two problems have different gif images
with the same name (but the gifs are in different directories).  Now one
png won't overwrite the other.

Revision 2987 - Directory Listing
Modified Thu Nov 4 22:05:29 2004 UTC (15 years, 3 months ago) by apizer
Fixed bug wrt relTol

Arnie

Revision 2986 - Directory Listing
Modified Thu Nov 4 22:01:18 2004 UTC (15 years, 3 months ago) by apizer
relative tolerence was not being used correctly. Fixed this.

Arnie

Revision 2985 - Directory Listing
Modified Wed Nov 3 22:39:21 2004 UTC (15 years, 3 months ago) by dpvc
Fixed a bug in processing absolute values with implicit
multiplication.

Revision 2984 - Directory Listing
Modified Wed Nov 3 22:00:56 2004 UTC (15 years, 3 months ago) by dpvc
Modifications needed for the control of jsMath's "missing font"
message.

Revision 2983 - Directory Listing
Modified Wed Nov 3 22:00:10 2004 UTC (15 years, 3 months ago) by dpvc
Added ability to control the "Missing TeX Fonts" message generated by
jsMath.  There are now two parameters in global.conf that control the
message.  You can set

	$pg{displayModeOptions}{jsMath}{reportMissingFonts}

to 0 if you want no font messages, and you can set

	$pg{displayModeOptions}{jsMath}{missingFontMessage}

to a string that should be issued when the fonts are missing.  This
can be an HTML string, so you can include a link to the jsMath font
page, as the current message does.  The message will be set in a <DIV>
of class NoFontMessage, so the style attributes can be controled in
the content-generators template file.

Revision 2982 - Directory Listing
Modified Wed Nov 3 21:27:42 2004 UTC (15 years, 3 months ago) by dpvc
Fixed an error where any plane is accepted if the d is 0 in
ax + by + cz = 0.

Revision 2981 - Directory Listing
Modified Wed Nov 3 19:54:25 2004 UTC (15 years, 3 months ago) by toenail
help files now use module name instead of urlpath node name

Revision 2979 - Directory Listing
Modified Wed Nov 3 19:52:00 2004 UTC (15 years, 3 months ago) by toenail
New help file names match module names
rather than urlpath node names

Revision 2978 - Directory Listing
Modified Wed Nov 3 17:39:00 2004 UTC (15 years, 3 months ago) by toenail
Renaming help files

Revision 2974 - Directory Listing
Modified Tue Nov 2 20:47:55 2004 UTC (15 years, 3 months ago) by sh002i
updated LICENSE and README files.

Revision 2973 - Directory Listing
Modified Tue Nov 2 20:47:35 2004 UTC (15 years, 3 months ago) by sh002i
updated $main::VERSION

Revision 2972 - Directory Listing
Modified Tue Nov 2 20:47:23 2004 UTC (15 years, 3 months ago) by sh002i
added README and LICENCE files.

Revision 2971 - Directory Listing
Modified Tue Nov 2 19:58:57 2004 UTC (15 years, 3 months ago) by sh002i
POD fix.

Revision 2970 - Directory Listing
Modified Tue Nov 2 19:58:31 2004 UTC (15 years, 3 months ago) by sh002i
better handling when no display module is found for the path.

Revision 2969 - Directory Listing
Modified Tue Nov 2 01:55:21 2004 UTC (15 years, 3 months ago) by dpvc
Fixed typo in a comment.

Revision 2967 - Directory Listing
Modified Thu Oct 28 22:34:25 2004 UTC (15 years, 3 months ago) by dpvc
Bring jsMath.js up to date  (fixed problem with font-checking algorithm in
PC version of Mozilla)

Revision 2966 - Directory Listing
Modified Wed Oct 27 17:48:05 2004 UTC (15 years, 3 months ago) by toenail
Every problem after one that was marked as a repeat was being marked as a repeat

closes #725

Revision 2965 - Directory Listing
Modified Tue Oct 26 03:16:40 2004 UTC (15 years, 3 months ago) by jj
Beautification of set names.

Revision 2964 - Directory Listing
Modified Tue Oct 26 03:14:01 2004 UTC (15 years, 3 months ago) by jj
Beautification of set names in Student Progress page.

Revision 2963 - Directory Listing
Modified Tue Oct 26 03:13:00 2004 UTC (15 years, 3 months ago) by jj
Beautification of set names in grade module.

Revision 2962 - Directory Listing
Modified Tue Oct 26 00:14:32 2004 UTC (15 years, 3 months ago) by jj
Tidying of set names: don't automatically write "set" (teacher can include
that), and convert _ to non-breaking spaces in set name.

Revision 2961 - Directory Listing
Modified Tue Oct 26 00:04:28 2004 UTC (15 years, 3 months ago) by jj
More fix on the Assigned Sets/User ID column heading so that they are right
both in and out of editMode.

Revision 2960 - Directory Listing
Modified Mon Oct 25 22:40:19 2004 UTC (15 years, 3 months ago) by jj
When making a new set, leave the name as it was input.  Should resolve
confusion when making sets starting with "set".

Revision 2959 - Directory Listing
Modified Mon Oct 25 22:37:32 2004 UTC (15 years, 3 months ago) by jj
Whitespace changes, mainly a few tabs to spaces.

Revision 2958 - Directory Listing
Modified Sun Oct 24 14:36:35 2004 UTC (15 years, 4 months ago) by jj
This seems to fix bug 713.  I don't see why one would want the line below
commented out.

Revision 2957 - Directory Listing
Modified Sun Oct 24 14:33:36 2004 UTC (15 years, 4 months ago) by jj
Make combinations function C(n,k) return 0 when k>n, which is standard.
Maybe P(n,k) should do the same instead of throwing an error?

Revision 2956 - Directory Listing
Modified Fri Oct 22 23:06:44 2004 UTC (15 years, 4 months ago) by sh002i
pod fixes

Revision 2955 - Directory Listing
Modified Fri Oct 22 22:59:53 2004 UTC (15 years, 4 months ago) by sh002i
POD fixes

Revision 2954 - Directory Listing
Modified Fri Oct 22 18:03:14 2004 UTC (15 years, 4 months ago) by sh002i
send call stack to error log, use Apache::Log to log warnings.

Revision 2952 - Directory Listing
Modified Thu Oct 21 23:56:21 2004 UTC (15 years, 4 months ago) by gage
Adjusted the headers for the dates

Revision 2948 - Directory Listing
Modified Thu Oct 21 01:44:14 2004 UTC (15 years, 4 months ago) by sh002i
added "User Value" and "Global Value" headers (bug #719)

Revision 2947 - Directory Listing
Modified Thu Oct 21 01:34:40 2004 UTC (15 years, 4 months ago) by sh002i
fixed bug #721.

Revision 2946 - Directory Listing
Modified Thu Oct 21 01:22:51 2004 UTC (15 years, 4 months ago) by sh002i
quick fix for errors while reading directories (bug #720).

Revision 2945 - Directory Listing
Modified Thu Oct 21 01:16:18 2004 UTC (15 years, 4 months ago) by sh002i
fixed typo

Revision 2944 - Directory Listing
Modified Thu Oct 21 01:06:19 2004 UTC (15 years, 4 months ago) by sh002i
formatting fixes (sorry jj, dpvc).

Revision 2943 - Directory Listing
Modified Wed Oct 20 23:29:50 2004 UTC (15 years, 4 months ago) by dpvc
Wrong column heading corrected.

Revision 2942 - Directory Listing
Modified Wed Oct 20 21:52:06 2004 UTC (15 years, 4 months ago) by dpvc
The lines of data were being sorted incorrectly due to the time-stamp
that is being added to the line, and due to the correct/incorrect
answer data that was added in order to color-code the answer display.

Revision 2941 - Directory Listing
Modified Wed Oct 20 19:02:43 2004 UTC (15 years, 4 months ago) by sh002i
fixed indentation -- please read the webwork coding standards.
http://devel.webwork.rochester.edu/twiki/bin/view/Webwork/CodingStandards

Revision 2940 - Directory Listing
Modified Wed Oct 20 17:00:46 2004 UTC (15 years, 4 months ago) by sh002i
fixed typo

Revision 2939 - Directory Listing
Modified Wed Oct 20 16:45:34 2004 UTC (15 years, 4 months ago) by sh002i
add check for undefiend user param (closes bug #714). use $userID for
variable containing the ID of a user (not $User, which is typically used
for a user RECORD).

Revision 2938 - Directory Listing
Modified Tue Oct 19 00:24:47 2004 UTC (15 years, 4 months ago) by dpvc
Added reduction rules to remove redundent negatives.
Override string and TeX methods that avoid redundent parentheses.

Revision 2937 - Directory Listing
Modified Tue Oct 19 00:23:01 2004 UTC (15 years, 4 months ago) by dpvc
Added "areParallel" method as a synonym for "isParallel".

Revision 2936 - Directory Listing
Modified Tue Oct 19 00:22:07 2004 UTC (15 years, 4 months ago) by dpvc
Don't promote an object unless it is a Value object.

Revision 2935 - Directory Listing
Modified Tue Oct 19 00:20:02 2004 UTC (15 years, 4 months ago) by dpvc
Prevent automatically reducing negatives in student answer, so the
sign doesn't change behind our back.

Revision 2934 - Directory Listing
Modified Tue Oct 19 00:15:54 2004 UTC (15 years, 4 months ago) by dpvc
Handle error messages better.  Produce an error if the student answer
is a constant vector.  Prevent reduction of some negatives in order to
avoid -(a+bt).  Allow students to provide answer in terms of points
rather than vectors.

Revision 2933 - Directory Listing
Modified Tue Oct 19 00:11:50 2004 UTC (15 years, 4 months ago) by dpvc
Changed the order of variables in calls to Plane() so that it
corresponds to the usage in ImplictPlane().  Also fixed a typo in
capitalization of @N.

Revision 2932 - Directory Listing
Modified Tue Oct 19 00:08:04 2004 UTC (15 years, 4 months ago) by dpvc
Updated i(), j() and k() functions to check if the Parser is loaded,
and if not, return a value that will cause perl to report a better
error than calling the parser outside of its normal context.

Since the current answer checkers call perl directly to evaluate their
expressions, when a variable is used by a student that is not a
variable used by the checker, this can cause perl to try to parse
those variables as function calls, or other perl constructs (like
matches if you use 'm' or translations if you use 'y').  This is bad
(and is not a problem with the new parser).

In particular, if the student uses 'k' in a formula for which k is not
defined, for example, perl will try to call the k() function.

Revision 2931 - Directory Listing
Modified Sun Oct 17 03:11:43 2004 UTC (15 years, 4 months ago) by gage
Changed format of run time

Revision 2930 - Directory Listing
Modified Fri Oct 15 20:35:15 2004 UTC (15 years, 4 months ago) by gage
Adding write to timing log which summarizes the time spent in this module.
This does not give detailed timing data.  It prints whether or not the timing
log is enabled in "Constants.pm".  It uses Utils::writeTimingLogEntry and
makes an entry as long as the "timing" log facility has been defined in global.conf

Revision 2929 - Directory Listing
Modified Fri Oct 15 20:33:04 2004 UTC (15 years, 4 months ago) by gage
Removed writing to Timing log from this module.

Revision 2928 - Directory Listing
Modified Fri Oct 15 19:25:24 2004 UTC (15 years, 4 months ago) by gage
fixed typo in "edit_set_for_user"  which should be "edit_set_for_users".  also
changed label to correspond.

Revision 2927 - Directory Listing
Modified Fri Oct 15 04:30:20 2004 UTC (15 years, 4 months ago) by sh002i
work on error and warning output. prettification of stack traces,
rewording of explanatory text, better logging, other stuff. a lot of
annoying crap, basically.

Revision 2926 - Directory Listing
Modified Thu Oct 14 16:56:18 2004 UTC (15 years, 4 months ago) by sh002i
applied dpvc's index patch, use FileManager instead of FileXfer, fixed
indentation.

Revision 2925 - Directory Listing
Modified Thu Oct 14 16:55:36 2004 UTC (15 years, 4 months ago) by sh002i
removed duplicated comment

Revision 2924 - Directory Listing
Modified Thu Oct 14 15:59:43 2004 UTC (15 years, 4 months ago) by sh002i
fixed instructions on customizing webwork.apache-config.

Revision 2916 - Directory Listing
Modified Wed Oct 13 18:41:07 2004 UTC (15 years, 4 months ago) by dpvc
Clear error messages before doing the answer check (this clears old
messages left over inclass this checker is called by another one,
e.g. when using UNORDERD_ANS()).

Revision 2915 - Directory Listing
Modified Wed Oct 13 03:31:17 2004 UTC (15 years, 4 months ago) by dpvc
Trap errors in functions that are not native perl functions (like
acos() and csc(), etc.).  In the past, if an error occurred within the
definition of a function, the error message that was reported was the
internal error within the definition of the function.  For example
csc(0) would report "illegal division by zero", while acos(-2) would
report "can't take sqrt of -3".  Now the errors will be "can't take
csc of 0" and "can't take acos of -2".

Revision 2914 - Directory Listing
Modified Wed Oct 13 02:41:33 2004 UTC (15 years, 4 months ago) by dpvc
Added support for useBaseTenLogs to make log() work like ln() or
log10() depending on the value in the course.conf file.

Also fixed a bug that caused the WeBWorK parameters not to be
copied into contexts by initCopy().

Revision 2913 - Directory Listing
Modified Wed Oct 13 01:55:15 2004 UTC (15 years, 4 months ago) by sh002i
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 2912 - Directory Listing
Modified Wed Oct 13 01:35:51 2004 UTC (15 years, 4 months ago) by dpvc
Fixed typo in the comments.

Revision 2911 - Directory Listing
Modified Tue Oct 12 22:40:30 2004 UTC (15 years, 4 months ago) by dpvc
Updated jsMath to its latest version.  (Better support for Opera,
better support for unix, miscellaneous bug fixes.)

Revision 2910 - Directory Listing
Modified Tue Oct 12 21:35:16 2004 UTC (15 years, 4 months ago) by dpvc
Minor updates to the documentation

Revision 2909 - Directory Listing
Modified Tue Oct 12 20:49:25 2004 UTC (15 years, 4 months ago) by dpvc
In Complex context, make sqrt() and log() of negative numbers return
their complex values.  Also make ^ and ** do the same with negative
bases.  These can be controlled by setting/clearing the
"negativeIsComplex" entry for these functions and operators.

Revision 2908 - Directory Listing
Modified Tue Oct 12 20:46:43 2004 UTC (15 years, 4 months ago) by dpvc
Report errors for powers of negative numbers rather than return 'nan'.
Don't allow 'nan' to be made into a Real object.

Revision 2907 - Directory Listing
Modified Tue Oct 12 20:44:20 2004 UTC (15 years, 4 months ago) by dpvc
In StandardPrecedence mode, make the precedence of function apply
match that in use by that AlgParser.

Revision 2906 - Directory Listing
Modified Tue Oct 12 20:27:35 2004 UTC (15 years, 4 months ago) by sh002i
added link to FileManager to link menu. Link to FileXfer is still
present as well, for the time being. We may remove it soon.

Revision 2905 - Directory Listing
Modified Tue Oct 12 18:15:03 2004 UTC (15 years, 4 months ago) by gage
Added help file for file manager module

Revision 2904 - Directory Listing
Modified Tue Oct 12 18:13:58 2004 UTC (15 years, 4 months ago) by gage
Changed "refresh" to "refresh display" as name for button in
ProblemSetDetail
Added link to the
File Manager

Revision 2903 - Directory Listing
Modified Tue Oct 12 18:12:48 2004 UTC (15 years, 4 months ago) by gage
Added link to the File Manager

Revision 2902 - Directory Listing
Modified Tue Oct 12 02:30:14 2004 UTC (15 years, 4 months ago) by gage
Made changes to the way $r->param("user") is handled, so that it
is always called in a scalar context.

This avoids errors caused if user is defined more than once.

Revision 2901 - Directory Listing
Modified Tue Oct 12 01:02:36 2004 UTC (15 years, 4 months ago) by toenail
Added Mark Correct? option
Added date checking
fixed some issues with sticky values

Revision 2900 - Directory Listing
Modified Tue Oct 12 00:52:47 2004 UTC (15 years, 4 months ago) by dpvc
Don't give coordinate hints during parallel vector checks.  Also fixed
a typo.

Revision 2899 - Directory Listing
Modified Mon Oct 11 23:40:04 2004 UTC (15 years, 4 months ago) by gage
If the users status is undefined it is set to C  AND
it is now saved back to the database.

Revision 2898 - Directory Listing
Modified Mon Oct 11 23:13:53 2004 UTC (15 years, 4 months ago) by sh002i
entabed (we like real tabs)

Revision 2897 - Directory Listing
Modified Mon Oct 11 23:13:22 2004 UTC (15 years, 4 months ago) by sh002i
fixed call to start_multipart_form which caused authen params to be
included in form action.

Revision 2896 - Directory Listing
Modified Mon Oct 11 23:11:41 2004 UTC (15 years, 4 months ago) by sh002i
added davide's filemanager

Revision 2895 - Directory Listing
Modified Mon Oct 11 19:53:06 2004 UTC (15 years, 4 months ago) by gage
fixing gage specific timing log file (again)

Revision 2894 - Directory Listing
Modified Mon Oct 11 19:37:42 2004 UTC (15 years, 4 months ago) by gage
Changed error reporting when there is an error in date/time.  This

specifies what the subroutine thinks date and time are, making it
easier to discover the error in the format of the input

I also removed a line which tried to remove the "at" from a format --
such hehelpfuness being unappreciated by the unformatDateTime
subroutine.

Revision 2893 - Directory Listing
Modified Mon Oct 11 19:36:30 2004 UTC (15 years, 4 months ago) by gage
Changed error reporting when there is an error in date/time.  This
specifies what the subroutine thinks date and time are, making it
easier to discover the error in the format of the input

Revision 2892 - Directory Listing
Modified Mon Oct 11 13:32:01 2004 UTC (15 years, 4 months ago) by gage
Evaluate  $r->param("user") in a scalar context in case user has been
defined more than once.

It would also be nice to find where the double definitions are coming
from.

Revision 2891 - Directory Listing
Modified Mon Oct 11 13:30:09 2004 UTC (15 years, 4 months ago) by gage
Fixed mistake involving "at" in interpreting the date and time
string in a .def file

Revision 2890 - Directory Listing
Modified Sun Oct 10 21:45:43 2004 UTC (15 years, 4 months ago) by sh002i
support for password and permission level in classlist, bug #649. note
that passowrd is crypted!

Revision 2889 - Directory Listing
Modified Sun Oct 10 21:44:23 2004 UTC (15 years, 4 months ago) by sh002i
blah

Revision 2888 - Directory Listing
Modified Sun Oct 10 21:43:34 2004 UTC (15 years, 4 months ago) by sh002i
support for option password and permission fields, header on outgoing
classlists. part of the fix for bug 649.

Revision 2887 - Directory Listing
Modified Sun Oct 10 21:04:47 2004 UTC (15 years, 4 months ago) by sh002i
catch invalid course names in validation (bug #702). fix typo in
previous commit.

Revision 2886 - Directory Listing
Modified Sun Oct 10 20:53:19 2004 UTC (15 years, 4 months ago) by sh002i
restore course name in breadcrumbs (closed bug #701)

Revision 2885 - Directory Listing
Modified Sun Oct 10 20:48:17 2004 UTC (15 years, 4 months ago) by sh002i
added check for user ID collisions, closing bug #711.

Revision 2884 - Directory Listing
Modified Sun Oct 10 20:34:07 2004 UTC (15 years, 4 months ago) by sh002i
use WeBWorK::File::Classlist for classlist parsing and writing.

Revision 2883 - Directory Listing
Modified Sun Oct 10 20:33:51 2004 UTC (15 years, 4 months ago) by sh002i
added lowercase "a", "d", and "c" as valid statuses.

Revision 2882 - Directory Listing
Modified Sun Oct 10 20:33:18 2004 UTC (15 years, 4 months ago) by sh002i
added toHash() method to get a copy of the self hash

Revision 2881 - Directory Listing
Modified Sun Oct 10 20:32:29 2004 UTC (15 years, 4 months ago) by sh002i
use WeBWorK::File::Classlist for classlist parsing. removed old
commented-out code from before CourseManangement.pm existed.

Revision 2880 - Directory Listing
Modified Sun Oct 10 20:31:54 2004 UTC (15 years, 4 months ago) by sh002i
added WeBWorK::File::Classlist, for parsing and writing classlists.

Revision 2879 - Directory Listing
Modified Sun Oct 10 17:06:23 2004 UTC (15 years, 4 months ago) by sh002i
reorganized, added reindex() method. reindex() will regenerate indices and
report what was wrong with the old ones. it cannot deal with the case
where there are two records that have the same user ID and set ID, but it
does issue a warning in that case.

Revision 2878 - Directory Listing
Modified Sun Oct 10 17:04:55 2004 UTC (15 years, 4 months ago) by sh002i
doc fixworks now

Revision 2877 - Directory Listing
Modified Sun Oct 10 17:04:47 2004 UTC (15 years, 4 months ago) by sh002i
works now

Revision 2876 - Directory Listing
Modified Sat Oct 9 03:07:23 2004 UTC (15 years, 4 months ago) by gage
protect against the possiblity that user has been defined twice in hidden fields
 or in the search args and a hidden field.

Revision 2875 - Directory Listing
Modified Sat Oct 9 03:06:30 2004 UTC (15 years, 4 months ago) by gage
Insure that the problems score is always defined (default is 0)

Revision 2874 - Directory Listing
Modified Sat Oct 9 03:05:13 2004 UTC (15 years, 4 months ago) by gage
replace old method of evaluating variables by a safer method (no evaluation required)

This code copied from SendMail.pm changes made recently by Sam.

Revision 2873 - Directory Listing
Modified Sat Oct 9 03:03:13 2004 UTC (15 years, 4 months ago) by gage
Check that userRecord status has been properly defined.

Revision 2872 - Directory Listing
Modified Fri Oct 8 19:58:18 2004 UTC (15 years, 4 months ago) by jj
Make Try it and Edit it buttons pass along the current problem seed
value, closing bug 682.

Revision 2871 - Directory Listing
Modified Fri Oct 8 18:30:32 2004 UTC (15 years, 4 months ago) by jj
Timestamps seem to need Date::Format for time2str to be defined.

Revision 2868 - Directory Listing
Modified Thu Oct 7 23:08:13 2004 UTC (15 years, 4 months ago) by gage
Modifications to the format for error reporting.

Revision 2867 - Directory Listing
Modified Thu Oct 7 19:55:18 2004 UTC (15 years, 4 months ago) by sh002i
removed gage-specific path.

Revision 2866 - Directory Listing
Modified Thu Oct 7 02:06:25 2004 UTC (15 years, 4 months ago) by sh002i
skeleton of WW1Hash reindexing frontend

Revision 2865 - Directory Listing
Modified Thu Oct 7 01:40:47 2004 UTC (15 years, 4 months ago) by sh002i
refactored PSVN handling (sorta).
also sketch of new, better database checking code after __END_.

Revision 2864 - Directory Listing
Modified Thu Oct 7 01:39:45 2004 UTC (15 years, 4 months ago) by sh002i
eliminate false positives in hashDatabaseOK()

Revision 2863 - Directory Listing
Modified Thu Oct 7 01:23:19 2004 UTC (15 years, 4 months ago) by gage
Corrected useage statements.

Revision 2862 - Directory Listing
Modified Wed Oct 6 21:09:33 2004 UTC (15 years, 4 months ago) by gage
removed call for epsfile -- it was bogus.

Revision 2861 - Directory Listing
Modified Wed Oct 6 21:01:46 2004 UTC (15 years, 4 months ago) by gage
Added time stamp to the warning
Added time stamp to warning messages.

Revision 2860 - Directory Listing
Modified Wed Oct 6 21:00:19 2004 UTC (15 years, 4 months ago) by gage
Added time stamp to the warning messages.

Revision 2859 - Directory Listing
Modified Mon Oct 4 20:56:00 2004 UTC (15 years, 4 months ago) by toenail
if status is set but attempted is not,
sets attempted to 1

Revision 2858 - Directory Listing
Modified Mon Oct 4 18:28:16 2004 UTC (15 years, 4 months ago) by sh002i
complete rewrite of parseDateTime to close bug #693.

- using modified version of WW1's unformatDateAndTime() function for
actual parsing.
- intelligent treatment of two, three, and four digit years consistent
with Time::Local.
- attempt to interpret time zone specification using DateTime::TimeZone
and then Time::Zone. if neither succeeds, an expection is thrown.
- if timezone is not specified, $display_tz is actually used.

It never ceases to amaze me how tricky time zone handling is. It appears
that I have it right now, but please test.

Revision 2857 - Directory Listing
Modified Mon Oct 4 18:24:14 2004 UTC (15 years, 4 months ago) by sh002i
added instructions for listing all valid time zones.

Revision 2856 - Directory Listing
Modified Mon Oct 4 17:54:11 2004 UTC (15 years, 4 months ago) by sh002i
eliminated warnings in cases where status is "".

Revision 2855 - Directory Listing
Modified Sat Oct 2 11:55:31 2004 UTC (15 years, 4 months ago) by dpvc
added generic string-only context, and converted contextABCD and
contextTF to use it.

Revision 2854 - Directory Listing
Modified Thu Sep 30 14:53:15 2004 UTC (15 years, 4 months ago) by toenail
removed ability to duplicate a set in edit mode
still possible in regular viewing mode

Revision 2853 - Directory Listing
Modified Wed Sep 29 23:45:42 2004 UTC (15 years, 4 months ago) by sh002i
don't send stupid header for safari, don't set feedbackRecipients.

Revision 2852 - Directory Listing
Modified Wed Sep 29 23:38:40 2004 UTC (15 years, 4 months ago) by sh002i
make SQL comparisons case-sensitive. closes bug #679.

Revision 2851 - Directory Listing
Modified Wed Sep 29 23:37:21 2004 UTC (15 years, 4 months ago) by sh002i
protect against sql injection attacks by using "?" everywhere.

Revision 2850 - Directory Listing
Modified Wed Sep 29 22:48:08 2004 UTC (15 years, 4 months ago) by sh002i
actually set RaiseError :)

Revision 2849 - Directory Listing
Modified Wed Sep 29 21:38:06 2004 UTC (15 years, 4 months ago) by sh002i
added permissions to allow disabling of feedback, options.
submit_feedback, change_password, change_email_address

Revision 2848 - Directory Listing
Modified Wed Sep 29 18:00:42 2004 UTC (15 years, 4 months ago) by sh002i
better sql error handling. if connect_cached() fails, an exception is
thrown. both handles have RaiseError set, so subsequent errors cause
expections to be thrown too.

Revision 2847 - Directory Listing
Modified Wed Sep 29 16:49:30 2004 UTC (15 years, 4 months ago) by sh002i
moved new names of some modules to URLPath. added sp2nbsp() for link
names.

Revision 2846 - Directory Listing
Modified Wed Sep 29 16:23:58 2004 UTC (15 years, 4 months ago) by apizer
On the edit set list view, make the set_id a link so that users can see
where to edit all set data, e.g. the header file info.

Arnie

Revision 2845 - Directory Listing
Modified Wed Sep 29 16:20:02 2004 UTC (15 years, 4 months ago) by sh002i
case-insensitive sorting

Revision 2844 - Directory Listing
Modified Wed Sep 29 16:19:37 2004 UTC (15 years, 4 months ago) by sh002i
removed silly safari hack, added warning about this utility sucking.

Revision 2843 - Directory Listing
Modified Wed Sep 29 15:59:12 2004 UTC (15 years, 4 months ago) by toenail
Modified flow of verify() so that a user doesn't have to login twice
if they have a cookie with an expired key.

Revision 2842 - Directory Listing
Modified Wed Sep 29 15:47:30 2004 UTC (15 years, 4 months ago) by dpvc
Allow string constants to include spaces.

Revision 2841 - Directory Listing
Modified Wed Sep 29 15:26:28 2004 UTC (15 years, 4 months ago) by toenail
Make sure that all request param data defaults to at least ""
Fixed Try it links

Closes #695, 697

Revision 2840 - Directory Listing
Modified Wed Sep 29 14:45:58 2004 UTC (15 years, 4 months ago) by apizer
Fixed typo.

Arnie
CVS ----------------------------------------------------------------------

Revision 2839 - Directory Listing
Modified Wed Sep 29 00:37:18 2004 UTC (15 years, 4 months ago) by apizer
Make open date, etc. boxes larger to accomodate time zones.

Arnie

Revision 2838 - Directory Listing
Modified Tue Sep 28 21:07:53 2004 UTC (15 years, 4 months ago) by apizer
Increase size of boxes for editing open date, etc. so that time zones
show up.

Arnie

Revision 2837 - Directory Listing
Modified Tue Sep 28 01:23:01 2004 UTC (15 years, 4 months ago) by sh002i
added script to add indices to sql_single courses. usage:

wwaddindexing course_name

Revision 2836 - Directory Listing
Modified Mon Sep 27 19:28:36 2004 UTC (15 years, 4 months ago) by sh002i
added script to convert a course from sql to sql_single. moves sql
tables from the course's database to the database used by the sql_single
loyout. also gives instructions on how to modify the course's
course.conf file to complete the transition.

Call sql2sql_single like this, in the common case:

./sql2sql_single <course-name> webwork root <sql-root-pw>

You can easily bash script this to do mass conversions of courses:

cd /webwork/shared-courses
for course in *; do
	sql2sql_single $course webwork root <sql-root-pw>
	cd /webwork/shared-courses/$course
	sed 's/sql/sql_single/' < course.conf > course.conf.new
	mv course.conf course.conf.old
	mv course.conf.new course.conf
done

to do a subset of all courses, change the `for' line to:

for course in course1 course2 course3; do

Revision 2835 - Directory Listing
Modified Mon Sep 27 19:21:54 2004 UTC (15 years, 4 months ago) by sh002i
added dbLayoutSQLSources function to get a hash mapping DBI sources to
the username and password of the source and the tables that use the
source.

Revision 2834 - Directory Listing
Modified Mon Sep 27 19:08:47 2004 UTC (15 years, 4 months ago) by toenail
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 2833 - Directory Listing
Modified Mon Sep 27 19:05:14 2004 UTC (15 years, 4 months ago) by toenail
No longer initially sets value of textbox to that of select menu
so that sticky values are preserved.  Checks first for the select menu
default value.

Revision 2832 - Directory Listing
Modified Mon Sep 27 17:47:04 2004 UTC (15 years, 4 months ago) by dpvc
Fix problem with TeX output of implicit multiplication between
items that would put two digits next to each other (like 2 3^2).

Revision 2831 - Directory Listing
Modified Mon Sep 27 17:16:14 2004 UTC (15 years, 4 months ago) by sh002i
added hosted_courses log by default

Revision 2830 - Directory Listing
Modified Mon Sep 27 17:15:47 2004 UTC (15 years, 4 months ago) by sh002i
fixes to make setup easier.

Revision 2829 - Directory Listing
Modified Fri Sep 24 15:21:50 2004 UTC (15 years, 4 months ago) by gage
Added time zone to the format time and dates subroutine in Utils.pm

Revision 2828 - Directory Listing
Modified Fri Sep 24 12:38:43 2004 UTC (15 years, 4 months ago) by gage
Changed titles of columns to include the word edit.

Revision 2827 - Directory Listing
Modified Fri Sep 24 12:36:50 2004 UTC (15 years, 4 months ago) by gage
Changed documentation for "Hmwk sets editor"

Revision 2826 - Directory Listing
Modified Fri Sep 24 12:15:01 2004 UTC (15 years, 4 months ago) by gage
Check to see that value is defined before using pattern match

Revision 2825 - Directory Listing
Modified Thu Sep 23 22:03:03 2004 UTC (15 years, 5 months ago) by dpvc
Matching full path was not working (the match was being made
against only the file name regardless of the match flag).

Revision 2824 - Directory Listing
Modified Thu Sep 23 21:31:41 2004 UTC (15 years, 5 months ago) by dpvc
Two new Parser contexts, one for matching problems involving answers
like A, B, C and D, the other for T/F answers.  These contexts have an
advantage over the standard str_cmp() checker in that it will give
additional error messages when the student enters an unrecognized answer.

Revision 2823 - Directory Listing
Modified Thu Sep 23 21:09:14 2004 UTC (15 years, 5 months ago) by dpvc
Fixed Parser so that you can replace the Formula class as well as the
other object types.

Revision 2822 - Directory Listing
Modified Thu Sep 23 20:29:28 2004 UTC (15 years, 5 months ago) by gage
Made some of the bold face type entries on the classlist page and the
homework page.

-- Mike

Revision 2821 - Directory Listing
Modified Thu Sep 23 18:45:48 2004 UTC (15 years, 5 months ago) by sh002i
tiny doc fix -- new() takes a $dbLayout, not a $ce

Revision 2820 - Directory Listing
Modified Thu Sep 23 17:10:09 2004 UTC (15 years, 5 months ago) by gage
Added DateTime module to the list of required modules.

Revision 2819 - Directory Listing
Modified Thu Sep 23 16:53:31 2004 UTC (15 years, 5 months ago) by sh002i
cleaned up command-line scripts.
- use new hashref form of WeBWorK::CourseEnvironment constructor.
- moved PSH to lib/
- stop using FindBin in wwsh

Revision 2818 - Directory Listing
Modified Thu Sep 23 16:33:59 2004 UTC (15 years, 5 months ago) by sh002i
removed deprecated scripts

Revision 2817 - Directory Listing
Modified Thu Sep 23 13:09:33 2004 UTC (15 years, 5 months ago) by toenail
undefined value was causing unnecessary warns

Revision 2816 - Directory Listing
Modified Thu Sep 23 12:59:53 2004 UTC (15 years, 5 months ago) by toenail
Added ComboBoxes for header information
Allows user to enter a user specified value
or to select from currently existing header files

Revision 2815 - Directory Listing
Modified Thu Sep 23 12:57:45 2004 UTC (15 years, 5 months ago) by toenail
New widget for general use
Contains a textfield and dropdown menu of options
Makes use of javascript to simulate similar comboboxes from
windows/macs/etc

Revision 2814 - Directory Listing
Modified Wed Sep 22 23:29:53 2004 UTC (15 years, 5 months ago) by gage
Running

latex check_latex.tex

will check to see that the .sty files can be found.

Revision 2813 - Directory Listing
Modified Wed Sep 22 23:28:54 2004 UTC (15 years, 5 months ago) by gage
Updated set_list help file.

Revision 2812 - Directory Listing
Modified Tue Sep 21 23:27:40 2004 UTC (15 years, 5 months ago) by sh002i
pod fix

Revision 2811 - Directory Listing
Modified Tue Sep 21 20:20:25 2004 UTC (15 years, 5 months ago) by toenail
minor patch to previous update fully allows editing one set
for multiple users

Revision 2810 - Directory Listing
Modified Tue Sep 21 20:08:51 2004 UTC (15 years, 5 months ago) by toenail
Added ability to duplicate a set.
Removed header files, now viewable/editable from ProblemSetEditor
Changed links to ProblemSetDetail
Lists skipped sets when importing.

Revision 2809 - Directory Listing
Modified Tue Sep 21 20:07:48 2004 UTC (15 years, 5 months ago) by toenail
Added ability to edit Hardcopy Header

If passed make_local_copy with any true value, assumes
that the file being edited is some type of library or default file
that should not be overwritten and the Save button is greyed out.

Stopped editor from trying to edit blank files or edit directories as files.

Revision 2808 - Directory Listing
Modified Tue Sep 21 20:05:16 2004 UTC (15 years, 5 months ago) by toenail
Changed ProblemSetEditor calls to ProblemSetDetail
Added Davide Cervone's patches
   - Fixes formatting
   - Made usage more consistent
   - Added appropriate error messages

Closes #663.

Revision 2807 - Directory Listing
Modified Tue Sep 21 20:01:25 2004 UTC (15 years, 5 months ago) by toenail
Added new setCountMessage so that ProblemSetDetail can say:
"User toenail has been assigned x sets"

Revision 2806 - Directory Listing
Modified Tue Sep 21 19:59:19 2004 UTC (15 years, 5 months ago) by toenail
Changed references from ProblemSetEditor to ProblemSetDetail
Added ability to edit a set for multiple users.  Closes #646 and #662.

Revision 2805 - Directory Listing
Modified Tue Sep 21 19:55:48 2004 UTC (15 years, 5 months ago) by toenail
Changed some references from ProblemSetEditor to ProblemSetDetail

Revision 2804 - Directory Listing
Modified Tue Sep 21 19:51:45 2004 UTC (15 years, 5 months ago) by toenail
Changed instructor_set_detail from ProblemSetEditor to ProblemSetDetail
Removed instructor_problem_list
Changed some references from ProblemSetEditor to ProblemSetDetail

Revision 2803 - Directory Listing
Modified Sun Sep 19 15:11:08 2004 UTC (15 years, 5 months ago) by dpvc
The $Parser::class variable was being handled after the "use"
statements at the end, so had to put a BEGIN around it.

Revision 2802 - Directory Listing
Modified Sun Sep 19 14:43:32 2004 UTC (15 years, 5 months ago) by dpvc
Eliminated unneeded parentheses in TeX output when unary minus and
plus are used with fractions.

Revision 2801 - Directory Listing
Modified Sun Sep 19 14:41:57 2004 UTC (15 years, 5 months ago) by dpvc
More changes for the isZero and isOne checks.  (Missed this file when
I committed the others.)

Revision 2800 - Directory Listing
Modified Sun Sep 19 14:27:39 2004 UTC (15 years, 5 months ago) by dpvc
Added isZero and isOne checks for Parser::Value objects (i.e., for
constants within formulas).  These now correctly handle vector and
matrices, in particular.  The isOne and isZero checks are used in the
reduce() method to simplify formulas.

Revision 2799 - Directory Listing
Modified Sun Sep 19 11:49:32 2004 UTC (15 years, 5 months ago) by dpvc
Added a new flag to the Formula()->cmp answer checker that allows a
constant-valued formula to be evaluated and then use the checker for
the resulting type.  This is useful when you want the correct answer
for a numeric check to be shown in a symbolic form (like "pi/4")
rather than as a decimal number.  To do this, use

       Formula("pi/4")->cmp(eval=>1);

rather than Real(pi/4)->cmp, which would show the correct answer as
0.785398.  Note that Formula("pi/4")->cmp would also match against
pi/4, but it does it as a function rather than a number, so error
messages might be issued indicating that the checker is expecting a
formula that returns a number, rather than just a number; this might
be confusing to a student.  It would also accept answers like
"pi/4-x+x" as correct, whereas with eval=>1 this would produce an
error message saying that the answer was supposed to be a number not a
formula returning a number.

Similarly, if you want to show sqrt(2)/2 as the correct answer, use

     Context()->flags->set(reduceConstants=>0, reduceConstantFunctions=>0);
     Formula("sqrt(2)/2")->cmp(eval=>1);

The first line tells the parser not to automatically reduce
expressions that only involve constants, so that the value of the
formula in the second line will not be reduced to a decimal before
the cmp method is called.

Revision 2798 - Directory Listing
Modified Sun Sep 19 11:29:06 2004 UTC (15 years, 5 months ago) by dpvc
Make Formula()->eval return a Real (ie, aValue::Real object) rather
than a perl number.  That way, you can use $f->eval->cmp rather than
needing Real($f->eval)->cmp, and so on.

Also make Formula()->perl do the same, for consistency.

(This could have been accomplished by having the Parser::Number class
evaluate to a Real, but for efficiency during computation, we put
off making the Real object until the end.  It probably doesn't make
that big a difference, but every little bit helps.)

Revision 2797 - Directory Listing
Modified Sun Sep 19 01:16:10 2004 UTC (15 years, 5 months ago) by dpvc
File needed to reduction flags that was accidentally left out of the
previous commit.  Sorry!

Revision 2796 - Directory Listing
Modified Sun Sep 19 01:15:03 2004 UTC (15 years, 5 months ago) by dpvc
Added flags that control the reductions performed by
Formula()->reduce.  Each reduction operation can be individually
enabled or disabled in the context, and in the reduce() call itself.

More complex reductions need to be developed.

Revision 2795 - Directory Listing
Modified Sat Sep 18 23:16:37 2004 UTC (15 years, 5 months ago) by dpvc
Fixed typo in addParens method name.

Revision 2794 - Directory Listing
Modified Fri Sep 17 19:40:42 2004 UTC (15 years, 5 months ago) by toenail
Replaces ProblemSetEditor.pm and ProblemList.pm as primary form of editing
set/problem information.

Revision 2793 - Directory Listing
Modified Fri Sep 17 18:46:35 2004 UTC (15 years, 5 months ago) by apizer
Sort sudents by Last Name, First Name instead of bu user_id

Revision 2792 - Directory Listing
Modified Fri Sep 17 15:35:55 2004 UTC (15 years, 5 months ago) by apizer
List students by their real names (in addition to studentID).

Arnie

Revision 2791 - Directory Listing
Modified Thu Sep 16 23:43:54 2004 UTC (15 years, 5 months ago) by dpvc
Don't reduce constants in the display of student answers (so they can
tell how the parser interprets their answer).  The drawback is that
the final number is not displayed.  (We may need to add more columns
to the results display.)

Revision 2790 - Directory Listing
Modified Thu Sep 16 23:03:03 2004 UTC (15 years, 5 months ago) by dpvc
Use extra parens in the string version of the student's answer, but
not in the professor's (unless the problem sets the showExtraParens
flag).

Revision 2789 - Directory Listing
Modified Thu Sep 16 22:24:32 2004 UTC (15 years, 5 months ago) by dpvc
Added context flags to control automatic reduction of operations that
involve only constant values.  The default is to combine constants,
but this can now be disabled.

Also added a new flag to control the addition of extra parentheses
that make string values painfully unambiguous (these are for
situations that students tend to get wrong).  By default this is
turned off (so that professor answers won't contain excessive
parentheses), but the answer checker will be made to turn this on for
student answers.

Finally, when extra parens are added to formulas, they alternate
between ( ) and [ ] to make it easier to read.

Revision 2788 - Directory Listing
Modified Thu Sep 16 22:19:59 2004 UTC (15 years, 5 months ago) by dpvc
Produce an error when attempting to auto-create a formula using a
function that has been removed from the current context.

Revision 2787 - Directory Listing
Modified Thu Sep 16 19:44:44 2004 UTC (15 years, 5 months ago) by apizer
Remove extraneous evals and also clean up email if no record exists in
merge file.

Arnie

Revision 2786 - Directory Listing
Modified Thu Sep 16 18:59:01 2004 UTC (15 years, 5 months ago) by apizer
Changed substitution as suggested by Sam

Arnie

Revision 2785 - Directory Listing
Modified Thu Sep 16 17:10:02 2004 UTC (15 years, 5 months ago) by apizer
lean up test seen by students.

Arnie

Revision 2784 - Directory Listing
Modified Wed Sep 15 13:53:37 2004 UTC (15 years, 5 months ago) by apizer
Update w.r.t. sqrt, sech, csch

Arnie

Revision 2782 - Directory Listing
Modified Tue Sep 14 22:10:14 2004 UTC (15 years, 5 months ago) by sh002i
re-added use Date::Format

Revision 2781 - Directory Listing
Modified Tue Sep 14 21:36:45 2004 UTC (15 years, 5 months ago) by apizer
Fixed bug with useBaseTenLog

Arnie

Revision 2780 - Directory Listing
Modified Tue Sep 14 21:27:20 2004 UTC (15 years, 5 months ago) by apizer
Fixed bug with useBaseTenLog

Arnie

Revision 2779 - Directory Listing
Modified Tue Sep 14 18:55:58 2004 UTC (15 years, 5 months ago) by apizer
Make $COL[1], not $COL[0], the first column of the merge file.
Also stop negative indexes from cycling, e.g. $COL[-12] should
not give $COL[8] in a 10 column merge file.

Arnie

Revision 2778 - Directory Listing
Modified Mon Sep 13 19:35:12 2004 UTC (15 years, 5 months ago) by sh002i
timezone support

Revision 2777 - Directory Listing
Modified Mon Sep 13 19:34:54 2004 UTC (15 years, 5 months ago) by sh002i
disabled "sid_open", "sid_due", and "sid_answer" formats, since they
don't currenly work with timezones.

We need to find some way to get the timezone information in there
without messing up the interface. One option is to actually have the
database system aware of the timezone and propgate that information on
to the Set and UserSet Record classes. Then, add formatted pseudo-fields
to those record classes that encapsulate the date conversions. Hm, that
would be cool.

Eventually, it would be nice if the date accessors returned DateTime
objects instead of epochs, but that is for later.

Revision 2776 - Directory Listing
Modified Mon Sep 13 19:29:55 2004 UTC (15 years, 5 months ago) by sh002i
added second argument to formatDateTime(), to support timezone specified
in course environment.

Revision 2775 - Directory Listing
Modified Mon Sep 13 19:29:08 2004 UTC (15 years, 5 months ago) by sh002i
added formatDateTime and parseDateTime methods that use the timezone
from the course environment if one is not specified and call the "real"
functions in WeBWorK::Utils.

Revision 2774 - Directory Listing
Modified Mon Sep 13 17:42:53 2004 UTC (15 years, 5 months ago) by sh002i
moved "use" lines to top of file, clobbered lingering "warn". noticed by
dpvc.

Revision 2773 - Directory Listing
Modified Sun Sep 12 12:09:53 2004 UTC (15 years, 5 months ago) by dpvc
Added missing \ for apostrophes after user name.

Revision 2772 - Directory Listing
Modified Sun Sep 12 11:11:47 2004 UTC (15 years, 5 months ago) by dpvc
Make partial credit in list answer checkers be the default (now that
WeBWorK can handle this).

Revision 2771 - Directory Listing
Modified Sat Sep 11 17:11:29 2004 UTC (15 years, 5 months ago) by dpvc
Fixed a bug with constants where the values were being cached so that
changes in the context were not being reflected in the formulas that
use them.

Revision 2770 - Directory Listing
Modified Sat Sep 11 06:15:14 2004 UTC (15 years, 5 months ago) by sh002i
PRELIMINARY SUPPORT FOR TIME ZONES (towards closing bug #532).

(1) new configuration variable $siteDefaults{timezone}

Set the default timezone of courses on this server. This must be a value
valid for the TZ environment variable. See also tzset(3).

If left blank, the system timezone will be used. This is usually what
you want. You might want to set this if your server is NOT in the same
timezone as your school. If just a few courses are in a different
timezone, set this in course.conf for the affected courses instead.

(2) support for second optional $display_tz argument to formatDateTime()
and parseDateTime().

If specified, formatted string datetimes will be considered to be in
that timezone instead of the server's local timezone.


Remaining work:

find all calls to *DateTime() and add the $client_tz argument.

$client_tz is is really something that *DateTime() should be able to
grab out of $ce, but they're not a method on ContentGenerator, so we
have to pass it in. It might be worth moving them to ContentGenerator.
(Or some new subclass of ContentGenerator or something?)

Revision 2769 - Directory Listing
Modified Sat Sep 11 00:45:10 2004 UTC (15 years, 5 months ago) by sh002i
cleanup

Revision 2768 - Directory Listing
Modified Fri Sep 10 23:55:31 2004 UTC (15 years, 5 months ago) by dpvc
When creating formulas from functions, don't evaluate even if the
formula is constant.  (This makes it possible to create automatically
create formulas even if they only contain constants.)

Revision 2767 - Directory Listing
Modified Fri Sep 10 22:40:52 2004 UTC (15 years, 5 months ago) by sh002i
applied dpvc's patch to clean up the answer results table, closing bug
#635.

Revision 2766 - Directory Listing
Modified Fri Sep 10 22:15:51 2004 UTC (15 years, 5 months ago) by sh002i
applied dpvc's filtering UI cleanup patch. closes bug #660.

Revision 2765 - Directory Listing
Modified Fri Sep 10 22:09:22 2004 UTC (15 years, 5 months ago) by sh002i
added WeBWorK::Contents switch for preserving hardcopy temp files.
closes bug #633.

Revision 2764 - Directory Listing
Modified Fri Sep 10 22:03:28 2004 UTC (15 years, 5 months ago) by sh002i
new using $authz for permissions checks in hardcopy

Revision 2763 - Directory Listing
Modified Fri Sep 10 22:02:54 2004 UTC (15 years, 5 months ago) by sh002i
removed unused

Revision 2762 - Directory Listing
Modified Fri Sep 10 21:33:30 2004 UTC (15 years, 5 months ago) by sh002i
removed unused fetching and passing-around of permission level,
commented-out old versions of code. working towards closing bug #574.

Revision 2761 -