[Python-checkins] r71868 - in tracker/instances/python-dev: detectors/autonosy.py schema.py
martin.v.loewis
python-checkins at python.org
Sat Apr 25 11:16:11 CEST 2009
Author: martin.v.loewis
Date: Sat Apr 25 11:16:11 2009
New Revision: 71868
Log:
Issue258: Auto add users as nosy based on components.
Added:
tracker/instances/python-dev/detectors/autonosy.py (contents, props changed)
Modified:
tracker/instances/python-dev/schema.py
Added: tracker/instances/python-dev/detectors/autonosy.py
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/detectors/autonosy.py Sat Apr 25 11:16:11 2009
@@ -0,0 +1,34 @@
+# Auditor to automatically add users as nosy to issues when
+# the component field gets set
+
+# Python 2.3 ... 2.6 compatibility:
+from roundup.anypy.sets_ import set
+
+def autonosy(db, cl, nodeid, newvalues):
+
+ if 'components' not in newvalues:
+ # Without components, nobody needs to be added as nosy
+ return
+ else:
+ components = newvalues['components']
+
+ nosy = set()
+ if 'nosy' in newvalues:
+ new_nosy = newvalues.get('nosy', [])
+ new_nosy = [value for value in new_nosy if db.hasnode('user', value)]
+ nosy |= set(new_nosy)
+ else:
+ old_nosy = db.issue.get(nodeid, 'nosy')
+ nosy |= set(old_nosy)
+
+ for component in components:
+ users = db.component.get(component, 'add_as_nosy')
+ nosy |= set(users)
+
+ newvalues['nosy'] = list(nosy)
+
+
+def init(db):
+ db.issue.audit('create', autonosy)
+ db.issue.audit('set', autonosy)
+
Modified: tracker/instances/python-dev/schema.py
==============================================================================
--- tracker/instances/python-dev/schema.py (original)
+++ tracker/instances/python-dev/schema.py Sat Apr 25 11:16:11 2009
@@ -21,7 +21,8 @@
name=String(),
description=String(),
order=Number(),
- assign_to=Link('user'))
+ assign_to=Link('user'),
+ add_as_nosy=Multilink('user'))
component.setkey('name')
# Version
More information about the Python-checkins
mailing list