Mercurial > p > roundup > code
view detectors/creator_resolution.py @ 5010:0428d2004a86
Fix exception handling to be python2.5 compatible
The exception handling introduced in commit hg:494d2550:
Display errors containing HTML with RejectRaw (issue2550847)
contained the new style of exception handling that is not compatible
with python2.5. Rework these exception handlers to use the old style to
maintain compatibility with python2.5
| author | John Kristensen <john@jerrykan.com> |
|---|---|
| date | Wed, 06 Jan 2016 16:02:34 +1100 |
| parents | b3f46759b4d1 |
| children | 35ea9b1efc14 |
line wrap: on
line source
# This detector was written by richard@mechanicalcat.net and it's been # placed in the Public Domain. Copy and modify to your heart's content. from roundup.exceptions import Reject def creator_resolution(db, cl, nodeid, newvalues): '''Catch attempts to set the status to "resolved" - if the assignedto user isn't the creator, then set the status to "in-progress" (try "confirm-done" first though, but "classic" Roundup doesn't have that status) ''' if not newvalues.has_key('status'): return # get the resolved state ID resolved_id = db.status.lookup('resolved') if newvalues['status'] != resolved_id: return # check the assignedto assignedto = newvalues.get('assignedto', cl.get(nodeid, 'assignedto')) creator = cl.get(nodeid, 'creator') if assignedto == creator: if db.getuid() != creator: name = db.user.get(creator, 'username') raise Reject, 'Only the creator (%s) may close this issue'%name return # set the assignedto and status newvalues['assignedto'] = creator try: status = db.status.lookup('confirm-done') except KeyError: status = db.status.lookup('in-progress') newvalues['status'] = status def init(db): db.issue.audit('set', creator_resolution) # vim: set filetype=python ts=4 sw=4 et si
