Log of /trunk/webwork2/lib/WeBWorK/Utils.pm
Parent Directory
Revision
4494 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 15 17:53:18 2006 UTC (6 years, 8 months ago) by
sh002i
File length: 27501 byte(s)
Diff to
previous 4166
make importing actually work in runtime_use. previously, symbols were
being imported into the bogus package "Main", and there was no way to
specify an import list.
Revision
4051 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 17 21:17:12 2006 UTC (7 years, 1 month ago) by
sh002i
File length: 26705 byte(s)
Diff to
previous 4015
Resolve bug #994 ("Try it" yields: sourceFilePath is unsafe!)
SetMaker uses a relative path for sourceFilePath, which is nice, but
which path_is_subdir didn't account for. Added thrid argument,
$allow_relative, to that utility which causes $dir to be prepended to
$path. Modified Problem.pm to trigger this behavior.
Revision
4015 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Feb 7 21:03:25 2006 UTC (7 years, 3 months ago) by
sh002i
File length: 26466 byte(s)
Diff to
previous 3973
forward-port from rel-2-2-dev: (security checks for sourceFilePath -- fixes bug #970.
* Utils.pm: add path_is_subdir
* Problem.pm: use path_is_subdir to check sourceFilePath
fix logic on when to use sourceFilePath
* ProblemSet.pm: use path_is_subdir to check sourceFilePath
add permissions check around sourceFilePath handler
* ProblemSets.pm: use path_is_subdir to check sourceFilePath
* GatewayQuiz.pm: remove code to preserve editMode/sourceFilePath (not used))
Revision
3973 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jan 25 23:13:56 2006 UTC (7 years, 3 months ago) by
sh002i
File length: 25748 byte(s)
Diff to
previous 3710
forward-port from rel-2-2-dev: (update copyright date range -- 2000-2006.
this is probably overkill, since there are some files that were created
after 2000 and some files that were last modified before 2006.)
Revision
3710 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Oct 11 22:44:49 2005 UTC (7 years, 7 months ago) by
sh002i
File length: 25746 byte(s)
Diff to
previous 3614
eliminate undefined value usage in unformatDateTime, fixing bug #826.
also factored out error reporting into unformatDateTime_error and
improved formatting slightly.
Revision
3605 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Sep 7 18:02:06 2005 UTC (7 years, 8 months ago) by
sh002i
File length: 25324 byte(s)
Diff to
previous 3579
disable newlines every 76 characters in base64-encoded answers. this is
nice for examining database contents manually since it prevents newlines
from being introduced into database records.
Revision
3579 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 26 16:52:57 2005 UTC (7 years, 8 months ago) by
sh002i
File length: 25105 byte(s)
Diff to
previous 3377
improved handling of symlinks in listFilesRecursiveHelper. symlinks to
files are now treated as files instead of directories.
Revision
3377 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 14 13:15:27 2005 UTC (7 years, 10 months ago) by
glarose
File length: 24510 byte(s)
Diff to
previous 3326
Preliminary commit of changes to add Gateway module.
This adds to WeBWorK
- the ability to create versioned, timed problem sets ("gateway tests")
for which all problems are displayed on a single page ("versioned"
means that students can get multiple versions of the problem set),
- the ability to create sets that draw problems from groups of
problems, and
- the ability to create sets that require a proctor login to start
and grade.
Sets can be defined as gateway tests or proctored gateway tests from
the ProblemSetDetail page.
Not quite bug-free yet. Known bugs include handling of problem values
on the Student Progress page (I think this may be a problem with
changing from sql database format where all entries were 'text' to
sql_single in ver 2.1, where they are integer), and a division by zero
error on the grades page (which may be the same problem).
Tests with a number of attempts per version greater than one haven't
been carefully tested, nor has scoring of gateway tests.
Revision
3326 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jul 1 12:14:40 2005 UTC (7 years, 10 months ago) by
gage
File length: 23579 byte(s)
Diff to
previous 3309
Fixed a bug in which the constant 'function' BASE64_ENCODED was not being
evaluated inside the matching and substitution statements. Replaced
the constant by using the construction
our $BASE64_ENCODED = 'base64_encoded:';
instead. The variable is properly interpolated inside the matching
and substitution statements.
Revision
3309 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jun 22 15:54:16 2005 UTC (7 years, 11 months ago) by
gage
File length: 23461 byte(s)
Diff to
previous 3306
Additional changes to the writeLogs functions. Now surePathToFile
is used to make sure that the logs are created if they are not
already there.
Revision
3232 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu May 19 16:17:44 2005 UTC (8 years ago) by
gage
File length: 23306 byte(s)
Diff to
previous 3223
Use base64 to save answers -- this ensures that symbols
in the answer won't cause trouble. I have added a string
to the beginning of the encoded passage:
base64_encoded:AFDWERADADFRET
-- Mike
Revision
2893 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 11 19:36:30 2004 UTC (8 years, 7 months ago) by
gage
File length: 22774 byte(s)
Diff to
previous 2891
Changed error reporting when there is an error in date/time. This
specifies what the subroutine thinks date and time are, making it
easier to discover the error in the format of the input
Revision
2858 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 4 18:28:16 2004 UTC (8 years, 7 months ago) by
sh002i
File length: 22155 byte(s)
Diff to
previous 2829
complete rewrite of parseDateTime to close bug #693.
- using modified version of WW1's unformatDateAndTime() function for
actual parsing.
- intelligent treatment of two, three, and four digit years consistent
with Time::Local.
- attempt to interpret time zone specification using DateTime::TimeZone
and then Time::Zone. if neither succeeds, an expection is thrown.
- if timezone is not specified, $display_tz is actually used.
It never ceases to amaze me how tricky time zone handling is. It appears
that I have it right now, but please test.
Revision
2825 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 23 22:03:03 2004 UTC (8 years, 7 months ago) by
dpvc
File length: 17498 byte(s)
Diff to
previous 2782
Matching full path was not working (the match was being made
against only the file name regardless of the match flag).
Revision
2770 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Sep 11 06:15:14 2004 UTC (8 years, 8 months ago) by
sh002i
File length: 17359 byte(s)
Diff to
previous 2769
PRELIMINARY SUPPORT FOR TIME ZONES (towards closing bug #532).
(1) new configuration variable $siteDefaults{timezone}
Set the default timezone of courses on this server. This must be a value
valid for the TZ environment variable. See also tzset(3).
If left blank, the system timezone will be used. This is usually what
you want. You might want to set this if your server is NOT in the same
timezone as your school. If just a few courses are in a different
timezone, set this in course.conf for the affected courses instead.
(2) support for second optional $display_tz argument to formatDateTime()
and parseDateTime().
If specified, formatted string datetimes will be considered to be in
that timezone instead of the server's local timezone.
Remaining work:
find all calls to *DateTime() and add the $client_tz argument.
$client_tz is is really something that *DateTime() should be able to
grab out of $ce, but they're not a method on ContentGenerator, so we
have to pass it in. It might be worth moving them to ContentGenerator.
(Or some new subclass of ContentGenerator or something?)
Revision
2435 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jul 2 20:31:33 2004 UTC (8 years, 10 months ago) by
dpvc
File length: 11639 byte(s)
Diff to
previous 2082
Fix uninitialized value. (It comes into play if a problem doesn't
have any answer blanks. We have these in our orientation set.)
Revision
2082 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 11 19:07:54 2004 UTC (9 years ago) by
gage
File length: 11636 byte(s)
Diff to
previous 2003
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
Revision
1945 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 5 03:58:30 2004 UTC (9 years, 1 month ago) by
sh002i
File length: 10233 byte(s)
Diff to
previous 1905
preliminary web-based course creation support
try it -- create a course called "admin" the usual way and then visit it
in your browser.
Revision
1663 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 9 01:12:32 2003 UTC (9 years, 5 months ago) by
sh002i
File length: 9674 byte(s)
Diff to
previous 1529
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.
################################################################################
Revision
1529 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 25 02:02:19 2003 UTC (9 years, 7 months ago) by
sh002i
File length: 9017 byte(s)
Diff to
previous 1492
removed overly chatty error message: instead, we should add this sort of
thing to the generic "software error" message.
Revision
1492 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Sep 9 02:00:07 2003 UTC (9 years, 8 months ago) by
gage
File length: 9117 byte(s)
Diff to
previous 1481
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
Revision
1481 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 5 03:39:15 2003 UTC (9 years, 8 months ago) by
gage
File length: 9005 byte(s)
Diff to
previous 1397
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
Revision
1397 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jul 16 12:58:29 2003 UTC (9 years, 10 months ago) by
gage
File length: 8952 byte(s)
Diff to
previous 1387
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
Revision
1387 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jul 15 00:56:50 2003 UTC (9 years, 10 months ago) by
gage
File length: 8852 byte(s)
Diff to
previous 1287
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.
Revision
1257 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 23 19:57:59 2003 UTC (9 years, 11 months ago) by
sh002i
File length: 8159 byte(s)
Diff to
previous 1150
disabled &backtrace, which depends on Apache::DB. DB has been causing
segfaults with some modules (like File::Temp, XMLRPC::Lite...)
Revision
1111 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 10 23:05:57 2003 UTC (9 years, 11 months ago) by
sh002i
File length: 7320 byte(s)
Diff to
previous 1095
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
Revision
1045 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 6 19:13:51 2003 UTC (9 years, 11 months ago) by
malsyned
File length: 6378 byte(s)
Diff to
previous 984
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
Revision
692 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jan 7 21:19:38 2003 UTC (10 years, 4 months ago) by
sh002i
File length: 5644 byte(s)
Diff to
previous 667
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
Revision
646 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Nov 23 00:25:40 2002 UTC (10 years, 6 months ago) by
sh002i
File length: 5935 byte(s)
Diff to
previous 631
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
Revision
562 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 27 23:53:42 2002 UTC (10 years, 7 months ago) by
sh002i
File length: 5258 byte(s)
Diff to
previous 558
- 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
Revision
558 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 20 22:47:22 2002 UTC (10 years, 8 months ago) by
sh002i
File length: 4867 byte(s)
Diff to
previous 494
* fixed multiple-calls-to-&handler problem
* fixed if-else-endif code in &template
* added code to catch warnings in PG evaluation
* added "pink screen" and warning reporting
* started work on logging code (see Utils.pm, commented out)
-sam & dennis
Revision
455 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 5 21:34:18 2002 UTC (10 years, 9 months ago) by
sh002i
File length: 4489 byte(s)
Diff to
previous 445
"normalized" files:
- (c) header on all files
- standard order of preamble lines:
1. (c) header
2. package PACKAGENAME;
3. short summary of the package (pod's NAME section)
4. use - pragmatic modules
5. use - standard perl modules
6. use - CPAN modules
7. use - webwork modules
- ALWAYS use strict and use warnings
- use "use base" rather than "our @ISA"
so now we can be happy.
-sam
Revision
424 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 11 19:09:08 2002 UTC (10 years, 10 months ago) by
sh002i
File length: 4607 byte(s)
Diff to
previous 422
Problem.pm/PG.pm/Translator.pm now compile and work (to some degree)
changed the format of pg/modules in global.conf
diddled with the format of system.template (i believe i moved an <HR>)
added ref2string function to Utils.pm, removed hash2string/array2string
fixed a package name in IO.pm
Revision
412 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 25 20:29:22 2002 UTC (10 years, 10 months ago) by
sh002i
File length: 926 byte(s)
Diff to
previous 410
global: added some new hashes. learn how to use diff.
CourseEnv: new uses WeBWorK::Utils
WW: commented out a silly debugging function
IO: fixed package name
Translator: changed behavior of evaluate_modules and
load_extra_packages: they now update the instance variable directly to
avoid sharing modules that weren't asked for "this time".
-sam
Revision
410 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Added
Tue Jun 25 16:49:11 2002 UTC (10 years, 10 months ago) by
sh002i
File length: 406 byte(s)
Utils.pm now contains &runtime_use (from RuntimeUse.pm) and &readFile
(from CourseEnvironment.pm).
-sam
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.