################################################################################ # WeBWorK mod_perl (c) 2000-2002 WeBWorK Project # $Id: TODO,v 1.31 2003-01-06 19:34:35 sh002i Exp $ ################################################################################ Son of WeBWorK - TODO list DONE write template file from what we drew on the board DONE normalize 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" - no warnings or errors! - (later on) POD documentation for all files DONE fix templating code in ContentGenerator, add new escape functions DONE implement the new template DONE finish ProblemSets and ProblemSet -------------------------------------------------------------------------------- DONE New interface to PG.pm DONE - instead of it accessing the database directly, accept $user, $set, and $problem as arguments (instead of $setName, etc.) DONE - UPDATE PG.pm'S DOCS!!!!!!!!!!!!! DONE - Fix Problem.pm and Hardcopy.pm to work with the new interface Hardcopy generation DONE - ad-hoc version of &latex2png in Hardcopy.pm (move later) DONE - fix code (heh heh) DONE - fix hardcopySetHeader Integration of dvipng method of image generation N/A - choice between writing to a temporary TeX file from within dangerousMacros, or queueing the equations up in RAM and passing them out to the caller (via PG_flags?) who will then call &latex2png DONE - write tempfile from dangerousMacros - PRO: gets it out of RAM - PRO: no dependancies between equations - CON: have to coordinate between latex2png and dangerous macros for tempfile locations FORGET - queue equations in RAM - PRO: all file access and external calls happen outside of the safe compartment. - PRO: latex2png gets to decide where to put files - CON: stuff sits in RAM - CON: uses a package array to queue equations :p DONE display of screen set header in ProblemSet.pm (easy) DONE add DONE fix alignment of displaymath images DONE print $pg->{header_text} in head of Problem.pm DONE remove "set" and "prob" from URL generation, remove s/^(set|prob)//; DONE remove webwork-dvipng-xxxxx temp directories when finished with them DONE make "enter" on the problem form trigger "submit answer", not "redisplay" DONE handling of PG warnings (?!?!?!?!) DONE time logging DONE test transaction logging DONE make static images work DONE make GD-generated images work DONE make HTML links work DONE make images in PDFs work DONE remove dependancies on Global:: from send_mail_to DONE preview button in Problem DONE handle PG errors (and warnings) in Hardcopy DONE have logout button invalidate key DONE Options - email address and password -------------------------------------------------------------------------------- >>>>> FOR JANUARY PREVIEW RELEASE <<<<< DONE Feedback - need nice modular way of sending email customize reciever, make object dumps prettier, link to context DONE Professor - redirect to the old system pretty die messages (from outside of the translator) DONE make sure students can't look at not-yet-open problem sets DONE make answer previews use $displayMode DONE make preview-on-submit optional check TTH mode character encodings on mac grep for "***" in source, address all issues (hah!) Increase border size on images by a couple pixels effectiveUser for at least Problem.pm calling logout requires valid key -- doesn't make sense. DONE sort problems by due date DONE disable "show hint/solution" when there's no hint/solution results table part(or blank)/entered/preview/result/messages don't show messages unless there are some make displayMode sticky (for nav and siblings) hardcopy - allow hardcopy with correct answers DONE write a template escape for printing $user, $effectiveUser, &c. nicely add a "check answers" button if the user has the apropriate permissions >>>>> FOR SPRING RELEASE <<<<< write TeXImage module to take care of TeX image caching and generation replace direct access of $permissionLevel with calls to Authz replace hardcoded URL construction with some other method (unify dispatcher URL parsing and module URL generation) implement professor pages have the prof modules be subclasses of the single Professor ContentGenerator module? more structured? less structured? THIS WILL TAKE LONGER THAN I THINK IT WILL implement better (and more unified) file editor >>>>> AFTER SPRING RELEASE <<<<< MySQL and PostgreSQL database backend problem library work (?) PG language work (?) renderer/frontend/database uncoupling (?) -------------------------------------------------------------------------------- change notes -------------------------------------------------------------------------------- IO functions (dependancies on other IO functions are not listed) all variables in the global namespace should be replaced with items in the %envir hash. all functions that access the envir hash need to be evaluated from within the safe compartment (i.e. &unrestricted_eval'd). includePGtext $envir{probFileName} send_mail_to $REMOTE_HOST $REMOTE_ADDR #$Global::smtpServer #$Global::webmaster (&Global::wwerror) read_whole_problem_file read_whole_file convertPath stub getDirDelim stub getCourseTempDirectory $envir{tempDirectory} surePathToTmpFile #$Global::tmp_directory_permission #$Global::numericalGroupID (&Global::wwerror) fileFromPath directoryFromPath createFile createDirectory getImageDimmensions -------------------------------------------------------------------------------- Calling LaTeX/dvipng and PDFLaTeX in a nice way - create LaTeX.pm (?) - &latex2pdf - create secure tempdir - write hardcopy to tex file - call pdflatex - move resulting pdf file to tmp/hardcopy/whatever.pdf - remove tempdir - &latex2png (dvipng method) - create secure tempdir - write equations to tex file - call latex - run dvipng (as per ImageGenerator) on dvi file - move resulting images to tmp/dvipng/whatever.png - remove tempdir