annotate roundup/roundupdb.py @ 905:502a5ae11cc5

Very close now. The cgi and mailgw now use the new security API. The two templates have been migrated to that setup. Lots of unit tests. Still some issue in the web form for editing Roles assigned to users.
author Richard Jones <richard@users.sourceforge.net>
date Fri, 26 Jul 2002 08:27:00 +0000
parents 2dd862af72ee
children 9b910e8d987d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
1 #
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
2 # Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/)
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
3 # This module is free software, and you may redistribute it and/or modify
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
4 # under the same terms as Python, so long as this copyright message and
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
5 # disclaimer are retained in their original form.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
6 #
214
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
7 # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
8 # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
9 # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
10 # POSSIBILITY OF SUCH DAMAGE.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
11 #
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
12 # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
17 #
905
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 858
diff changeset
18 # $Id: roundupdb.py,v 1.63 2002-07-26 08:26:59 richard Exp $
406
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 393
diff changeset
19
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 393
diff changeset
20 __doc__ = """
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 393
diff changeset
21 Extending hyperdb with types specific to issue-tracking.
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 393
diff changeset
22 """
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
24 import re, os, smtplib, socket, time, random
647
b3b483e0fd5e Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents: 644
diff changeset
25 import MimeWriter, cStringIO
665
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
26 import base64, quopri, mimetypes
770
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
27 # if available, use the 'email' module, otherwise fallback to 'rfc822'
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
28 try :
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
29 from email.Utils import dump_address_pair as straddr
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
30 except ImportError :
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
31 from rfc822 import dump_address_pair as straddr
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
33 import hyperdb
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34
458
fcda73536034 Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method...
Richard Jones <richard@users.sourceforge.net>
parents: 453
diff changeset
35 # set to indicate to roundup not to actually _send_ email
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
36 # this var must contain a file to write the mail to
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
37 SENDMAILDEBUG = os.environ.get('SENDMAILDEBUG', '')
458
fcda73536034 Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method...
Richard Jones <richard@users.sourceforge.net>
parents: 453
diff changeset
38
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 class Database:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 def getuid(self):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 """Return the id of the "user" node associated with the user
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42 that owns this connection to the hyperdatabase."""
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 return self.user.lookup(self.journaltag)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44
380
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
45 class MessageSendError(RuntimeError):
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
46 pass
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
47
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
48 class DetectorError(RuntimeError):
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
49 pass
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
50
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 # XXX deviation from spec - was called ItemClass
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
52 class IssueClass:
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
53 """ This class is intended to be mixed-in with a hyperdb backend
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
54 implementation. The backend should provide a mechanism that
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
55 enforces the title, messages, files, nosy and superseder
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
56 properties:
826
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
57 properties['title'] = hyperdb.String(indexme='yes')
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
58 properties['messages'] = hyperdb.Multilink("msg")
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
59 properties['files'] = hyperdb.Multilink("file")
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
60 properties['nosy'] = hyperdb.Multilink("user")
138
e012bb958238 Fixed IssueClass so that superseders links to its classname...
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
61 properties['superseder'] = hyperdb.Multilink(classname)
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
62 """
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
63
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
64 # New methods:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
65 def addmessage(self, nodeid, summary, text):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
66 """Add a message to an issue's mail spool.
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
67
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68 A new "msg" node is constructed using the current date, the user that
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
69 owns the database connection as the author, and the specified summary
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
70 text.
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
71
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
72 The "files" and "recipients" fields are left empty.
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
73
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
74 The given text is saved as the body of the message and the node is
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
75 appended to the "messages" field of the specified issue.
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
76 """
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
77
753
938edfdeac6e Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
78 def nosymessage(self, nodeid, msgid, oldvalues):
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
79 """Send a message to the members of an issue's nosy list.
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
80
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
81 The message is sent only to users on the nosy list who are not
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
82 already on the "recipients" list for the message.
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
83
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
84 These users are then added to the message's "recipients" list.
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85 """
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
86 users = self.db.user
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
87 messages = self.db.msg
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
88
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
89 # figure the recipient ids
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
90 sendto = []
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
91 r = {}
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
92 recipients = messages.get(msgid, 'recipients')
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
93 for recipid in messages.get(msgid, 'recipients'):
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94 r[recipid] = 1
337
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
95
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
96 # figure the author's id, and indicate they've received the message
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
97 authid = messages.get(msgid, 'author')
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
98
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
99 # possibly send the message to the author, as long as they aren't
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
100 # anonymous
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 509
diff changeset
101 if (self.db.config.MESSAGES_TO_AUTHOR == 'yes' and
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
102 users.get(authid, 'username') != 'anonymous'):
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
103 sendto.append(authid)
380
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
104 r[authid] = 1
337
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
105
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
106 # now figure the nosy people who weren't recipients
753
938edfdeac6e Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
107 nosy = self.get(nodeid, 'nosy')
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
108 for nosyid in nosy:
337
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
109 # Don't send nosy mail to the anonymous user (that user
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
110 # shouldn't appear in the nosy list, but just in case they
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
111 # do...)
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
112 if users.get(nosyid, 'username') == 'anonymous':
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
113 continue
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
114 # make sure they haven't seen the message already
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
115 if not r.has_key(nosyid):
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
116 # send it to them
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
117 sendto.append(nosyid)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
118 recipients.append(nosyid)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
119
753
938edfdeac6e Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
120 # generate a change note
938edfdeac6e Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
121 if oldvalues:
938edfdeac6e Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
122 note = self.generateChangeNote(nodeid, oldvalues)
938edfdeac6e Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
123 else:
938edfdeac6e Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
124 note = self.generateCreateNote(nodeid)
938edfdeac6e Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
125
684
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
126 # we have new recipients
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
127 if sendto:
758
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
128 # map userids to addresses
685
de6dc74a4148 make it work
Richard Jones <richard@users.sourceforge.net>
parents: 684
diff changeset
129 sendto = [users.get(i, 'address') for i in sendto]
de6dc74a4148 make it work
Richard Jones <richard@users.sourceforge.net>
parents: 684
diff changeset
130
684
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
131 # update the message's recipients list
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
132 messages.set(msgid, recipients=recipients)
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
133
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
134 # send the message
753
938edfdeac6e Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
135 self.send_message(nodeid, msgid, note, sendto)
684
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
136
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
137 # XXX backwards compatibility - don't remove
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
138 sendmessage = nosymessage
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
139
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
140 def send_message(self, nodeid, msgid, note, sendto):
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
141 '''Actually send the nominated message from this node to the sendto
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
142 recipients, with the note appended.
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
143 '''
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
144 users = self.db.user
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
145 messages = self.db.msg
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
146 files = self.db.file
380
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
147
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
148 # determine the messageid and inreplyto of the message
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
149 inreplyto = messages.get(msgid, 'inreplyto')
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
150 messageid = messages.get(msgid, 'messageid')
684
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
151
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
152 # make up a messageid if there isn't one (web edit)
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
153 if not messageid:
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
154 # this is an old message that didn't get a messageid, so
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
155 # create one
499
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
156 messageid = "<%s.%s.%s%s@%s>"%(time.time(), random.random(),
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 509
diff changeset
157 self.classname, nodeid, self.db.config.MAIL_DOMAIN)
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
158 messages.set(msgid, messageid=messageid)
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
159
380
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
160 # send an email to the people who missed out
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
161 cn = self.classname
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
162 title = self.get(nodeid, 'title') or '%s message copy'%cn
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
163 # figure author information
685
de6dc74a4148 make it work
Richard Jones <richard@users.sourceforge.net>
parents: 684
diff changeset
164 authid = messages.get(msgid, 'author')
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
165 authname = users.get(authid, 'realname')
380
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
166 if not authname:
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
167 authname = users.get(authid, 'username')
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
168 authaddr = users.get(authid, 'address')
380
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
169 if authaddr:
776
60189cf7ba8e Fixed name/address display problem introduced by an earlier change.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 772
diff changeset
170 authaddr = " <%s>" % straddr( ('',authaddr) )
380
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
171 else:
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
172 authaddr = ''
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
173
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
174 # make the message body
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
175 m = ['']
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
176
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
177 # put in roundup's signature
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 509
diff changeset
178 if self.db.config.EMAIL_SIGNATURE_POSITION == 'top':
428
7956563d49ae Property changes are now completely traceable, whether changes are
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 425
diff changeset
179 m.append(self.email_signature(nodeid, msgid))
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
180
380
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
181 # add author information
434
2441743e335b Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 428
diff changeset
182 if len(self.get(nodeid,'messages')) == 1:
2441743e335b Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 428
diff changeset
183 m.append("New submission from %s%s:"%(authname, authaddr))
2441743e335b Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 428
diff changeset
184 else:
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
185 m.append("%s%s added the comment:"%(authname, authaddr))
380
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
186 m.append('')
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
187
380
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
188 # add the content
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
189 m.append(messages.get(msgid, 'content'))
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
190
453
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
191 # add the change note
684
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
192 if note:
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
193 m.append(note)
453
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
194
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
195 # put in roundup's signature
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 509
diff changeset
196 if self.db.config.EMAIL_SIGNATURE_POSITION == 'bottom':
428
7956563d49ae Property changes are now completely traceable, whether changes are
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 425
diff changeset
197 m.append(self.email_signature(nodeid, msgid))
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
198
665
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
199 # encode the content as quoted-printable
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
200 content = cStringIO.StringIO('\n'.join(m))
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
201 content_encoded = cStringIO.StringIO()
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
202 quopri.encode(content, content_encoded, 0)
667
52ca0ae46044 Faster, easier, less mess ;)
Richard Jones <richard@users.sourceforge.net>
parents: 665
diff changeset
203 content_encoded = content_encoded.getvalue()
665
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
204
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
205 # get the files for this message
509
4291a31bfa89 namespace clobberation
Richard Jones <richard@users.sourceforge.net>
parents: 499
diff changeset
206 message_files = messages.get(msgid, 'files')
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
207
718
e10c37f53efd fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
Richard Jones <richard@users.sourceforge.net>
parents: 685
diff changeset
208 # make sure the To line is always the same (for testing mostly)
e10c37f53efd fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
Richard Jones <richard@users.sourceforge.net>
parents: 685
diff changeset
209 sendto.sort()
e10c37f53efd fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
Richard Jones <richard@users.sourceforge.net>
parents: 685
diff changeset
210
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
211 # create the message
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
212 message = cStringIO.StringIO()
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
213 writer = MimeWriter.MimeWriter(message)
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
214 writer.addheader('Subject', '[%s%s] %s'%(cn, nodeid, title))
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
215 writer.addheader('To', ', '.join(sendto))
770
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
216 writer.addheader('From', straddr(
769
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
217 (authname, self.db.config.ISSUE_TRACKER_EMAIL) ) )
770
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
218 writer.addheader('Reply-To', straddr(
769
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
219 (self.db.config.INSTANCE_NAME,
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
220 self.db.config.ISSUE_TRACKER_EMAIL) ) )
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
221 writer.addheader('MIME-Version', '1.0')
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
222 if messageid:
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
223 writer.addheader('Message-Id', messageid)
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
224 if inreplyto:
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
225 writer.addheader('In-Reply-To', inreplyto)
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
226
612
a2aeebf3d6bd Added a uniquely Roundup header to email, "X-Roundup-Name"
Richard Jones <richard@users.sourceforge.net>
parents: 559
diff changeset
227 # add a uniquely Roundup header to help filtering
a2aeebf3d6bd Added a uniquely Roundup header to email, "X-Roundup-Name"
Richard Jones <richard@users.sourceforge.net>
parents: 559
diff changeset
228 writer.addheader('X-Roundup-Name', self.db.config.INSTANCE_NAME)
a2aeebf3d6bd Added a uniquely Roundup header to email, "X-Roundup-Name"
Richard Jones <richard@users.sourceforge.net>
parents: 559
diff changeset
229
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
230 # attach files
509
4291a31bfa89 namespace clobberation
Richard Jones <richard@users.sourceforge.net>
parents: 499
diff changeset
231 if message_files:
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
232 part = writer.startmultipartbody('mixed')
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
233 part = writer.nextpart()
665
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
234 part.addheader('Content-Transfer-Encoding', 'quoted-printable')
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
235 body = part.startbody('text/plain')
665
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
236 body.write(content_encoded)
509
4291a31bfa89 namespace clobberation
Richard Jones <richard@users.sourceforge.net>
parents: 499
diff changeset
237 for fileid in message_files:
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
238 name = files.get(fileid, 'name')
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
239 mime_type = files.get(fileid, 'type')
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
240 content = files.get(fileid, 'content')
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
241 part = writer.nextpart()
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
242 if mime_type == 'text/plain':
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
243 part.addheader('Content-Disposition',
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
244 'attachment;\n filename="%s"'%name)
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
245 part.addheader('Content-Transfer-Encoding', '7bit')
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
246 body = part.startbody('text/plain')
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
247 body.write(content)
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
248 else:
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
249 # some other type, so encode it
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
250 if not mime_type:
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
251 # this should have been done when the file was saved
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
252 mime_type = mimetypes.guess_type(name)[0]
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
253 if mime_type is None:
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
254 mime_type = 'application/octet-stream'
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
255 part.addheader('Content-Disposition',
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
256 'attachment;\n filename="%s"'%name)
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
257 part.addheader('Content-Transfer-Encoding', 'base64')
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
258 body = part.startbody(mime_type)
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
259 body.write(base64.encodestring(content))
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
260 writer.lastpart()
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
261 else:
665
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
262 writer.addheader('Content-Transfer-Encoding', 'quoted-printable')
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
263 body = writer.startbody('text/plain')
665
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
264 body.write(content_encoded)
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
265
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
266 # now try to send the message
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
267 if SENDMAILDEBUG:
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
268 open(SENDMAILDEBUG, 'w').write('FROM: %s\nTO: %s\n%s\n'%(
718
e10c37f53efd fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
Richard Jones <richard@users.sourceforge.net>
parents: 685
diff changeset
269 self.db.config.ADMIN_EMAIL,
e10c37f53efd fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
Richard Jones <richard@users.sourceforge.net>
parents: 685
diff changeset
270 ', '.join(sendto),message.getvalue()))
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
271 else:
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
272 try:
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
273 # send the message as admin so bounces are sent there
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
274 # instead of to roundup
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 509
diff changeset
275 smtp = smtplib.SMTP(self.db.config.MAILHOST)
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 509
diff changeset
276 smtp.sendmail(self.db.config.ADMIN_EMAIL, sendto,
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 509
diff changeset
277 message.getvalue())
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
278 except socket.error, value:
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
279 raise MessageSendError, \
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
280 "Couldn't send confirmation email: mailhost %s"%value
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
281 except smtplib.SMTPException, value:
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
282 raise MessageSendError, \
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
283 "Couldn't send confirmation email: %s"%value
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
284
428
7956563d49ae Property changes are now completely traceable, whether changes are
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 425
diff changeset
285 def email_signature(self, nodeid, msgid):
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
286 ''' Add a signature to the e-mail with some useful information
188
1536be43d2fa Roundupdb now appends "mailing list" information to its messages...
Richard Jones <richard@users.sourceforge.net>
parents: 156
diff changeset
287 '''
769
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
288
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
289 # simplistic check to see if the url is valid,
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
290 # then append a trailing slash if it is missing
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
291 base = self.db.config.ISSUE_TRACKER_WEB
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
292 if not isinstance(base , type('')) or not base.startswith('http://'):
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
293 base = "Configuration Error: ISSUE_TRACKER_WEB isn't a " \
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
294 "fully-qualified URL"
769
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
295 elif base[-1] != '/' :
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
296 base += '/'
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
297 web = base + 'issue'+ nodeid
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
298
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
299 # ensure the email address is properly quoted
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
300 email = straddr((self.db.config.INSTANCE_NAME,
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
301 self.db.config.ISSUE_TRACKER_EMAIL))
769
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
302
414
fc6d03e9dbc1 couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 411
diff changeset
303 line = '_' * max(len(web), len(email))
428
7956563d49ae Property changes are now completely traceable, whether changes are
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 425
diff changeset
304 return '%s\n%s\n%s\n%s'%(line, email, web, line)
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
305
769
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
306
534
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
307 def generateCreateNote(self, nodeid):
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
308 """Generate a create note that lists initial property values
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
309 """
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
310 cn = self.classname
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
311 cl = self.db.classes[cn]
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
312 props = cl.getprops(protected=0)
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
313
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
314 # list the values
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
315 m = []
559
bb5ee2f24ee0 Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 537
diff changeset
316 l = props.items()
bb5ee2f24ee0 Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 537
diff changeset
317 l.sort()
537
ad6dbc21a570 [SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents: 534
diff changeset
318 for propname, prop in l:
534
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
319 value = cl.get(nodeid, propname, None)
559
bb5ee2f24ee0 Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 537
diff changeset
320 # skip boring entries
bb5ee2f24ee0 Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 537
diff changeset
321 if not value:
bb5ee2f24ee0 Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 537
diff changeset
322 continue
534
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
323 if isinstance(prop, hyperdb.Link):
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
324 link = self.db.classes[prop.classname]
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
325 if value:
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
326 key = link.labelprop(default_to_id=1)
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
327 if key:
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
328 value = link.get(value, key)
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
329 else:
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
330 value = ''
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
331 elif isinstance(prop, hyperdb.Multilink):
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
332 if value is None: value = []
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
333 l = []
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
334 link = self.db.classes[prop.classname]
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
335 key = link.labelprop(default_to_id=1)
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
336 if key:
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
337 value = [link.get(entry, key) for entry in value]
718
e10c37f53efd fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
Richard Jones <richard@users.sourceforge.net>
parents: 685
diff changeset
338 value.sort()
534
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
339 value = ', '.join(value)
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
340 m.append('%s: %s'%(propname, value))
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
341 m.insert(0, '----------')
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
342 m.insert(0, '')
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
343 return '\n'.join(m)
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
344
453
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
345 def generateChangeNote(self, nodeid, oldvalues):
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
346 """Generate a change note that lists property changes
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
347 """
772
db5daf396518 Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 770
diff changeset
348 if __debug__ :
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
349 if not isinstance(oldvalues, type({})) :
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
350 raise TypeError("'oldvalues' must be dict-like, not %s."%
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
351 type(oldvalues))
772
db5daf396518 Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 770
diff changeset
352
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
353 cn = self.classname
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
354 cl = self.db.classes[cn]
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
355 changed = {}
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
356 props = cl.getprops(protected=0)
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
357
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
358 # determine what changed
453
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
359 for key in oldvalues.keys():
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
360 if key in ['files','messages']: continue
453
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
361 new_value = cl.get(nodeid, key)
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
362 # the old value might be non existent
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
363 try:
453
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
364 old_value = oldvalues[key]
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
365 if type(new_value) is type([]):
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
366 new_value.sort()
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
367 old_value.sort()
453
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
368 if new_value != old_value:
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
369 changed[key] = old_value
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
370 except:
434
2441743e335b Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 428
diff changeset
371 changed[key] = new_value
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
372
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
373 # list the changes
440
de5bf4191f11 Enabled transaction support in the bsddb backend.
Richard Jones <richard@users.sourceforge.net>
parents: 439
diff changeset
374 m = []
559
bb5ee2f24ee0 Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 537
diff changeset
375 l = changed.items()
bb5ee2f24ee0 Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 537
diff changeset
376 l.sort()
bb5ee2f24ee0 Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 537
diff changeset
377 for propname, oldvalue in l:
647
b3b483e0fd5e Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents: 644
diff changeset
378 prop = props[propname]
453
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
379 value = cl.get(nodeid, propname, None)
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
380 if isinstance(prop, hyperdb.Link):
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
381 link = self.db.classes[prop.classname]
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
382 key = link.labelprop(default_to_id=1)
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
383 if key:
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
384 if value:
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
385 value = link.get(value, key)
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
386 else:
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
387 value = ''
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
388 if oldvalue:
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
389 oldvalue = link.get(oldvalue, key)
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
390 else:
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
391 oldvalue = ''
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
392 change = '%s -> %s'%(oldvalue, value)
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
393 elif isinstance(prop, hyperdb.Multilink):
428
7956563d49ae Property changes are now completely traceable, whether changes are
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 425
diff changeset
394 change = ''
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
395 if value is None: value = []
434
2441743e335b Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 428
diff changeset
396 if oldvalue is None: oldvalue = []
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
397 l = []
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
398 link = self.db.classes[prop.classname]
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
399 key = link.labelprop(default_to_id=1)
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
400 # check for additions
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
401 for entry in value:
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
402 if entry in oldvalue: continue
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
403 if key:
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
404 l.append(link.get(entry, key))
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
405 else:
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
406 l.append(entry)
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
407 if l:
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
408 change = '+%s'%(', '.join(l))
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
409 l = []
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
410 # check for removals
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
411 for entry in oldvalue:
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
412 if entry in value: continue
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
413 if key:
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
414 l.append(link.get(entry, key))
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
415 else:
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
416 l.append(entry)
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
417 if l:
428
7956563d49ae Property changes are now completely traceable, whether changes are
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 425
diff changeset
418 change += ' -%s'%(', '.join(l))
453
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
419 else:
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
420 change = '%s -> %s'%(oldvalue, value)
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
421 m.append('%s: %s'%(propname, change))
439
6e27cb83aacb only insert the -------- change note marker if there is a change note
Richard Jones <richard@users.sourceforge.net>
parents: 434
diff changeset
422 if m:
442
52b5f53d12f3 fixed the order of the blank line and '-------' line
Richard Jones <richard@users.sourceforge.net>
parents: 440
diff changeset
423 m.insert(0, '----------')
439
6e27cb83aacb only insert the -------- change note marker if there is a change note
Richard Jones <richard@users.sourceforge.net>
parents: 434
diff changeset
424 m.insert(0, '')
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
425 return '\n'.join(m)
188
1536be43d2fa Roundupdb now appends "mailing list" information to its messages...
Richard Jones <richard@users.sourceforge.net>
parents: 156
diff changeset
426
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
427 #
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
428 # $Log: not supported by cvs2svn $
905
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 858
diff changeset
429 # Revision 1.62 2002/07/14 02:05:53 richard
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 858
diff changeset
430 # . all storage-specific code (ie. backend) is now implemented by the backends
502a5ae11cc5 Very close now. The cgi and mailgw now use the new security API.
Richard Jones <richard@users.sourceforge.net>
parents: 858
diff changeset
431 #
858
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
432 # Revision 1.61 2002/07/09 04:19:09 richard
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
433 # Added reindex command to roundup-admin.
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
434 # Fixed reindex on first access.
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
435 # Also fixed reindexing of entries that change.
2dd862af72ee all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents: 826
diff changeset
436 #
826
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
437 # Revision 1.60 2002/07/09 03:02:52 richard
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
438 # More indexer work:
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
439 # - all String properties may now be indexed too. Currently there's a bit of
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
440 # "issue" specific code in the actual searching which needs to be
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
441 # addressed. In a nutshell:
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
442 # + pass 'indexme="yes"' as a String() property initialisation arg, eg:
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
443 # file = FileClass(db, "file", name=String(), type=String(),
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
444 # comment=String(indexme="yes"))
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
445 # + the comment will then be indexed and be searchable, with the results
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
446 # related back to the issue that the file is linked to
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
447 # - as a result of this work, the FileClass has a default MIME type that may
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
448 # be overridden in a subclass, or by the use of a "type" property as is
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
449 # done in the default templates.
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
450 # - the regeneration of the indexes (if necessary) is done once the schema is
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
451 # set up in the dbinit.
6d7a45c8464a Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents: 825
diff changeset
452 #
825
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 776
diff changeset
453 # Revision 1.59 2002/06/18 03:55:25 dman13
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 776
diff changeset
454 # Fixed name/address display problem introduced by an earlier change.
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 776
diff changeset
455 # (instead of "name<addr>" display "name <addr>")
0779ea9f1f18 More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents: 776
diff changeset
456 #
776
60189cf7ba8e Fixed name/address display problem introduced by an earlier change.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 772
diff changeset
457 # Revision 1.58 2002/06/16 01:05:15 dman13
60189cf7ba8e Fixed name/address display problem introduced by an earlier change.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 772
diff changeset
458 # Removed temporary workaround -- it seems it was a bug in the
60189cf7ba8e Fixed name/address display problem introduced by an earlier change.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 772
diff changeset
459 # nosyreaction detector in the 0.4.1 extended template and has already
60189cf7ba8e Fixed name/address display problem introduced by an earlier change.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 772
diff changeset
460 # been fixed in CVS. We'll see.
60189cf7ba8e Fixed name/address display problem introduced by an earlier change.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 772
diff changeset
461 #
772
db5daf396518 Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 770
diff changeset
462 # Revision 1.57 2002/06/15 15:49:29 dman13
db5daf396518 Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 770
diff changeset
463 # Use 'email' instead of 'rfc822', if available.
db5daf396518 Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 770
diff changeset
464 # Don't use isinstance() on a string (not allowed in python 2.1).
db5daf396518 Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 770
diff changeset
465 # Return an error message instead of crashing if 'oldvalues' isn't a
db5daf396518 Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 770
diff changeset
466 # dict (in generateChangeNote).
db5daf396518 Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 770
diff changeset
467 #
770
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
468 # Revision 1.56 2002/06/14 03:54:21 dman13
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
469 # #565992 ] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
470 #
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
471 # use the rfc822 module to ensure that every (oddball) email address and
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
472 # real-name is properly quoted
0ffb5aaeecf5 Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 769
diff changeset
473 #
769
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
474 # Revision 1.55 2002/06/11 04:58:07 richard
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
475 # detabbing
17208b487199 [SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents: 758
diff changeset
476 #
758
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
477 # Revision 1.54 2002/05/29 01:16:17 richard
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
478 # Sorry about this huge checkin! It's fixing a lot of related stuff in one go
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
479 # though.
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
480 #
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
481 # . #541941 ] changing multilink properties by mail
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
482 # . #526730 ] search for messages capability
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
483 # . #505180 ] split MailGW.handle_Message
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
484 # - also changed cgi client since it was duplicating the functionality
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
485 # . build htmlbase if tests are run using CVS checkout (removed note from
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
486 # installation.txt)
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
487 # . don't create an empty message on email issue creation if the email is empty
ae0ec3c15e0d detabbing
Richard Jones <richard@users.sourceforge.net>
parents: 753
diff changeset
488 #
753
938edfdeac6e Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
489 # Revision 1.53 2002/05/25 07:16:24 rochecompaan
938edfdeac6e Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
490 # Merged search_indexing-branch with HEAD
938edfdeac6e Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents: 749
diff changeset
491 #
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
492 # Revision 1.52 2002/05/15 03:27:16 richard
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
493 # . fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
494 # (thanks dman)
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
495 # . fixed some sorting issues that were breaking some unit tests under py2.2
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
496 # . mailgw test output dir was confusing the init test (but only on 2.2 *shrug*)
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
497 #
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
498 # fixed bug in the init unit test that meant only the bsddb test ran if it
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
499 # could (it clobbered the anydbm test)
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
500 #
718
e10c37f53efd fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
Richard Jones <richard@users.sourceforge.net>
parents: 685
diff changeset
501 # Revision 1.51 2002/04/08 03:46:42 richard
e10c37f53efd fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
Richard Jones <richard@users.sourceforge.net>
parents: 685
diff changeset
502 # make it work
e10c37f53efd fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
Richard Jones <richard@users.sourceforge.net>
parents: 685
diff changeset
503 #
685
de6dc74a4148 make it work
Richard Jones <richard@users.sourceforge.net>
parents: 684
diff changeset
504 # Revision 1.50 2002/04/08 03:40:31 richard
de6dc74a4148 make it work
Richard Jones <richard@users.sourceforge.net>
parents: 684
diff changeset
505 # . added a "detectors" directory for people to put their useful auditors and
de6dc74a4148 make it work
Richard Jones <richard@users.sourceforge.net>
parents: 684
diff changeset
506 # reactors in. Note - the roundupdb.IssueClass.sendmessage method has been
de6dc74a4148 make it work
Richard Jones <richard@users.sourceforge.net>
parents: 684
diff changeset
507 # split and renamed "nosymessage" specifically for things like the nosy
de6dc74a4148 make it work
Richard Jones <richard@users.sourceforge.net>
parents: 684
diff changeset
508 # reactor, and "send_message" which just sends the message.
de6dc74a4148 make it work
Richard Jones <richard@users.sourceforge.net>
parents: 684
diff changeset
509 #
de6dc74a4148 make it work
Richard Jones <richard@users.sourceforge.net>
parents: 684
diff changeset
510 # The initial detector is one that we'll be using here at ekit - it bounces new
de6dc74a4148 make it work
Richard Jones <richard@users.sourceforge.net>
parents: 684
diff changeset
511 # issue messages to a team address.
de6dc74a4148 make it work
Richard Jones <richard@users.sourceforge.net>
parents: 684
diff changeset
512 #
749
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
513 # Revision 1.49.2.1 2002/04/19 19:54:42 rochecompaan
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
514 # cgi_client.py
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
515 # removed search link for the time being
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
516 # moved rendering of matches to htmltemplate
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
517 # hyperdb.py
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
518 # filtering of nodes on full text search incorporated in filter method
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
519 # roundupdb.py
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
520 # added paramater to call of filter method
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
521 # roundup_indexer.py
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
522 # added search method to RoundupIndexer class
51c425129b35 Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 718
diff changeset
523 #
684
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
524 # Revision 1.49 2002/03/19 06:41:49 richard
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
525 # Faster, easier, less mess ;)
5b23ff865f3a added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents: 667
diff changeset
526 #
667
52ca0ae46044 Faster, easier, less mess ;)
Richard Jones <richard@users.sourceforge.net>
parents: 665
diff changeset
527 # Revision 1.48 2002/03/18 18:32:00 rochecompaan
52ca0ae46044 Faster, easier, less mess ;)
Richard Jones <richard@users.sourceforge.net>
parents: 665
diff changeset
528 # All messages sent to the nosy list are now encoded as quoted-printable.
52ca0ae46044 Faster, easier, less mess ;)
Richard Jones <richard@users.sourceforge.net>
parents: 665
diff changeset
529 #
665
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
530 # Revision 1.47 2002/02/27 03:16:02 richard
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
531 # Fixed a couple of dodgy bits found by pychekcer.
9382ad731c1c All messages sent to the nosy list are now encoded as quoted-printable.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 647
diff changeset
532 #
647
b3b483e0fd5e Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents: 644
diff changeset
533 # Revision 1.46 2002/02/25 14:22:59 grubert
b3b483e0fd5e Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents: 644
diff changeset
534 # . roundup db: catch only IOError in getfile.
b3b483e0fd5e Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents: 644
diff changeset
535 #
631
993e0162b7c2 roundupdb catches retrieving none existing files.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 617
diff changeset
536 # Revision 1.44 2002/02/15 07:08:44 richard
993e0162b7c2 roundupdb catches retrieving none existing files.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 617
diff changeset
537 # . Alternate email addresses are now available for users. See the MIGRATION
993e0162b7c2 roundupdb catches retrieving none existing files.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 617
diff changeset
538 # file for info on how to activate the feature.
993e0162b7c2 roundupdb catches retrieving none existing files.
Engelbert Gruber <grubert@users.sourceforge.net>
parents: 617
diff changeset
539 #
617
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 612
diff changeset
540 # Revision 1.43 2002/02/14 22:33:15 richard
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 612
diff changeset
541 # . Added a uniquely Roundup header to email, "X-Roundup-Name"
edd210915e64 Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents: 612
diff changeset
542 #
612
a2aeebf3d6bd Added a uniquely Roundup header to email, "X-Roundup-Name"
Richard Jones <richard@users.sourceforge.net>
parents: 559
diff changeset
543 # Revision 1.42 2002/01/21 09:55:14 rochecompaan
a2aeebf3d6bd Added a uniquely Roundup header to email, "X-Roundup-Name"
Richard Jones <richard@users.sourceforge.net>
parents: 559
diff changeset
544 # Properties in change note are now sorted
a2aeebf3d6bd Added a uniquely Roundup header to email, "X-Roundup-Name"
Richard Jones <richard@users.sourceforge.net>
parents: 559
diff changeset
545 #
559
bb5ee2f24ee0 Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 537
diff changeset
546 # Revision 1.41 2002/01/15 00:12:40 richard
bb5ee2f24ee0 Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 537
diff changeset
547 # #503340 ] creating issue with [asignedto=p.ohly]
bb5ee2f24ee0 Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 537
diff changeset
548 #
537
ad6dbc21a570 [SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents: 534
diff changeset
549 # Revision 1.40 2002/01/14 22:21:38 richard
ad6dbc21a570 [SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents: 534
diff changeset
550 # #503353 ] setting properties in initial email
ad6dbc21a570 [SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents: 534
diff changeset
551 #
534
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
552 # Revision 1.39 2002/01/14 02:20:15 richard
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
553 # . changed all config accesses so they access either the instance or the
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
554 # config attriubute on the db. This means that all config is obtained from
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
555 # instance_config instead of the mish-mash of classes. This will make
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
556 # switching to a ConfigParser setup easier too, I hope.
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
557 #
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
558 # At a minimum, this makes migration a _little_ easier (a lot easier in the
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
559 # 0.5.0 switch, I hope!)
d17c60d16f7f [SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents: 524
diff changeset
560 #
524
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 509
diff changeset
561 # Revision 1.38 2002/01/10 05:57:45 richard
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 509
diff changeset
562 # namespace clobberation
dce4c75bef5a changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents: 509
diff changeset
563 #
509
4291a31bfa89 namespace clobberation
Richard Jones <richard@users.sourceforge.net>
parents: 499
diff changeset
564 # Revision 1.37 2002/01/08 04:12:05 richard
4291a31bfa89 namespace clobberation
Richard Jones <richard@users.sourceforge.net>
parents: 499
diff changeset
565 # Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
4291a31bfa89 namespace clobberation
Richard Jones <richard@users.sourceforge.net>
parents: 499
diff changeset
566 #
499
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
567 # Revision 1.36 2002/01/02 02:31:38 richard
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
568 # Sorry for the huge checkin message - I was only intending to implement #496356
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
569 # but I found a number of places where things had been broken by transactions:
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
570 # . modified ROUNDUPDBSENDMAILDEBUG to be SENDMAILDEBUG and hold a filename
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
571 # for _all_ roundup-generated smtp messages to be sent to.
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
572 # . the transaction cache had broken the roundupdb.Class set() reactors
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
573 # . newly-created author users in the mailgw weren't being committed to the db
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
574 #
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
575 # Stuff that made it into CHANGES.txt (ie. the stuff I was actually working
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
576 # on when I found that stuff :):
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
577 # . #496356 ] Use threading in messages
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
578 # . detectors were being registered multiple times
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
579 # . added tests for mailgw
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
580 # . much better attaching of erroneous messages in the mail gateway
9ad589d0a60f Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents: 475
diff changeset
581 #
475
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
582 # Revision 1.35 2001/12/20 15:43:01 rochecompaan
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
583 # Features added:
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
584 # . Multilink properties are now displayed as comma separated values in
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
585 # a textbox
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
586 # . The add user link is now only visible to the admin user
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
587 # . Modified the mail gateway to reject submissions from unknown
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
588 # addresses if ANONYMOUS_ACCESS is denied
a1a44636bace Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents: 467
diff changeset
589 #
467
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 461
diff changeset
590 # Revision 1.34 2001/12/17 03:52:48 richard
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 461
diff changeset
591 # Implemented file store rollback. As a bonus, the hyperdb is now capable of
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 461
diff changeset
592 # storing more than one file per node - if a property name is supplied,
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 461
diff changeset
593 # the file is called designator.property.
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 461
diff changeset
594 # I decided not to migrate the existing files stored over to the new naming
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 461
diff changeset
595 # scheme - the FileClass just doesn't specify the property name.
103f521810f7 Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 461
diff changeset
596 #
461
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 460
diff changeset
597 # Revision 1.33 2001/12/16 10:53:37 richard
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 460
diff changeset
598 # take a copy of the node dict so that the subsequent set
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 460
diff changeset
599 # operation doesn't modify the oldvalues structure
b579418f7ed1 Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents: 460
diff changeset
600 #
460
9c895b44240a take a copy of the node dict...
Richard Jones <richard@users.sourceforge.net>
parents: 458
diff changeset
601 # Revision 1.32 2001/12/15 23:48:35 richard
9c895b44240a take a copy of the node dict...
Richard Jones <richard@users.sourceforge.net>
parents: 458
diff changeset
602 # Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method without
9c895b44240a take a copy of the node dict...
Richard Jones <richard@users.sourceforge.net>
parents: 458
diff changeset
603 # actually sending mail :)
9c895b44240a take a copy of the node dict...
Richard Jones <richard@users.sourceforge.net>
parents: 458
diff changeset
604 #
458
fcda73536034 Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method...
Richard Jones <richard@users.sourceforge.net>
parents: 453
diff changeset
605 # Revision 1.31 2001/12/15 19:24:39 rochecompaan
fcda73536034 Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method...
Richard Jones <richard@users.sourceforge.net>
parents: 453
diff changeset
606 # . Modified cgi interface to change properties only once all changes are
fcda73536034 Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method...
Richard Jones <richard@users.sourceforge.net>
parents: 453
diff changeset
607 # collected, files created and messages generated.
fcda73536034 Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method...
Richard Jones <richard@users.sourceforge.net>
parents: 453
diff changeset
608 # . Moved generation of change note to nosyreactors.
fcda73536034 Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method...
Richard Jones <richard@users.sourceforge.net>
parents: 453
diff changeset
609 # . We now check for changes to "assignedto" to ensure it's added to the
fcda73536034 Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method...
Richard Jones <richard@users.sourceforge.net>
parents: 453
diff changeset
610 # nosy list.
fcda73536034 Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method...
Richard Jones <richard@users.sourceforge.net>
parents: 453
diff changeset
611 #
453
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
612 # Revision 1.30 2001/12/12 21:47:45 richard
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
613 # . Message author's name appears in From: instead of roundup instance name
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
614 # (which still appears in the Reply-To:)
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
615 # . envelope-from is now set to the roundup-admin and not roundup itself so
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
616 # delivery reports aren't sent to roundup (thanks Patrick Ohly)
5b422e3bd05d Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 445
diff changeset
617 #
445
208697858c8b Message author's name appears in From: instead of roundup instance name
Richard Jones <richard@users.sourceforge.net>
parents: 442
diff changeset
618 # Revision 1.29 2001/12/11 04:50:49 richard
208697858c8b Message author's name appears in From: instead of roundup instance name
Richard Jones <richard@users.sourceforge.net>
parents: 442
diff changeset
619 # fixed the order of the blank line and '-------' line
208697858c8b Message author's name appears in From: instead of roundup instance name
Richard Jones <richard@users.sourceforge.net>
parents: 442
diff changeset
620 #
442
52b5f53d12f3 fixed the order of the blank line and '-------' line
Richard Jones <richard@users.sourceforge.net>
parents: 440
diff changeset
621 # Revision 1.28 2001/12/10 22:20:01 richard
52b5f53d12f3 fixed the order of the blank line and '-------' line
Richard Jones <richard@users.sourceforge.net>
parents: 440
diff changeset
622 # Enabled transaction support in the bsddb backend. It uses the anydbm code
52b5f53d12f3 fixed the order of the blank line and '-------' line
Richard Jones <richard@users.sourceforge.net>
parents: 440
diff changeset
623 # where possible, only replacing methods where the db is opened (it uses the
52b5f53d12f3 fixed the order of the blank line and '-------' line
Richard Jones <richard@users.sourceforge.net>
parents: 440
diff changeset
624 # btree opener specifically.)
52b5f53d12f3 fixed the order of the blank line and '-------' line
Richard Jones <richard@users.sourceforge.net>
parents: 440
diff changeset
625 # Also cleaned up some change note generation.
52b5f53d12f3 fixed the order of the blank line and '-------' line
Richard Jones <richard@users.sourceforge.net>
parents: 440
diff changeset
626 # Made the backends package work with pydoc too.
52b5f53d12f3 fixed the order of the blank line and '-------' line
Richard Jones <richard@users.sourceforge.net>
parents: 440
diff changeset
627 #
440
de5bf4191f11 Enabled transaction support in the bsddb backend.
Richard Jones <richard@users.sourceforge.net>
parents: 439
diff changeset
628 # Revision 1.27 2001/12/10 21:02:53 richard
de5bf4191f11 Enabled transaction support in the bsddb backend.
Richard Jones <richard@users.sourceforge.net>
parents: 439
diff changeset
629 # only insert the -------- change note marker if there is a change note
de5bf4191f11 Enabled transaction support in the bsddb backend.
Richard Jones <richard@users.sourceforge.net>
parents: 439
diff changeset
630 #
439
6e27cb83aacb only insert the -------- change note marker if there is a change note
Richard Jones <richard@users.sourceforge.net>
parents: 434
diff changeset
631 # Revision 1.26 2001/12/05 14:26:44 rochecompaan
6e27cb83aacb only insert the -------- change note marker if there is a change note
Richard Jones <richard@users.sourceforge.net>
parents: 434
diff changeset
632 # Removed generation of change note from "sendmessage" in roundupdb.py.
6e27cb83aacb only insert the -------- change note marker if there is a change note
Richard Jones <richard@users.sourceforge.net>
parents: 434
diff changeset
633 # The change note is now generated when the message is created.
6e27cb83aacb only insert the -------- change note marker if there is a change note
Richard Jones <richard@users.sourceforge.net>
parents: 434
diff changeset
634 #
434
2441743e335b Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 428
diff changeset
635 # Revision 1.25 2001/11/30 20:28:10 rochecompaan
2441743e335b Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 428
diff changeset
636 # Property changes are now completely traceable, whether changes are
2441743e335b Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 428
diff changeset
637 # made through the web or by email
2441743e335b Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 428
diff changeset
638 #
428
7956563d49ae Property changes are now completely traceable, whether changes are
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 425
diff changeset
639 # Revision 1.24 2001/11/30 11:29:04 rochecompaan
7956563d49ae Property changes are now completely traceable, whether changes are
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 425
diff changeset
640 # Property changes are now listed in emails generated by Roundup
7956563d49ae Property changes are now completely traceable, whether changes are
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 425
diff changeset
641 #
425
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
642 # Revision 1.23 2001/11/27 03:17:13 richard
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
643 # oops
fc907b6ef135 Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents: 416
diff changeset
644 #
416
Richard Jones <richard@users.sourceforge.net>
parents: 414
diff changeset
645 # Revision 1.22 2001/11/27 03:00:50 richard
Richard Jones <richard@users.sourceforge.net>
parents: 414
diff changeset
646 # couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 414
diff changeset
647 #
414
fc6d03e9dbc1 couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 411
diff changeset
648 # Revision 1.21 2001/11/26 22:55:56 richard
fc6d03e9dbc1 couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 411
diff changeset
649 # Feature:
fc6d03e9dbc1 couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 411
diff changeset
650 # . Added INSTANCE_NAME to configuration - used in web and email to identify
fc6d03e9dbc1 couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 411
diff changeset
651 # the instance.
fc6d03e9dbc1 couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 411
diff changeset
652 # . Added EMAIL_SIGNATURE_POSITION to indicate where to place the roundup
fc6d03e9dbc1 couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 411
diff changeset
653 # signature info in e-mails.
fc6d03e9dbc1 couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 411
diff changeset
654 # . Some more flexibility in the mail gateway and more error handling.
fc6d03e9dbc1 couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 411
diff changeset
655 # . Login now takes you to the page you back to the were denied access to.
fc6d03e9dbc1 couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 411
diff changeset
656 #
fc6d03e9dbc1 couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 411
diff changeset
657 # Fixed:
772
db5daf396518 Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents: 770
diff changeset
658 # . Lots of bugs, thanks Roché and others on the devel mailing list!
414
fc6d03e9dbc1 couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents: 411
diff changeset
659 #
411
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
660 # Revision 1.20 2001/11/25 10:11:14 jhermann
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
661 # Typo fix
a6088556e9ba Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 410
diff changeset
662 #
410
3a192fe4e709 Typo fix
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 406
diff changeset
663 # Revision 1.19 2001/11/22 15:46:42 jhermann
3a192fe4e709 Typo fix
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 406
diff changeset
664 # Added module docstrings to all modules.
3a192fe4e709 Typo fix
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 406
diff changeset
665 #
406
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 393
diff changeset
666 # Revision 1.18 2001/11/15 10:36:17 richard
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 393
diff changeset
667 # . incorporated patch from Roch'e Compaan implementing attachments in nosy
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 393
diff changeset
668 # e-mail
bdc2ea127ae9 Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents: 393
diff changeset
669 #
393
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
670 # Revision 1.17 2001/11/12 22:01:06 richard
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
671 # Fixed issues with nosy reaction and author copies.
f40388721e40 incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents: 380
diff changeset
672 #
380
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
673 # Revision 1.16 2001/10/30 00:54:45 richard
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
674 # Features:
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
675 # . #467129 ] Lossage when username=e-mail-address
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
676 # . #473123 ] Change message generation for author
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
677 # . MailGW now moves 'resolved' to 'chatting' on receiving e-mail for an issue.
a1331423eb93 Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents: 337
diff changeset
678 #
337
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
679 # Revision 1.15 2001/10/23 01:00:18 richard
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
680 # Re-enabled login and registration access after lopping them off via
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
681 # disabling access for anonymous users.
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
682 # Major re-org of the htmltemplate code, cleaning it up significantly. Fixed
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
683 # a couple of bugs while I was there. Probably introduced a couple, but
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
684 # things seem to work OK at the moment.
8cd545738d8e Features:
Richard Jones <richard@users.sourceforge.net>
parents: 318
diff changeset
685 #
318
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 313
diff changeset
686 # Revision 1.14 2001/10/21 07:26:35 richard
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 313
diff changeset
687 # feature #473127: Filenames. I modified the file.index and htmltemplate
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 313
diff changeset
688 # source so that the filename is used in the link and the creation
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 313
diff changeset
689 # information is displayed.
e18dd7227780 Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents: 313
diff changeset
690 #
313
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 308
diff changeset
691 # Revision 1.13 2001/10/21 00:45:15 richard
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 308
diff changeset
692 # Added author identification to e-mail messages from roundup.
489b70c37f32 feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents: 308
diff changeset
693 #
308
e32af1eff4ea Added author identification to e-mail messages from roundup.
Richard Jones <richard@users.sourceforge.net>
parents: 263
diff changeset
694 # Revision 1.12 2001/10/04 02:16:15 richard
e32af1eff4ea Added author identification to e-mail messages from roundup.
Richard Jones <richard@users.sourceforge.net>
parents: 263
diff changeset
695 # Forgot to pass the protected flag down *sigh*.
e32af1eff4ea Added author identification to e-mail messages from roundup.
Richard Jones <richard@users.sourceforge.net>
parents: 263
diff changeset
696 #
263
e13d55912cd4 Forgot to pass the protected flag down *sigh*.
Richard Jones <richard@users.sourceforge.net>
parents: 262
diff changeset
697 # Revision 1.11 2001/10/04 02:12:42 richard
e13d55912cd4 Forgot to pass the protected flag down *sigh*.
Richard Jones <richard@users.sourceforge.net>
parents: 262
diff changeset
698 # Added nicer command-line item adding: passing no arguments will enter an
e13d55912cd4 Forgot to pass the protected flag down *sigh*.
Richard Jones <richard@users.sourceforge.net>
parents: 262
diff changeset
699 # interactive more which asks for each property in turn. While I was at it, I
e13d55912cd4 Forgot to pass the protected flag down *sigh*.
Richard Jones <richard@users.sourceforge.net>
parents: 262
diff changeset
700 # fixed an implementation problem WRT the spec - I wasn't raising a
e13d55912cd4 Forgot to pass the protected flag down *sigh*.
Richard Jones <richard@users.sourceforge.net>
parents: 262
diff changeset
701 # ValueError if the key property was missing from a create(). Also added a
e13d55912cd4 Forgot to pass the protected flag down *sigh*.
Richard Jones <richard@users.sourceforge.net>
parents: 262
diff changeset
702 # protected=boolean argument to getprops() so we can list only the mutable
e13d55912cd4 Forgot to pass the protected flag down *sigh*.
Richard Jones <richard@users.sourceforge.net>
parents: 262
diff changeset
703 # properties (defaults to yes, which lists the immutables).
e13d55912cd4 Forgot to pass the protected flag down *sigh*.
Richard Jones <richard@users.sourceforge.net>
parents: 262
diff changeset
704 #
262
ab921dc53ccd Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
705 # Revision 1.10 2001/08/07 00:24:42 richard
ab921dc53ccd Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
706 # stupid typo
ab921dc53ccd Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
707 #
214
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
708 # Revision 1.9 2001/08/07 00:15:51 richard
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
709 # Added the copyright/license notice to (nearly) all files at request of
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
710 # Bizar Software.
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
711 #
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
712 # Revision 1.8 2001/08/02 06:38:17 richard
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
713 # Roundupdb now appends "mailing list" information to its messages which
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
714 # include the e-mail address and web interface address. Templates may
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
715 # override this in their db classes to include specific information (support
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
716 # instructions, etc).
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 188
diff changeset
717 #
188
1536be43d2fa Roundupdb now appends "mailing list" information to its messages...
Richard Jones <richard@users.sourceforge.net>
parents: 156
diff changeset
718 # Revision 1.7 2001/07/30 02:38:31 richard
1536be43d2fa Roundupdb now appends "mailing list" information to its messages...
Richard Jones <richard@users.sourceforge.net>
parents: 156
diff changeset
719 # get() now has a default arg - for migration only.
1536be43d2fa Roundupdb now appends "mailing list" information to its messages...
Richard Jones <richard@users.sourceforge.net>
parents: 156
diff changeset
720 #
156
9c5ddad06430 get() now has a default arg - for migration only.
Richard Jones <richard@users.sourceforge.net>
parents: 138
diff changeset
721 # Revision 1.6 2001/07/30 00:05:54 richard
9c5ddad06430 get() now has a default arg - for migration only.
Richard Jones <richard@users.sourceforge.net>
parents: 138
diff changeset
722 # Fixed IssueClass so that superseders links to its classname rather than
9c5ddad06430 get() now has a default arg - for migration only.
Richard Jones <richard@users.sourceforge.net>
parents: 138
diff changeset
723 # hard-coded to "issue".
9c5ddad06430 get() now has a default arg - for migration only.
Richard Jones <richard@users.sourceforge.net>
parents: 138
diff changeset
724 #
138
e012bb958238 Fixed IssueClass so that superseders links to its classname...
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
725 # Revision 1.5 2001/07/29 07:01:39 richard
e012bb958238 Fixed IssueClass so that superseders links to its classname...
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
726 # Added vim command to all source so that we don't get no steenkin' tabs :)
e012bb958238 Fixed IssueClass so that superseders links to its classname...
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
727 #
127
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 118
diff changeset
728 # Revision 1.4 2001/07/29 04:05:37 richard
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 118
diff changeset
729 # Added the fabricated property "id".
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 118
diff changeset
730 #
118
a55c1301ba1f Added the fabricated property "id".
Richard Jones <richard@users.sourceforge.net>
parents: 44
diff changeset
731 # Revision 1.3 2001/07/23 07:14:41 richard
a55c1301ba1f Added the fabricated property "id".
Richard Jones <richard@users.sourceforge.net>
parents: 44
diff changeset
732 # Moved the database backends off into backends.
a55c1301ba1f Added the fabricated property "id".
Richard Jones <richard@users.sourceforge.net>
parents: 44
diff changeset
733 #
44
c1f3e058c58d Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
734 # Revision 1.2 2001/07/22 12:09:32 richard
c1f3e058c58d Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
735 # Final commit of Grande Splite
c1f3e058c58d Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
736 #
26
c7c14960f413 Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents: 25
diff changeset
737 # Revision 1.1 2001/07/22 11:58:35 richard
c7c14960f413 Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents: 25
diff changeset
738 # More Grande Splite
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
739 #
127
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 118
diff changeset
740 #
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 118
diff changeset
741 # vim: set filetype=python ts=4 sw=4 et si

Roundup Issue Tracker: http://roundup-tracker.org/