summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Levsen <holger@debian.org>2014-09-22 21:53:47 +0000
committerHolger Levsen <holger@debian.org>2014-09-22 21:53:47 +0000
commit89a2caae93c7ce09344f13584d1762d525b9521e (patch)
tree10448c4d2ced0983db49b06e35a3f70c49447dc4
parent0050f1b5c4ddb6384d94c31ecd5e6ab864aed7ed (diff)
switch to radio buttons for release overview views.
git-svn-id: svn+ssh://svn.debian.org/svn/secure-testing@28963 e39458fd-73e7-0310-bf30-c45bca0a0e42
-rw-r--r--bin/tracker_service.py97
1 files changed, 50 insertions, 47 deletions
diff --git a/bin/tracker_service.py b/bin/tracker_service.py
index a633c558f3..b92fdb0de4 100644
--- a/bin/tracker_service.py
+++ b/bin/tracker_service.py
@@ -24,66 +24,69 @@ else:
webservice_base_class = WebServiceHTTP
class BugFilter:
- default_action_list = [('show_high_urgency', 'only high urgencies'),
- ('show_medium_urgency', 'only medium and high urgencies'),
- ('show_undetermined_urgency', 'issues that may be vulnerable but need to be checked (shown in purple)'),
- ('show_unimportant_urgency', 'unimportant issues'),
- ('show_remote_only', 'only remote vulnerabilities')]
- def __init__(self, params, action_list=None):
- if action_list is None:
- self.action_list = self.default_action_list
- else:
- self.action_list = action_list
+ default_action_list = [('high_urgency', 'high', 'urgency'),
+ ('medium_urgency', 'medium', 'urgency'),
+ ('low_urgency', 'low', 'urgency'),
+ ('unimportant_urgency', 'unimportant', 'urgency'),
+ ('unassigned_urgency', 'not_yet_assigned', 'urgency'),
+
+ ('remote', 'hide remote scope', 'scope'),
+ ('local', 'hide local scope', 'scope'),
+ ('unclear', 'hide unclear scope', 'scope'),
+
+ ('undetermined_issues', 'extra: needs to be checked (will be shown in purple)', 'extra'),]
+
+ def __init__(self, params, nonodsa=False):
+ self.action_list = self.default_action_list
+ if not nonodsa:
+ self.action_list = self.default_action_list + [('nodsa', 'extra: noDSA', 'extra')]
self.params = {}
- for (prop, desc) in self.action_list:
+ for (prop, desc, field) in self.action_list:
self.params[prop] = int(params.get(prop, (0,))[0])
+ self.filters=params.get('filter')
+ if not self.filters:
+ self.filters=['high_urgency', 'medium_urgency', 'low_urgency']
def actions(self, url):
"""Returns a HTML snippet which can be used to change the filter."""
l = []
- for (prop, desc) in self.action_list:
- if self.params[prop]:
- if self.params['show_medium_urgency'] and prop == 'show_medium_urgency':
- note = 'Restore lower than medium urgencies'
- elif self.params['show_high_urgency'] and prop == 'show_high_urgency':
- note = 'Restore lower than high urgencies'
- elif self.params['show_remote_only'] and prop == 'show_remote_only':
- note = 'Restore local vulnerabilities'
- else:
- note = 'Hide ' + desc
- l.append(LI(A(url.updateParamsDict({prop : None}), note)))
+ l.append(INPUT(type='hidden', name='filter', value='1'))
+ for (prop, desc, field) in self.action_list:
+ if prop in self.filters:
+ l.append(INPUT(desc, rel=field, type='checkbox', name='filter', value=prop, checked='checked'))
+ self.params[prop]=1
else:
- note = 'Show ' + desc
- l.append(LI(A(url.updateParamsDict({prop : '1'}), note)))
+ l.append(INPUT(desc, rel=field, type='checkbox', name='filter', value=prop))
- return UL(l)
+ return FORM(tag("span",l),
+ INPUT(type='submit', value='Apply'),
+ method='get')
def urgencyFiltered(self, urg, vuln):
"""Returns True for urgencies that should be filtered."""
- filterlow = self.params['show_medium_urgency'] and \
- urg in ('low', 'low**', 'unimportant',
- 'undetermined', 'not yet assigned')
- filtermed = self.params['show_high_urgency'] and \
- urg in ('medium', 'medium**', 'low', 'low**',
- 'unimportant', 'undetermined', 'not yet assigned')
- filterund = not self.params['show_undetermined_urgency'] and vuln == 2
- filteruni = not self.params['show_unimportant_urgency'] \
+ filterlow = not self.params['low_urgency'] and \
+ urg in ('low', 'low**')
+ filtermed = not self.params['medium_urgency'] and \
+ urg in ('medium', 'medium**')
+ filterhigh = not self.params['high_urgency'] and \
+ urg in ('high', 'high**')
+ filterund = not self.params['undetermined_issues'] and vuln == 2
+ filteruni = not self.params['unimportant_urgency'] \
and urg == 'unimportant'
- return filterlow or filtermed or filterund or filteruni
+ filteruna = not self.params['unassigned_urgency'] \
+ and urg == 'not yet assigned'
+ return filterlow or filtermed or filterhigh or filterund or filteruni or filteruna
def remoteFiltered(self, remote):
- """Returns True for only remote flaws if filtered."""
- return self.params['show_remote_only'] and not remote and not remote is None
-
-class BugFilterNoDSA(BugFilter):
- def __init__(self, params):
- BugFilter.__init__(self, params, self.default_action_list
- + [('show_nodsa', 'issues that are not severe enough to warrant a DSA')])
+ filterr = self.params['remote'] and remote and remote is not None
+ filterl = self.params['local'] and not remote and remote is not None
+ filteru = self.params['unclear'] and remote is None
+ return filterr or filterl or filteru
def nodsaFiltered(self, nodsa):
"""Returns True for no DSA issues if filtered."""
- return nodsa and not self.params['show_nodsa']
+ return nodsa and not self.params['nodsa']
class TrackerService(webservice_base_class):
head_contents = compose(
@@ -627,7 +630,7 @@ to improve our documentation and procedures, so feedback is welcome.""")])])
def page_status_release_stable_oldstable(self, release, params, url):
assert release in ('stable', 'oldstable')
- bf = BugFilterNoDSA(params)
+ bf = BugFilter(params)
def gen():
old_pkg_name = ''
@@ -682,7 +685,7 @@ to improve our documentation and procedures, so feedback is welcome.""")])])
params, url)
def page_status_release_testing(self, path, params, url):
- bf = BugFilterNoDSA(params)
+ bf = BugFilter(params)
def gen():
old_pkg_name = ''
@@ -738,8 +741,8 @@ to improve our documentation and procedures, so feedback is welcome.""")])])
self.nvd_text])
def page_status_release_unstable_like(self, path, params, url,
- rel, title):
- bf = BugFilter(params)
+ rel, subrel, title):
+ bf = BugFilter(params,nonodsa=True)
def gen():
old_pkg_name = ''
@@ -811,7 +814,7 @@ to improve our documentation and procedures, so feedback is welcome.""")])])
rel='squeeze-backports')
def page_status_dtsa_candidates(self, path, params, url):
- bf = BugFilter(params)
+ bf = BugFilter(params,nonodsa=True)
def gen():
old_pkg_name = ''

© 2014-2024 Faster IT GmbH | imprint | privacy policy