diff options
author | W. Trevor King <wking@drexel.edu> | 2008-12-04 09:54:39 -0500 |
---|---|---|
committer | W. Trevor King <wking@drexel.edu> | 2008-12-04 09:54:39 -0500 |
commit | ca347e86bef7bbdd0d1007beaf283f29ec1bbdff (patch) | |
tree | 221489938cd49ded27fee624ddc835c58a420797 /libbe | |
parent | 83e320a61eb74dab6eddfdda010f34fa42eedc0c (diff) | |
download | bugseverywhere-ca347e86bef7bbdd0d1007beaf283f29ec1bbdff.tar.gz |
Per-tree settings now passed into bug module.
becommands/severity gets the configured settings appropriately.
Todo:
adjust setting-validation to compare against the current values.
setup becommands/severity to --complete severities.
Diffstat (limited to 'libbe')
-rw-r--r-- | libbe/bug.py | 24 | ||||
-rw-r--r-- | libbe/bugdir.py | 10 |
2 files changed, 27 insertions, 7 deletions
diff --git a/libbe/bug.py b/libbe/bug.py index b98067f..46f244f 100644 --- a/libbe/bug.py +++ b/libbe/bug.py @@ -34,8 +34,8 @@ import utility # Use a tuple of (category, description) tuples since we don't have # ordered dicts in Python yet http://www.python.org/dev/peps/pep-0372/ -# in order of increasing severity -severity_level_def = ( +# in order of increasing severity. (name, description) pairs +severity_def = ( ("wishlist","A feature that could improve usefulness, but not a bug."), ("minor","The standard bug level."), ("serious","A bug that requires workarounds."), @@ -58,11 +58,23 @@ inactive_status_def = ( ### Convert the description tuples to more useful formats -severity_values = tuple([val for val,description in severity_level_def]) -severity_description = dict(severity_level_def) +severity_values = () +severity_description = {} severity_index = {} -for i in range(len(severity_values)): - severity_index[severity_values[i]] = i +def load_severities(severity_def): + global severity_values + global severity_description + global severity_index + if type(severity_def[0]) == dict: + # Convert {"name": "X", "description": "Y"} severities to ("X","Y"). + # The dict form is loaded from the per-tree settings file. + severity_def = [(d["name"], d["description"]) for d in severity_def] + severity_values = tuple([val for val,description in severity_def]) + severity_description = dict(severity_def) + severity_index = {} + for i,severity in enumerate(severity_values): + severity_index[severity] = i +load_severities(severity_def) active_status_values = tuple(val for val,description in active_status_def) inactive_status_values = tuple(val for val,description in inactive_status_def) diff --git a/libbe/bugdir.py b/libbe/bugdir.py index d554ebe..cdb4cf5 100644 --- a/libbe/bugdir.py +++ b/libbe/bugdir.py @@ -218,8 +218,15 @@ settings easy. Don't set this attribute. Set .rcs instead, and @doc_property(doc="A dict of (bug-uuid, bug-instance) pairs.") def _bug_map(): return {} + def _setup_severities(self, severities): + if severities != None and severities != settings_object.EMPTY: + bug.load_severities(severities) + def _set_severities(self, old_severities, new_severities): + self._setup_severities(new_severities) + self._prop_save_settings(old_severities, new_severities) @_versioned_property(name="severities", - doc="The allowed bug severities and their descriptions.") + doc="The allowed bug severities and their descriptions.", + change_hook=_set_severities) def severities(): return {} @@ -322,6 +329,7 @@ settings easy. Don't set this attribute. Set .rcs instead, and self.rcs = rcs.rcs_by_name(self.rcs_name) self._setup_encoding(self.encoding) + self._setup_severities(self.severities) def load_all_bugs(self): "Warning: this could take a while." |