Mercurial > p > roundup > code
annotate roundup/roundupdb.py @ 826:6d7a45c8464a
Added reindex command to roundup-admin.
Fixed reindex on first access.
Also fixed reindexing of entries that change.
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Tue, 09 Jul 2002 04:19:09 +0000 |
| parents | 0779ea9f1f18 |
| children | 2dd862af72ee |
| 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 | 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 # |
|
826
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
18 # $Id: roundupdb.py,v 1.61 2002-07-09 04:19:09 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 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
24 import re, os, smtplib, socket, copy, 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 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
33 import hyperdb, date |
|
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 |
|
318
e18dd7227780
Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents:
313
diff
changeset
|
39 class DesignatorError(ValueError): |
|
e18dd7227780
Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents:
313
diff
changeset
|
40 pass |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
41 def splitDesignator(designator, dre=re.compile(r'([^\d]+)(\d+)')): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
42 ''' Take a foo123 and return ('foo', 123) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
43 ''' |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
44 m = dre.match(designator) |
|
318
e18dd7227780
Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents:
313
diff
changeset
|
45 if m is None: |
|
e18dd7227780
Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents:
313
diff
changeset
|
46 raise DesignatorError, '"%s" not a node designator'%designator |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
47 return m.group(1), m.group(2) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
48 |
|
380
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
49 |
|
647
b3b483e0fd5e
Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents:
644
diff
changeset
|
50 def extractUserFromList(userClass, users): |
|
617
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
51 '''Given a list of users, try to extract the first non-anonymous user |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
52 and return that user, otherwise return None |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
53 ''' |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
54 if len(users) > 1: |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
55 # make sure we don't match the anonymous or admin user |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
56 for user in users: |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
57 if user == '1': continue |
|
647
b3b483e0fd5e
Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents:
644
diff
changeset
|
58 if userClass.get(user, 'username') == 'anonymous': continue |
|
617
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
59 # first valid match will do |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
60 return user |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
61 # well, I guess we have no choice |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
62 return user[0] |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
63 elif users: |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
64 return users[0] |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
65 return None |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
66 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
67 class Database: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
68 def getuid(self): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
69 """Return the id of the "user" node associated with the user |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
70 that owns this connection to the hyperdatabase.""" |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
71 return self.user.lookup(self.journaltag) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
72 |
|
262
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
73 def uidFromAddress(self, address, create=1): |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
74 ''' address is from the rfc822 module, and therefore is (name, addr) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
75 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
76 user is created if they don't exist in the db already |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
77 ''' |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
78 (realname, address) = address |
|
617
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
79 |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
80 # try a straight match of the address |
|
647
b3b483e0fd5e
Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents:
644
diff
changeset
|
81 user = extractUserFromList(self.user, |
|
b3b483e0fd5e
Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents:
644
diff
changeset
|
82 self.user.stringFind(address=address)) |
|
617
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
83 if user is not None: return user |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
84 |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
85 # try the user alternate addresses if possible |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
86 props = self.user.getprops() |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
87 if props.has_key('alternate_addresses'): |
|
749
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
88 users = self.user.filter(None, {'alternate_addresses': address}, |
|
617
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
89 [], []) |
|
647
b3b483e0fd5e
Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents:
644
diff
changeset
|
90 user = extractUserFromList(self.user, users) |
|
617
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
91 if user is not None: return user |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
92 |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
93 # try to match the username to the address (for local |
|
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
94 # submissions where the address is empty) |
|
647
b3b483e0fd5e
Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents:
644
diff
changeset
|
95 user = extractUserFromList(self.user, |
|
b3b483e0fd5e
Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents:
644
diff
changeset
|
96 self.user.stringFind(username=address)) |
| 337 | 97 |
| 98 # couldn't match address or username, so create a new user | |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
461
diff
changeset
|
99 if create: |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
461
diff
changeset
|
100 return self.user.create(username=address, address=address, |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
461
diff
changeset
|
101 realname=realname) |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
461
diff
changeset
|
102 else: |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
461
diff
changeset
|
103 return 0 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
104 |
|
156
9c5ddad06430
get() now has a default arg - for migration only.
Richard Jones <richard@users.sourceforge.net>
parents:
138
diff
changeset
|
105 _marker = [] |
|
44
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
106 # XXX: added the 'creator' faked attribute |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
107 class Class(hyperdb.Class): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
108 # Overridden methods: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
109 def __init__(self, db, classname, **properties): |
|
313
489b70c37f32
feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents:
308
diff
changeset
|
110 if (properties.has_key('creation') or properties.has_key('activity') |
|
489b70c37f32
feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents:
308
diff
changeset
|
111 or properties.has_key('creator')): |
|
489b70c37f32
feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents:
308
diff
changeset
|
112 raise ValueError, '"creation", "activity" and "creator" are reserved' |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
113 hyperdb.Class.__init__(self, db, classname, **properties) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
114 self.auditors = {'create': [], 'set': [], 'retire': []} |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
115 self.reactors = {'create': [], 'set': [], 'retire': []} |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
116 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
117 def create(self, **propvalues): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
118 """These operations trigger detectors and can be vetoed. Attempts |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
119 to modify the "creation" or "activity" properties cause a KeyError. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
120 """ |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
121 if propvalues.has_key('creation') or propvalues.has_key('activity'): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
122 raise KeyError, '"creation" and "activity" are reserved' |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
123 self.fireAuditors('create', None, propvalues) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
124 nodeid = hyperdb.Class.create(self, **propvalues) |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
125 self.fireReactors('create', nodeid, None) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
126 return nodeid |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
127 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
128 def set(self, nodeid, **propvalues): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
129 """These operations trigger detectors and can be vetoed. Attempts |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
130 to modify the "creation" or "activity" properties cause a KeyError. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
131 """ |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
132 if propvalues.has_key('creation') or propvalues.has_key('activity'): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
133 raise KeyError, '"creation" and "activity" are reserved' |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
134 self.fireAuditors('set', nodeid, propvalues) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
135 # Take a copy of the node dict so that the subsequent set |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
136 # operation doesn't modify the oldvalues structure. |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
137 try: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
138 # try not using the cache initially |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
139 oldvalues = copy.deepcopy(self.db.getnode(self.classname, nodeid, |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
140 cache=0)) |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
141 except IndexError: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
142 # this will be needed if somone does a create() and set() |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
143 # with no intervening commit() |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
144 oldvalues = copy.deepcopy(self.db.getnode(self.classname, nodeid)) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
145 hyperdb.Class.set(self, nodeid, **propvalues) |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
146 self.fireReactors('set', nodeid, oldvalues) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
147 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
148 def retire(self, nodeid): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
149 """These operations trigger detectors and can be vetoed. Attempts |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
150 to modify the "creation" or "activity" properties cause a KeyError. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
151 """ |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
152 self.fireAuditors('retire', nodeid, None) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
153 hyperdb.Class.retire(self, nodeid) |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
154 self.fireReactors('retire', nodeid, None) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
155 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
156 def get(self, nodeid, propname, default=_marker, cache=1): |
|
44
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
157 """Attempts to get the "creation" or "activity" properties should |
|
156
9c5ddad06430
get() now has a default arg - for migration only.
Richard Jones <richard@users.sourceforge.net>
parents:
138
diff
changeset
|
158 do the right thing. |
|
44
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
159 """ |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
160 if propname == 'creation': |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
161 journal = self.db.getjournal(self.classname, nodeid) |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
162 if journal: |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
163 return self.db.getjournal(self.classname, nodeid)[0][1] |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
164 else: |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
165 # on the strange chance that there's no journal |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
166 return date.Date() |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
167 if propname == 'activity': |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
168 journal = self.db.getjournal(self.classname, nodeid) |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
169 if journal: |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
170 return self.db.getjournal(self.classname, nodeid)[-1][1] |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
171 else: |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
172 # on the strange chance that there's no journal |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
173 return date.Date() |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
174 if propname == 'creator': |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
175 journal = self.db.getjournal(self.classname, nodeid) |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
176 if journal: |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
177 name = self.db.getjournal(self.classname, nodeid)[0][2] |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
178 else: |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
179 return None |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
180 return self.db.user.lookup(name) |
|
156
9c5ddad06430
get() now has a default arg - for migration only.
Richard Jones <richard@users.sourceforge.net>
parents:
138
diff
changeset
|
181 if default is not _marker: |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
182 return hyperdb.Class.get(self, nodeid, propname, default, |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
183 cache=cache) |
|
156
9c5ddad06430
get() now has a default arg - for migration only.
Richard Jones <richard@users.sourceforge.net>
parents:
138
diff
changeset
|
184 else: |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
185 return hyperdb.Class.get(self, nodeid, propname, cache=cache) |
|
44
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
186 |
|
262
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
187 def getprops(self, protected=1): |
|
44
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
188 """In addition to the actual properties on the node, these |
|
262
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
189 methods provide the "creation" and "activity" properties. If the |
|
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
190 "protected" flag is true, we include protected properties - those |
|
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
191 which may not be modified. |
|
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
192 """ |
|
263
e13d55912cd4
Forgot to pass the protected flag down *sigh*.
Richard Jones <richard@users.sourceforge.net>
parents:
262
diff
changeset
|
193 d = hyperdb.Class.getprops(self, protected=protected).copy() |
|
262
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
194 if protected: |
|
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
195 d['creation'] = hyperdb.Date() |
|
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
196 d['activity'] = hyperdb.Date() |
|
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
197 d['creator'] = hyperdb.Link("user") |
|
44
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
198 return d |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
199 |
|
118
a55c1301ba1f
Added the fabricated property "id".
Richard Jones <richard@users.sourceforge.net>
parents:
44
diff
changeset
|
200 # |
|
a55c1301ba1f
Added the fabricated property "id".
Richard Jones <richard@users.sourceforge.net>
parents:
44
diff
changeset
|
201 # Detector interface |
|
a55c1301ba1f
Added the fabricated property "id".
Richard Jones <richard@users.sourceforge.net>
parents:
44
diff
changeset
|
202 # |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
203 def audit(self, event, detector): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
204 """Register a detector |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
205 """ |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
206 l = self.auditors[event] |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
207 if detector not in l: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
208 self.auditors[event].append(detector) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
209 |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
210 def fireAuditors(self, action, nodeid, newvalues): |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
211 """Fire all registered auditors. |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
212 """ |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
213 for audit in self.auditors[action]: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
214 audit(self.db, self, nodeid, newvalues) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
215 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
216 def react(self, event, detector): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
217 """Register a detector |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
218 """ |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
219 l = self.reactors[event] |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
220 if detector not in l: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
221 self.reactors[event].append(detector) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
222 |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
223 def fireReactors(self, action, nodeid, oldvalues): |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
224 """Fire all registered reactors. |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
225 """ |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
226 for react in self.reactors[action]: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
227 react(self.db, self, nodeid, oldvalues) |
|
118
a55c1301ba1f
Added the fabricated property "id".
Richard Jones <richard@users.sourceforge.net>
parents:
44
diff
changeset
|
228 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
229 class FileClass(Class): |
|
825
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
230 '''This class defines a large chunk of data. To support this, it has a |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
231 mandatory String property "content" which is typically saved off |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
232 externally to the hyperdb. |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
233 |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
234 The default MIME type of this data is defined by the |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
235 "default_mime_type" class attribute, which may be overridden by each |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
236 node if the class defines a "type" String property. |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
237 ''' |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
238 default_mime_type = 'text/plain' |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
239 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
240 def create(self, **propvalues): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
241 ''' snaffle the file propvalue and store in a file |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
242 ''' |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
243 content = propvalues['content'] |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
244 del propvalues['content'] |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
245 newid = Class.create(self, **propvalues) |
|
461
b579418f7ed1
Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents:
460
diff
changeset
|
246 self.db.storefile(self.classname, newid, None, content) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
247 return newid |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
248 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
249 def get(self, nodeid, propname, default=_marker, cache=1): |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
250 ''' trap the content propname and get it from the file |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
251 ''' |
|
631
993e0162b7c2
roundupdb catches retrieving none existing files.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
617
diff
changeset
|
252 |
|
993e0162b7c2
roundupdb catches retrieving none existing files.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
617
diff
changeset
|
253 poss_msg = 'Possibly a access right configuration problem.' |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
254 if propname == 'content': |
|
631
993e0162b7c2
roundupdb catches retrieving none existing files.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
617
diff
changeset
|
255 try: |
|
993e0162b7c2
roundupdb catches retrieving none existing files.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
617
diff
changeset
|
256 return self.db.getfile(self.classname, nodeid, None) |
|
644
086f67453062
roundup db: catch only IOError in getfile.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
631
diff
changeset
|
257 except IOError, (strerror): |
|
631
993e0162b7c2
roundupdb catches retrieving none existing files.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
617
diff
changeset
|
258 # BUG: by catching this we donot see an error in the log. |
|
644
086f67453062
roundup db: catch only IOError in getfile.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
631
diff
changeset
|
259 return 'ERROR reading file: %s%s\n%s\n%s'%( |
|
086f67453062
roundup db: catch only IOError in getfile.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
631
diff
changeset
|
260 self.classname, nodeid, poss_msg, strerror) |
|
156
9c5ddad06430
get() now has a default arg - for migration only.
Richard Jones <richard@users.sourceforge.net>
parents:
138
diff
changeset
|
261 if default is not _marker: |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
262 return Class.get(self, nodeid, propname, default, cache=cache) |
|
156
9c5ddad06430
get() now has a default arg - for migration only.
Richard Jones <richard@users.sourceforge.net>
parents:
138
diff
changeset
|
263 else: |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
264 return Class.get(self, nodeid, propname, cache=cache) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
265 |
|
262
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
266 def getprops(self, protected=1): |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
267 ''' In addition to the actual properties on the node, these methods |
|
262
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
268 provide the "content" property. If the "protected" flag is true, |
|
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
269 we include protected properties - those which may not be |
|
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
270 modified. |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
271 ''' |
|
263
e13d55912cd4
Forgot to pass the protected flag down *sigh*.
Richard Jones <richard@users.sourceforge.net>
parents:
262
diff
changeset
|
272 d = Class.getprops(self, protected=protected).copy() |
|
262
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
273 if protected: |
|
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
274 d['content'] = hyperdb.String() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
275 return d |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
276 |
|
825
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
277 def index(self, nodeid): |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
278 ''' Index the node in the search index. |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
279 |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
280 We want to index the content in addition to the normal String |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
281 property indexing. |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
282 ''' |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
283 # perform normal indexing |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
284 Class.index(self, nodeid) |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
285 |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
286 # get the content to index |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
287 content = self.get(nodeid, 'content') |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
288 |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
289 # figure the mime type |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
290 if self.properties.has_key('type'): |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
291 mime_type = self.get(nodeid, 'type') |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
292 else: |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
293 mime_type = self.default_mime_type |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
294 |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
295 # and index! |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
296 self.db.indexer.add_text((self.classname, nodeid, 'content'), content, |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
297 mime_type) |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
298 |
|
380
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
299 class MessageSendError(RuntimeError): |
|
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
300 pass |
|
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
301 |
|
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
302 class DetectorError(RuntimeError): |
|
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
303 pass |
|
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
304 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
305 # XXX deviation from spec - was called ItemClass |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
306 class IssueClass(Class): |
| 337 | 307 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
308 # Overridden methods: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
309 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
310 def __init__(self, db, classname, **properties): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
311 """The newly-created class automatically includes the "messages", |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
312 "files", "nosy", and "superseder" properties. If the 'properties' |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
313 dictionary attempts to specify any of these properties or a |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
314 "creation" or "activity" property, a ValueError is raised.""" |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
315 if not properties.has_key('title'): |
|
826
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
316 properties['title'] = hyperdb.String(indexme='yes') |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
317 if not properties.has_key('messages'): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
318 properties['messages'] = hyperdb.Multilink("msg") |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
319 if not properties.has_key('files'): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
320 properties['files'] = hyperdb.Multilink("file") |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
321 if not properties.has_key('nosy'): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
322 properties['nosy'] = hyperdb.Multilink("user") |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
323 if not properties.has_key('superseder'): |
|
138
e012bb958238
Fixed IssueClass so that superseders links to its classname...
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
324 properties['superseder'] = hyperdb.Multilink(classname) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
325 Class.__init__(self, db, classname, **properties) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
326 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
327 # New methods: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
328 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
329 def addmessage(self, nodeid, summary, text): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
330 """Add a message to an issue's mail spool. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
331 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
332 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
|
333 owns the database connection as the author, and the specified summary |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
334 text. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
335 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
336 The "files" and "recipients" fields are left empty. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
337 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
338 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
|
339 appended to the "messages" field of the specified issue. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
340 """ |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
341 |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
342 def nosymessage(self, nodeid, msgid, oldvalues): |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
343 """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
|
344 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
345 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
|
346 already on the "recipients" list for the message. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
347 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
348 These users are then added to the message's "recipients" list. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
349 """ |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
350 users = self.db.user |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
351 messages = self.db.msg |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
352 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
353 # figure the recipient ids |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
354 sendto = [] |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
355 r = {} |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
356 recipients = messages.get(msgid, 'recipients') |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
357 for recipid in messages.get(msgid, 'recipients'): |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
358 r[recipid] = 1 |
| 337 | 359 |
| 360 # 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
|
361 authid = messages.get(msgid, 'author') |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
362 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
363 # 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
|
364 # anonymous |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
509
diff
changeset
|
365 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
|
366 users.get(authid, 'username') != 'anonymous'): |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
367 sendto.append(authid) |
|
380
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
368 r[authid] = 1 |
| 337 | 369 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
370 # 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
|
371 nosy = self.get(nodeid, 'nosy') |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
372 for nosyid in nosy: |
| 337 | 373 # Don't send nosy mail to the anonymous user (that user |
| 374 # shouldn't appear in the nosy list, but just in case they | |
| 375 # do...) | |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
376 if users.get(nosyid, 'username') == 'anonymous': |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
377 continue |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
378 # make sure they haven't seen the message already |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
379 if not r.has_key(nosyid): |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
380 # send it to them |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
381 sendto.append(nosyid) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
382 recipients.append(nosyid) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
383 |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
384 # generate a change note |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
385 if oldvalues: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
386 note = self.generateChangeNote(nodeid, oldvalues) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
387 else: |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
388 note = self.generateCreateNote(nodeid) |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
389 |
|
684
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
390 # we have new recipients |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
391 if sendto: |
| 758 | 392 # map userids to addresses |
| 685 | 393 sendto = [users.get(i, 'address') for i in sendto] |
| 394 | |
|
684
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
395 # update the message's recipients list |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
396 messages.set(msgid, recipients=recipients) |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
397 |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
398 # send the message |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
399 self.send_message(nodeid, msgid, note, sendto) |
|
684
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
400 |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
401 # XXX backwards compatibility - don't remove |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
402 sendmessage = nosymessage |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
403 |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
404 def send_message(self, nodeid, msgid, note, sendto): |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
405 '''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
|
406 recipients, with the note appended. |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
407 ''' |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
408 users = self.db.user |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
409 messages = self.db.msg |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
410 files = self.db.file |
|
380
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
411 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
412 # 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
|
413 inreplyto = messages.get(msgid, 'inreplyto') |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
414 messageid = messages.get(msgid, 'messageid') |
|
684
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
415 |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
416 # 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
|
417 if not messageid: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
418 # 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
|
419 # 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
|
420 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
|
421 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
|
422 messages.set(msgid, messageid=messageid) |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
423 |
|
380
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
424 # 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
|
425 cn = self.classname |
|
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
426 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
|
427 # figure author information |
| 685 | 428 authid = messages.get(msgid, 'author') |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
429 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
|
430 if not authname: |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
431 authname = users.get(authid, 'username') |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
432 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
|
433 if authaddr: |
|
776
60189cf7ba8e
Fixed name/address display problem introduced by an earlier change.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
772
diff
changeset
|
434 authaddr = " <%s>" % straddr( ('',authaddr) ) |
|
380
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
435 else: |
|
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
436 authaddr = '' |
|
425
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
437 |
|
393
f40388721e40
incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents:
380
diff
changeset
|
438 # make the message body |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
439 m = [''] |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
440 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
441 # put in roundup's signature |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
509
diff
changeset
|
442 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
|
443 m.append(self.email_signature(nodeid, msgid)) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
444 |
|
380
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
445 # 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
|
446 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
|
447 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
|
448 else: |
|
425
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
449 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
|
450 m.append('') |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
451 |
|
380
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
452 # add the content |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
453 m.append(messages.get(msgid, 'content')) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
454 |
|
453
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
455 # add the change note |
|
684
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
456 if note: |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
457 m.append(note) |
|
453
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
458 |
|
425
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
459 # put in roundup's signature |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
509
diff
changeset
|
460 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
|
461 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
|
462 |
|
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
|
463 # 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
|
464 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
|
465 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
|
466 quopri.encode(content, content_encoded, 0) |
|
667
52ca0ae46044
Faster, easier, less mess ;)
Richard Jones <richard@users.sourceforge.net>
parents:
665
diff
changeset
|
467 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
|
468 |
|
393
f40388721e40
incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents:
380
diff
changeset
|
469 # get the files for this message |
|
509
4291a31bfa89
namespace clobberation
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
470 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
|
471 |
|
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
|
472 # 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
|
473 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
|
474 |
|
393
f40388721e40
incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents:
380
diff
changeset
|
475 # 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
|
476 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
|
477 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
|
478 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
|
479 writer.addheader('To', ', '.join(sendto)) |
|
770
0ffb5aaeecf5
Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
769
diff
changeset
|
480 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
|
481 (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
|
482 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
|
483 (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
|
484 self.db.config.ISSUE_TRACKER_EMAIL) ) ) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
485 writer.addheader('MIME-Version', '1.0') |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
486 if messageid: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
487 writer.addheader('Message-Id', messageid) |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
488 if inreplyto: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
489 writer.addheader('In-Reply-To', inreplyto) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
490 |
|
612
a2aeebf3d6bd
Added a uniquely Roundup header to email, "X-Roundup-Name"
Richard Jones <richard@users.sourceforge.net>
parents:
559
diff
changeset
|
491 # 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
|
492 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
|
493 |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
494 # attach files |
|
509
4291a31bfa89
namespace clobberation
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
495 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
|
496 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
|
497 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
|
498 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
|
499 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
|
500 body.write(content_encoded) |
|
509
4291a31bfa89
namespace clobberation
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
501 for fileid in message_files: |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
502 name = files.get(fileid, 'name') |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
503 mime_type = files.get(fileid, 'type') |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
504 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
|
505 part = writer.nextpart() |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
506 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
|
507 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
|
508 '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
|
509 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
|
510 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
|
511 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
|
512 else: |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
513 # some other type, so encode it |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
514 if not mime_type: |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
515 # this should have been done when the file was saved |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
516 mime_type = mimetypes.guess_type(name)[0] |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
517 if mime_type is None: |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
518 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
|
519 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
|
520 '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
|
521 part.addheader('Content-Transfer-Encoding', 'base64') |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
522 body = part.startbody(mime_type) |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
523 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
|
524 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
|
525 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
|
526 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
|
527 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
|
528 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
|
529 |
|
f40388721e40
incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents:
380
diff
changeset
|
530 # now try to send the message |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
531 if SENDMAILDEBUG: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
532 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
|
533 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
|
534 ', '.join(sendto),message.getvalue())) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
535 else: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
536 try: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
537 # 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
|
538 # instead of to roundup |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
509
diff
changeset
|
539 smtp = smtplib.SMTP(self.db.config.MAILHOST) |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
509
diff
changeset
|
540 smtp.sendmail(self.db.config.ADMIN_EMAIL, sendto, |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
509
diff
changeset
|
541 message.getvalue()) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
542 except socket.error, value: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
543 raise MessageSendError, \ |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
544 "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
|
545 except smtplib.SMTPException, value: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
546 raise MessageSendError, \ |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
547 "Couldn't send confirmation email: %s"%value |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
548 |
|
428
7956563d49ae
Property changes are now completely traceable, whether changes are
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
425
diff
changeset
|
549 def email_signature(self, nodeid, msgid): |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
550 ''' 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
|
551 ''' |
|
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
|
552 |
|
17208b487199
[SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents:
758
diff
changeset
|
553 # 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
|
554 # 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
|
555 base = self.db.config.ISSUE_TRACKER_WEB |
|
772
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
556 if not isinstance( base , type('') ) or not base.startswith( "http://" ) : |
|
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
|
557 base = "Configuration Error: ISSUE_TRACKER_WEB isn't a fully-qualified URL" |
|
17208b487199
[SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents:
758
diff
changeset
|
558 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
|
559 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
|
560 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
|
561 |
|
17208b487199
[SF#565992] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
Derrick Hudson <dman13@users.sourceforge.net>
parents:
758
diff
changeset
|
562 # ensure the email address is properly quoted |
|
770
0ffb5aaeecf5
Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
769
diff
changeset
|
563 email = straddr( (self.db.config.INSTANCE_NAME , |
|
0ffb5aaeecf5
Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
769
diff
changeset
|
564 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
|
565 |
|
414
fc6d03e9dbc1
couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
566 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
|
567 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
|
568 |
|
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
|
569 |
|
534
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
570 def generateCreateNote(self, nodeid): |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
571 """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
|
572 """ |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
573 cn = self.classname |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
574 cl = self.db.classes[cn] |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
575 props = cl.getprops(protected=0) |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
576 |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
577 # list the values |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
578 m = [] |
|
559
bb5ee2f24ee0
Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
537
diff
changeset
|
579 l = props.items() |
|
bb5ee2f24ee0
Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
537
diff
changeset
|
580 l.sort() |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
534
diff
changeset
|
581 for propname, prop in l: |
|
534
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
582 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
|
583 # skip boring entries |
|
bb5ee2f24ee0
Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
537
diff
changeset
|
584 if not value: |
|
bb5ee2f24ee0
Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
537
diff
changeset
|
585 continue |
|
534
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
586 if isinstance(prop, hyperdb.Link): |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
587 link = self.db.classes[prop.classname] |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
588 if value: |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
589 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
|
590 if key: |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
591 value = link.get(value, key) |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
592 else: |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
593 value = '' |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
594 elif isinstance(prop, hyperdb.Multilink): |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
595 if value is None: value = [] |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
596 l = [] |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
597 link = self.db.classes[prop.classname] |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
598 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
|
599 if key: |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
600 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
|
601 value.sort() |
|
534
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
602 value = ', '.join(value) |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
603 m.append('%s: %s'%(propname, value)) |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
604 m.insert(0, '----------') |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
605 m.insert(0, '') |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
606 return '\n'.join(m) |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
607 |
|
453
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
608 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
|
609 """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
|
610 """ |
|
772
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
611 |
|
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
612 if __debug__ : |
|
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
613 if not isinstance( oldvalues , type({}) ) : |
|
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
614 raise TypeError( |
|
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
615 "'oldvalues' must be dict-like, not %s." |
|
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
616 % str(type(oldvalues)) ) |
|
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
617 |
|
425
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
618 cn = self.classname |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
619 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
|
620 changed = {} |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
621 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
|
622 |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
623 # determine what changed |
|
453
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
624 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
|
625 if key in ['files','messages']: continue |
|
453
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
626 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
|
627 # 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
|
628 try: |
|
453
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
629 old_value = oldvalues[key] |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
630 if type(new_value) is type([]): |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
631 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
|
632 old_value.sort() |
|
453
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
633 if new_value != old_value: |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
634 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
|
635 except: |
|
434
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
428
diff
changeset
|
636 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
|
637 |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
638 # list the changes |
|
440
de5bf4191f11
Enabled transaction support in the bsddb backend.
Richard Jones <richard@users.sourceforge.net>
parents:
439
diff
changeset
|
639 m = [] |
|
559
bb5ee2f24ee0
Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
537
diff
changeset
|
640 l = changed.items() |
|
bb5ee2f24ee0
Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
537
diff
changeset
|
641 l.sort() |
|
bb5ee2f24ee0
Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
537
diff
changeset
|
642 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
|
643 prop = props[propname] |
|
453
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
644 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
|
645 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
|
646 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
|
647 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
|
648 if key: |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
649 if value: |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
650 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
|
651 else: |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
652 value = '' |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
653 if oldvalue: |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
654 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
|
655 else: |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
656 oldvalue = '' |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
657 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
|
658 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
|
659 change = '' |
|
425
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
660 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
|
661 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
|
662 l = [] |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
663 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
|
664 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
|
665 # check for additions |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
666 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
|
667 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
|
668 if key: |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
669 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
|
670 else: |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
671 l.append(entry) |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
672 if l: |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
673 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
|
674 l = [] |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
675 # check for removals |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
676 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
|
677 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
|
678 if key: |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
679 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
|
680 else: |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
681 l.append(entry) |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
682 if l: |
|
428
7956563d49ae
Property changes are now completely traceable, whether changes are
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
425
diff
changeset
|
683 change += ' -%s'%(', '.join(l)) |
|
453
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
684 else: |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
685 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
|
686 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
|
687 if m: |
|
442
52b5f53d12f3
fixed the order of the blank line and '-------' line
Richard Jones <richard@users.sourceforge.net>
parents:
440
diff
changeset
|
688 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
|
689 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
|
690 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
|
691 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
692 # |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
693 # $Log: not supported by cvs2svn $ |
|
826
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
694 # 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
|
695 # More indexer work: |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
696 # - 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
|
697 # "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
|
698 # addressed. In a nutshell: |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
699 # + 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
|
700 # 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
|
701 # comment=String(indexme="yes")) |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
702 # + 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
|
703 # 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
|
704 # - 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
|
705 # 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
|
706 # done in the default templates. |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
707 # - 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
|
708 # set up in the dbinit. |
|
6d7a45c8464a
Added reindex command to roundup-admin.
Richard Jones <richard@users.sourceforge.net>
parents:
825
diff
changeset
|
709 # |
|
825
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
710 # Revision 1.59 2002/06/18 03:55:25 dman13 |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
711 # Fixed name/address display problem introduced by an earlier change. |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
712 # (instead of "name<addr>" display "name <addr>") |
|
0779ea9f1f18
More indexer work:
Richard Jones <richard@users.sourceforge.net>
parents:
776
diff
changeset
|
713 # |
|
776
60189cf7ba8e
Fixed name/address display problem introduced by an earlier change.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
772
diff
changeset
|
714 # 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
|
715 # 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
|
716 # 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
|
717 # 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
|
718 # |
|
772
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
719 # Revision 1.57 2002/06/15 15:49:29 dman13 |
|
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
720 # Use 'email' instead of 'rfc822', if available. |
|
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
721 # 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
|
722 # 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
|
723 # dict (in generateChangeNote). |
|
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
724 # |
|
770
0ffb5aaeecf5
Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
769
diff
changeset
|
725 # 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
|
726 # #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
|
727 # |
|
0ffb5aaeecf5
Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
769
diff
changeset
|
728 # 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
|
729 # real-name is properly quoted |
|
0ffb5aaeecf5
Use 'email' instead of 'rfc822', if available.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
769
diff
changeset
|
730 # |
|
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
|
731 # 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
|
732 # 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
|
733 # |
| 758 | 734 # Revision 1.54 2002/05/29 01:16:17 richard |
| 735 # Sorry about this huge checkin! It's fixing a lot of related stuff in one go | |
| 736 # though. | |
| 737 # | |
| 738 # . #541941 ] changing multilink properties by mail | |
| 739 # . #526730 ] search for messages capability | |
| 740 # . #505180 ] split MailGW.handle_Message | |
| 741 # - also changed cgi client since it was duplicating the functionality | |
| 742 # . build htmlbase if tests are run using CVS checkout (removed note from | |
| 743 # installation.txt) | |
| 744 # . don't create an empty message on email issue creation if the email is empty | |
| 745 # | |
|
753
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
746 # 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
|
747 # Merged search_indexing-branch with HEAD |
|
938edfdeac6e
Sorry about this huge checkin!
Richard Jones <richard@users.sourceforge.net>
parents:
749
diff
changeset
|
748 # |
|
749
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
749 # 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
|
750 # . 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
|
751 # (thanks dman) |
|
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
752 # . 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
|
753 # . 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
|
754 # |
|
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
755 # 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
|
756 # could (it clobbered the anydbm test) |
|
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
757 # |
|
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
|
758 # 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
|
759 # 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
|
760 # |
| 685 | 761 # Revision 1.50 2002/04/08 03:40:31 richard |
| 762 # . added a "detectors" directory for people to put their useful auditors and | |
| 763 # reactors in. Note - the roundupdb.IssueClass.sendmessage method has been | |
| 764 # split and renamed "nosymessage" specifically for things like the nosy | |
| 765 # reactor, and "send_message" which just sends the message. | |
| 766 # | |
| 767 # The initial detector is one that we'll be using here at ekit - it bounces new | |
| 768 # issue messages to a team address. | |
| 769 # | |
|
749
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
770 # 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
|
771 # cgi_client.py |
|
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
772 # removed search link for the time being |
|
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
773 # moved rendering of matches to htmltemplate |
|
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
774 # hyperdb.py |
|
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
775 # 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
|
776 # roundupdb.py |
|
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
777 # added paramater to call of filter method |
|
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
778 # roundup_indexer.py |
|
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
779 # added search method to RoundupIndexer class |
|
51c425129b35
Merged search_indexing-branch with HEAD
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
718
diff
changeset
|
780 # |
|
684
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
781 # 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
|
782 # Faster, easier, less mess ;) |
|
5b23ff865f3a
added a "detectors" directory...
Richard Jones <richard@users.sourceforge.net>
parents:
667
diff
changeset
|
783 # |
|
667
52ca0ae46044
Faster, easier, less mess ;)
Richard Jones <richard@users.sourceforge.net>
parents:
665
diff
changeset
|
784 # 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
|
785 # 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
|
786 # |
|
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
|
787 # 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
|
788 # 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
|
789 # |
|
647
b3b483e0fd5e
Fixed a couple of dodgy bits found by pychekcer.
Richard Jones <richard@users.sourceforge.net>
parents:
644
diff
changeset
|
790 # 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
|
791 # . 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
|
792 # |
|
631
993e0162b7c2
roundupdb catches retrieving none existing files.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
617
diff
changeset
|
793 # 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
|
794 # . 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
|
795 # 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
|
796 # |
|
617
edd210915e64
Alternate email addresses are now available for users.
Richard Jones <richard@users.sourceforge.net>
parents:
612
diff
changeset
|
797 # 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
|
798 # . 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
|
799 # |
|
612
a2aeebf3d6bd
Added a uniquely Roundup header to email, "X-Roundup-Name"
Richard Jones <richard@users.sourceforge.net>
parents:
559
diff
changeset
|
800 # 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
|
801 # 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
|
802 # |
|
559
bb5ee2f24ee0
Properties in change note are now sorted
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
537
diff
changeset
|
803 # 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
|
804 # #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
|
805 # |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
534
diff
changeset
|
806 # 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
|
807 # #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
|
808 # |
|
534
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
809 # 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
|
810 # . 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
|
811 # 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
|
812 # 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
|
813 # 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
|
814 # |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
815 # 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
|
816 # 0.5.0 switch, I hope!) |
|
d17c60d16f7f
[SF#503353] setting properties in initial email
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
817 # |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
509
diff
changeset
|
818 # 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
|
819 # namespace clobberation |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
509
diff
changeset
|
820 # |
|
509
4291a31bfa89
namespace clobberation
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
821 # Revision 1.37 2002/01/08 04:12:05 richard |
|
4291a31bfa89
namespace clobberation
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
822 # 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
|
823 # |
|
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
|
824 # 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
|
825 # 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
|
826 # 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
|
827 # . 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
|
828 # 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
|
829 # . 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
|
830 # . 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
|
831 # |
|
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
|
832 # 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
|
833 # 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
|
834 # . #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
|
835 # . 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
|
836 # . 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
|
837 # . 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
|
838 # |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
839 # 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
|
840 # Features added: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
841 # . 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
|
842 # a textbox |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
843 # . 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
|
844 # . 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
|
845 # addresses if ANONYMOUS_ACCESS is denied |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
846 # |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
461
diff
changeset
|
847 # Revision 1.34 2001/12/17 03:52:48 richard |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
461
diff
changeset
|
848 # 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
|
849 # 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
|
850 # the file is called designator.property. |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
461
diff
changeset
|
851 # 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
|
852 # scheme - the FileClass just doesn't specify the property name. |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
461
diff
changeset
|
853 # |
|
461
b579418f7ed1
Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents:
460
diff
changeset
|
854 # 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
|
855 # 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
|
856 # operation doesn't modify the oldvalues structure |
|
b579418f7ed1
Implemented file store rollback.
Richard Jones <richard@users.sourceforge.net>
parents:
460
diff
changeset
|
857 # |
|
460
9c895b44240a
take a copy of the node dict...
Richard Jones <richard@users.sourceforge.net>
parents:
458
diff
changeset
|
858 # 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
|
859 # 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
|
860 # actually sending mail :) |
|
9c895b44240a
take a copy of the node dict...
Richard Jones <richard@users.sourceforge.net>
parents:
458
diff
changeset
|
861 # |
|
458
fcda73536034
Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method...
Richard Jones <richard@users.sourceforge.net>
parents:
453
diff
changeset
|
862 # 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
|
863 # . 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
|
864 # 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
|
865 # . 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
|
866 # . 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
|
867 # nosy list. |
|
fcda73536034
Added ROUNDUPDBSENDMAILDEBUG so one can test the sendmail method...
Richard Jones <richard@users.sourceforge.net>
parents:
453
diff
changeset
|
868 # |
|
453
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
869 # Revision 1.30 2001/12/12 21:47:45 richard |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
870 # . 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
|
871 # (which still appears in the Reply-To:) |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
872 # . 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
|
873 # delivery reports aren't sent to roundup (thanks Patrick Ohly) |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
445
diff
changeset
|
874 # |
|
445
208697858c8b
Message author's name appears in From: instead of roundup instance name
Richard Jones <richard@users.sourceforge.net>
parents:
442
diff
changeset
|
875 # 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
|
876 # 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
|
877 # |
|
442
52b5f53d12f3
fixed the order of the blank line and '-------' line
Richard Jones <richard@users.sourceforge.net>
parents:
440
diff
changeset
|
878 # 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
|
879 # 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
|
880 # 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
|
881 # btree opener specifically.) |
|
52b5f53d12f3
fixed the order of the blank line and '-------' line
Richard Jones <richard@users.sourceforge.net>
parents:
440
diff
changeset
|
882 # 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
|
883 # 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
|
884 # |
|
440
de5bf4191f11
Enabled transaction support in the bsddb backend.
Richard Jones <richard@users.sourceforge.net>
parents:
439
diff
changeset
|
885 # 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
|
886 # 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
|
887 # |
|
439
6e27cb83aacb
only insert the -------- change note marker if there is a change note
Richard Jones <richard@users.sourceforge.net>
parents:
434
diff
changeset
|
888 # 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
|
889 # 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
|
890 # 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
|
891 # |
|
434
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
428
diff
changeset
|
892 # 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
|
893 # 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
|
894 # 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
|
895 # |
|
428
7956563d49ae
Property changes are now completely traceable, whether changes are
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
425
diff
changeset
|
896 # 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
|
897 # 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
|
898 # |
|
425
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
899 # 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
|
900 # oops |
|
fc907b6ef135
Property changes are now listed in emails generated by Roundup
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
416
diff
changeset
|
901 # |
| 416 | 902 # Revision 1.22 2001/11/27 03:00:50 richard |
| 903 # couple of bugfixes from latest patch integration | |
| 904 # | |
|
414
fc6d03e9dbc1
couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
905 # 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
|
906 # Feature: |
|
fc6d03e9dbc1
couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
907 # . 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
|
908 # the instance. |
|
fc6d03e9dbc1
couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
909 # . 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
|
910 # signature info in e-mails. |
|
fc6d03e9dbc1
couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
911 # . 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
|
912 # . 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
|
913 # |
|
fc6d03e9dbc1
couple of bugfixes from latest patch integration
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
914 # Fixed: |
|
772
db5daf396518
Removed temporary workaround.
Derrick Hudson <dman13@users.sourceforge.net>
parents:
770
diff
changeset
|
915 # . 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
|
916 # |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
917 # Revision 1.20 2001/11/25 10:11:14 jhermann |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
918 # Typo fix |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
410
diff
changeset
|
919 # |
| 410 | 920 # Revision 1.19 2001/11/22 15:46:42 jhermann |
| 921 # Added module docstrings to all modules. | |
| 922 # | |
|
406
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
393
diff
changeset
|
923 # 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
|
924 # . 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
|
925 # e-mail |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
393
diff
changeset
|
926 # |
|
393
f40388721e40
incorporated patch from Roch'e Compaan implementing attachments in nosy e-mail
Richard Jones <richard@users.sourceforge.net>
parents:
380
diff
changeset
|
927 # 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
|
928 # 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
|
929 # |
|
380
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
930 # 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
|
931 # Features: |
|
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
932 # . #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
|
933 # . #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
|
934 # . 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
|
935 # |
| 337 | 936 # Revision 1.15 2001/10/23 01:00:18 richard |
| 937 # Re-enabled login and registration access after lopping them off via | |
| 938 # disabling access for anonymous users. | |
| 939 # Major re-org of the htmltemplate code, cleaning it up significantly. Fixed | |
| 940 # a couple of bugs while I was there. Probably introduced a couple, but | |
| 941 # things seem to work OK at the moment. | |
| 942 # | |
|
318
e18dd7227780
Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents:
313
diff
changeset
|
943 # 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
|
944 # 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
|
945 # 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
|
946 # information is displayed. |
|
e18dd7227780
Re-enabled login and registration access...
Richard Jones <richard@users.sourceforge.net>
parents:
313
diff
changeset
|
947 # |
|
313
489b70c37f32
feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents:
308
diff
changeset
|
948 # 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
|
949 # Added author identification to e-mail messages from roundup. |
|
489b70c37f32
feature [SF#473127]: Filenames.
Richard Jones <richard@users.sourceforge.net>
parents:
308
diff
changeset
|
950 # |
|
308
e32af1eff4ea
Added author identification to e-mail messages from roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
263
diff
changeset
|
951 # 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
|
952 # 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
|
953 # |
|
263
e13d55912cd4
Forgot to pass the protected flag down *sigh*.
Richard Jones <richard@users.sourceforge.net>
parents:
262
diff
changeset
|
954 # 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
|
955 # 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
|
956 # 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
|
957 # 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
|
958 # 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
|
959 # 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
|
960 # 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
|
961 # |
|
262
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
962 # 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
|
963 # stupid typo |
|
ab921dc53ccd
Added nicer command-line item adding:
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
964 # |
| 214 | 965 # Revision 1.9 2001/08/07 00:15:51 richard |
| 966 # Added the copyright/license notice to (nearly) all files at request of | |
| 967 # Bizar Software. | |
| 968 # | |
|
213
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
188
diff
changeset
|
969 # 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
|
970 # 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
|
971 # 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
|
972 # 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
|
973 # instructions, etc). |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
188
diff
changeset
|
974 # |
|
188
1536be43d2fa
Roundupdb now appends "mailing list" information to its messages...
Richard Jones <richard@users.sourceforge.net>
parents:
156
diff
changeset
|
975 # 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
|
976 # 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
|
977 # |
|
156
9c5ddad06430
get() now has a default arg - for migration only.
Richard Jones <richard@users.sourceforge.net>
parents:
138
diff
changeset
|
978 # 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
|
979 # 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
|
980 # hard-coded to "issue". |
|
9c5ddad06430
get() now has a default arg - for migration only.
Richard Jones <richard@users.sourceforge.net>
parents:
138
diff
changeset
|
981 # |
|
138
e012bb958238
Fixed IssueClass so that superseders links to its classname...
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
982 # 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
|
983 # 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
|
984 # |
|
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
|
985 # 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
|
986 # 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
|
987 # |
|
118
a55c1301ba1f
Added the fabricated property "id".
Richard Jones <richard@users.sourceforge.net>
parents:
44
diff
changeset
|
988 # 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
|
989 # Moved the database backends off into backends. |
|
a55c1301ba1f
Added the fabricated property "id".
Richard Jones <richard@users.sourceforge.net>
parents:
44
diff
changeset
|
990 # |
|
44
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
991 # 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
|
992 # Final commit of Grande Splite |
|
c1f3e058c58d
Moved the database backends off into backends.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
993 # |
|
26
c7c14960f413
Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
25
diff
changeset
|
994 # 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
|
995 # More Grande Splite |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
996 # |
|
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
|
997 # |
|
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
|
998 # vim: set filetype=python ts=4 sw=4 et si |
