diff --git a/roundup/roundupdb.py b/roundup/roundupdb.py
index 1b2a385551b31cfaefac752acdca7b1e3bcb8456..8cbf92bee02dbfbf1815bf89ff9b5ae919be26c4 100644 (file)
--- a/roundup/roundupdb.py
+++ b/roundup/roundupdb.py
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
-# $Id: roundupdb.py,v 1.63 2002-07-26 08:26:59 richard Exp $
+# $Id: roundupdb.py,v 1.64 2002-09-10 00:18:20 richard Exp $
__doc__ = """
Extending hyperdb with types specific to issue-tracking.
m.insert(0, '')
return '\n'.join(m)
-#
-# $Log: not supported by cvs2svn $
-# Revision 1.62 2002/07/14 02:05:53 richard
-# . all storage-specific code (ie. backend) is now implemented by the backends
-#
-# Revision 1.61 2002/07/09 04:19:09 richard
-# Added reindex command to roundup-admin.
-# Fixed reindex on first access.
-# Also fixed reindexing of entries that change.
-#
-# Revision 1.60 2002/07/09 03:02:52 richard
-# More indexer work:
-# - all String properties may now be indexed too. Currently there's a bit of
-# "issue" specific code in the actual searching which needs to be
-# addressed. In a nutshell:
-# + pass 'indexme="yes"' as a String() property initialisation arg, eg:
-# file = FileClass(db, "file", name=String(), type=String(),
-# comment=String(indexme="yes"))
-# + the comment will then be indexed and be searchable, with the results
-# related back to the issue that the file is linked to
-# - as a result of this work, the FileClass has a default MIME type that may
-# be overridden in a subclass, or by the use of a "type" property as is
-# done in the default templates.
-# - the regeneration of the indexes (if necessary) is done once the schema is
-# set up in the dbinit.
-#
-# Revision 1.59 2002/06/18 03:55:25 dman13
-# Fixed name/address display problem introduced by an earlier change.
-# (instead of "name<addr>" display "name <addr>")
-#
-# Revision 1.58 2002/06/16 01:05:15 dman13
-# Removed temporary workaround -- it seems it was a bug in the
-# nosyreaction detector in the 0.4.1 extended template and has already
-# been fixed in CVS. We'll see.
-#
-# Revision 1.57 2002/06/15 15:49:29 dman13
-# Use 'email' instead of 'rfc822', if available.
-# Don't use isinstance() on a string (not allowed in python 2.1).
-# Return an error message instead of crashing if 'oldvalues' isn't a
-# dict (in generateChangeNote).
-#
-# Revision 1.56 2002/06/14 03:54:21 dman13
-# #565992 ] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
-#
-# use the rfc822 module to ensure that every (oddball) email address and
-# real-name is properly quoted
-#
-# Revision 1.55 2002/06/11 04:58:07 richard
-# detabbing
-#
-# Revision 1.54 2002/05/29 01:16:17 richard
-# Sorry about this huge checkin! It's fixing a lot of related stuff in one go
-# though.
-#
-# . #541941 ] changing multilink properties by mail
-# . #526730 ] search for messages capability
-# . #505180 ] split MailGW.handle_Message
-# - also changed cgi client since it was duplicating the functionality
-# . build htmlbase if tests are run using CVS checkout (removed note from
-# installation.txt)
-# . don't create an empty message on email issue creation if the email is empty
-#
-# Revision 1.53 2002/05/25 07:16:24 rochecompaan
-# Merged search_indexing-branch with HEAD
-#
-# Revision 1.52 2002/05/15 03:27:16 richard
-# . fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
-# (thanks dman)
-# . fixed some sorting issues that were breaking some unit tests under py2.2
-# . mailgw test output dir was confusing the init test (but only on 2.2 *shrug*)
-#
-# fixed bug in the init unit test that meant only the bsddb test ran if it
-# could (it clobbered the anydbm test)
-#
-# Revision 1.51 2002/04/08 03:46:42 richard
-# make it work
-#
-# Revision 1.50 2002/04/08 03:40:31 richard
-# . added a "detectors" directory for people to put their useful auditors and
-# reactors in. Note - the roundupdb.IssueClass.sendmessage method has been
-# split and renamed "nosymessage" specifically for things like the nosy
-# reactor, and "send_message" which just sends the message.
-#
-# The initial detector is one that we'll be using here at ekit - it bounces new
-# issue messages to a team address.
-#
-# Revision 1.49.2.1 2002/04/19 19:54:42 rochecompaan
-# cgi_client.py
-# removed search link for the time being
-# moved rendering of matches to htmltemplate
-# hyperdb.py
-# filtering of nodes on full text search incorporated in filter method
-# roundupdb.py
-# added paramater to call of filter method
-# roundup_indexer.py
-# added search method to RoundupIndexer class
-#
-# Revision 1.49 2002/03/19 06:41:49 richard
-# Faster, easier, less mess ;)
-#
-# Revision 1.48 2002/03/18 18:32:00 rochecompaan
-# All messages sent to the nosy list are now encoded as quoted-printable.
-#
-# Revision 1.47 2002/02/27 03:16:02 richard
-# Fixed a couple of dodgy bits found by pychekcer.
-#
-# Revision 1.46 2002/02/25 14:22:59 grubert
-# . roundup db: catch only IOError in getfile.
-#
-# Revision 1.44 2002/02/15 07:08:44 richard
-# . Alternate email addresses are now available for users. See the MIGRATION
-# file for info on how to activate the feature.
-#
-# Revision 1.43 2002/02/14 22:33:15 richard
-# . Added a uniquely Roundup header to email, "X-Roundup-Name"
-#
-# Revision 1.42 2002/01/21 09:55:14 rochecompaan
-# Properties in change note are now sorted
-#
-# Revision 1.41 2002/01/15 00:12:40 richard
-# #503340 ] creating issue with [asignedto=p.ohly]
-#
-# Revision 1.40 2002/01/14 22:21:38 richard
-# #503353 ] setting properties in initial email
-#
-# Revision 1.39 2002/01/14 02:20:15 richard
-# . changed all config accesses so they access either the instance or the
-# config attriubute on the db. This means that all config is obtained from
-# instance_config instead of the mish-mash of classes. This will make
-# switching to a ConfigParser setup easier too, I hope.
-#
-# At a minimum, this makes migration a _little_ easier (a lot easier in the
-# 0.5.0 switch, I hope!)
-#
-# Revision 1.38 2002/01/10 05:57:45 richard
-# namespace clobberation
-#
-# Revision 1.37 2002/01/08 04:12:05 richard
-# Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
-#
-# Revision 1.36 2002/01/02 02:31:38 richard
-# Sorry for the huge checkin message - I was only intending to implement #496356
-# but I found a number of places where things had been broken by transactions:
-# . modified ROUNDUPDBSENDMAILDEBUG to be SENDMAILDEBUG and hold a filename
-# for _all_ roundup-generated smtp messages to be sent to.
-# . the transaction cache had broken the roundupdb.Class set() reactors
-# . newly-created author users in the mailgw weren't being committed to the db
-#
-# Stuff that made it into CHANGES.txt (ie. the stuff I was actually working
-# on when I found that stuff :):
-# . #496356 ] Use threading in messages
-# . detectors were being registered multiple times
-# . added tests for mailgw
-# . much better attaching of erroneous messages in the mail gateway
-#
-# Revision 1.35 2001/12/20 15:43:01 rochecompaan
-# Features added:
-# . Multilink properties are now displayed as comma separated values in
-# a textbox
-# . The add user link is now only visible to the admin user
-# . Modified the mail gateway to reject submissions from unknown
-# addresses if ANONYMOUS_ACCESS is denied
-#
-# Revision 1.34 2001/12/17 03:52:48 richard
-# Implemented file store rollback. As a bonus, the hyperdb is now capable of
-# storing more than one file per node - if a property name is supplied,
-# the file is called designator.property.
-# I decided not to migrate the existing files stored over to the new naming
-# scheme - the FileClass just doesn't specify the property name.
-#
-# Revision 1.33 2001/12/16 10:53:37 richard
-# take a copy of the node dict so that the subsequent set
-# operation doesn't modify the oldvalues structure
-#
-# Revision 1.32 2001/12/15 23:48:35 richard
-# Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method without
-# actually sending mail :)
-#
-# Revision 1.31 2001/12/15 19:24:39 rochecompaan
-# . Modified cgi interface to change properties only once all changes are
-# collected, files created and messages generated.
-# . Moved generation of change note to nosyreactors.
-# . We now check for changes to "assignedto" to ensure it's added to the
-# nosy list.
-#
-# Revision 1.30 2001/12/12 21:47:45 richard
-# . Message author's name appears in From: instead of roundup instance name
-# (which still appears in the Reply-To:)
-# . envelope-from is now set to the roundup-admin and not roundup itself so
-# delivery reports aren't sent to roundup (thanks Patrick Ohly)
-#
-# Revision 1.29 2001/12/11 04:50:49 richard
-# fixed the order of the blank line and '-------' line
-#
-# Revision 1.28 2001/12/10 22:20:01 richard
-# Enabled transaction support in the bsddb backend. It uses the anydbm code
-# where possible, only replacing methods where the db is opened (it uses the
-# btree opener specifically.)
-# Also cleaned up some change note generation.
-# Made the backends package work with pydoc too.
-#
-# Revision 1.27 2001/12/10 21:02:53 richard
-# only insert the -------- change note marker if there is a change note
-#
-# Revision 1.26 2001/12/05 14:26:44 rochecompaan
-# Removed generation of change note from "sendmessage" in roundupdb.py.
-# The change note is now generated when the message is created.
-#
-# Revision 1.25 2001/11/30 20:28:10 rochecompaan
-# Property changes are now completely traceable, whether changes are
-# made through the web or by email
-#
-# Revision 1.24 2001/11/30 11:29:04 rochecompaan
-# Property changes are now listed in emails generated by Roundup
-#
-# Revision 1.23 2001/11/27 03:17:13 richard
-# oops
-#
-# Revision 1.22 2001/11/27 03:00:50 richard
-# couple of bugfixes from latest patch integration
-#
-# Revision 1.21 2001/11/26 22:55:56 richard
-# Feature:
-# . Added INSTANCE_NAME to configuration - used in web and email to identify
-# the instance.
-# . Added EMAIL_SIGNATURE_POSITION to indicate where to place the roundup
-# signature info in e-mails.
-# . Some more flexibility in the mail gateway and more error handling.
-# . Login now takes you to the page you back to the were denied access to.
-#
-# Fixed:
-# . Lots of bugs, thanks Roché and others on the devel mailing list!
-#
-# Revision 1.20 2001/11/25 10:11:14 jhermann
-# Typo fix
-#
-# Revision 1.19 2001/11/22 15:46:42 jhermann
-# Added module docstrings to all modules.
-#
-# Revision 1.18 2001/11/15 10:36:17 richard
-# . incorporated patch from Roch'e Compaan implementing attachments in nosy
-# e-mail
-#
-# Revision 1.17 2001/11/12 22:01:06 richard
-# Fixed issues with nosy reaction and author copies.
-#
-# Revision 1.16 2001/10/30 00:54:45 richard
-# Features:
-# . #467129 ] Lossage when username=e-mail-address
-# . #473123 ] Change message generation for author
-# . MailGW now moves 'resolved' to 'chatting' on receiving e-mail for an issue.
-#
-# Revision 1.15 2001/10/23 01:00:18 richard
-# Re-enabled login and registration access after lopping them off via
-# disabling access for anonymous users.
-# Major re-org of the htmltemplate code, cleaning it up significantly. Fixed
-# a couple of bugs while I was there. Probably introduced a couple, but
-# things seem to work OK at the moment.
-#
-# Revision 1.14 2001/10/21 07:26:35 richard
-# feature #473127: Filenames. I modified the file.index and htmltemplate
-# source so that the filename is used in the link and the creation
-# information is displayed.
-#
-# Revision 1.13 2001/10/21 00:45:15 richard
-# Added author identification to e-mail messages from roundup.
-#
-# Revision 1.12 2001/10/04 02:16:15 richard
-# Forgot to pass the protected flag down *sigh*.
-#
-# Revision 1.11 2001/10/04 02:12:42 richard
-# Added nicer command-line item adding: passing no arguments will enter an
-# interactive more which asks for each property in turn. While I was at it, I
-# fixed an implementation problem WRT the spec - I wasn't raising a
-# ValueError if the key property was missing from a create(). Also added a
-# protected=boolean argument to getprops() so we can list only the mutable
-# properties (defaults to yes, which lists the immutables).
-#
-# Revision 1.10 2001/08/07 00:24:42 richard
-# stupid typo
-#
-# Revision 1.9 2001/08/07 00:15:51 richard
-# Added the copyright/license notice to (nearly) all files at request of
-# Bizar Software.
-#
-# Revision 1.8 2001/08/02 06:38:17 richard
-# Roundupdb now appends "mailing list" information to its messages which
-# include the e-mail address and web interface address. Templates may
-# override this in their db classes to include specific information (support
-# instructions, etc).
-#
-# Revision 1.7 2001/07/30 02:38:31 richard
-# get() now has a default arg - for migration only.
-#
-# Revision 1.6 2001/07/30 00:05:54 richard
-# Fixed IssueClass so that superseders links to its classname rather than
-# hard-coded to "issue".
-#
-# Revision 1.5 2001/07/29 07:01:39 richard
-# Added vim command to all source so that we don't get no steenkin' tabs :)
-#
-# Revision 1.4 2001/07/29 04:05:37 richard
-# Added the fabricated property "id".
-#
-# Revision 1.3 2001/07/23 07:14:41 richard
-# Moved the database backends off into backends.
-#
-# Revision 1.2 2001/07/22 12:09:32 richard
-# Final commit of Grande Splite
-#
-# Revision 1.1 2001/07/22 11:58:35 richard
-# More Grande Splite
-#
-#
# vim: set filetype=python ts=4 sw=4 et si