text:
Sticky Revision: |
This commit was manufactured by cvs2svn to create branch 'rel-2-1-1a'.
Adding documentation for new Parser
Added a few more macros to jsMath, and increased the font size a little.
Fixed a bug in jsMath mode where it would not display < (when it looked like part of a tag). Also, removed unwanted spaced around input box.
When editting a problem, you now have the option of adding it to an existing set.
changed problem header to paper header fixed minor bug in importing a set
fixed bad comparison that failed on set named '0'
reworked error messages
added a constant displayModeFailover to the global environment to make webwork 1.9 work with changes to pgbasicmacros.
new icon for editing users/sets
minor UI tweaks added icon for editing sets/users
Use new utility function for adding problems to a set (when importing a set).
Make use of new utility function for adding a problem to a set.
Added a utility function for adding a problem to a set, to be called from several instructor modules.
changed default globalUserID to "global_user"
upped viewing threshold to 50 made new/imported sets default to unpublished
removed ability to delete "visible" users change red background to ResultsWithError class CVS ----------------------------------------------------------------------
changed visable to visible. Closes #554.
Reformatted the FUNCTION_CMP subroutine to make it more readable. Also, one functional change: < (defined ($inputs_ref->{$prev_ans_label} and $inputs_ref->{$prev_ans_label} =~/\S/) ) > (defined $inputs_ref->{$prev_ans_label} and $inputs_ref->{$prev_ans_label} =~/\S/) I think the latter was what was intended.
added check for well-formed course IDs. closes bug #504.
removed debug output. fixes bug #542.
got rid of remaining calls to "wwerror". Fixes bug #530.
added README file mostly to prevent this directory from being pruned when -P, -r, or -D is given.
added scoring ability fixed permission tests
Set names might contain underscores, so they need to be protected in hardcopy output.
Removed redundant HTML_jsMath check.
Added success message when creating a new set. Also, added requested feature - when creating a new set, allow the user to assign it to themselves. This is done through javascript. Only users with js turned on get it, but it is kind of a frill. Non-js users see just the old behavior.
Added timeout alarm (currently set to 5 munites). Fixes bug #511.
Added jsMath support to these files. Basically, HTML_jsMath should do whatever HTML_dpng mode does. I simply included it HTML_jsMath every time HTML_dpng appeared.
Added more LaTeX commands to jsMath. In particular: \begin{array}...\end{array} \begin{cases}...\end{cases} \sqrt[n]{...} \mathbb{...} and a few other ones to avoid error messages.
changed erronious == to eq. fixes bug #546.
Changed Current Set to Target Set (hopefully more intuitive), and changed Top to My Problems, also hopefully more intuitive for non-unix users.
Changed question mark image. It's smaller now.
Default for help symbol when there is no helpfile present.
Tweaked the position of the help question mark. Better default addresses for link.
More tweaking for the position of the help question mark. This is much better. It now has default names equal to the title page name, lower case, spaces replaced by under bars.
Image for help link.
Add minimal support for a help symbol to appear on each page.
Added minimal version of a help symbol that will appear on each page. The CSS at the top of the page needs work, so that not so much space is used.
Added comments -- should we enter the contact person as a student in the admin class so that we can use the email facility to contact people hosted on this server?
If there is an error, other than "course exists" then the directory tree is cleared. This corrects a behavior in which the creation of the new course would fail half way through, but the directory tree would remain -- this made it appear as if the course existed. -- This fix is still somewhat fragile.
Changed the layout of the form so that optional items are listed last.
Allow on-the-fly graphics in jsmath and asciimath modes.
Allow students to check answers between the due date and the answer date. This doesn't let them see the correct answers, but it does let them enter values to see if those are right without recording them.
Fixed bug 545. Make Problem.pm preserve its state of problem seed when that value was being overridden.
Fixed the following bug: if you change a student's status on a problem to 1 and give them a correct attempt, but then go to the stats page or student progress page, you won't see the change. The reason is that those pages check "attempted" which cannot be changed through this page directly. Now this page updates attemted fields based on if (correct+incorrect attempts) > 0.
minor changes to UI
rewrote much of the HTML code changed table layout
fixed code order to avoid invalid call to published field on a non-existant set Fixes #543.
complete rewrite based on UserList next step is to abstract similarities
Made the list of problems more readable by using center alignment in the columns.
fixed display of published/unpublished text
Fixed bug which caused some debug output to always appear.
Changed formatting of the "Add course" sub page. When a new course is created the course name, id, institution and so forth are logged in hosted_courses.log in admin/logs This logging facility must be defined in the admin/course.conf file. --Mike
Rearranged stats table. "good" results are now always to the right (high scores, low number of attempts). Use dashes when numbers are repeated in order to prevent confusion.
This is currently a version of ShowAnswers.pm the plan is to evolve this so that one can view the Past answers log from a variety of views. --Mike
I don't think that anything has changed with this submission. I'm overriding a binary temp file. --Mike
Added hooks for Preflight -- Mike
Command line script to set a password, analogous to the WW 1 script. The name is slightly different in case you need both available.
When viewing a users problem, the rendered versions have the right seed, etc.
Allow optional argument of the set (which better be real).
Added support for initial problem number to renderProblems, and better support for controlling the problem seed.
Just realigned some code and took out a couple commented lines.
Re-use on-the-fly graphs, unless problem seed has change, source file has changed, or the problem is being rendered without being part of a real set.
When viewing a problem which isn't really part of a set (e.g., out of SetMaker), make the display mode option buttons work.
Changed "Act on" button to say "Update" in bold. Also, added mark all button. Also, added clear all marks button. Also, "Add me" checkboxes are now sticky, unless you update and they are added. Then you get an additional message by the add box. Mayble we should flip the css class of the "Add me" line too to signal who was added. Hidme boxes aren't sticky since their problems usually get hidden anyway.
Javascript close buttons for these files; hidden if the user has js turned off.
Make the message blank when the user doesn't want problems rendered. Different modules may want different messages anyway.
Give the user a choice of which mode to use in displaying problems. Defaults to none.
Changed calls to renderProblems to match the new interface.
Added two more controls next to View Problems: choice of display mode, which includes none for those who don't like to see their problems displayed, and one to choose how many problems you get at once. Also, problems who's rendering cause an error get their message displayed with ResultsWithError.
Changed interface to renderProblems to be key=>value pairs to make it easier to extend options. New option is displayMode, which is allowed to be 'None' if you don't really want the problems rendered.
Made StudentProgress follow the implicit convention set by things like Set Assigner and Set Maker; to use spaces between words.
Try to work around IE bug: on left panel lines wrapped at every space. Those spaces are converted to non-breaking spaces. Ugly, but IE on windows is one of the most common browsers.
Only provide radio buttons for different modes if the site is configured to use more than one mode.
Filename extension of .pg should only be forced for problem files.
If the user does a save as and forgets the .pg, we help them out and append it to the file name.
Get mode list from variable set in global.conf.
Made a loop of loading special environment variables. As a side effect, this makes the default size of on-the-fly graphics visible.
Add configuration variable for the default size of on-the-fly graphs. Didn't really change hardcopySetHeader.
Allow default size of on the fly graphics to be set in global.conf, and make pop-ups of those graphs have windows closer to the size of the graph. Also, pop-ups always make a new window - important for problems which make you compare two or more popped up graphs.
Allready done so this should fail Arnie
change message to visable to students, etc Arnie
Change message to visable to students, etc. Arnie
displayMode is not preserved in the sibling links
added buttons for "Publish Selected" and "Unpublished Selected"
removed vestigal libraryRoot line
PLEASE UPDATE wwapachectl FROM wwapachectl.dist! added warnings if config files are older than distribution versions.
Edited Labels to make clear that "All students" meant all students in the course, not all students shown after filtering. This should eventually be fixed so that "All students" only refers to those who pass the filtering.
Made on the fly graph names use problem seed rather than psvn. It is a better identifier for pages like SetMaker. Also made image names workable for set names containing periods (for the day when set names are free to contain periods).
the published field is always defined but is empty if not yet set to 1 or 0 now if the published field is empty it is set to 1 this change can be undone once all sets have a published field set to 1 or 0
Updated to autofilter using CE viewable_sections and viewable_recitations Defaults to show all users if values are not defined
Updated to allow record filtering when selecting students
Cleaned up some UI issues. Added message for recitation/section <none>
update to asciimath for MSIE.
More files for asciimath rendering.
Support for asciimath. Added preliminary support for asciimath rendering. You must use a MathML-enabled browser.
Tweak to make filters fail gracefully
Allow sorting on allrelevany columns (added recitation and user_id). Arnie
Updated to work with filters in scrolling lists
Additionaly tweaks to fail gracefully
Edited so that filters fail gracefully
failover data now passed in via %envir.
display mode handling improved. allowed display modes can now be specified via global.conf. failover data used by the PG system now comes from PG.pm.
Corrected typo in pre-screening for filter
jsMath update for MSIE. Attempted to make jsMathe work better with MSIE on the PC. There was a problem with finding the fonts that this should fix. Still doesn't work with Opera, however, so more to come.
delete course improvements. can now have blank sql password and leave database name blank for default value.
copy symlinks in templates directory
Updated for filtering of scrolling lists
Updated to allow simple filtering of scrolling lists
Fixed bug in previous version Arnie
File of Utilities to allow filtering of users in Instructor Tools
Doubled the length of the save as textfield box. Arnie
Added comments to setHeader.pg. This is now the default set header for both the screen and hardcopy output.
IMPORTANT: changes to wwapachectl.dist -- update local copy! added umask handling. if you're sharing courses with other users (as we are on snoop and devel) uncomment the new "umask" line.
Improvement to jsMath in SetMaker. I made the code a little more robust (I hope). It doesn't work real well with MSIE on the Mac, but jsMath never really did.
Fix for jsMath to work better with SetMaker. Added code to prevent reloading jsMath for each problem, and for making it process the SetMaker page asynchronously rather than all of it before the page is displayed. Still needs some work, but is OK for now.
This fixes bug #510 in which sets which have no defined published state are now assumed to be published when viewed from the problemSets page.
added comments re: valid %options
Sorry about that. These files have been removed.
Adding this stub (developed by Bill Ziemer) to keep compile time errors from occuring.
Added support for library. Added support for jsMath
Added helpLink for standard help pages in pg files.
Allow helpLink to work in pg files.
Allow jsMath to generate answer previews if that is the displayMode chosen.
For helpLink in pg problems.
Cleaned up script Arnie
Added some help files to be called from pg problems.
Moved be_strict after package main;
Files needed for jsMath display mode.
Added jsMath JavaScript files for HTML_jsMath display mode.
Moving ww_strict.pm forward to 5.8.3 compatible version with require Carp; commented out
Moved ww_strict.pm back to be identical with strict.pm from perl 5.6
Added paths to Student Progress
Added Student Progress section
Updated to make set names into active links
New File to split Statistics page in two.
We are now using ww_strict.pm instead of strict.pm in be_strict;
We are using our own version of strict.pm that has a require Carp; commented out. This is included in be_strict which is used to implement strict within PG macro files which need to be evaluted inside the Safe compartment
Don't put answers in the answer log if the problem has not been assigned to the user.
Moved nicestring to PGbasicmacros.
Fixed bug which came up when adding problems located at the top of the templates directory.
Removed warning messages. The macroDirectory and courseScripts directory are now defined from the %envir variable which is shared directly with the new Safe compartment rather than via calls to $main::macroDirectory which seemed to be unstable in some instances. I've left the FIXME sign in place just in case there are still problems.
Put addbadmessage in Contentgenerator (to go with addgoodmessage), and use it in SetMaker.
Roll back the previous changes. They were added to HEAD instead of to the experimental branch.
Experimental refactorization of answer evaluators will take place on this branch.
added ability to import the contents of another course's templates directory when creating a new course. this is supported in bin/addcourse with the --templates-from=COURSEID switch and in the web interface with an additional form field.
fixed typo: addgoodmsg -> addgoodmessage.
moved %problemLibrary to its own section below database options.
Removed old commented out code dealing with PGsort. Arnie
Use the new PGsort which uses a true/false compare (e.g. < or lt ) rather than a -1,0,1 compare (e.g. <=> or cmp ). Arnie
Replaced PGsort with a version that uses quick sort. This fixes the problem the old PGsort had with Perl compiled with ithreads. Arnie
Extricating the problem library from DB structure, part III.
Extricating Problem Library from DB structure, part II.
Extracting problem library from DB structure, part I.
added missing "use" line. "use WeBWorK::CourseEnvironment".
Include cryptPassword in the functions exported from Utils.
Modified DVIPNG_ARGS to work with dvipng >= 1.0.
can't save as with specifying a filename changed some warns to addmessage()
*** empty log message ***
These files run Image_and_Cursor, a lite applet designed by Frank Wattenberg It can be used in PG problems.
These are applets that can be used in writing PG problems. These two were written by David Eck
fixed bug in saving default set header, no more "Use System Default" files closes #500 replace submission_error() with addmessage()
Hopefully moved published to the right place.
fixed incorrect handling of default set header
added "Use System Default" to dropdown list of set headers Fixes bug #492.
On refresh, make source file path relative to the templates directory. This is needed to match the behavior of alias on static gif files.
Set the published field when faking a problem set.
Improved psvn kludge by using the full mysql statement from mksqldb. Fixes the original version of bug 495.
If there is an admin course, make it appear only once.
Made regular expression for set names match that of in DB.pm (meant allowing hyphens).
updated for PR4
changed default courseURLroot to /webwork2_course_files
removed unused code
Changed "success problems added" from resultwitherror to resultwithouterrer.
Lots of addmessage()s added, including success for adding problems. This may close bug 485.
Reorganized to use addmessage for messages. Also minor cleanups of variable names, and better handling when there are no pg files under templates.
fixed error with problems that don't yet exist
Fixed bug 485. The problem occured because with a gdbm database, the global_user is used for both global information, and appears as a user. We have to avoid modifying its information twice. This seems to work, but the "right" fix is probably to work on the database code. With a gdbm database, the global_user should be filtered out of calls dealing with users and only be used on calls about global information. That would mimic the sql behavior better. It would also supress the global_user from appearing in user lists (which I think would be better).
When a new set is created, it is automatically selected. This partially resolves bug 485.
added siteDefaults hash to store other site specific information includes a hash for several possible values of a users status field
added div classes for Published, Unpublished, Audit, Drop, Enrolled
added text classes for students with status Audit, Drop, Enrolled
changed assignSetToAllUsers to ignore users with dropped status
added classlist file containing a single "admin" user
removed sql exec warnings
several changes towards closing bug #481. (1) removed database "multiple source" warnings. (2) if sql database name is blank, "webwork_$courseID" is used. (3) removed sql execution warnings. (4) allowed blank sql admin password.
added pop up list of set header files fixed false successful save message
create "psvn" field as "INT AUTO_INCREMENT"
add global user record to new courses
separate link for course management
added "This problem does not count towards your grade." messages if the weight of a problem has been set to 0. Fixes #464.
Defined $WeBWorK:;timer again for use in debugging code $timerON =0 by default in WeBWorK.pm and the timing log $TIMING_LOG is initially set to the empty string which implies STDERR
added functionality for published/unpublished
This checks for modules known to be needed by WeBWorK. The list of modules is supplied in the DATA section of the script.
addmessage() used for success messages
now passes success/failure messages to Problem.pm
added processing of sucess/failure messages from PGProblemEditor.pm
changed submitError to addmessage()
changed submitError to addmessage()
changed submitError to addmessaage()
changed all submitError to addmessage()
uses addmessage() instead of submitError
changed all submitError to use addmessage() instead
changed addmessage() to replace submitError
changed submitError to addmessage()
dded use of addmessage() instead of warn and submitError
set lockdir
Added surePathToFile utility called as surePathToFile start_directory path (the path can be the full path including the start_directory segment) If the start_directory is the tmp directory then one has the effect of surePathToTmpFile defined in IO.pl
Added a surePathToFile call when saving a .pg problem. Now they can be saved in a new directory. This is a partial solution to having a read only library. More to come.
replaced error processing with call to addmessage()
replace submitError with addmessage() call
done with this
test of activitymail diff functionality
added diffs to cvs mails.
another annoying text of the new cvs mail logging script. cool, the first sentence of the log message becomes the subject of the email!
added -p switch. ("add the name of the CVS module to the message subject")
removed some text
quoting issues
more text
added quoting
added text
fixed path to activitymail
changed test-file
added test_file.
installed activitymail cvs logging
Added sibling links for the Statistics page.
Formatted the "PREVIEW ONLY" and "Not Recorded" messages as 'ResultsWithError' to insure that students don't accidently think they have submitted their answers.
Modifications to PGbasicmacros and PGanswermacros which check whether a function answer is the same as the function answer submitted previously. Gives warning message if the same incorrect answers is submitted twice in a row. The functions must both compile in order to recognize that they are the same answer. Two syntactically incorrect entries will not be recognized as equivalent, even if they are in some sense.
Cosmetic fixes to code layout.
Fix bug: use of an undefined value.
Added average number incorrect answers. This closes bug number 264 Tweaked a few more user interface parameters.
Preliminary changes that may eventually allow us to solve the be_strict problem for 5.8.0
Updating answer evaluators in PGanswermacros.pl Beginning to include code that will allow us to check whether the current answer is the same as the one submitted previously.
Cleared commented out code in Stats.pm Fixed error arising when no scoring files were checked. Nows gives a more useful message. This fixes #379
Doing 'Save as' on a problem pops up a new PGProblemEditor window. Now the new window contains the newly saved file. Also modified the name of the target window since targets aren't supposed to start with _ (except for the special reserved ones), and so that editting in the new window and clicking on a button like Refresh will open yet another window.
Added safety switch for unassigning sets. This closes bug number #403 Added some messages reporting action taken.
Added a message field at the bottom of the page. This will catch result messages issued in the body of the page It's not as quite as eye catching to have the message at the bottom, but it's better than nothing. Errors issued during the initialization stage appear at both the top and the bottom of the screen. --Mike
More user interface work on SendMai.pm Resolved bug #390 Now we simply report the number of students to which we have attempted to send email, rather than list the email addresses.
Modified user interface for choosing message to preview. Unresolved is the issue of bringing the preview up in a new window.
Modifications to remove extraneous error messages. This resolves bug 410
Sort sets by alphabetical order for the SetsAssignedToUser page. Corrected typo on Stats.pm
Fixed minor bug which occured when no student had yet tried the problem.
References to problems in the statistics are linked so that you can view the problems if you wish. Use right click to see them in a new window.
Sort the courseIDs in the scrolling lists.
changed it to sort by due date as well as showing due date
ripped out the rest of the skeleton
Fixed typo where a hash was initialized using an anonymous hash reference.
fixed bug #472
Fixed bug in logic of when to show Edit it link.
Changed urlpath->new to urlpath->newFromModule. Also added check for when using the problem library, that the Library directory exists, and if not, try to fix it ourselves.
If the instructor sets the set header file to a file which doesn't exist, then we copy the default to that file. Having no set header is an error, and it is easier to edit something than it is to start from scratch. Also, balanced the size of the two buttons on the page.
(1) listTables() reports names of supported tables. (2) dbExport() warns when given invalid table names.
usage message prints supported tables
failure messages now given with addmessage() -- fixes bug #447 (sort of)
changed name of self-field used to hold the text for the message() escape to "status_message" to avoid collisions with existing use of "message" in CGs. We should consider forming some kind of policy for this stuff. Maybe all the fields that WeBWorK::ContentGenerator uses should be prefixed with "CG_" or something. Thoughts? Perl 6 would make this much nicer.
fixed some small formatting thingies
Make editing a file which doesn't exist stop being an error. This gives a way to create course info files and new set headers.
use reply_with_file() instead of $self->{sendFile}
(1) removed "sendFile" mechanism -- use reply_with_file() instead (2) moved addmessage, reply_with_{file,redirect} to a separate section in the file, for data modifiers.
Nicer titles, especially for set header and course info editting.
Added message escape.
Added support for "create_and_delete_courses" privileges. currently set to professor.
Only someone with professor privileges can use CourseAdministration.pm
sort the courses before you print them.
Fixed bug #477 and similar problems when there are no local sets; fixed bug where top level local files were not detected, made "Edit it" link come back if you are not looking at a library file, and floated "Try it" and "Edit it" to the right.
If there is more than one mysql source (which there is now thanks to ProblemLibrary), then we look for the most commonly used source. Fixed a bug in this counting part.
Removed debugging code
Removed edit it links.
Added support for instructors to view/test problems which are not part of any set.
assign new users their student id as a password
Changed look of Instructor page
Changed user interface on the instructors page. Buttons are now shorter. --Mike
Added support for editting problems which are not presented as being part of a real set.
Commented out features which are not used yet in the problem library. Uncommented Try it and Edit it links.
fixed bad links for invalid sets and problems
added message() as a more general message handler than submiterror() addmessage() helper method for concatenating messages
added error checking for invalid set numbers
added error checking for invalid set and problem numbers
added height constraint to top panel so that it wouldn't extend down
Fixed call for adding users which was issuing an incorrect url. This squashes bug #473
Initial import.
course deletion script
now uses CoureManagement backend
documentation fix
globalUserID is actually used in addCourse
runtime_use now gives an error message if it is passed an empty string or an undefined value
Removed hard-wired path.
re-fixed getRecord subroutine to properly handle blank fields at the end of lines. (Adding a delimiter is not enough, perl deletes all terminal blank elements at the end of a list -- as far as I can determine.) One needs to add "$delimeter___" so that the last field is non-blank. This appears to fix bug #471
added support for upload/download/delete of scoring files
When listing problems, show a rendered version. Also, when dealing with the global data, reorganize where the data is shown.
Add link to set maker in the instructor tools part of left panel. Also added hr above Instructor Tools.
In user-specific override mode, dates are not directly editable Fixes Bug #456.
cosmetic change to title to include user name
Added entries for SetMaker.
Initial import.
Initial import. This may not be the right destination, especially as its database methods become more integrated with the ones already in WeBWorK.
Added entries related to the problem library.
Provide a place to set the location of the top of the problem library.
Added new class for problems rendered out of context (i.e., away from Problem.pm).
Initial import. Lets you render a problem which is not part of anything.
removed debugging output
cleaned up, added documentation, added "replace" functionality
implemented import and export, fixed some bugs
reply_with_file(): fixed bugs, added "delete_after" option
Added some code so that you don't get a warning message if the scoring file doesn't exist.
Removed warning messages.
fixed error in ur.template (the submit error hook)
Added code to give message when an edited problem file cannot be saved. Some of the problems reported in bug #152 are addressed. Instituting a submit result field was not done.
Made field for name of exported problem set wider, to be the same width as for the header file.
Removed implicit assumption that when exporting a set, a set definition file for it already existed.
database import and export support
return auto-created permission level records
import support, error reporting
nbsp doesn't barf on undefined values anymore
allowed for undefined values in section and recitation
added idsToString to ouput a concise string identifier for a record
wwdb is now for database import and export
Corrected a calculation that allowed for division by zero if no student had tried a problem. This squashes bug 460
Making this header file more compatible as well.
Further modifications for the header file.
Limited size of info panel to 30% so that sets with long names display better.
I made modifications to these files so that they will work with both hardcopy and on the screen. (The two files are currently identical.) I think they provide a better model than the previous versions.
Added defaultDisplayMatrixStyle from webwork 1, which lets people control if they have parens or square brackets on the outsides of their matricies. It is not really an answer evaluator variable, but it is put there since that works and putting it with options doesn't.
Added convention to beginproblem that point value of "" means that we don't print the point value at all. It will also supress printing of the filename if someone is supposed to have filenames printed, which is appropriate for the one known time this convention is used.
Made a small change to the subroutine problemListRow which now handles the case where the problem status has not been defined as a number.
quoted hash keys with colons in them.
changed ServerName to devel.webwork...
fixed interface to not be so sucky, added delete function.
finished, deleteCourse, added listCourses.
now uses listCourses
added pg root directory variable.
Corrected typo in defining class.
Added colors to the "answers correct" and "answers incorrect" statements. They are assigned to the class div.ResultsWithError and div.ResultsWithoutError
Fixed url so that it points to the time and date page for editing the set data for the student
Fixed problem where a success message was issued even when a mail merge file was not correctly saved. Also made cosmetic modifications to the error message format so that it doesn't look as frightening and the important error message is highlited more than the boiler plate message
Made changes in wording about open date. This foxes bug 429 (assuming that it really needed to be fixed).
Fixed link for edit button on ProblemSetList page. This squashes bug #446
Fixed a line return that was causing troubles one webwork, but not on webwork3. "<br>\n" produced two line breaks within <pre> on webwork, but only one on webwork3, "\n" produced no line breaks on webwork3 and one on webwork. It seems safest to go with "<br>" which seems to produce a single line break on each machine.
Siblings were mislabeled as "Problem Sets", when they are a list of individual problems.
Fixed spacing in preview of merge file data
Fixed errors in creating urls. (It is important to set authen=>0 when creating links for forms -- they already contain hidden authentication variables.
Added item for printing timestamp at the bottom of the page.
preliminary web-based course creation support try it -- create a course called "admin" the usual way and then visit it in your browser.
css fix
Synched with ASU version. Defunct functions deleted, new functions added, and documentation added.
Added timestamp to contentgenerator. The format string can be passed to it by the style parameter.
WW 2 didn't like the top line. Inserting a comment seems to fix it. Also corrected a typo.
Improved display of multiple checkbox answers when displayed on the web page (replacing null characters with commas).
On a multiple checkbox question, the different checked boxes are separated by ^@ in the log file. They don't look nice on a web page, show they are now switched to commas in showHTML.
More changes in construction of urls. Changed parameter acquistion in ShowAnswers
More changes in construction of urls. Changed the form calling ShowAnswers
Made more changes allowing the conversion of urls
Updated these files to generate urls from urlpath.
Updating cgs to use urlpath
Added support for useBaseTenLog for ww2.
Converting to using URLPath
Converting to using URLPath.pm Some difficulties with constructing path to SetsAssignedToUsers.pm in ProblemSetEditor.pm
most files are now updated -- remains to use URLpath to construct paths in the instructor files.
Cleanup -- moving toward using the Apache:Request object and URLpath. It remains to use URLpath to construct new paths in these files.
Added a new numeric "published" field to Set and UserSet record classes, WW1Hash (with field name "publ"), and mksqldb. Modified WW1Hash to promote fields that did not exist in the database to the empty string, to deal with sets that do not have a "published" field.
Added a new numeric "published" field to Set and UserSet record classes, WW1Hash (with field name "publ"), and mksqldb.
added this
urlpath/systemlink upgrades LOTS of cleanup (but it still needs more)
support for previewing temp files
title improvements
added programmatic format support
rewritten: * no duplicated code (no copy-n-paste) * error messages if the wrong objects are selected * uses $self->reply_with_redirect() * uses ScrollingRecordList * more descriptive button names, values
removed test
added "Add Users" and "Set Assigner" links
urlpath/request/systemlink updates
removed appendixes, deny access if not has permission
now using new urlpath stuff, etc.
new interface to systemLink
removed appendix
fixed hierarchy problems with statistics and user detail.
* systemLink changes: params can either specify param names in a list (in which case all param values will be taken from the request) or specify param names and values in a hash (in which case only undefined values will be taken from the request). multiple values can be specified for the same param by using an arrayref. * added $self->reply_with_file() and $self->reply_with_redirect: these can be called from pre_header_initialize to direct the CG to either send a file or a location header. $self->{sendFile} and $self->{noContent}, as well as sending your own redirect headers, are now deprecated!
handle undef CG result
added ButtonRow class, child of FormLayout -- appropriate for your centered submit button!
URLpath compliance, some cleaning up of code. much more cleanup remains.
the info box is no longer floating,
fixed stupid errors in generated course.conf file.
if $field is undefined in sortByname, the items are treated as strings instead of objects.
fixed FormLayout style
URLPath conversion, cosmetic changes, work on info box UI
URLPath conversion
URLPath conversion, cosmetic changes.
added dequote() function from cookbook
fixed a path
added note to remind me to change the way systemLink() works
tentative solution to two of Frank Wolf's problems: On Tue, 16 Mar 2004, Frank Wolfs, Physics and Astronomy, U of R wrote: > This one works for a pdf file that is based on a set without graphics, > but it does not solve the problem with viewing the graphics in problem > sets or making a pdf for a set with graphics. For example viewing a set > with a gif file gives me the following error: > > [Tue Mar 16 22:11:59 2004] [error] [client 220.127.116.11] File does not > exist: > /home/apache/htdocs/home/webwork/courses/phy121s04/html/CAPA_Graphics/Gtype20$ > > When I try to make a pdf file I get the following error for the same > problem: > > ! Could not open file > /home/webwork/courses/phy121s04/htmlCAPA_Graphics/Gtype20 > /prob01.eps, ignoring it. > > Note: for the fig, the path is correct after /home/apache/htdocs, while > for the pes file, there is a / missing between html and CAPA_Graphics.
Changed the naming of arrays from ArRaY[0,0,0] to ArRaY__0:0:0:__ This involved changes in PG.pl and PGmorematrixmacros (ans_array_filter) Made other cosmetic fixes to code. Added names to many filters to help with debugging. It seems to work for now.
disabled param munging -- this will prevent destruction of params with ':' and ',' in their names. closes bug #431.
updated for new request format and URLpath
fix in systemLink logic
upgraded request usage. i'm delaying changing how paths are generated until i do something about what a mess this module is in other ways.
made hardcopy_preselect_set a child of hardcopy (as it should be)
conformance with unified request object, etc. SMALL formatting cleanups. this module needs some work, and there is stuff to factor out -- there is a lot of copy-n-paste from other modules.
Welcome to the ContentGenerator skeleton! This module is designed to help you in creating subclasses of WeBWorK::ContentGenerator. Follow the instructions marked "SKEL" below to create your very own module. When you've finished, I recommend you do some cleanup. These modules are much easier to maintain if they doesn't contain "vestigal" garbage code. Remove the "SKEL" comments and anything else that that you're not using in your module.
removed unused WeBWorK::Constants
Authen and Authz are now passed only a WeBWorK::Request.
disabled debugging output
urls are now generated with URLpath and systemLink
changed interface for systemLink to be more regular. you can now specify a list of parameters to attach to the URL and a list of alternate values for any parameter. cosmetic changes.
I have made changes to the list of problems that uses the full path instead of the relative call used previously. Hope this will fix the error described below. I don't know whether this is the proper fix or whether something fancier using urlPath is appropriate. There is an error with the links for Set 7. Clicking on problems in the problem set will not link to the selected problem- it will link to the problem set of the same number. (i.e. Selecting problem #2 will link me to Homework set #2 instead) --Mike
all template escapes now use CGI::Pretty for better readability. (feel free to convert other content generators -- replace "use CGI" with "use CGI::Pretty. all template escapes now print output directly instead of returning things. (good for pipelining!)
removed old dispatch() function, renamed dispatch_new() -> dispatch(), added upload handling code (from old dispatch function).
Temporary fix for problem with hardcopy. #my $singleSet = $r->urlpath->args("setID"); my $singleSet; #FIXME trace down how sets are being passed to hardcopy. $singleSet was receiving the notion 1/8 @sets was getting the correct value of the number of the set. Looks like $singleSet is receivinv a hash?? The calling code needs to be checked over and reconciled with the responding code.
updated to use the "unified request" object. this file needs quite a bit of refactoring (along with Problem.pm).
updated to use the "unified request" object. removed unused variables and subroutines. fixed some style problems.
updated to use the "unified request" object. removed unused variables and subroutines.
removed incorrect code from Feedback.pm, as well as several unused variables, closing Bug #427. updated to use the "unified request" object.
finished extensive documentation and reorganzied file. this should be much more usable now. also, the templater is now called from the new content() method (instead of having special logic in go()).
removed outdated documentation about manually creating course.conf file.
i hate it when i think i've tested something, and it turns out i didn't.
templating code from ContentGenerator.pm is now here.
removed templating code. (it's now in lib/WeBWorK/Template.pm.) small fixes in links(). $ce/$db/$authz now taken from $r instead of from $self in many methods. loginstatus() now uses urlpath. CSS-ization.
formatting improvements: template now uses tabs, just like everything else. should be easier to edit in the future.
disabled path() and title() so implementations in superclass will be used instead.
Added systemLink() method to take a URLPath and tack on the location prefix and the authen args (if desired). Allows one to override any of the authen args with new values (i.e. for changing effectiveUser). Reimplemented links() using URLPaths and calls to systemLink() as a test. Also, the output is now styled as nested unordered lists in the class LinkMenu (see stylesheet).
put "grades" in alphabetical order. added newFromModule for creating a URLPath to a particular module with particular args. reorganized the code somewhat. constructors now throw an exception if they can't find an appropriate path type.
more work on stylesheet
Added a primitive file reading capability to Grader.pm. Now you can attach the message from an email file called report_grades.msg in the email directory which is merged with the file report_grades_data.csv in the scoring directory. there is a lot of code borrowed from SendMail and from Instructor which can be factored out. It provides a primitive version of a feature that has been requested -- to report exam scores as well as webwork scores.
disabled path and title methods.
added documentation, added support for a new "textonly" argument to the "path" macro.
the document title is now calculated using the "path" macro
Use the student stat table in Grader to produce student detailed stats in Stats.pm. Commented out, but did not yet remove Stats.pm code for this function.
Added support for the new module Grades.pm which supports student grades Also changed ProblemSets.pm so that it welcomes the effectiveUser rather than the user.
Added support for the new module Grades.pm which supports student grades
*** empty log message ***
Allow at most two digit numbers
Removed unneeded formatting code
another typo
Fixed threeSpaceFill routine to work with strings.
Make the percentages more accurate by dividing by the number of students who attempt the problem.
need to calculate this value as well. oops.
Added 0 bracket to number of attempts.
Added more statistics on how students are doing. There is still a lot o code to be cleaned up. Once the calculation and the display are better separated it will be easier to create statistics that count studnets appropriately. e.g. dropped stduents and professors aren't counted.
Changes to the ways links are constructed on this, the front page, of WeBWorK. I believe this is where links missing webwork2 or missing the course name started to appear. In fact I'm surprised it worked at all. the current patches are hacks. This page needs to be adapted to URLpath. It would be a good script to do next. --Mike
Added timing y
Has only one subroutine at the moment update_global_user creates a global user if none existed before and assigns all existing sets to the global user.
Some cosmetic changes in the table Added a safety switch for deleting sets. Added a call to Compatibility::update_global_user to fill in global_user records if no globa_user has yet been assigned.
added URLPath and Request, for dispatch_new
changed template escape handler functions to grab data from $r->urlpath instead of @_ for compatability with dispatch_new.
removed debugging warning, added class="ScrollingRecordList"
assignment functions now return a list of errors that occured during assignment. these are, for example, used in Assigner.pm to display errors.
changed constructor to work with dispatch_new
calls dispatch_new instead of dispatch. removed entire "Call Stack" from error output, since it doesn't work right.
added dispatch_new function. w00t!
fixed some indentation problems (oddly, this file is indented with spaces, one space per indent level) and reformatted some of the shorter CSS rules to fit on one line. added styles for "new standard classes" FormLayout, ResultsWithError, and ResultsWithoutError. added styles for ScrollingListRecord widget.
Added comments
Rolled back previous addition of the due date. The due date can be specified in the setHeader message. It does not need to be hard coded into ProblemSet.pm --Mike
Make sure that screenSetHeader.pg will work with both html and hardcopy output. This fixes bug #426
Changed documentation spacing
Changed the text of this file so that it doesn't bomb when used with hard copy
Cleaning up commented out code. Added a "due date is...." message to the top of the ProblemSet page.
UI cleanup
WeBWorK::HTML::ScrollingRecordList - HTML widget for a scrolling list of records. uses FormatRecords and SortRecords. see sample usage in Assigner.pm.
implemented UI using ScrollingRecordList
added documentation
Added utility modules for sorting lists of records and formatting records as strings (WeBWorK::Utils::SortRecords and ::FormatRecords, respectively). These modules are important because they not only know how to sort or format records, they can also be queried for a list of sorts or formats suitable for display, i.e. in popup menus near the list of records. These modules are being used as the basis for a module which encapsulates a "record list" widget.
changed default courseURLRoot to /webwork2_courses/$courseName to correspond to the latest ApacheSetup instructions.
Changed parameter calls to Error.pm, now sent using $r
Eliminated direct parameter calls, error message now passed through $r
Roll back previous changes. The user_id is no longer listed in the scoring files. sorry about that. --Mike
Added user_id (the login id) to the list in scoring.
removed local copy of ImageGenerator -- the system now uses the one from PG.
added $Global::equationURL and $Global::equationCacheDirectory settings
use new $Global::equationURL and $Global::equationCacheDirectory settings instead of hardcoding "equations/"
removed code that monkeys with the pg directory. It is a SHARED resource and should not be modified by the likes of WW1.
This is a new attempt to fix the problem that there was no preview string if the units were incorrect. The previous fix caused difficulties if strings were entered for numerical answers. The new code has been added to the subroutine fix_answers_for_display which already performed answer cleanup of various kinds.
Added nbsp method to ContentGenerator.pm
Added at table of statistical results when viewing the statistics for a given set. --Mike
Fixed ordering problem with problems in a given set. This squashes bug #405. Also made a few clean up efforts on the code. --Mike
release notes updated
a few more fixes
addcourse improvements: FIXED: we should create a stub course.conf with dbLayout set and "other things FIXED: you might want to change" commented out. then we can kill the "don't FIXED: forget to set dbLayout to "sql" in course.conf!" message. FIXED: setting global user ID in new courses: FIXED: add a --global-user switch to addcourse to override that value FIXED: (and add the override to course.conf) FIXED: warn if the file specified by --users doesn't contain a user with the global user ID
added slowness warning
added "Home" content generator to give a list of courses
added global_user
clarity changes, changed default oldProf URL, added $dbLayoutName setting for addcourse, default dbLayout is gdbm
improved documentation on globalUserID, changed default to "global_user"
added nbsp() subroutine to clean up table appearance this could still possibly be added to contentgenerator.pm
added <pre> tags so the viewed message is the same as in the submitted email
Reordered pre-filters in NUM_CMP to allow for latex previews of answers with no units
fixed incorrect error message parsing by Instructor/Index.pm
fixed incorrect error handling by Instructor/Index.pm
replaced previous file which had a gremlin somewhere
Changed addresses to login_info.txt and course_info.txt These files must be in the template directory.
Commented out extra brace which kept this from compiling. :-) --Mike
Added RECORD_FORM_DATA for making sticky form data which is not specifically related to answers.
added timing code
removed /test
better placeholder page
strings containing email addresses are now single-quoted globalUserID is now "globaluser"
Removed changes made in last revision. (whoops)
Modifications to checkbox_cmp to include preview_latex_string. this completes the squashing of bug #400
Made changes to the check box macros so that they will remain sticky when more than one check box is checked. Involves splitting a null separated string ( or perhaps converting a reference to an array). uses a new subroutine contained_in(elem, array_or_arrray_ref_or_null_separated_string) this resolves part of bug #400 --Mike
shows user-specific due date if overridden. closes bug #394.
removed the "delete visible users" option, changed "show users selected below" to "show users checked below".
dispatcher can now handle multiple slashes.
Corrected format of one line. --Mike
Allow a 256 error from dvipng. This seems to be necessary on webwork.math.rochester.edu, so I'm commiting it to the CVS as well to keep the two systems in sync. --Mike
added unrestricted_load() for IO.pl, bringing compatibility with the PG system in CVS.
Closes bugs #345 and #293. From bugzilla: "This should work now. The docs for Apache::Cookie claim that the module will accept relative expiration dates such as "+30D" and "+1H", but apparently, this causes the expiration date to be set to "now", which Galeon apparently didn't mind but caused Safari and MSIE to throw the cookie away."
Fixed flaw in the previous correction meant to protect against undefined student answers.
Made changes at line 552 which check that the original student answer has actually been defined. This should be guaranteed by the answer evaluators but ........
A method for displaying equations using dvipng which can be used by students to enter symbolic data in answers. This is very much experimental still. --Mike
Corrected sorting by user_id. Code now works correctly. Before the sorting for this case was occuring by accident with the SQL database. Made changes to the interface in SendMail. The radio buttons are now horizontal to match the radio buttons on the Instructor::Index page. Changed Id to Login to make the sorting parameter clearer. changed the format of the popmenu on the Instructor::Index page to match the format used on the SendMail page.
getAll works for problem as well as problem_user
Implemented the getAll method, to allow fast access to all problems in a set. This speeds up Stats immensely.
Changed the code that retrieves all problem records for a set. Now, the only call made (per set) is getAllUserProblems(). The extraneous call to listUserProblems() has been removed.
Replaced "getuserProblems by getAllUserProblems when printing statistics for a single user (many sets) The time when from 178 to 35 using GDBM. It went from 15sec to 16sec (on a different course) when using sql. --Mike
Changed the size of the font for printing out the results of the scoring file. This file needs to be reviewed carefully. There is a lot of crufty code. The use of s{tyle=>'.....' should be replaced by items in the template in this file and throughout the Instructor modules.
Added tweak to handle case where set is not defined when acting as student.
Made major modifications to user interface on Instructor/Index page. Added use of getAllUserProblems in main loop for Stats.pm problems when displaying statistics for a given set. This speeds GDBM from 8 sec to 2. SQL stays at around 22-23 seconds. Also addded code to sort_method which checks that the number of attempts has been defined. If not it returns 0. --Mike
Fix bug from last fix, and a second bug caused by $Global::htmlModeDefault being accidentally called $Global::htmldisplayModeDefault in this file.
Some sites use only one display mode. In that case, the "choice of one" display mode should not be displayed.
Content Generator to create an error message while still logging the user in.
Corrected formatting showing the due date if it has been over-ridden.
Added the due date when the problem has been assigned.
Changed "open date" to "due date" when
Minor change to the definition of the timer
If LaTeX formula ends in a backslash after removing training spaces, then we removed too much space, so we add a space to the end of it so it ends '\ \)'.
Checked to make sure parameter is defined before using it.
Removed extraneous warning message
Check that arguments have been defined at line 417
Added ability to change the number of entry rows on the Addusers.pm page. Minor modification to multiple=> to conform to bbedit's version of correct html
Cosmetic modification changed "edit set" to "edit sets"
Changed parsehilight to put colored box around error.
course_info and login_info paths are now defined relative to the templates directory for safety.
Added rudimentary "Save as" function. This duplicates WW1.9 save as , but does not provide any extra functionality. The following problems remain: The redirect does not yet work correctly. I believe the desired behavior is to view the new saved problem from the editor. There is no easy way to view the new problem or whatever until the problem has been assigned to globalUser in the set.
Cosmetic change changed "edit" to "edit sets" for clarity in link name.
Cosmetic change textfield to text to correct an error in html output.
Made modifications to PG problem editor to allow editing of course_info. Future plans include allowing editing of login_info by the site manager (but not by the course instructors). All files to be edited must lie under the templates directory (for safety reasons.) There are still issues with adequate warnings for saving files when permissions are not correctly set. There is not yet a save as button. --Mike
Only collect nonempty user IDs for assigning. Closes bug #373
Removed warning if a single tie fails. If many ties fail then the processes dies with a message of how many ties were attempted. --Mike
Make sure that if one message is reported for answers then all messages are reported (even if some of the messages are blank). This was clearly a typo in the original code where a decision was made on $answerMessages instead of $showAnswers. This fixes bug #370
added the option to assign sets to newly-created users.
fixed a bug in assignSetsToUsers
moved logout button to be in loginstatus escape.
Changed orange hilighting to a yellow box by replacing color : by background-color:
moved Assigner to UsersAssignedToSet. created new Assigner module, and wired it to /$courseID/instructor/assigner/. It doesn't do anything yet, but it will allow the assignment of multiple sets to multiple users, all in one shot.
Problem marked correct only if score is 1. Previously any score above 0 was marked correct.
Added CSS class parsehighlite to mark the error in a string.
Made modifications to header that make it clearer how to edit all sets for one user. --Mike
added more timing messages.
Cleaned up, documented, and optimized assignment methods. Added assignSetsToUsers() and unassignSetsFromUsers() methods.
added some timing code
changed text of link to instructor tools. (it is considered bad style to label links "Link to ...")
improved the formatting of error messages slightly.
Mail merge does not report error when the merge file selected is "None". --Mike
Changed warning message for unassign all on the Assigner page. This closes bug number 352 --Mike
Corrected link to file transfer page. This squashes bug #346
Edited headers for the problem set list page. --Mike
Modified the reading of set definition files slightly to deal with the case where some values haven't been defined. --Mike
Put "guest user" button in a separate form. Despite the fact that it was the second button a return (in most browsers) would trigger the practice login rather than the standard one, much to the users surprise. --Mike
Fixed some errors in my first fix for Authen.pm The goal is to make sure that the existance of a users record and of a users status is checked before it is used. Authen.pm could use some cleaning up. Probably best to do this when thinking about how one would plug this into LDAP or to moodle's authenticator.
Placed the link to subpages back on top of the quick link tools, at least for now. The quick link tools need to be presented better. -- Mike
A link to the instructor tools is placed prominately at the top of the page. It is identical to the link to instructor tools on the left. This responds to bug #325, but may not close it completely.
If the users status has not been defined it is set to 'C'. I'm not sure why the status might be undefined, but this seems to be the least damaging assumption. A warning is issued.
Can now sort recipient list by section and rectation. A few other user interface cosmetics added. This should close bug 309
Users who have been dropped from the course can not login with a password. this addresses bug: 301
Colorized responses to changing passwords. Red for things which don't work and green for those that did. --Mike
Cosmetic modifications to the user interface. Made "instructor tools" and "problem sets" larger in the left margin. This addressed bug 323 but may not solve it.
Modified layout of the Instructor/Index.pm module.
Cosmetic tweak to title. Added the course name.
Added a larger title to this page.
Added some cosmetic tweaks to these pages.
Added warnings to Assigner so that folks don't unassign students by accident. You can now select the number of users you would like to add. You still cannot immediately assign sets to students, but there is written warning about this.
Add users will now handle 5 users at once. Add a device for allowing this number to change. The userlist pop-down now defaults to add users with matching ids. --Mike
fixed bug in call to Romberg routine. Romberg now requires parameters of the form "level => 8". This was fixed previously I thought. Not sure how the fix was lost. Arnie
removed <xml? line from the top of the file that is giving the newest msie headaches. The line is from bbedit and gives info on the character set begin used. msie tries to interpret it as xml and gets confused. Other browsers, including msie on the mac ignore it. --Mike
fixed a mispelling
changed copyright dates to 2000-2004
dumped from wiki
removed some rochester-specific stuff. in particular, this should prevent our SMTP server from getting hammered by lazy sites.
removed lingering references to "webwork-modperl", since we're calling this product "webwork2" now. soon we should change the name of the CVS module to "webwork2" as well.
added checkboxes to the import forms to allow user to deicde whether to assign a set to all users or not.
removed junk
fixed a syntax error
added default classlist file
improved documentation in database.conf.dist and addcourse. added mksqldb utility.
changed calls to WeBWorK::DB::new, removed obsolete config files
UPDATE YOUR CONFIG FILES! (global.conf.dist, database.conf.dist) Made changes to support the storage of multiple database layouts in a single course environment. Database layouts are now stored in a hash named %dbLayouts in database.conf, and the default layout is aliased to *dbLayout (see comments in database.conf.dist and global.conf.dist) sql.conf and gdbm.conf are no longer used. Support the selection of a specific database layout when instantiating WeBWorK::DB. WeBWorK::DB now takes a reference to a database layout rather than an entire course environment. All calls to WeBWorK::DB::new were updated to pass the correct argument.
cleaned up error reporting in the include() function. sadly, it still doesn't work as expected (see FIXME in the source)
Modified line at 344 to check whether $key is defined. If $key was not defined then there was a reported error in defining $unusedCookieMatched. --Mike
made changes in checking for permissionLevel so that zero was recognized as a legitimate level. --Mike
Added AliasMatch redirect for webwork2_files so that it doesn't have to be configured separately. --Mike
More checking for incomplete records. This time for entries in @userRecords --Mike
Zeroed the variable storing the responses to questionnaires. Should fix the error on questionnaires revealed by the persistance of mod_perl modules. Changed warning message in dangerousMacros.pl to more accurately describe what is wrong when the gif2eps script cannot be executed. (Based on actual experience running a course on webwork.math.rochester.edu -- I couldn't remember what my own warning message implied.) --Mike
added missing POD =back directive
Added error messages that should make it easier to tell if certain directories have not been created. Also checks that files are actually created and written at each step of the process. --Mike
Modified print out so that the problem totals and index totals have %4.1f format. The field width is 4 and the number of decimal points is 1. This closes bug #284 --Mike
Added error checking to insure that the open_date, due_date and answer_date are in correct order. This closes bug #73 --Mike
We now send a cookie if any of these conditions are met: (a) a cookie was used for authentication (b) a cookie was sent but not used for authentication, and the credentials used for authentication were the same as those in the cookie (c) the user asked to have a cookie sent and is not a guest user. Now whenever we're not sending a "real" cookie, we send a cookie with no user or key data that expires "one day ago".
added automatic guest logins: With the presence of a "login_practice_user" paramter, Authen.pm will log the user in using the first unused practice user account. Login.pm now displays a "Guest Login" button that sends the above parameter, but only when the course has practice users. Currently, cookies are not sent for practice users.
added cookie support for authenticaion. the "WeBWorKAuthentication" cookie is used to retrieve the "user" and "key" parameters. the cookie is sent if a "send_cookie" parameter is present, and persists for 30 days unless canceled by an explicit "logout".
small amount of cleanup (to prepare for cookie patch)
- Assigner and SetsAssignedToUser now refuse to unassign sets from the GlobalTableEmulator's "global user". Closes bug #283. - New "unassign from all users" button in Assigner. - Cosmetic changes to path() and title() in several modules.
Multiple users with the same student ID no longer clobber each other. (The users are still sorted by student ID.) Closes bug #285.
add explicit "view" and "edit" links, closing bug #275
(possible) fix for bug #286
users are now skipped if they don't have an email address.
moved a comment
I wrote a really great log message, and then I lost it. So now I'm a little pissed off. Added code to pre-fetch users, global problems and user problems outside of the main processing loop of scoreSet(). This allows the use of getAllGlobalProblems() and getAllUserProblems(), which is much more efficient than what was being done before: For a course with 154 problems in 9 sets, all of which are assigned to all users, scoring all sets with "IncludeIndex" and "Record Scores for Single Sets" took the following times: Original code: 34.07 sec New code: 8.68 sec This is around four times as fast. I initially attemped to rewrite the main loop to allow the use of getAll*Problems(), but this proved to be time consuming and error prone. I eventually decided to leave the main loop alone, except to replace the DB calls inside it with accesses to pre-fetched records.
additional comments in source code
getAll() now returns problems in the order that they are specified in the database, instead of in order by problem ID. This is the behavior of gets() as well.
added "getAllGlobalProblems", similar to "getAllUserProblems".
scoreMessaage no longer prints to STDERR, only to log file. For some reason printing to STDERR really slowed things down on some systems. Arnie
Fixing cosmetic error at line 68 -- replaced @result[0] by $result[0]; --Mike
fixed stupid bug (#292)
Added DB: getAllUserProblems; WW1Hash: getAll, getAllNoFilter; GlobalTableEmulator: getAll. Together, these functions allow efficient access to all problems in a given set.
As best I can determine all "get" commands to the database are now checked and appropriate action (usually "die") is taken if no object is returned. One exception. The multiple "gets" such as getGlobalSets(@setNames) are not checked -- if a given setName is not found is an empty object returned? in the list or is nothing returned? --Mike
removed <?xml header from template which was confusing IE6 (but not IE on the mac or mozilla etc. apparently they ignore <?xml version="1.0" encoding="utf-8"?> at the beginning of a file. --Mike
Changed the way timing marks are implemented. They are made if a timer has been defined for the file. --Mike
added "count" methods to the rest of the schemas. updated documentation.
Normalized headers. All files now contain the text below as a header. This is important since all files now (a) use the full name of the package, (b) assign copyright to "The WeBWorK Project", (c) give the full path of the file (relative to CVSROOT) instead of simply the file name, and (d) include license and warranty information. Here is the new header: ################################################################################ # WeBWorK Online Homework Delivery System # Copyright © 2000-2003 The WeBWorK Projcct, http://openwebwork.sf.net/ # $CVSHeader$ # # This program is free software; you can redistribute it and/or modify it under # the terms of either: (a) the GNU General Public License as published by the # Free Software Foundation; either version 2, or (at your option) any later # version, or (b) the "Artistic License" which comes with this package. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See either the GNU General Public License or the # Artistic License for more details. ################################################################################
playing with header formats
Implemented a schema-level "count" function in the WW1Hash schema. Added countSetUsers and countProblemUsers to DB. Replaced SCALAR calls to listSetUsers with calls to countSetUsers. Update Schema documentation. The immediate advantage of this is to make ProblemSetList MUCH faster.
implemented an "Import Multiple Sets" feature.
squashed some instances of the "0 is not a true value" bug that keeps creeping in.
removed debugging statements
reduced number of return points
databases are not created on first read
fixed password creation
addcourse - add a course addcourse [--users=FILE [--professors=USERID[,USERID]...] ] [--templates=DIR] COURSEID Add a course to the courses directory. The required directories will be created. Optionally, a database can be populated with users and the F<templates> directory can be populated with the contents of another directory. Also, one or more users can be granted professor privileges.
added getsNoFilter, which will return a list of set or problem records without filtering out global data first. (used by getMergedSets)
fixed timers
finally committing "terrible GDBM hack": if WW1Hash and GlobalTableEmuator are being used, a schema-specific optimization is enabled in getMergedSets.
removed old version of module from beneath __END__.
removed "use HTML::Entities", as it is not being used (commented out) and no other modules use it.
complains about there being a user-specific record but no global record, but returns the user record unmodified instead if failing.
http-wwmp.conf.dist no longer includes /usr/local/etc/apache/httpd-wwmp-header.conf, but includes instead each user's copy.
this file has been superceded by information in the WeBWorK Wiki: http://devel.webwork.rochester.edu/twiki/bin/view/Webwork/ApacheSetup
implemented assignAllSetsToUser and unassignAllSetsFromUser
plural get methods no longer require an argument. that way, one can pass an empty list to them and get an empty list back.
added "Act As" link, user ID now links to "sets assigned to user"
Made minor modifications so that GatewayQuiz would run again. It hadn't been tested for months and other parts of the system had moved on. This is still very much a mockup for delivering gateway quizzes. --Mike
added script to generate HTML documentation from library POD
added documentation for "gets"
added code to check for undef return values from DB "get" calls.
getPassword[s] and getPermissionLevel[s] now auto-create missing records.
fixed some formatting and #if nesting.
changed defualt globalUserID to "professor". See bug #273.
Adding timing code for ProblemSets and for Stats.pm --Mike
Removed references to ScoringTotals.pm These capabilities are handled by Scoring.pm --Mike
Removed references to ScoringTotals.pm These capabilities are handled by Scoring.pm --Mike
changed getMergedProblems to getUserProblems. This seems to have speeded things up somewhat. --Mike
Added timing code that measures how long it takes to get given problem data for all users. It's too long. --Mike
this module allows you to change which sets are assigned to a given user. it is not yet accessible via the WW UI, but you can access it with a URI like "/webwork2/$courseID/instructor/users/$userID/sets/"
changed the name of the module in the path.
There shall be ONE empty line between each subroutine. Not five, not zero!
I wasn't using WeBWorK::PG here, but it was getting loaded anyway before I changed the way the dispatcher loads things.
changed some variable names to make them more readable. I've been calling variables that contain the names of courses, users, sets, or problems things like "$courseID", "$userID", "$setID", and "$problemID", and lists of said names "@courseIDs", "@userIDs", "@setIDs", and "@problemIDs". On the other hand, I call variables that contain ACTUAL RECORD OBJECTS things like "$User", "$Set", and "$Problem", and lists of them "@Users", "@Sets", and "@Problems". (Note the capitalization!) This makes it totally clear whether we're talking about an OBJECT or and ID. This is a Good Thing.
removed old timer.
(1) only the content generator needed for this request is loaded, and it is done at runtime. this is good for speed and error reporting. (2) actually instantiating CGs and running their "go" methods is defered until the end of the handler routine. this means there is only ONE place where this is being done. (3) documentation has been improved. (4) added support for UserDetail (not yet written) and SetsAssignedToUser (written, but not yet reachable) in the UI.
fixed a bug in line 2469 replacing \npsvnNumber by \n$psvnNumber Arnie
added problem numbers along top when viewing all sets for a given user. unfortunately, this slows down display, since nothing can be sent to the client until all sets are processed. closes bug #272.
support for FileXfer and Upload.
support for FileXfer and Upload
moved getCSVlist to superclass. implemented FileXfer for set definition files and classlist files.
Added routines to list classlist files and set definitions files.
Finished Upload module. See POD. Added sendFile routine to ContentGenerator. To use, store a hash reference in $self->{sendFile} containing keys: source: full path to file to send type: content type of file to send name: file name to suggest to client This must be done BEFORE the HTTP header is sent, i.e. in pre_header_initialize. It will not work is &go or &header is overridden.
Turned timing off for the CVS copy of WeBWorK.pm --Mike
Modified the way timers were controlled. Timers must now be defined before they will be called in this script. This fixes a bug that appeared only on webwork.math.rochester.edu where the timers were turned off. --Mike
Modified the way the timing mechanisms are controlled so that a timer must be defined before it is called. Fixed a bug appearing on webwork.math.rochester.edu where the timers were turned off. --Mike
Slowly modifying scoring so that it will be easier to add features. The modifications are mainly to the scoreSet function. --Mike
the timing switch is now turned off by default. --Mike
Added lines that allow you to turn the timing statements off with one switch.
Timing counters added. Faster way to count the number of sets. (but not fast enough for GDBM) --Mike
resolves bug #268: This is a problem with the naming of the popup menu options. "selected users" refers to the users checked in the user table, below the action options. "users with matching user IDs:" refers to the list of user IDs entered into the text field to the right of the popup menu. (note the colon.) The reporter was attempting to specify "selected users" by entering their user IDs into the text field intended for "users with matching user IDs". I have changed the name of the "selected users" option to "users selected below", which makes the distinction easier to grok.
cvs-log test
display can now be filtered by entering a user ID (or list of user IDs) or selecting a section or recitation from popup menus.
cosmetic changes to instructor_links method
added export functionality.
use getGlobalSets instead of getMergedSets. It speed things up a lot. -- Mike
Added timing code for Instructor::Index to Instructor::Index.pm and also to WeBWorK.pm. We can remove this once we have finished testing various database configs. --Mike
reworked UserList.pm to have a more modular structure: 1. all modification of user list happends in action_handler routines 2. the whole page is one form 3. view properties (what is shown? what is selected?) survive actions 4. can choose to apply actions to all/selected/visible users this is more useful than the old UserList, and can be seen as a prototype for additional refactoring. also fixed Index.pm to work with the new UserList interface.
Modified the way the editor link is prepared and when it is shown -- particularly if there are errors. This fixes bug #122
Fixed problem in logic which kept an edited problem from reading the .tmp file when the answer was submitted. Now the editMode variable and sourceFilePath variables are passed on as hidden variables by Problem.pm if they exists in the input form. This fixes bug #179 as well as bug #109. The temporary file is now labeled fileName.pg.user.tmp where user is the login name of the person editing the file. If that file exists then pgProblemEditor will attempt to use that as a source file. The revert button forces a read from fileName.pg --Mike
Added various sorting methods to the statistics page. This makes the sorting more flexible, but it also slows down the process somewhat. This results bug #153 --Mike
fixed the problem where all user values appear to be overridden. no bug for this is bugzilla though.
Changed code to call getMergedSets instead of calling getMergedSet repeatedly. No noticable speed up in this case, but it works correctly. --Mike
fixed how "gets" was being called. It has to be called with a list of array references. fixed several implementations of "gets". closes bug #252.
fixed some typos re: calls to get vs. gets closes bug #259 closes bug #250
changes to the diabled stack trace code
work on making the user list more flexible: by default, edit fields are not shown it is possible to select a subset of users for editing
closes bug #251: getMergedSets and getMergedProblems now call getGlobalSets/getUserSets and getGlobalProblems/getUserProblems. The algorithm used to merge fields is also more efficient now, and getMergedSet/getMergedProblem have been reimplemented to call getMergedSets/getMergedProblems.
Fixes bug #254. The showHints check box will not be shown unless the number of incorrect attempts is greater than or equal to the value of showHints. The showHints checkbox now appears in red (and in a new <div> which means a new paragraph on some browsers) This helps alert a student that a hint is now available. --Mike
Added button to link to scoring of sets. Removed some debugging warning messages. --Mike
Changed dispatcher to allow access to Instructor::AddUser module. Removed references to Index2.pm --Mike
A new version of the index page for instructor functions with a better layout. All of the buttons now do something appropriate, although several of the functions should be rewritten to be more efficient. For example it should be possible to change many students/dates at one time. There are other functions that should be added as well -- assigning students to sets for example. --Mike
This will be removed soon. --Mike
The beginnings of a module that will allow you to add new users efficiently. For now it is just a copy of the old index page, including links to the webwork 1.9 tools -- Mike
This module is a candidate to replace the Index.pm page and module. The displayed "control panel" is set up. Only the "become student" control works right at the moment. You can access it by replacing instructor by instructor2 in the url for the instructor index page. --Mike
added some notes about refactoring content generators.
fixed new implementations of "get" -- they need to return a single item, not a list of items!
added optimized implementations for DB getOBJECTs functions.
added record filter
now can take commands from ARGV intead of interactively
Fixed a reference to the nullSafety filter --Mike
Protected against undefined strings. They are replaced by empty strings. --Mike
port defaults to 20000 + $>, override with -p PORT or --port=PORT no longer hardcodes pg lib location (call with "perl -I/path/to/pg/lib renderd" instead)
updated for remote renderer
new render daemon
1. moved common functions from PG::Local and PG::Remote to PG and made them methods so that inheritence would work. 2. made some changes to PG::Remote to make it work with renderd
1. moved common functions from PG::Local and PG::Remote to PG and made them methods so that inheritence would work.
changed the way the IO modules work: shared subroutines are in IO now, and IO has a hash %WeBWorK::PG::IO::SHARE which can be added to Translator's %shared_subroutine_hash directly.
changed documentation to reflect the fact that reh refresh and mtime flags are no longer used
moved to pg
added files from WW2
replaced with a stub that allows the calling of macro loading functions without an instance
use WeBWorK::PG::Translator instead of PGtranslator
check to see if $envir->{texDisposition} is defined before trying to access it.
preserve permissions when copying
added $VERSION variable
no, it's actually "perl MAKEDEBUG"
advise users to run "sh MAKEDEBUG", not "./MAKEDEBUG"
set $main::VERSION in BEGIN block.
Since the CGI debug scripts are programmatically generated, they have been removed from the distribution. To re-create them, run the script MAKEDEBUG from this directory: $ cd webwork/system/cgi $ ./MAKEDEBUG This will create a wrapper script for each perl script in the enclosed cgi-bin directory.
Made "set header" field 32 chars long. This fixses bug #168. --Mike
Replaced table and check box display of sets and users with scrolling list display of sets and users. Used the new getObjects commands whenever possible. --Mike
Fixed spelling on "getMergedSets" --Mike
When displaying a raw student answer, nulls are converted to \0 so that they can be seen. This is probably redundant since strings with multiple values separated by nulls are supposed to be converted to references to arrays before they reach this point. --Mike
When recording answers the answer strings are now obtained directly from the original formField entries, rather than from the processed version in the answer hashes. This insures that the memorized answers will be identical with the ones that would have been submitted from the form. This is important for answers with multiple values which are represented by null separated strings. The answer evaluation process converts these strings to references to arrays, and -- in order to have good display properties -- the original_student_answer slot in the AnswerHash contains a representation such as ( 4, 5, 6). This is NOT suitable for resubmitting as an answer in a form field and is therefore not the right thing to store in the data base when saving answers. --MIke
Modified process_answers so that each student answer is modified in this way: (1) if the answer is undefined, then it is replaced by an empty answer (2) if the answer contains null spaces then the answer string is split along the nulls (\0) and the answer variable is replaced by a reference to this array. A few clauses in filter_answers and in AnswerEvaluator::get_student_answer are now redundant but I've left them in for now. The filter_answer subroutine was replacing all nulls by blanks, which caused the difficulty with handling vectors. --Mike
now install nullSafetyFilter, which does nothing (hence the name).
small cleanup added "FIXME: this table is heinously out of date"
Added line which prints out the raw student answer when the debug flag is on. --Mike
removed unneeded #! line
changed #! lines to /usr/bin/env perl THIS SHOULD BE THE LAST TIME #! LINES ARE CHANGED!!!!!!!
1. better guess for system HTML dir. 2. default perl path is now "/usr/bin/env perl". 3. a warning is given directing users with commit privs to refrain from changing the perl path.
added tip about "permission denied" errors
removed unneeded arguments from calls to ImageGenerator
removed overly chatty error message: instead, we should add this sort of thing to the generic "software error" message.
fixed #! line
using new WeBWorK::PG::ImageGenerator
#! replacement now replaces the whole line (so you can say "#!/usr/bin/env perl")
removed unneeded #! lines
added image generation modules from WW2
fixed #! line
added several variables to Global.pm to support a global, web-accessible temp directory, a global non-web-accessible temp directory, and a global DATA directory.
added a question to system_webwork_setup.pl for the path to the system HTML directory.
Removed leftover PGanswermacros.pl.original Removed MAKELINKS.PL and MAKELINKS.pl, and replaced them with a script called MAKELINKS, which can take the path to the PG directory on the command line: NAME MAKELINKS - create symlinks pointing to the contents of the pg/lib and pg/macros directories for use in the WeBWorK 1.x courseScripts directory. SYNOPSIS ./MAKELINKS [pg_dir] DESCRIPTION MAKELINKS takes a single argument, the path to a pg directory, containing lib and macros directories. If no arguments are given, a default of ../../../pg is used. Given this inforamtion, it creates symlinks in the current directory pointing to each "*.pl" file in the macros directory and each "*.pm" file and directory in the lib directory.
added values necessary for supporting EquationCache.
moved it out of PG::
equationcache module was moved.
Added EquationCache module, which interfaces with the imagecache database.
Modified ImageGenerator to use new EquationImage module. Added arguments to ImageGenerator call to support global image cache.
Added arguments to ImageGenerator call to support global image cache.
fixed some typos
added getOBJECTs functions (with pod!) -sam
use !WEBWORK_ROOT!/conf/htpasswd instead of /home/!WEBWORK_USER!/webwork-modperl/conf/htpasswd
added this file (created a long time ago)
Provides link to Instructor2 alternate interface for instructors. --Mike
Index2.pm is a temporary testing version of the instructor interface. --Mike
Changed logic of what is shown about answers when "submit Answers" and "check Answers" are clicked. In particular you can't see the answers responses at all unless one of these two or "preview answers" is cliced. Hopefully this will not upset preflight uses. -- Mike
Fixed check_string filter so that it places a value in preivew_text_string and in preview_latex_string in the answer hash. For example entering DNE did not show up in answer preview, which bothered some students. --Mike
It seems as though the way I tried to fix long decimals isn't working the way I wanted it too, so I've commented it out for now. ~Liam
Fixed spelling buttom->button .
Fixed typo (set should have been self)
Made changes to ProblemSet.pm that replace the feedback button which did not work with the "email instructor" button. Also changed some probable typos in Feedback.pm which was trying to find set_id from problem rather than from set. This doesn't work when problem is not defined. --Mike
Blank messages are not submitted and give a warning. I also fixed a hidden bug in which the arguments to feebackForm were switched. --Mike
Fixed bug in feeback button.
Submit answer button is now hidden when you are acting to prevent accidental submission of data for a student. The checkAnswer button is still active. --Mike
Get permission (nominally 0660) from $Global::tmp_file_permission Arnie
Rounded of score, made link to act as student in the display of statistics for a given user. This retires bugs: 203 and #206.
Added warning message about updating the preview answer using shift refresh. Best I can do for now. --Mike
Added logic to show the checkAnswer button when you are a professor or TA acting as a student. This allows you to check the answer without recording results. (I think) --MIke
Put mbox around entries of a matrix in TeX-based modes to protect math inside of them.
Modified parseDateTime so that it handles time strings of the form 01/03/03 at 06:00am. The " at " retains compatibility with webwork 1.9 which is important for import and export. This fixes a bug introduced when changing formatDateTime. #204 and #203 should be fixed by this. In this file I added warning messages in distGlobalValues() which check to make sure fields are defined. Hopefyully this is not a huge time sync, but will help with debugging. --Mike
Modified parseDateTime so that it handles time strings of the form 01/03/03 at 06:00am. The " at " retains compatibility with webwork 1.9 which is important for import and export. This fixes a bug introduced when changing formatDateTime. #204 and #203 should be fixed by this. --Mike
Set the permissions and group for images from dvipng.
Corrected a typo in EV4 --Mike
Squashed a bug in adding the title "sets " in listing the sets on the first page. --Mike
Added "set " before listing the set number. --Mike
Sort students by name, (only) Add a link to the name which allows you to inspect the students version of the problem set. This partially fixes bug #201
Added the ability to enter a new student from this page. It is much faster than from the class list. Of course it doesn't have full functionality yet. --Mike
rename backup() to back_up() to remove conflict with another backup routine. Arnie
Added sorting code to Assigner.pm so that the list is sorted alphabetically and then by section. --Mike
Added EV4 routine supplied by Zig Fiedorowicz --Mike
Added warning message if the password record can't be found Helps with debuggin. --MIke
Added " at " in formatDateTime function. This makes it compatible with webwork1.9 which is important when we export set definition files. this may ruin some earlier aesthetic considerations (Dennis?) but the compatibility is more important than that in this case. --Mike
Added a kludge which, if $showPartialCorrectAnswers is negative, will not show the answer field at all until the "showCorrectanswers" button is checked. For students this also must be after the due date. --Mike
Fixed messages after the answer box so that it doesn't give away how many answers were correct. Fixes bug #176. Removed some hidden inputs from the main form that were making it impossible to uncheck "show correct answers" (and probably doing the same for show hints and show solutions.) --Mike
Changed subject heading so that it includes the user, the set and problem (if both are defined). --Mike
Can now handle the case when the list contaims complete email addresses. Arnie
Add Global:: to the two called to scriptDirectory on lines 241-2 Arnie
Added scoring to the instructor links. --Mike
Fixed sorting routine so that sorting by sections doesn't screw up sorting by alphabet.
Added sorting to class list. Sorted alphabetically first and then by section. This is a temporary fix. The code should be cleaned up and increased functionality, such as that provided in the listing of sets, should be added. --Mike
One more fix to constructing the returnURL --Mike
Changed "contact instructor" ot "email instructor" on button. --Mike
Fixed bug #171 -- bad link in feedback address. There was also a bad link in cancel feedback link. -- Mike
Login reads material from login_info(.txt) in the top directory of the course and places on the right side of the page. ProblemSets does the same from a file called course_info.txt --Mike
Added course_info whose material will appear on the right side of the problem sets page and login_info whose material will appear on the right side of the login page. --Mike
Moved show hints and show solutions to spots just above the submit buttons. This is closer to the old webwork style and I think it is more appropriate. Particularly since these options are sticky only as long as you stay on the same problem
Added an obvious warning when using preview only mode so that user is aware that the answer was not recorded. --Mike
Switched preview answers button to be first.
Added a note alerting the login user to the existence of practice1, practice2 accounts. This is a temporary fix for the bug report asking for a login_info.txt window. --Mike
Changes to mail that make it work properly with ALLOW_MAIL_TO --Mike
Made changes to rh_sticky_answers so that they are addressed correctly. Long term I would like to remove all references to main:: except for those in the init routines. The references can be replaced by a locally defined pointer to the value in the current safe compartment. This procedure should make it easier to maintain the macros. All references to global variables will occur in the init routine. --Mike
Actually added the printing of assignment counts and user-specific identification.
Changed "1.0" to "1.9" for consistency
Fixed bug 143 Implemented temporary solution suggested in bug 110 (I think this could be the permanent solution) Fixed bug 53
Changed text of instructor links
Modifications so that the operations mask is restored after reading PG.pl, IO.pl and dangerousMacros.pl --Mike
At least a temporary fix for mail_answers_to2 These evaluators are run in the grader and the environment variables have disappeared?? I can't find them at any rate. this is at best a temporary fix until we get the global variable situation under control when using cached code. --Mike
Made changes to anstext and a few other answer evaluators so that they evaluated "main::" correctly. Still need to fix install problem grader --Mike
Redoing fix to random so that random(2,7,3) won't produce 8. The original fix was lost in the merger with mod-perl version.
New file with linear programming simplex method related macros.
Revised documentation for test_points.
Added some documentation for test_points.
Added option of test_points to fun_cmp.
Fixed a bug that prevented scoring of sets assigned to fewer than all users
Added the scoringDownload module for downloading scoring data
Added scoreDownload URL for ScoreDownload.pm module
Added the score_sets permission
comment out voffset Arnie
back off of Davide's chnages which caused a bug when downloading multiple sets. Arnie
Change instructions. cgiWebworkURL is now found in the webworkConfig.pm file and not in Global.pm. Arnie
Added many functions for filtering data out for different files
Don't show both check answers and submit answers button at the same time. If the submit answers button can be shown then the check answers button is not shown. --Mike
Fixed glitch in links involving effective user --Mike
Corrected spelling on button --Mike
Tweaked the look slightly. Corrected reference to webwork_files to webwork2_files --Mike
Tweaked the instructor links callback --Mike
This may not be necessary, but it is a parallel development of creating scoring files. The idea is to go directly to the totals files with creating .csv files for each set. --Mike
Increased cellpadding size in tables --Mike
Cosmetic modifications to the index pages of Stats and the instructor pages --MIke
Added more capabilities to the stats module. There is some overlapping code that needs to be factored out. --Mike
Minor bug fix in links subroutine --Mike
Added a module that shows the raw stats for a single set. We need a better index page for this and other views of the same statistics. --Mike
new version for WW1.9 Arnie
Added import from set definition file function and export to set definition file function --Mike
Inconsequential changes
Problem now asks to use the "problem" template if specified, before falling back to the "system" template
Added the ability for content generators to specify names for themselves for the purpose of custom templates
modified for WeBWorK 1.9 Arnie
initial version Arnie
added comment concerning $main::timingON Arnie
create answer_log file with correct group and permissions so that profs and edit or remove it. Arnie
add a log_permission variable to be used for answer_log. also set psvn digits to 6 Arnie
Fixed bug in filehandles for output. Why this worked on freeBSD I don't know but it hung jobs on Red Hat. By default output still goes to STDERR. I don't know a good way to send to a set file independent of how the system is set up since relative paths don't work (they send output to 2 files). Arnie
1. Fix bug in line 547 (added: if $main::timingON) so that script runs even if $main::timingON is set to 0. 2. Set $main::timingON=0; in distributed script 3. Bugs remain (at least in Red Hat). If the error.log file is not specified, getting hard copy just hangs. If it is specified, hardcopy works but the timing info is not entered into the log file. Arnie
Fixed a bug preventing scoring data from being generated for sets assigned to less than all users.
Removed a superfluous warning
Change default path to perl to '/usr/bin/perl'; Arnie
Now generates scoring data files in response to requests from the set list. There is no confirmation that this has been done, yet, though. If it returns an "empty" page, it worked, and you can see the scoring files.
Fixed a bug in url_args preventing it from properly representing one-to-many params.
Added course/instructor/scoring => Scoring.pm
Redirect to the Scoring content generator if the scoreSelected button is pressed
Refactored the code to take advantage to recent changes in ContentGenerator with respect to REDIRECTs.
Added the capability for content generators to return an HTTP response type other than OK. Added the capability for content generators to bypass the template processing (by providing a "content" subroutine)
use verbatim for displaying correct answers in hardcopy. Arnie
added new tip. Arnie
Another button that doesn't do anything (yet)
The set-scoring code generates all scoring file types available in WW1.9 (normal, full, total).
Now the "totals" column is working.
Generating a scoring file works except for totals, and it can be written out to disk. Still no UI.
Added blank for entering the name of the imported set. --Mike
Added a pop menu that displays the set definition files that could be imported. --Mike
Corrected a typo that used TIMING_LOG instead of TIMING for a file handle. TIMING_LOG is a file variable that specifies an output other than STDERR --Mike
Abstracted "read directory" functions in SendMail and moved them to Instructor. The instructor calls WeBWorK::Utils::readDirectory and then filters the output according to a pattern match. Sorts as well. Also move read_scoring_file to instructor since it will need to be used in other scripts as well. --Mike
Duplicate version for use by WW1.9 Arnie
Added ShowAnswers.pm module which reads the log file of the students answers Modifications to WeBWorK (dispatcher) and Problem (the Show Past Answer button had to be redirected) were also made. --Mike
Still more bug fixing. I think that should do it for the auxiliary functions.
Lots of bug-fixing to auxiliary routines
Added Davide's changes in commented out code. Arnie
Lots of bug-fixes replaced all instances of "column" with the (much) more accurate "row"
Back off from Cervone's new definition of BR Arnie
And then I wrote comments
Finished the auxiliary functions.
Changes made to make show Past answers work. Basically I duplicated writeLog with writeCourseLog which writes to the courses log directory. I also defined answer_log in that directory.
Initial commit, containing support methods.
Fixed a bug in Davide Cervone's changes Arnie
Cosmetic tweak to links
Tweaked the links section a bit. Moved instructor links into their own submethod, since they were getting complicated. --Mike
Commented out the fork statement. Fixes the blocker bug #142 --Mike
Changed error message for merge template display --Mike
Updates for sendMail as well as PG/Local renderer and so forth --Mike
Incorporated Davide Cervone's improvements and bug fixes. This mostly involved removing unwanted spaces, etc. Arnie
Fixed problem with displaying complex numbers in answers (with nbsp() ) --Mike
Added dispatching for send_mail --Mike
Some more initialization fixes. Still problems with the best error reporting if merge file hasn't been found or doesn't exist. --Mike
Fixed some bugs where defaults were not always initialized. --Mike
Added link to "Send Email" for instructors --Mike
SendMail now works -- probably with lots of bugs and certainly without enough features, particularly error checks. It's ready for bug reports. --Mike
Preview now works fairly well. Only the actual send mail action needs to be implemented Followed by bug fixes and assignments. --Mike
backups work now. The list of merge files can be found. To do: 1.. Get better list of students (with entire names) 2. Get view of merge file 3. Get preview working --Mike
Save procedures are working pretty well although there is no backup mechanism yet. --Mike
Massive changes -- formatting is now much better. Functionality is not yet there. --Mike
First crack at writing a send mail script. Not at all functional --Mike
Removed spurious warning message
In order to make ans_array entries "sticky" I've had to change some stuff. The answer labels for these entries are now put into $main::PG_FLAGS{ANSWER_ENTRY_ORDER} as an array reference in PG.pl. In processProblem8.pl the labels are caught again in the subroutines logCourseData and encode_submitted_answers. It is important that they're caught there rather than earlier because then the translator would think that every entry was it's own answer. Professor Gage says that processProblem8.pl is no longer used in webwork2, and he says he'll fix this there.
In order to make ans_array entries "sticky" I've had to change some stuff. The answer labels for these entries are now put into $main::PG_FLAGS{ANSWER_ENTRY_ORDER} as an array reference in PG.pl. In processProblem8.pl the labels are caught again in the subroutines logCourseData and encode_submitted_answers. It is important that they're caught there rather than earlier because then the translator would think that every entry was it's own answer. Professor Gage says that processProblem8.pl is no longer used in webwork2, and he says he'll fix this there.
More cosmetic tweaks to the siblings macro --Mike
Cosmetic changes to title --Mike
added FIXME
Cosmetic improvements to the links macro. Instructor.pm no longer needs a links macro, but I've left it there temporarily --Mike
Cosmetic improvements to the links macro. Instructor.pm no longer needs a links macro, but I've left it there temporarily --Mike
I've trade speed for usefulness and convenience. The sibling links are now sorted by name and all links are active. On webwork3 this cuts the loading time for the page by a factor of 5 (11 seconds to 2) We can reverse this when the process of collecting all of the relevant sets is faster (this process took 8 seconds). --Mike
Links now include direct access to Class list and to Set list --Mike
More graceful failure if permissionlevel record is not defined. --Mike
Accept all of Davide Cervone's additions. Arnie
All the changes were not in the previous commit Arnie
Added link to edit set header. Available only to instructors --Mike
Added a startShowingRemainingTime parameter. Arnie
When editing a set header one can not save to a temporary file, (the refresh button is gone) however you can make a permanent change and the result is viewed from the ProblemSet.pm page listing the problems from the set, together with the screen version of the set header. --Mike
incorporate some of davide Cervone'e changes Arnie
Cosmetic fix
This set header can be used for both presentation on the screen and on paper. --Mike
Added a link which allows editing of the setHeader Refresh and Save don't yet work because they try to access the set header as problem 0. One fix would be to have Problem.pm display the setHeader whenever it was asked to show problem 0. This involves a fair amount of special case code. Is there are better way? --Mike
Changed the variable pointing to the text accompanying the list of problems from problem_header to set_header. I believe this is what was intended originally, since the default is snippets/setHeader.pg I don't believe we have a use for problem header yet. --Mike
Added bread crumbs to Assigner.pm -- changed set:1 to just 1 in ProblemSetEditor -- I think this looks cleaner. --Mike
Removed a spurious warning
Implemented Davide Cervone's time remaining notice in a different manner. Arnie
added phrase "Reload page to update times" Arnie
Fixed some bugs that would have made Sam's hair straighten.
Disting of global values to each user now works. This fixes bug #123
You're not allowed to edit both the default and the user-specific fields at the same time anymore. It was just too hard to keep straight efficiently.
removed call to ppmtopgm so that now the default is to get color images. Arnie
Fixed a bug in changing overrides
Resurected and updated this script which Davide Cervone found useful Arnie
Make a few of the minor chnages suggested by Davide Cervone Arnie
Added variable to handle checkbox default (checked or unchecked) on add student page as suggested by Andy Knightly. Arnie
Finally squashed that pesky undefined fields bug that's been plaguing my GDBM efforts. Next!
Fixed new bug introduced by, er, my previous bug fix.
Fixed a rounding problem.
Removed the last change, it's now handled in display_matrix.
Make several changes suggested by Davide Cervone Arnie
Added a time-remaining and leeway option as suggested by Davide Cervone Arnie
Added $ to PG_random_generator in the subroutine SRAND. Why it worked before as a bare word is anyone's guess. Now that $PG_random_generator is a local variable the bareword no longer works properly. --Mike
Added a pretty_matrix sub routine to fix some rounding problems.
Check for empty string instead of truth when inserting in answer table. This fixes bug #86 --Mike
Fixed error in finding the default set Header.pg file when the set header was not defined. This squashes bug #125. --Mike
Removed unecessary warning
Fixed a bug in submitting changes to user-specific data.
Use a drop down list rather than pattern matching to select sections. Arnie
More modifications in format for Hardcopy errors. --Mike
Cleaning up the format of error reporting in hardcopy. --Mike
Made box option functional for display_matrix. It lets you specify an element to be boxed.
Fixed bugs in matrix display when top_labels are present.
Fixed tick marks for graphs - x/y values were reversed.
Added Davide Cevones functionality of allowing the prof to change dates for all students in a particular section. Arnie
Incorporated Davide Cervones idea of a logout button Arnie
Add backslash to list of characters filtered out of sticky answers Arnie
Changed default viewing mode from html to Global default as suggested by Davide P. Cervone Arnie
Fixed error in sourceAlias. The variable is %main::envir not $main::envir !!! --Mike
Changed the defintion of *i to be inside the Complex package. this and the change to dangerousMacros seems to have cured bug #116 In dangerousMacros, I've added sub i {Complex::i}; after sub i; --Mike
Changed the defintion of *i to be inside the Complex package. this and the change to dangerousMacros seems to have cured bug #116 --Mike
Small error recovery corrections added to Hardcopy --Mike
Added hooks for printing timing to a different log. The log must be hard coded into this file. --Mike
Added timing code for hardcopy output --Mike
added warning message to preload macros call --Mike
Latest attempt to get a version of dangerousMacros.pl that will work with both 5.6.1 adn 5.6.0 --Mike
removed unnecessary "no strict, use strict" pair --Mike
added missing hyperbolic, inverse trig, and inverse hyperbolic functions cintributed by Davide Cervone Arnie
Added the ability to get from the assigner page to the UserSet editor, and from the UserSet editor to the UserProblem editor.
Added functionality to the assigner. You can now assign a set to an individual student.
Made sure that only important db warnings get sent by the assign* functions.
Added '-' to the list of valid characters in identifiers. This addresses bug #115
Fixed typo in beginproblem --Mike
Cosmetic modifcations to links --Mike
Changes in links subroutine. Only need class editor and problem list for now
Added bread crumbs (path subroutine) along the top of each of these pages. --Mike
Added a vec_solution_cmp. Used for problems where the answer needs to be v1_s*v2+t*v3 where v1,v2,and v3 are vectors. v1 has to be a linear combination of the professors answer where the first one has a nonzero coefficient. The others are a basis, and are compared with compare_basis.
The classlist editor now provides links to become each user.
Removed a warning
Fixed a bug in new password crypting.
Merge the time optimized branch and the main branch. I forgot one subroutine --Mike
You can now delete users
Fixed the password changing functionality of this screen
Added the function "cryptPassword" which encrypts a plaintext password using a random salt.
Make sure that the local my variables are updated in PGbasicmacros as well as the variables in main::. --Mike
Adding preliminary ability to decompose non-square matrices. Won't work if a permutation is required (i.e. a pivot) --Mike
The totals file is now updated if a new classlist is imported Arnie
Merged the changes needed to work with the new WW2 translator optimizations into the main pg branch.
Merged the translation optimization branch into the main branch
Matrices now displayed in previewer.
committed the wrong thing
fixed a bug
Uncommented the caching code --Mike
Changes that allow these files to work with caching version of Webwork2.0 -- optimized for speed --Mike
Changes that allow these files to work with optimized version of WeBWorK2.0 which uses caching of macro files. --Mike
Made the code more object-oriented
Changes made to insure that WeBWorK2.0 will run when it is not optimized for time. I'm planning to commit a "stable" version, not feature complete, from which optimization branches can be derived. --Mike
It is now possible to provide synonyms to drop-down lists associated with database fields for backwards compatability.
Added information about the synonyms system
Now the totals file is edited to reflect any changes in student classlist data. Arnie
disabled &backtrace, which depends on Apache::DB. DB has been causing segfaults with some modules (like File::Temp, XMLRPC::Lite...)
Replace "Part Corr" by "Frac Corr" Arnie
Replace "PART CORR" by "FRAC CORR" Arnie
Rename Status (as in problem status) "Part Corr" Arnie
More changes to make these files compatible with WeBWorK2.0 and cached compartments -- Mike
Add Enrollment Status to scoring files Arnie
Changes made to PGbasicmacros so that it can be cached. Changes should be compatible with webwork1.8 --MIke
Made changes required to allow caching of these files. My tests indicate that these changes are compatible with webwork1.8 One possible problem might be the mail-to answer macros which access the environement variable directly I think I have this properly patched, but it has not been tested yet. --Mike
Added caching code for reading PGbascimacros and PGanswermacros as well as PG.pl, dangerousMacros and IO.pl into a cached safe compartment and sharing the subroutines with the current safe compartment It speeds up each problem significantly (about .2 seconds on webwork3). Changes are required in PGbasicmacros and PGanswermacros to fix assumptions that are not met when a file is compiled and run in different name spaces. The caching code is turned off by default. It must be turned on by by changing commenting in lines 133 to 147 in WeBWorK::PG:Local.pm --Mike
changed value of PRINT_FILE_NAMES_FOR from array (back) to a reference to an array --Mike
Added PG:Local and PG:Remote (from Sam's directory) Complete updated system now works. --Mike
Turned timers on for now.. --Mike
Timers turned on for now. --Mike
PG now serves as a factory, consulting $ce->{pg}->{renderer} for the module to actually create.
commented out debugging code
changed the renderer from WeBWorK::PG to WeBWorK::PG::Local
Added instructions and sample configs for limiting access to the development servers.
removed $webworkDirs{macros}, added $pg{renderer} (currently selected macros) and $pg{renderers} (renderer-specific options).
changed occurences of $courseEnv to $ce. uses $ce->{pg}->{directories}->{macros} instead of the (now removed) $ce->{webworkDirs}->{macros}.
Matrices now take math constants.
Student answer now displayed in a html table given by jones's display matrix method in PGmatrixmacros. The braces were giving me headaches so I set the option to none, at least for now.
new{Password,PermissionLevel,Key,User,GlobalSet,UserSet,...} now pass an optional prototype object to the record class's constructor. this allows you to use these methods in place of global2user and user2global (which you should): my $userSet = $db->getUserSet($userID, $setID); my $gloalSet = $db->newGlobalSet($userSet); You can even do weird things like: my $gloalSet = $db->newGlobalSet($userProblem); The WeBWorK::DB::Record class just copies the values of ANY matching fields from the old object to the new object.
fixed logic error for setting refresh flag
now uses imagegenerator instead of calling dvipng directly.
Move towards more intelligent formatting and editing in Professor Pages, starting with the UserList. The only current manefestation is that the classlist fields are now formatted based on what they will contain.
More notes
removed unneeded info for deprecated hash2records/records2hash functions -- these are not used by WW1Hash anymore, but they are used by Classlist1Hash. Fix that.
housekeeping in siblings()
misc warning elimination, added message to tell you if your score was recorded.
added (commented-out) timing code, checkFields now requires ^\d*$ in problem_id field and assers that ID fields not be undef or blank.
commented out timing code
nav() now uses problem IDs instead of getting a the whole problem.
updated calls to CE constructor
if permission level does not exist in database, has_permissions will return a false value.
Reworded the warning from the previous commit
Die if a user doesn't have a permission record (which should never happen)
Hopefully a bugfix for an error Mike was getting with undefined values.
More notes
Change classlist importation so that (1) prof's can not be droped or removed and (2) students with existing sets can only be removed with conformation. Arnie
Changed PGtranslator to Translator in warning messages. --Mike
You can add new users. (You still have to set their password on the command line, and you can't delete them yet).
Getting prettier
Warn less, work more.
You can now edit existing student records. Coming soon are a prettier display, password resetting, and adding of new students.
Added a new permission level.
Changed _s to .s
removed useless prototypes.
added NONKEYFIELDS function
removed unused code
removed unused TABLES constant
Oops. Removed the remaining conflict line. --Mike
Included timing code. --Mike
These files have timing code in them. You have to change the variable $timer* from 0 to 1 in order to have the times reported. --Mike
added methods to create new instances of record classes.
changed default name of error log to error.log (better for tab completion!)
small fix to Timing.pm. key fields are now checked to match m/^\w*$/.
now sends editMode=savedFile if the "Save" button is pressed, and doesn't send the "submit_button" parameter.
cleaned up mike's editor support functionality. it now stores the source file override and seed override in the $problem object. this eliminates special logic further down the line. (eventually, i would like to have a separate frontend to PG for the editor, like Instructor::PGPreview.pm)
PG again gets source file and seed from $problem object, unconditionally.
Worked on timing system.
These ideas, soon to be implemented once the wrinkles are gone, will greatly simplify the writing of professor pages, and avoid the immense duplication of code and scatter-shot logic that currently characterizes the system.
(.*)GlobalUser(.*) replaced with \1Merged\2. -Dennis
Added a field for elapsed time ($diff). Changed how the fields are concatenated (for now). --Mike
Added an elapsed time field. --Mike
Improved sorting speed for siblings. --Mike
Changed the format of some messages, added docs. -sam
cleanup. -sam
Removed an error in this file that caused the message "Answer evaluators must be subroutines." This is the default set header file if none is specified. --Mike
Added formatting --Mike
"That's what happens when you put in error checking code, is that your error checking code is full of errors" --Sam Hathaway -Dennis
added navUp.gif. -sam
Small modifications to correct warning messages when opening the temp file. -- Mike
This fragmented should be edited and then inserted in an existing httpd.conf file to enable WeBWorK2.0 -Mike
Hardcopy now moves the pdf file to the tempDir/hardcopy and sends the browser a redirect to pick it up. Cleaned up the logic of latex2pdf and generateHardcopy to some extent. More remains to be done. In particular tempDir can be generated within latex2pdf. Possibly it could be passed a file name as well, rather than a tex string. this process is a good candidate for testing the timing mechanisms once they are done. How much faster is redirect? How much faster is passing a long tex string rather than a pointer? etc. --Mike
added WeBWorK::Timing timer/logger and "timing" script to analyze timing logs. -sam
wwapachectl now checks for existence of httpd.pid file. -sam
changed "webwork" to "webwork2" in comments -sam
permission level must be greater than 0 in order to choose to download TeX. --Mike
Added ability to get TeX output . Still to do. (1) Make tex output only available to instructors and TA's (2) Streamline some code (3) Store pdf code and redirect instead of outputting the pdf code directly -- hopefully this will speed up the output? --Mike
This is the module for assigning sets to users. -Dennis
Rearranged the URL to ContentGenerator mappings for user-specific data editors. -Dennis
do not out webworkInit.pm in courseScripts set permission on subdirectories of pg directory Arnie
added Driver.pm, a superclass for all DB drivers. -sam
An index file used for testing and for requests to /webwork2 which don't specify a course name. --Mike
fixed Bug #92 and problem with equations with \n in them. -sam
removed outdated warning. -sam
Several changes to the DB system: Made all schemas subclasses of WeBWorK::DB::Schema, factored common constructor code out into Schema.pm. Made all drivers subclasses of WeBWorK::DB::Schema, factored common constructor code out into Driver.pm. Removed superfluous style() and tables() functions from schemas and drivers. (You can treat the constants in which these are defined as functions, and call them like $object->STYLE or $object->STYLE().) WeBWorK::DB now tries to build all tables defined in %dbLayout, instead of using its own internal list. (TODO: add warnings if known tables are not built or unknown tables are built.) Made the error messages given during DB instantiation a little more intelligent. Changed the behavior of the exists() and delete() schema methods in all schemas (and updated the docs) s.t. not all elements of @keyparts have to be defined. Changed WeBWorK::DB to allow undefined values to be passed instead of IDs in delete* method calls, but only if the call was made from WeBWorK::DB itself (to protect you from accidentally passing an undefined value and clobbering your whole database). Changed delete functions to be more efficient. For example, deleteGlobalSet no longer has to say: $self->deleteUserSet($_, $setID) foreach $self->listSetUsers($setID); $self->deleteGlobalProblem($setID, $_) foreach $self->listGlobalProblems($setID); Instead it says: $self->deleteUserSet(undef, $setID); $self->deleteGlobalProblem($setID, undef); This is somewhat more efficient with hash-style schemas, and MUCH more efficient with the SQL schema. As usual, be wary of lingering bugs. w00t! -sam
Trying to find the best way to shut down a server. --Mike
Final tweaks to get processProblem8.pl, ImageGenerator cooperating --Mike
Rolled back some changes to make everything compatible between webwork2 and webwork1. The ImageGenerators used by the two systems (as well as the Translator files) are still different. We'll try to mrege them later. --Mike
changed some documentation. -sam
Fix handling of dvipng error codes.
Was not accepting negative answers, the sign problem is fixed now.
Changes to make processProblem8 work with new version of ImageGenerator --Mike
removed unneeded code from WeBWorK::PG, WeBWorK::PG::ImageGenerator::add now supports both add($in_delim) and add($in, $mode). -sam
rollback change to the way ImageGenerator::add is called. -sam
Hardcopy now appends a copy of the tex output to error message. Clean up of temp files is pretty good. The output needs some cosmetic work. It still seems a little slow to me. This answers the bulk of bug #82. Resubmit cosmetic details, feature requests, etc. as new bug. --Mike
This is a fairly stable version of Hardcopy. It reports part of the TeX log errors along with whater pdf was produced. This partially satisfies the requests in bug #82 --Mike
changes to the math_ev3 functions in PGbasicmacros.pl to support new interface to ImageGenerator and some cleanup. -sam
Rewrote ImageGenerator to work with WeBWorK2. Its arguments are now passed in via an options hash instead of getting a whole %envir. Also, the options are passed to the constructor and there is no initialize() method. add() has the same interface, and render() has been changed slightly. (This closes Bug #80!) To make this work with 1.8, take a look at how I'm creating ImageGenerator in &WeBWorK::PG::defineProblemEnvironment and make the necessary modifications to processProblem8.pl. I made changes to WeBWorK::PG to have "images" mode trigger HTML_dpng rather than HTML_img, and also to create an ImageGenerator before initializing and call render() after translation. Also in PG, I shortened the names of the equation image files. They're now "equation-$PSVN-$probnum-$seed.png". This has the added benefit of forcing image regeneration if the problem seed changes, closing Bug #70. Equation files are now dumped directly into the $courseDirs{HTML_temp} directory. This means that no one has to worry about whether "m2i" exists any more. global.conf.dist was changed to not include the switches to dvipng on the command line (they're currently hardcoded into ImageGenerator). I still have to get this to work with dvipng 0.3. I should also take advantages of 0.3's new features, like pipelining (using the -follow switch) and specifying the output file name (to avoid the "move" of resulting images). This is MUCH FASTER than the way I was calling dvipng, and I think it's safe to say that it's a better method. Thanks JJ! -sam
Hardcopy now does a reasonable job of reading the TeX log file, cutting off the initial errors. If there are tex errors then these are reported and one can optionally download a pdf file if this was created. Have not yet added the TeX file output -- Need to see how this is handled in 1.8 first. Good stopping point. Good night. --Mike
Changed some error H2 headings to H3 -- it wastes less space. --Mike
profiler debugging. -sam
added removeTempDirectory() routine. instead of calling rmtree($dir, 0, 0) directly, you should use this :) -sam
replaced tempdir() with makeTempDirectory() -sam
removed debugging output -sam
changed calls to tempdir to calls to makeTempDirectory -sam
made some small improvements in error handling. changed calls to tempdir to calls to makeTempDirectory -sam
added makeTempDirectory function. -sam
replaced call to tempdir with call to makeTempDirectory -sam
commented out backtrace call (still causing problems). -sam
Changed error and warning output to replace <pre> with <p><tt>. Error/warning text now wraps! -sam
changed calls to Apache::DB::backtrace with calls to Apache::DB->backtrace to eliminate warning about that. -sam
Answer labels are now prefixed by a Quiz prefix which allows more than one problem to appear on the same page. -- Mike
Changed recognition of failed dvipng exit code to match version 0.3.
The GatewayQuiz can be reached by using the url courseName/quiz_mod/setNumber It will produce the entire set as a quiz. Recording functions, and the ability to limit the number of entries have not yet been implemented. --Mike
Added pretty_print_rh utility function for printing warnings lines from a hash. -- Mike
Removed warning message used in debugging. --Mike
Quizzes are now called using quiz_mode instead of quiz
Added global matrix style to environment when hard copy is produced so that it is respected.
Fixed a bug in ordering the siblings. (again :-) ) --Mike
turned off PG warning catching in conf/global.conf.dist -sam
Made many changes: - turned off PG warning catching in conf/global.conf.dist - added warning reporting to conf/templates/ur.template (but not to other templates!) - modified a couple of error messages in WeBWorK.pm - made failure to create course environment and failure to find course directory fatal errors in WeBWorK.pm - added warning queueing and call stack storing to Apache::WeBWorK - added "warnings" and "if_warnings" template escapes to WeBWorK::ContentGenerator - removed warning handling from WeBWorK::ContentGenerator::Problem - code tidying in WeBWorK::ContentGenerator::Problem - code tidying in WeBWorK::PG::ImageGenerator -sam
Added GatewayQuiz.pm module. It can be accessed by courseName/quiz/setNumber --Mike
This presents an entire set as a quiz. to be done: (1) The answer presentation has to be filled in. (2) Changes to PG.pl and the environment variables have to be made so that different answers don't collide. The idea is to prefix all answers with something indicating the problem number e.g. pRoBlEm04-AnSwEr05 I think it better to pass in an explicit variable rather than rely on problem numbers. (3) should this work automatically for NAMED_ANS as well? Pro: --it's done for you. Con: You can't refer to answers in other parts of the quiz. (Put perhaps you shouldn't to promote atomic behavior.) --Mike
Use instead of blanks inside tables. This squashes bug #72 (which Sam thinks is beter unsquashed. What do you think?) --Mike
Was working from an older copy before my last update, sorry.
Fixed isPrime, which had said that 4 was prime, and shortened its loop.
took out old code. -sam
added a ans_label to the hash
Ok, there is the ans_array_filter added which allows for the answer to be coming from the ans_array.
Added two methods for naming the blanks in ans_array. The names now have the format ArRaY3[1,0,2] (this would be the name of the 3rd answer (it's taken from main::answer_count which is then incremented so the answer before it is AnSwEr2 and the answer after it is AnSwEr4) and it would be the second matrix or vector in the answer ( I need to take multiple vectors for things like basis cmp, so ans_array_extension puts the vectors in different locations) and the 0 and 2 are row and column in that matrix or vector.
I removed the subroutine answer_matrix since it really belongs in basic macros with the other answer blank methods.
I've added ans_array and ans_array extension and moved answer_matrix here since this is probably where it should be with all the other answer blank methods. I still have to comment the code.
Fixed error in match pattern in include routine (the .. should be \.\.) Added some error messages (sent only to the log unfortunately) if the config file can't be evaluated. One problem with do is that it does not return error messages. eval does. I don't know if it takes more time. --Mike
Set the default globalUserID to "practice1" to promote least hassle for "out of the box" users migrating from WeBWorK1.8. --Mike
Added a feature to correspond to a change made in process_answers in Translator.pm. Each answer evaluator is given the answer AND the answer label (e.g. AnSWer1) of the answer. The label is placed in the answer hash at $hash{ans_label} for use by filters that need to know the label of the answer they are evaluating. --Mike
Added a feature to process_answers. Each answer evaluator is given the answer AND the answer label (e.g. AnSWer1) of the answer. The label is placed in the answer hash at $hash{ans_label} for use by filters that need to know the label of the answer they are evaluating. A corresponding change has been made in AnswerEvaluator in AnswerHash.pm --Mike
Fixed error concerning variable $string. Cleaned up how polynomials are displayed. Arnie
Added a "snippets" entry for hardcopyUerDivider.tex file --Mike
(1) Moved order in which snippets are assembled. Only one preamble and one postamble are used for a single download (also a single run of TeX). The postamble ends the document and nothing else in the file will be read by TeX. (2) Modified the getSetTeX and getProblemTeX subroutines to include a username (for sets) and a user object (for problems) so that problems and sets can be made for different students. The new identifier is the first arguement. $self->getSetTeX($effectiveUserName, $setName); and $self->getProblemTeX($effectiveUser,$setName, 0, $setHeader); It seems to work pretty well, but perhaps a bit slow still. --Mike
Modified these tex files so that the \newpage command does not occur in the middle of a column environment where it does no good. In other words use \end{multicols} \newpage \begin{\multicols} etc. This fixes part of bug #13 --Mike
Added sortByName($field, @items) to WeBWorK::Utils. It uses the method named $field to sort the objects in @items. Modified ProblemSets to call it. -sam
Added the beginings of a classlist editor. It currently only displays the class list in a form. -Dennis
Fixed bug in sorting in siblings subroutine --Mike
changed global.conf.dist to include one of sql.conf or gdbm.conf. added sql.conf.dist and gdbm.conf.dist. continuted documenting WeBWorK::DB -sam
Siblings for problem set are sorted by date. Those sets which are still open are listed first, followed by sets which are now closed. Within each group the problems are sorted by due date in increasing order. This responds to bug #57bis (request for ordering by due-date) --Mike
Removed a warning in WW1Hash. Renamed a function with a confusing name: assignProblemToAllUsers => assignProblemToAllSetUsers. -Dennis
Filter problem contents before saving to disk to handle line ending problems. All occurences of \r\n and \r are replaced by \n. Began improving the error messages if files cannot not be read.
Fixed a bug in error reporting that was preventing answer submission. Say your final goodbyes to bug #69 -Dennis
Some cleanups to global.conf.dist -Dennis
ok, I'm pretty sure that this one is the one we want. Unfortunately the other one was an old one, that cmpl_cmp4 was not used anywhere and I had removed it later, and this one has multi_cmp. Sorry for all the confusion.
*** empty log message ***
in the interest of alleviating crowding: moved snippets to conf/snippets. moved templates to conf/templates. updated global.conf.dist to match. -sam
Added a section for special variables to be passed to the safe environment: %pg=(.... specialPGEnvironmentVars => { PRINT_FILE_NAMES_FOR => ['gage','apizer','voloshin','lr003k','professor'], CAPA_Tools => "$courseDirs{macros}/CAPA_Tools/", CAPA_MCTools => "$courseDirs{macros}/CAPA_MCTools/", CAPA_Graphics_URL => "$courseDirs{html}/CAPA_Graphics/", CAPA_GraphicsDirectory => "$courseDirs{html}CAPA_Graphics/", }, ... ); this fixes bug #66 (actually a feature request). It allows professors to see the file names of the problems they are looking at. It allows the interpretation of CAPA problems as well. -- MIke
Environment variables added for PRINT_FILE_NAMES_FOR CAPA_Tools CAPA_MCTools CAPA_Graphics_URL CAPA_GraphicsDirectory These are all set in the anonymous hash $pg{specialPGEnvironmentVars} = { PRINT_FILE_NAMES_FOR => ['gage','apizer','voloshin','lr003k','professor'], CAPA_Tools => "$courseDirs{macros}/CAPA_Tools/", CAPA_MCTools => "$courseDirs{macros}/CAPA_MCTools/", CAPA_Graphics_URL => "$courseDirs{html}/CAPA_Graphics/", CAPA_GraphicsDirectory => "$courseDirs{html}CAPA_Graphics/", }; set in global.conf or in course.conf --Mike
Slightly better handling of top_labels in tth mode when force_tex is set; namely it ignores the labels instead of letting the TeX code confuse tth so badly that the matrix is basically lost.
*** empty log message ***
fixed encodeAnswer to never allow the last character to be a backslash. closes bug #67. -sam
Fixed bug when the function is sampled at a point where it is not defined.
&include code now prettier. -Dennis
&include now works like it's supposed to in the course environment config files. Sam will be happy. -Dennis
Added > /dev/null tags to the commands which run tex and dvi for HTML_img mode. These will probably work now for the most part. I don't know how well this will work if there is an error in getting either tex or dvips to run. For many problems using WeBWorK1.8 and typeset3 mode thing work fine. Please submit example problems where the images don't show up or some other image related error occurs as bugs to http://webwork3.math.rochester.edu/bugzilla --Mike
Fixed a patch to round (and Round) originally due to Mark Schmitt which didn't get included in the latest updates and transfer to pg --Mike
Modified directory so that lib => $webworkroot/lib becomes lib => $pgRoot/lib since this is where the *.pm macro files for the pg language go. Should this lib be changed to pglib? (there might have to be a lot of changes to make this work.) -- Mike
Commented out code that is not used (I believe) comp_cplx4 and cplx_cmp4 -- Mike
Added some lines to the defineProblemEnv routine. The variables used by HTML_img and HTML_dpng are too close for comfort. But it works for now. What doesn't work is that when tex is called it produces output which spills over and is returned to the CGI call -- leading to an internal error. The forking code in welcomeAction.pl fixes this problem. Perhaps there is a simpler way. --Mike
Added a variable to set the environment variable use by HTML_img. This is too close to one used by HTML_dpng but we can use it for now: $envir{'externalLatexPath'} = $Global::externalLaTeX2HTMLPath; $envir{'externalLaTeXPath'} = $Global::externalLatexPath; #used by HTML_img (note capitalizations of T's FIXME --Mike
I made an &include subroutine available to the global.conf and course.conf evaluation environments. It allows the inclusion of files within the webworkRoot. -Dennis
These files have been moved to the webwork/pg/macros directory --Mike
These files have been moved to the webwork/pg directory --Mike
setup script now changes group and permission for pg directory and its contents. Arnie
Allow commas, [ ] and | in answers (changes to Safety filter.) --MIke
remove unneccsary shebang lines Arnie
removed unneccesary shebang lines
use /usr/local/bin/perl ib shebang line
Added this file which won't get erases if you do rm *.pl. It is identical to MAKEFILE.PL --Mike
Explains that all of the files have been moved to pg --Mike
These files are now maintained in pg/macros. Assuming that pg and system are sibling files you can run MAKELINKS.pl in system/courseScripts to create links from system/courseScripts to these files in pg/macros. pg can be downloaded from the cvs: cvs -d :pserver:firstname.lastname@example.com:/var/cvs/system checkout pg -Mike
These files are now maintained in pg/lib. Assuming that pg and system are sibling files you can run MAKELINKS.pl in system/courseScripts to create links from system/courseScripts to these files in pg/lib. pg can be downloaded from the cvs: cvs -d :pserver:firstname.lastname@example.com:/var/cvs/system checkout pg -Mike
This module contains IO used in saving an answer to a file. --Mike
The file PGcomplexmacros.pl is partially in sync with the version in courseScripts. I need advice on the latest versions of some of the subroutines from Liam. --Mike
Bringing these files in sync with the latest versions in the courseScripts CVS --Mike
Bringing this version of Matrix.pm up to date with the latest in courseScripts. --Mike
Bringing this version into sync with the latest version in courseScripts. In particular dvipng is active in this script to make HTML_img useable in WeBWorK2.0. Not yet finished with this. --Mike
Updating the copy of PGchoicemacros.pl to the latest version available in courseScripts --Mike
Added dvipng subroutine. Corrected some errors in math2image. dvipng is still not being called correctly -- I think math2image needs more updates. dvipng is also in IO.pm, but making this available to WeBWorK1.8 seems like a lot of work, hence I've only made a copy of the dvipng subroutine from IO.pm. With luck this will not interfere with WeBWork2.0. I'm open to suggestions for a better way to make both dvipng methods available to both WeBWorK2.0 and WeBWorK 1.8 --Mike
Adding a newer version of PGmatrixmacros.pl --Mike
Added typeset3 mode (HTML_img), Sam Hathaway's version of dvipng mode. --Mike
Adding recent macro files to the pg collection --Mike
Modified sibiling macro to sort alphabetically by name of the set. (this may not be the best permanet solution but itis useful for those editing this summer.) --Mike
This file constructs links from the courseScripts directory to the pg/lib and pg/macros directories --Mike
A module that supports the "save answer on disk" answer evaluator (similar to the mail_to evaluator) --Mike
Resetting # of ties back to 30 --Mike
Restoring header #!/usr/local/bin/webwork-perl line --Mike
Restoring these files so that the #! header is correct --Mike
Fixing a mistake I made a few minutes ago. I didn't mean to change these files. --Mike
Creating directories which contain just .pl files (macros directory) and just .pm files (pglib). These files are loaded differently into the safe compartment, and it helps to keep them separated, particularly for WeBWork2.0. In order to be backward compatable with WeBWorK1.8 I'll put symlinks in courseScripts to the files in the other directories. --Mike
Creating directories which contain just .pl files (macros directory) and just .pm files (pglib). These files are loaded differently into the safe compartment, and it helps to keep them separated, particularly for WeBWork2.0. In order to be backward compatable with WeBWorK1.8 I'll put symlinks in courseScripts to the files in the other directories.
Added params required for global table emulation. -Dennis
Add support for hline in matricies, and fixed vertical spacing problem in pdf output when top_labels are used. tth mode still cannot handle top_labels.
Fixed a typo -Dennis
moved PG modules and macro files from webwork-modperl to pg -sam
moved PG modules and macro files from webwork-modperl to pg -sam
Calculate percent correct the same everywhere. fixes bug 60
Fixed a bug that I just introduced that was corrupting $ce->{webworkURLs}->{root}; -Dennis
Multiple forward slashes in URLs are now collapsed into one before being examined, so that we follow the usual Apache behavior of accepting paths with // in them. -Dennis
Fixed bug in pdf output with top_labels in a display_matrix.
Took out the redundant "confirm email address" from user options. Also, added a Util function "backtrace", which can be passed one of "die", "warn", "print", or "return". I'm just showing off, but it might prove useful in debugging. -Dennis
Replacing hard coding of /webwork/ with $ce->{webworkURLs}->{root} -- Mike
Features added (and code cleanup) for display_matrix. Matricies can now have "top labels". If the matrix has "Fraction" objects, it detects that and prints the fraction.
Template escapes can return a list again, and now it's a sanctioned activity. -Dennis
Replaced the hardcoded path /webwork with $ce->{webworkURLs}->{root} in the link from Problem.pm to PGProblemEditor.pm. This fixes bug 52. -Dennis
Added a CGI::end_form() to the options section of Problem.pm. I believe this is is the root cause of the multiple key parameters. I haven't done all of the testing needed to verify this for sure. Bug #50 is probably comotose, but needs to be watched. --Mike
replaced $r->param('key') with my $key = $r->param('key'); and then used $key in call to PG. $r->param('key') was returning a two item list in list context. I don't know where the extra entry into the key param was coming from. This stuns bug #50, but doesn't kill it. -- Mike
*** empty log message ***
Added HTML_img tags -- Mike
Removed the subroutine dvipng (which is now defined elsewhere and with 4 calling arguments. --Mike
Fixed (again) the GlobalTableEmulator. -sam
the % done status indicators now round to the nearest whole percent. Fixes Bug #47 -Dennis
Added HTML_img mode to PGmatrixmacros.pl display commands. --Mike
removed per-course logs from the initial definition of the $webworkFiles{logs} hash, and put them below, where the $courseDirs{logs} variable is defined. (This is sort of an issue -- I want only files/dirs/URLs that are necessarily tied to a course to be "course" files/dirs/URLs. The transaction log (for example) could be in a location that wasn't course-dependant just as easily. Perhaps this whole business of "webwork" versus "course" locations is arbitrary? Should it be rethought?) Also fixed some formatting problems. (Mike -- I would LOVE it if you would use spaces for aligning your equals signs, instead of tabs!) -sam
contains pod docs. -sam
Added Liam's code for entering a matrix column by column --Mike
Changed another occurence of /webwork to /webwork2 -Dennis
Changed all relavent occurences of /webwork* in default URLs to /webwork2* -Dennis
Now I'm exporting InitializeUserProblem -Dennis
Added a function "initializeUserProblem" to WeBWorK::DB::Utils and changed my code to use it. -Dennis
Modified the address to the webwork image (used webwork2_files instead of webwork_files) --Mike
Fixed bug in navMacro and a bug in path. This squashes bug #46. The problem was a comma in the return, instead of a period. return "foo"."\n"; returns foo with a return after it return "foo","\n"; returns just the \n probably because the comma operation comes into play and only the result of the last operation is returned. Apparently return doesn't grab everything to the right of it in the same way that print does. I'd bet that return("foo","\n") would return a list however. --Mike
added =cut near end of DB.pm file. before 1; (I thought I had already commited this????) --Mike
Added ImageGenerator to CVS to help with compatibility with WeBWorK1.8 -- Mike
Updated global.conf.dist so that it will work out of the box on webwork1.8 courses using GDBM. The urls http://machine/webwork2_files will point to the webwork-modperl/htdocs http://machine/webwork2_courses should be redirected by apache to a folder containing links the the html directories of each course. In other words apache directs .../webwork2_courses to the folder /ww/htdocs/ which should contain links of the form gage_course@ -> ../webwork/courses/gage_course/html --Mike
Changed the way checking if a new set exists already happens. -Dennis
Commiting IO.pl, a webwork2 file, in order to bring the macros for webwork1 and webwork2 into sync with each other. --Mike
Removed warnings. woops. -Dennis
Instructor pages now only let instructors view and edit the database. phew. NOTE that there are new directives in global.conf.dist. You won't be able to use the professor pages until you've made that change. Also, I added new template escapes and updated the barebones and ur templates. -Dennis
preview equation images now go in the m2i directory (in the $courseDirs{HTML_tmp} directory) instead of the png directory. -sam
The UserList module now has a single button, "Assign to all users", that does what it says it does. This should allow people to create new problems and problem sets and edit them without ever needing the old system, assuming that they are importing an existing course into webwork2. -Dennis
Fixed bugs. -Dennis
I wrote functions to facilitate the assignment of problems to students. -Dennis
began to document and add sanity checks. -sam
wrote a bunch of notes about the URL issues. !!!!! READ THIS - doc/devel/URL-notes !!!!! -sam
webwork 1.9 gif Arnie
webwork 1.8 gif Arnie
Changed to webwork 1.9 Arnie
Added a section to handle the case where the problem has not yet been assigned to a user. This might occur when the problem template is called form the problem editor before the sets have been assigned to students. The problem is obtained as a global problem then converted to a user_problem with default values. The problem is not saved. This code should be reviewed to make sure there are no hidden behaviors. Perhaps a group reading is in order once things settle down. This squashes bug #34. --Mike
Added ProblemList (from Dennis' folder) and committed it to CVS --Mike
I split the instructor's Problem List editor off into a seperate page, and added links to that page from a few others. -Dennis
added some notes on the URL organization. -sam
finished moving doc/headers-footers, added the GPL and Artistic license. -sam
Added a license file and readme skeleton. -sam
Fixed (again) error handling. Now we're simply catching any uncaught exceptions and emitting an HTML error message. (also, added a "my" in Problem.pm) -sam
The conversion of set and problem from global to global-user now works. You will get "pink screen" errors for now because not all of the vaules in problem have been given correct defaults. I'll do that next. --Mike
Modified pc_evaluator to make extra brackets optional, comments optional, and scores of 1 optional.
really /really/ fixed the instructor pages to use the new URL scheme -Dennis
Beginning to add defaults to problem class (when it is constructed from a global problem instance). --Mike
Really fixed the Instructor links to use the new URL scheme this time -Dennis
Efforts towards doing the Right Thing with the instructor URLs. -Dennis
added example Set->UserSet conversion. -sam
Made small modifications to allow Problem.pm to read a problem that has not yet been assigned. TO DO (and I'll need help with this) Convert a global set to a global user set (and the global problem to a global user problem). I need to know how to specify the appropriate classes. Once we are guaranteed a record of the type returned by getGlobalUser .... stuff missing defaults (e.g. psvn for set, and num_correct (answers) for problem) in the newly created global_user record objects.(this part I can do.) At that point the rest of Problem.pm should be able to proceed as before without any changes. --Mike
*** empty log message ***
The pgProblemEditor now looks for a global problem record if it cannot find a global_user problem record. -- Mike
moved doc/template-escapes to doc/devel/template-escapes -sam
moved more docs into doc/devel/ -sam
moved doc/TODO -> doc/devel/pre-bugzilla-TODO-file -sam
moved development documentation into doc/devel/ -sam
Created the top-level module WeBWorK, which now contains the dispatch code. Apache::WeBWorK now only contains the installation of the error handling code and a call to WeBWorK::dispatch(). This error handling code is installed before the WeBWorK module is compiled. -sam
removed some old, commented out code. -sam
improved the implementation of refBaseType. -sam
Changed explicit references to "/webwork" to the abstract $ce->{webworkURLs}->{root}. If you've been hardcoding "/webwork" into your URLs, you should take a look at the diff to this update to learn the prefered method. -Dennis
Took out some hard-coded <tr>s. Shame on me. -Dennis
Replaced temporary values placed in $self->{ce}->{foo} by $self->{foo} in order to avoid editing the course environment unnecessarily. Fixes bug #35 --Mike
Rearranged the order of functions in PGProblemEditor.pm Removed an extraneous warning from ProblemSetEditor.pm -Dennis
Fix max in Util.pm did some UI refactoring. -Dennis
There's no longer a seperate "Add Set" content generator. That form is now right on the problem set list. -Dennis
Took out some unnecessary warns, both intentional and otherwise. -Dennis
You can now add new problems using a NeXT-style column view. Advanced. -Dennis
Add new warning pages if an atempt is made to drop or remove a professor with special warnings if an attempt is made to drop yourself. Arnie
added readDirectory -Dennis
removed annoying debug output. -sam
The delete() method now uniformly returns a false value (instead of dying) if no matching record exists. -sam
Added CGI::Carp error reporting. -sam
Added two functions, list2hash and max. -Dennis
took out some debugging output. -sam
Fix a stupid bug from the last commit. -Dennis
You can delete problems now. Problem sets are the next thing. Also, performed and apendectimy. -Dennis
added a new_from_col_vecs method
fixed an error
I have added a basis_cmp and a number of other methods necessary for this answer evaluator to work.
Added the ability to add sets. -Dennis
Added problem editor links. took out an unnecessary warning. -Dennis
Made changes trying to allow the daemon to be restarted. Still no luck. Allow | [ ] and , in answers.
A bug fix: the "attempted" record for a UserProblem is now calculated from the num_correct and num_incorrect fields. Send me feedback: should it be displayed in the table anyway, and just not editable? -Dennis
The problem set editor now works for 0 users (global only) or 1 user. Multi-user functionality is coming over the weekend. To cause the editor to give you the ability to edit a student's record, add editForStudent=name (where name is the student's login) to the parameters sent to the ProblemSetEditor content generator. Note that if you are using the GDBM backend, editing the "default" professor records is the same as editing the global values, which can surprise you if you're not ready for it. -Dennis
fixed several stupid errors. -sam
Added columns for user-specific problem fields. Saving back to the database for user-specific data still doesn't happen yet. -Dennis
Added the capability to the GlobalTableEmulator to designate a user whose records will be used as global records. To specify this, set the globalUserID param for the tables using the GlobalTableEmulator (in %dbLayout). It's probably good to do this on a per-course basis. Put the following in your course.conf: $dbLayout{set}->{params}->{globalUserID} = "professor"; $dbLayout{problem}->{params}->{globalUserID} = "professor"; If globalUserID is not present, GlobalTableEmulator will use consensus (which is very slow!). -sam
More speedup and consolidation. -Dennis
This time there aren't any of the bugs that there were before, and probably not any new ones. -Dennis
Made listGlobalProblems more efficient. (I have to go back and look at the rest of DB and see if there are any more optimizations that can be made.) -sam
Fixed a showstopping compile but that accidentally got into the last commit. and consolidated some code. -Dennis
More changes to prevent unneccesary database requests -Dennis
Took out many many unneccessary database accesses. -Dennis
removed some debugging output. -sam
changed </hr /> to <hr /> (after the bugzilla link) -sam
The set-specific data now displays the per-user override if the editForUser param is set. It does not yet save changes back to the database. -Dennis
now supports NULL as undef. FIXME: update the docs. -sam
psvn is now auto-increment, for real. -sam
added GlobalTableEmulator.pm added global2user and user2global to Utils.pm small changes to WW1Hash.pm -sam
made psvn auto-increment, restored !!COURSENAME!! -sam
Display options are now sticky (they are repeated as hidden options in the main problem body). Changed name of submit button from redisplay to "save options" fixes bug #27 at least to some extent. these saved options may not persist from one problem to another. In order to solve that problem we need a storage place for user options, or else many more hidden inputs to save state as one moves from one request to another. this fix will work for now. -- Mike
Modified ur.template to use the "options" link for display options. --Mike
Added a new template hook "options" which allows one to reset the display options. Modified viewOptions to conform to a "vertical" look for the radio buttons in the redisplay options. Modified some of the labels for the same reason. The horizontal spacing is a bit of kludge (I can't guarantee no line breaks for each of the radio button labels). Using underbars instead of spaces in the labels would fix this, but... --Mike
Turned on answer previewing every time an answer is submitted (either answer check or answer submit or preview answer)
More tweaks to insure shutdown of the connection.
Hope this works for shutting down connections.
Now you can save changes to problems -dennis
A start on the final version of the problem set editor. The code from the previous version is still in the file as mike_body, becuase it will be added in (with modifications) as the file progresses. -Dennis
add original_correct_ans as a hash key bringing the set of defined keys to 9
Here are some default images for previous, next and problem list buttons, taken from the WeBWorK1.8 images file. They help prevent some browser anomolies (particularly in Safari) which accompany missing images. --Mike
Changed the link to bugzilla to bring you directly to the page for reporting a webwork2.0 bug. No url is entered automatically -- that would require, I believe, implementing this link inside a link method in content generator. We'll see if that is needed. -- Mike
changed the Schema interface (to include a reference to $db) and changed DBI connect to connect_cached. -sam
*** empty log message ***
Commented out debugging code in pgProblemEditor --Mike
The pgProblemEditor module now handles the seed and displayMode correctly. -- Mike
Problem Editor now creates a temporary file to edit ( adding .tmp to the file name) Refresh causes a redirect to the Problem.pm with a GET command. Some of the arguments are unnecessary and need to be cleaned up. The seed and display mode in the problem editor are not properly initialized from the problem set. Problem.pm has been modified to check for these arguments and to read the temporary source file, seed and displayMode. These are passed through to a PG.pm object. PG also needed to be modified so that the source_file and seed values are overridden
Problem Editor now creates a temporary file to edit ( adding .tmp to the file name) Refresh causes a redirect to the Problem.pm with a GET command. Some of the arguments are unnecessary and need to be cleaned up. The seed and display mode in the problem editor are not properly initialized from the problem set. Problem.pm has been modified to check for these arguments and to read the temporary source file, seed and displayMode. These are passed through to a PG.pm object. PG also needed to be modified so that the source_file and seed values are overridden.
Problem Editor now creates a temporary file to edit ( adding .tmp to the file name) Refresh causes a redirect to the Problem.pm with a GET command. Some of the arguments are unnecessary and need to be cleaned up. The seed and display mode in the problem editor are not properly initialized from the problem set. Problem.pm has been modified to check for these arguments and to read the temporary source file, seed and displayMode. These are passed through to a PG.pm object. PG also needed to be modified so that the source_file and seed values are overridden
Added a helpful comment to Authz Fixed bug #15 in hardcopy Gave ProblemSetList the proper db calls, now that SQL databases are working. -Dennis
additional work on DB system and SQL backend. Record:: classes now support a can() method. fixed some other stuff. -sam
added hash2sql conversion script. -sam
problem.problem_id is no longer a PRIMARY KEY. -sam
fixed stupid thing on line 690. -sam
changed ->id to ->whatever_id -sam
removed old record classes. -sam
removed old database system. -sam
fixed call to get() on line 281. -sam
croak instead of die. -sam
fixed a logic error in addUserProblem -sam
removed unused problem_order field. -sam
authen now eats "key not found" errors when deleting keys. -sam
s/new/add/ -sam
stuff. -sam
added: * listSetUsers($setID) - lists users to whom a set has been assigned * listProblemUsers($setID, $problemID) - lists users to whom a problem has been assigned Both return userIDs. -sam
display original_correct_ans as correct answer unless original_correct_ans is not defined
Added target window "_bugzilla" to the links in these two templates
The "edit this problem" link now appears only if you have a permission level greater than or equal to 10 (instructor) --Mike
Added "Report bugs" link to these two templates. These link to webwork3.math.rochester.edu -- Mike
More SQL work. Appears to be working, after very limited testing. See forthcoming email for details. -sam
Added a link to the editor. This link always prints, (at the moment) even if the user doesn't have instructor permissions. (FIXME) -- Mike
The problem editor will now edit existing problems in place. You invoke it with http://webwork3.math.rochester.edu:1102/webwork/mth143/instructor/pgProblemEditor/0/2/ and it will edit problem 2 in set 0. It can't edit files directly or create new files. The problems are CHANGED!!! there is no editing in a temporary file-- the problems are changed at every step. BEWARE --Mike
Fix typo.
Fixed addressing to the tmp location of the pdf file so that it never uses //. That was causing trouble on webwork-db although it seemed to work on webwork. --Mike
In simple editing of tables, entry boxes now have a minimal size of 3
Fixed bug/typo in trace.
print current pid to pid.txt
Add message about adding problems
Change verbiage to math new "Due date has passed" message.
remove message about backing up database
Cahnge button names
The script now reads takes the form data in problemContents and displays it in a textarea form. If there is no problemContents it reads from the file in template directory. The script is called with .../instructor/pgProblemEditor/set10/prob1 I'm using the current convention for labeling files in the template directory. Using '10' for set10 will not work right at the moment. .pg and the course template directory are combined with the path components to determine the path to the file. It remains to add the rest of the editing buttons and provide a method for saving to the template file. -- Mike
Code cleanups --Dennis
Added the case where instructor/pgProblemEditor/ is dispatched to an Instructor/ PGProblemEditor.pm object.
Stub for PGProblemEditor which edits a .pg file -- Mike
More "fix me" -> "FIXME:" Changes. It's what Sam + I grep for to see what needs fixing. -Dennis
Changed the string "fix me." in a comment to the industry standard "FIXME:" -Dennis
Changed the "probset editor" link to "probset list" -Dennis
cosmetic changed based in part on Bill Ziemer's work.
Editor now fills a blank textarea from the named problem set if it exists. There are a number of user interface issues to be tackled here. The behavior is: if the textarea is empty and a setName is defined then the textarea is filled from the setNAme.def file (eventually it will be filled from the database ) This behavior will probably not be transparent to the user.
Added sorting capability. Squashed a bug in bug-detection ;-) -Dennis
rename course access log and associated variables to answer log.
Rename course access_log ans associated variables to answer_log, etc.
rename course access_log to answer_log so that it will not be confused with the system access log.
This has the file access code used by save_answer_to_file It only recognizes the fileID 'preflight' at the moment. A list of the allowable fileID's and their corresponding addresses should be placed in Global. -- Mike
Added save_answer_to_file to the answer macros. Useage: TEXT(ans_box(5,80) ); ANS(save_answer_to_file('preflight')); Saves the answer entered into the answerbox to a file preflight.log in the logs directory of the course. The actual writing mechanism is contained in the file AnswerIO.pm
The problem set list has it's basic functionality working. It still needs a lot of work, but it's usable as a gateway to the problem editor. -Dennis
Finished writin this.
Factored some code into gatherInfo() method. The three dates are now sticky a problem address of the form /prob1.pg won't enter into the set def textarea This solves the problem that the directory might not yet be defined (but not elegantly). -- Mike
initial work on SQL backend. untested. -sam
Make buttons have matching widths.
Added comments. There is still an annoying problem that it is possible for the user to insert a problem that has an empty directory address (e.g /prob3.pg, 1) if they use "Choose problem" before ever using "Select set" Viewing the entire set, saving the set and viewing individual problems from the local library (as opposed to the problem library on webhost) remain to be implemented. -- Mike
Have help pages come up in a separate window
Fixed local variable problem in Perm and Comb; made them less succeptable to overflow problems, and reorganized calling dependencies. Also added aliases P and C.
The select set and the choose problem button now work fairly well. There is a static link allowing you to view the last chosen problem via the problem library at webhost. This works for now, but will break if the class template file is out of sync with the template file used by the "problem library" program at webhost. The save button, which involves checking the syntax of the problem list has not been implemented. (There is code in profBuildProbSets to help with this.) The view entire problem set (in pdf form) is not been implemented. It should be possible to redirect this to the hardcopy feature somehow? or to the PDF feature of the "problem library". Other aspects of the user inface are still problematic. We'll need to play with it for awhile to see which behaviors must be changed. --Mike
Considerable progress has been made. The select definition button and choose problem buttons work now, although the code needs to be de-crufted. For some reason Safari will not recognize \r\n (newlines) in the textarea although iCab does. What is the accepted way to enter text with newlines into the data for a textarea? The view problem button doesn't work yet. i want this to come up in a new window. Must I use javaScript for this or is there another way to force a new target window for the result of pusing the view problem button? How can one redirect to a particular problem? There is still considerable debugging code in this file. --Mike CVe: ----------------------------------------------------------------------
Make some buttons have matching widths.
Make some buttons have the same width.
Make some submit buttons have matching widths.
Reduced blank space on left side of matrix delimiter images.
I was working on an older version, 1.10 changes now included.
added a subrouting (answer_matrix) to create an m by n matrix of ans_rule's
Added an entry for problemSetEditor pointing to Instructor::ProblemSetEditor
This is the shell of an editor which will construct a "set definition file". It shows a list of the problems which are available in the templates directory. To do: 1 - Detect the selected setDirectory and display its problems. Currently the setDirectory is permanently set to setAlgebra10Intervals. 2 - Implement the problem viewing action of the form 3 - Implement the save definition action of the form. -- MIke
dded a link to the mock up of a problem set editor.
Made modifications to the tth subroutine that make it work seomewhat better with matrices. There is a filter, which changes the characters used by tth that only works properly with iCAB (not much use). I have also added the -u switch to tth which makes the symbols work well with MSIE, OmniWeb, iCab, and Safari on the Mac. It does not work with Camino on the mac, but it does work with Mozilla. How does it work in your browser? -- Mike (email@example.com)
Make the value of new global variable $defaultDisplayMatrixStyle known to the problem.
Added global variable for default delimiters/vertical lines in display_matrix.
Added documentation for display_matrix and mbox.
Vertical solid and dashed lines should now work in display_matrix in all modes.
*** empty log message ***
rearrange page, add helpfile, slight chnagees to verbiage
Fixed small typo.
Replaced a use of uc (upper case) with tr/a-z/A-Z For some reason uc stopped working on webwork although it worked other places. Very puzzling.
Commented out subroutines which are not being used (to the best of my knowledge) For the most part these are subroutines which were originally designed to help clean up the instructors answers. This turned out to be a rather idiosyncratic process, and the standard subroutines didn't seem to be that useful. We might want to return to this problem later.
Added a new subroutine for constructing filters
fixed a bug in which teh library list was not joined by \n
Bug fix in mbox for l2h mode, vertical bars in matricies starting to work in all modes.
Added initial version of mbox command.
Add support for |,[,],{,} as delimeters to matricies in display_matrix
bin/authedit is no longer useful, now that we have bin/wwdb
cleanup. -sam
added SQL.pm driver module. -sam
Cosmetic fixes for the link section.
cruft removal. -sam
added keyfield information. -sam
database doc updates. -sam
Removed the Professor content generator and link. Made a little progress on ProblemSetList. -Dennis
Fixed a typo -Dennis
Added links to the old Professor pages. -Dennis
Modified links subroutine so that it returns a string rather than an array.
Added shell code for the UserList and ProblemSetList -Dennis
Moved Instructor.pm to Instructor/Index.pm and made Instructor.pm an abstract superclass of all the instructor pages. -Dennis
Progress towards making the feedback system work more cleanly and allowing a back-link. Except now it's broken. -Dennis
Added the beginnings of the instructor pages. --Dennis
A design for the template used at UR.
Made the key expiration error message more user-friendly --Dennis
Changed display_matrix to display_matrix_mm, added display_matrix_math_mode, and changed displaymat to display_matrix.
Fixed BUG #16: "Logging out from a practice user and logging back in doesn't work right" http://webwork3/bugzilla/show_bug.cgi?id=16 --Dennis
Introduction of displaymat, and related functions. This is just a preliminary addition to be refined shortly.
Make buttons the same width.
Initial code for displaymat.
Modified the search pattern for analyzing each line so that it matched the time stamp on webwork3. This may require some tweaking on different systems.
Added the instructor URL dispatching. -dennis
$db gets passed into the ContentGenerator constructor (rather than being needlessly recreated inside). -sam
modev more content generators over to the new WWDBv2 API. fixed some bugs. -sam
rewrote these modules to use the WWDBv2 library. rewrote the Authen.pm verify function to (hopefully) be more readable. -sam
misc fixes. -sam
removed unused references to WWDBv1 libraries. -sam
implemented getGlobalUser{Set,Problem}. -sam
removed unused WEBWORK_HOME variable. -sam
* changed $course_env to $ce * added code to instantiate database and pass it to Authen and Authz. -sam
Added $sessionKeyLength and @sessionKeyChars variables (for Authen.pm). -sam
added bin/wwsh - a rudimentary webwork shell which (currently) allows access to CourseEnvironment and DB objects. This could be extended to provide a full shell for the WeBWorK system. (Uses PSH.pm.) -sam
changed the name of the "courseEnvironment" field in the ContentGenerator object to "ce", to match the style and conciesness of the existing "r" and new "db" fields. -sam
Lots of work on WWDBv2... WW1Hash is done! A complete dbLayout (as detailed on global.conf.dist) works now. -sam
now supports sparse problem IDs. -sam
added a dummy driver and schema. -sam
Added Instructor.pm, the main menu for the instructor pages. -dennis
replaced PGtranslator5 by PGtranslator in error message
Added path :externalLaTeX2HTMLSupportPath
allow problems to have decimal values in the set definition file
Modified random so that random(a,b,c) always produces values between a and b.
updated usage() to reflect actual accepted syntax. -sam
TMP directory variables are now initiated from WW.conf.
initial support for WWDBv2: - DB.pm finished (except for getGlobalUser{Set,Problem} methods) - schema modules for password, permission, key, and user with WWDBv1 hash-bashed backends - GDBM driver - wwdb command-line frontend -sam
renamed Permission.pm to PermissionLevel.pm. because i am stupid. -sam
renamed PermissionLevel.pm to Permission.pm -sam
Hit the #nav macro with a cluebat RE: webworkURLs->htdocs vs. imageprefix="" -Dennis
Added code for logging student answers and allowing instructors to inspect previous answers from students.
Set names are included when listing a problem. This works better on the webpage because this way the entire path to the problem file (from the library on down) can be selected and copied from a webpage into something like a set definition file. For the previous version the set would have to be added in by hand at each stage.
Removed debugging print statement
Modified Fetch so that it did not include the set name when fetching the problems in a set.
Turned debugging off
Fixed spaces
New initializations added
Moved more initialization code to WW.config
Modified to work with WW.config
Model for configuration file
Modified files to use WW.config
dded Record modules for the new database. these replace the WeBWorK::{User,Set,Problem} modules currently used. -sam
This file contains information learned after the release of webwork-2.0pr1 that is necessary in order to get a webwork-2.0pr1 system up and running. --Dennis
list_random has been moved elsewhere, and bug was fixed in nicestring
Fixed some compile errors in this file.
added the GDBM driver. some changes to doc/new-DB-* -sam
Added code to allow publication of pdf copies of library problems.
new entires
Added Mark Schmitt's changes
added DB.pm -- DB API implemented. (however, no Schema or Driver modules have been written!) -sam
conf/global.conf.dist: fixed %dbLayout doc/new-DB-architecture: removed a meta-note. -sam
updated new-DB-notes, finished new-DB-architecture. -sam
renamed schema-mod_perl to new-DB-notes. -sam
added a couple database notes files. -sam
Allow classlist operations when WW database does not exist
Allow classlist operations when WW database does not exist
1. added %dbLayout (for the new DB.pm database system) 2. moved some stuff around -sam
Added the preprocessing facility. The current default preprocessor is a filter which takes the initial PG problem and handles the BEGIN_TEXT/END_TEXT blocks as well as escaping backslashes and replacing ~~ by backslash. Other preprocessors can be installed to effect different behavior. At present there is only one preprocessor. The behavior of the method preprocess could be modified to allow a chain of preprocessing filters if that becomes desirable. The barest bones of a postprocessing facility is also in place. The current default postprocessor does nothing. This could be implemented to create sticky answers.
more database schema notes *sigh* -sam
removed "nowrap" from barebones.template because it wasn't doing anything anyway, and every byte counts ;-) Changed "Logged in as:" to "User:" in ContentGenerator and killed the CGI::br calls in that message and the "Acting as:" message Added more context to the context URL in Feedback, and properly obfuscated some code. --Dennis
fixed a small bug in the prototype of deletePSVN(). -sam
removed stupid functions -sam
Added a switch which allows editing of the webworkCourse.ph file over the web as per Zig's suggestion.
I made a few cosmetic changes to classic.template and reworked barebones.template to reduce the amount of vertical screen real-estate used by the header information. -Dennis
Added CSS rules to arrange the answer result feedback so as to reduce vertical screen space usage -Dennis
I made a special template that is very similar to the look of WeBWorK 1.8 -Dennis
Matched the calling semantics for navMacro -dennis
Changed the calling semantics to navMacro -dennis
changed the way canCheckAnswer() is calculated -sam
Began adding CSS escapes to some generated HTML structures. Addressed some bug reports that came in from the mailing list. -Dennis
Wrapping script for showPastAnswers.pl script
This CGI scripts allows an instructor to inspect the complete answer history for a given student and problem. The $Global::logCourseAccessData variable must be set to one for this data to be collected.
Added code for logging course access data. This logs the students answers in a way that can be easily parsed and reported to the instructor. The code is adapted (slightly) from code written by Davide Cervone at Union College.
Added controls for logging course Access data. This logs the students answers in a way that can be easily parsed and reported to the instructor.
Added the <!--#nav--> macro to ProblemSet.pm. When I made a template that didn't include the <!--#path--> macro to satisfy some old timers on the mailing list, I noticed that there was no other way to get back to the problem sets page from a problem set. -Dennis
Corrected a bug in checkbox_cmp. If the answer had more than one boxed checked the student's answer could be passed to this subroutine either as a \0 delimited string or as an array reference. The subroutine couldn't handle the array reference. Now it can.
Added the <!--#if loggedin="1"--> template escape. It evaluates to true on every content generator except Login.pm and Logout.pm. Used it to make the barebones template look cleaner on the login page. -Dennis
enabled "check answers" button after the answerdate. (see http://webhost.math.rochester.edu/webworkdocs/discuss/msgReader$1416) -sam
updated httpd.conf snippet quoted in WeBWorK.pm -sam
commented out uneccessary require DGglue.pl
added a file that has been in doc/ for a while. -sam
Documented the new database schema and API to be written for the professor pages. -sam
added some notes to doc/ -sam
I made profLogin even more compact. The main table can now fit in a single 800x600 browser window. The top banner has been replaced by a more compact version a-la the welcomeAction page. the anchor links have been removed, since they were no longer needed. There aren't column headings anymore, but I've tried to order the items so that they would minimize space while still making some kind of organizational sense. There are no longer any "blue box" headings, becuase the buttons serve as sufficient description of the functionality. --Dennis
1. the new global.conf key {mail}->{feedbackVerbosity} controls the verbosity level of Feedback.pm messages. 2. Feedback includes a URL when ever the user is logged in. -sam
1. fixed some formatting in Problem 2. hardcopy allows correct answers, hints, solutions to be shown 3. privileged users are allowed to view/download "not yet open" sets -sam
ProblemSet and Problem no longer allow problem sets that are "not yet open" to be viewed. oopsies. -sam
merged changes from rel-2-0-pr1-hardcopy-changes -sam
Converted to a table-based layout for the professor login page. Moved "Edit by PSVN" to housekeeping. -Dennis
added a paste answers option to the preview page
Fixed up button on this page.
Corrected spelling of recitation.
fixed call to romberg which now requires "level => 8"
Don't bother running latex/dvipng in cases where there are no images.
Took it out of debugging mode (where cached images are always ignored).
Fixed typo which kept dvi files from being cleaned up when downloading problem sets. (Note, it is still left when imagedebug mode is on.)
updated todo. -sam
effectiveUser audit complete on Hardcopy.pm. That means all the ContentGenerators are all checked and clear. -Dennis
motd is only read if defined and true. -sam
effectiveUser audit complete on all the content generators except Hardcopy -Dennis
added a "check answers" button if the user has the apropriate permissions -sam
Fixed soem ugliness I introduced into the formatting. Nothing major. -Dennis
There was one more spot that needed effectiveUser fixing. I did it. -Dennis
hardcopy new respects effectiveUser -sam
Made web output from this file a little nicer by replacing underscores with spaces.
Fix From and Reply-To fields for new outgoing e-mail when there is no default.msg.
Replacing _ with space on web pages to make them look nicer.
Making web pages from this page nicer with _ to space replacements.
Beautification - replacing _ with spaces in course name and set names when printing on web pages.
Changed name of a variable to be consistent with other files (related to _ to space switch when printing the course name on a web page).
Change _ to spaces when listing problem set names on the web page.
Three beautification fixes. Course and problem sets have _ replaced with spaces when printing on the web page; tiny window listing problem sets is taller; things like --- OPEN-- made symmetric (e.g., to be --- OPEN ---).
Convert underscores to spaces in set and course names when displaying them on web pages.
commented out allowedRecipients -- this should probably be set in course.conf. -sam
added stuff that had been previously added to global.conf -sam
Finally committing a clean version of my mostly-done Problem.pm effectiveUser audit. -Dennis
fixed bug in line 700 having to do with YK 2000
bug fix (added missing $)
An MOTD can be displayed on the problem sets page. Define $courseFiles{motd} to point to a file containing the message. -sam
"Home" (i.e. no course specified) now redirects to %webworkURLs{home} -sam
send_mail_to now works. -sam
took out some old commented out lines in PG.pm. -sam
added ALLOW_MAIL_TO to the environment. -sam
added $formatedDueDate variable (spelled wrong in many header files) -sam
$webworkURLRoot is now taken from Apache::WeBWorK instead of being specified in global.conf. -sam
added gif2png script to the repository. -sam
&info now respects screen set header file in database. -sam
DONE effectiveUser for at least Problem.pm DONE write a template escape for printing $user, $effectiveUser, &c. nicely also added additional timing log points: timing is now logged: 1. when WeBWorK::PG::new starts 2. after all the initialization-type stuff happens 3. when WeBWorK::PG::new ends Getting it to log the entire request time might be a little harder. -sam
Fixed the listSet routine so that it handles recursion better, particularly if the file name is different from the set name above it. Bollixed up the references to libraries again. We'll put those in a config file soon.
Bringing the macros files in line with the macros files in webwork-modperl
corrected typo in documentation.
Small modification to createDirectory which makes this file works on macs. (If directory name has trailing / it is deleted before calling the perl command to create the directory)
Removed references to Global. Updated some of the warning mechanisms.
Removed most, if not all references to Global. The necessary global variables are now defined at the top of the file (and written in all caps).
DONE results table part(or blank)/entered/preview/result/messages don't show messages unless there are some -sam
removed user name propogation from Logout -> Login disabled "show hint/solution" when there's no hint/solution
fixed formatting in &tth (dangerousMacros.pl) ProblemSets.pm allows sorting by Name or Status (due date) -sam
make answer previews use $displayMode write a template escape for printing $user, $effectiveUser, &c. nicely -sam
*** empty log message ***
Modified OL so that entries have an extra line break when images are produced by dvipng.
Added vertical space for entries produced by match_questions_list when using dvipng.
Had to also fix delete_key
Now the keys file will always be created with the permssion given by $Global::restricted_tie_permission
Added an informative comment -dennis
made some improvements to Feedback, added loginStatus escape. -sam
add documentation
allow strings like "-INF" to be valid in the strings options
Added two new tasks to the TODO list for the December prerelease -Dennis
did some work on Feedback, etc. Added mike and arnie's comments to TODO. -sam
Added a Professor Tools stub module that provides redirection links to the WeBWorK 1.8 system -Dennis
added feedback links to a bunch of modules. -sam
okay, added Feedback.pm this time. -sam
added a bunch of "***" comments. implemented Feedback module. -sam
Added back in the changed from versions 1.44 and 1.45
reverting to version 1.42. Version 1.43 is buggy.
added stuff. -sam
reoranized file. -sam
fixed dvipng (again!) -sam
removed unused WEBWORKUSER variable -sam
Changed the naming of the per-user config file -dennis
updated todo -sam
renamed wwapachectl.sample -> wwapachectl.dist -sam
removed unused $path_translated variable, had $path_info set to "" by default instead of undef, added some warnings. -sam
renamed httpd-wwmp-header.conf -> httpd-wwmp-header.conf.dist -sam
renamed httpd-wwmp-sample.conf -> httpd-wwmp.conf.dist fixed a value in global.conf.dist -sam
renamed global.conf -> global.conf.dist -sam
DocumentRoot has to be an absolute path. -sam
whoops. -sam
added $WEBWORKUSER variable -sam
added !WEBWORK_PORT! -- use 10000 + your UID! -sam
replaced instances of "malsyned" with !WEBWORK_USER! and documented it at the top of the file. -sam
moved a comment that was at the end of a line (comments have to be on their own lines in httpd config files.) -sam
removed annoying comment. -sam
added REAL logout support. keys now get invalidated at logout. also, fixed a bug in classlist (see the diff). also, added a sub to Utils (see the diff). -sam
finished this module. -sam
Added "Options" handler, modified the dispatcher to support it, fixed the link to it in the &links routine. -sam
Removed some debugging code -dennis
updated TODO. -sam
fixed hardcopy generation for sets named "0" (a false, but defined value) added error and warning reporting. -sam
fixed the "Download Hardcopy for Selected Sets" button -sam
Added configuration files for apache that will allow each user to control his own seperate Apache process with a different webwork-modperl installation -Dennis
Added a template for controlling the per-user apache process -Dennis
moved PG modules from lib/WeBWorK/PG/ to pglib/ -sam
fixed test for hardcopy argument to not throw away "0". 0sam
fixed __WARN__ handler. somehow it broke itself and needed some massaging. -sam
removed old comment. -sam
Added some debugging code
Added warning if one cannot change the permissions on latexfilenamebase
added some docs to Utils -sam
Added more warning code for when image generation fails. Also added code that keeps files from being removed when the global imageDebug switch is turned on.
Added some code setting METAFONT_DPI=180 to remove a division by zero error. It's possible that this should be set somewhere else higher up the chain of initializations, but if that change is made make sure there is a note in this file specifying how to make sure that METAFONT_DPI is set correctly
Added paths to Latex2HTML to make these files compatible with the macro files used jointly by webwork and webwork-modperl
Revised warnings on Latex2HTML code so that more information is passed back to the user via the webpage. The main change was to replace the wwerror calls with warns. wwerror hasn't been updated in some time. I suspect that all of these calls can be replaced by warn calls or perhaps, in some cases, die calls.
No changes (except for spaces)
Format changes, which make dangerousMacros more readable were added to the standard webwork courseScripts folder
Changed warning messages when dvipng doesn't work from die to warn. This gives more infformation back to the webbrowser and still prints the same information to the log. Removed the workaround for dvipng's problems with labeling its dvi output. This problem was fixed in the latest version of dvipng which is now being used on webwork-db and webwork. There is still a problem that dvipng is being used to display answers at all times (even if the mode switch is set to tth mode )
yo shout! answer previewing is working. -sam
Added code to use the external paths to gif2eps and png2eps when defined
Added environment variables for the paths to the gif2eps and png2eps scripts. This increases compatibility with the modperl version of WeBWorK.
fixed up IO.pm and IO.pl so that only the necessary functions are in IO.pl. -sam
turned on catchWarnings. -sam
Fixed a syntax error --dennis
fixed a logic error in Problem.pm affecting $can{submitAnswers} -sam
finished some stuff up. hardcopy deletes its temp files. -sam
fixed pdf images. -sam
small changes to support hardcopy work. -sam
getImageDimmensions now uses GD instead of Image::Info. -sam
added texDisposition problem environment variable -- always set to "pdf" cleaned up unrestricted_load code, made IO.pl get loaded first -sam
specified 'pdftex' option to graphicx -sam
added gif2png external program path. -sam
fixed a little problem with the warning control. -sam
added $courseEnv->{pg}->{options}->{catchWarnings} to control if PG warnings are caught and stored in the self hash, or uncaught and spit out on stderr (or error_log or whatever). -sam
re-formatted &alias (in dangerousMacros) so that it's more readable. mostly just made sure indentations where correct and tabs and spaces were used where apprropriate. -sam
turned logging back on. -sam
Changed CLOSED message to Past Due Date.
Changed CLOSED to Due date has passed.
added screen set header file. -sam
define envir{fileName}
Fixed png creation from screen header file.
ass ` to the list of characters ($ and @) filtered out of sticky answers
fixed other variants of tex_ans_rule
answer rules can not be placed within equations in dvipng mode
entered Mark's bug fix for floor()
Added some ifs to the barebones template to prevent it from drawing the hard rule unless necessary. Removed init.pl. It is no longer used. --Dennis
modified reference to library
Added two new files
Split webwork.pm into webwork.pm, FetchLbiraryProblems.pm and MathTranslators.pm Began to add dvipng capabilities to the webservice daemon.
very minor change
minor changes
minor changes
force scoring of sets with corrupted data
minor chages to comments
change copyright date
add comment about noserpage switch
add comment on nosetpage switch
add comment about nosetpage
mention the three palces the init files resides in.
Change how debugging output works
use quiet switch. Still get a timing message in error log
send fewer messages to error_log
send fewer messages to error log. Still too many
add remark about webworkInit.pm
minor changes
trivial change
changes for version 1.8
have to load FILE.pl in order for htmlbottom to print date
fix spelling errors
give correct path to blue sqaure gif
documentation for webwork 1.8
minor changes
rewriten allowing png mode and error checking
set $extendedPath = ':/usr/bin:/usr/local/bin';
append (error) messages to error_log rather than overwrite error_log
append messages to error_log rather than overwrite error_log
ahh -nosetpage switch
- created macros/IO.pl, which is loaded with no opmask by PG.pm. It is a copy of WeBWorK::PG::IO.pm, with some changes to make it work as a macro package. The translator no longer shares IO.pm's functions with the safe compartment. This is a BAD THING, and should be reconsidered when the Translator is revised. - Changed many (but not all) checks for HTML or HTML_tth modes to match /^HTML/ in the macros. - changed &header to &head in Problem.pm - Added problem environment variables for gif2eps and png2eps and modified &dangerousMacros::alias to use them - fixed MOST of the harmless warnings in the system. there's still the "Use of uninitialized value in null operation" warning in template(), tho. Still to come: - make images in PDFs work - fix TTH mode character encodings on mac (maybe) - have logout button invalidate key - Pretty die messages (from outside of the translator) - Feedback - need nice modular way of sending email - Options - email address and password
removed deprecated stuff from the bin directory. added gif2eps and png2eps from the old system. -sam
go back to old version while I think about the changes
changed the way the user is determined in access_link