2009-04-27  Josh Green  <jgreen@users.sourceforge.net>
	* InstDB.py: Added reCAPTCHA theme code to <head>.
	* config.py.example: Added reCAPTCHA public and private keys.
	* item.py: reCAPTCHA for anonymous comments, set comment width to 40.
	* register.py: reCAPTCHA for registration.
	* images/style.css: Added colors for reCAPTCHA form text field.

2009-01-19  Josh Green  <jgreen@users.sourceforge.net>
        * PatchImport.py: Disabled CRAM archive creation until its finished in
          libinstpatch, removed import of sys and string modules, now using
          Python subprocess module for executing utilities, moved CRAM code to
          cram_files function, created zip_files function which gets executed
          to create a zip archive, added md5file to use Python md5 instead of
          external utility.  Now calculating and storing MD5 of ZIP archive.
        * PatchItem.py: Renamed ComprSize field to CramSize, renamed
          DownloadClicks field to CramClicks, added ZipSize and ZipClicks fields,
          DownloadClicks = CramClicks + ZipClicks, renamed ComprSizeDetail to
          CramSizeDetail, added ZipSizeDetail field, DownloadLink now links to
          special download.py (so it can be excluded in robots.txt), removed
          .cram extension from FileName and FileNameLink.
        * config.py.example: Removed phpbb database settings, added PHPBBPath
          for specifying path to PHPBB, added PHP_CMD, ZIP_CMD and
          ZipFileComment variables.  Removed MD5SUM_CMD.
        * confirm.py: Now redirects to confirm.py without the HashKey to prevent
          error after initial login (with HashKey still on browser line), error
          output if phpbb.user_activate fails.
        * dnld.py: Now handles Zip or CRAM downloads (CRAM not yet functional),
          selects random mirror, updates Mirror download clicks and total size,
          uses redirect to download file.
        * patchesHandler.py: Specially handles download.py script so that it can
          be excluded in robots.txt.
        * phpbb.py: Completely overhauled to call PHP directly with embedded
          PHP code to add or activate an account.
        * register.py: Updated for new phpbb code, checks for error on add_user.
        * search.py: Removed ComprSize field from display.
        * submit.py: Removed .cram suffix from filename form field and also from
          FileName field in Queue SQL table.
        * include/submit.inc: Modified text to indicate that ZIP is used for
          archives and that CRAM is not yet complete.
        * sql/Mirrors.sql: Added "CRAM" and "zip" to Flags to indicate what
          kind of archives are supported for a given mirror, added DownloadClicks,
          DownloadSize and DownloadTotal fields.
        * sql/PatchInfo.sql: Renamed ComprSize to CramSize, renamed
          DownloadClicks to CramClicks, added ZipSize and ZipClicks.

2007-05-03  Josh Green  <jgreen@users.sourceforge.net>
	* submit.py: File name conflict check now includes patch type.

2007-04-29  Josh Green  <jgreen@users.sourceforge.net>
        * PatchImport.py: Removed import_queued_task and activate_queued_task
          as they were pretty Queue specific.  Now all import logic is contained
          in 3 functions: extract_archive(), import_patch() and activate_patch()
          whose parameters were simplified.
        * Util.py: Fixes to delete_patch() so that it actually works.
        * search.py: Fixed a bug where fetchmany was being used where fetchall
          should have been instead.
        * submit.py: Fixed a bug where fetchmany was being used where fetchall
          should have been instead.
        * sql/Files.sql: New table to track individual files in archives.
        * sql/PatchInfo.sql: Comments changed in regards to what FileName
          and FileSize mean.  FileName is the CRAM archive name without any
          file extensions and FileSize is the total sum of uncompressed file
          sizes in the archive.  Added Md5 field to store MD5 of CRAM archive.
        * utils/patchesdb.py: New!  Command line interface to patchesdb to
          extract, import, activate and delete instruments.
        * utils/patchesdb_taskd.py: Logic specific to Queue table tasks moved
          from PatchImport.  Fixed improper use of fetchmany where fetchall
          should be used.
        * config.py: External utilities now each have a config variable for
          assigning the location and name of the executable.

2007-04-26  Josh Green  <jgreen@users.sourceforge.net>
        * browse.py: Added static image sizes to <IMG> tags for category icons
        * README: Added file listing with descriptions
        * PatchImport.py: Moved from utils folder to toplevel
        * utils/delete.py: Moved contents to Util.py
        * Util.py: New file for utility related functions (patch deletion, etc)
