annotate detectors/creator_resolution.py @ 3854:f4e8dc583256

Restored subject parser regexp to the string it was before the... ...implementation of customization of it, i.e., the version from CVS revision 1.184 of mailgw.py. This makes 'testFollowupTitleMatchMultiRe' work again.
author Erik Forsberg <forsberg@users.sourceforge.net>
date Sat, 12 May 2007 16:14:54 +0000
parents 43151ac10819
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2194
43151ac10819 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2193
diff changeset
1 # This detector was written by richard@mechanicalcat.net and it's been
43151ac10819 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2193
diff changeset
2 # placed in the Public Domain. Copy and modify to your heart's content.
43151ac10819 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2193
diff changeset
3
43151ac10819 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2193
diff changeset
4 #$Id: creator_resolution.py,v 1.2 2004-04-07 06:32:54 richard Exp $
2193
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 from roundup.exceptions import Reject
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 def creator_resolution(db, cl, nodeid, newvalues):
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 '''Catch attempts to set the status to "resolved" - if the assignedto
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 user isn't the creator, then set the status to "in-progress" (try
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 "confirm-done" first though, but "classic" Roundup doesn't have that
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 status)
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 '''
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 if not newvalues.has_key('status'):
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 return
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 # get the resolved state ID
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18 resolved_id = db.status.lookup('resolved')
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 if newvalues['status'] != resolved_id:
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 return
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 # check the assignedto
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24 assignedto = newvalues.get('assignedto', cl.get(nodeid, 'assignedto'))
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 creator = cl.get(nodeid, 'creator')
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 if assignedto == creator:
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27 if db.getuid() != creator:
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 name = db.user.get(creator, 'username')
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 raise Reject, 'Only the creator (%s) may close this issue'%name
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 return
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 # set the assignedto and status
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 newvalues['assignedto'] = creator
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 try:
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 status = db.status.lookup('confirm-done')
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 except KeyError:
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 status = db.status.lookup('in-progress')
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38 newvalues['status'] = status
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 def init(db):
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 db.issue.audit('set', creator_resolution)
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42
b1a29edd6214 added another sample detector
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 # vim: set filetype=python ts=4 sw=4 et si

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