| Index: appengine/monorail/features/filterrules_views.py
|
| diff --git a/appengine/monorail/features/filterrules_views.py b/appengine/monorail/features/filterrules_views.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ca21b2dc57fb9bc52d56eee4b6a16487f6c83c5f
|
| --- /dev/null
|
| +++ b/appengine/monorail/features/filterrules_views.py
|
| @@ -0,0 +1,44 @@
|
| +# Copyright 2016 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is govered by a BSD-style
|
| +# license that can be found in the LICENSE file or at
|
| +# https://developers.google.com/open-source/licenses/bsd
|
| +
|
| +"""Classes to display filter rules in templates."""
|
| +
|
| +import logging
|
| +
|
| +from framework import template_helpers
|
| +
|
| +
|
| +class RuleView(template_helpers.PBProxy):
|
| + """Wrapper class that makes it easier to display a Rule via EZT."""
|
| +
|
| + def __init__(self, rule_pb, users_by_id):
|
| + super(RuleView, self).__init__(rule_pb)
|
| +
|
| + self.action_type = ''
|
| + self.action_value = ''
|
| +
|
| + if rule_pb is None:
|
| + return # Just leave everything as ''
|
| +
|
| + # self.predicate is automatically available.
|
| +
|
| + # For the current UI, we assume that each rule has exactly
|
| + # one action, so we can determine the text value for it here.
|
| + if rule_pb.default_status:
|
| + self.action_type = 'default_status'
|
| + self.action_value = rule_pb.default_status
|
| + elif rule_pb.default_owner_id:
|
| + self.action_type = 'default_owner'
|
| + self.action_value = users_by_id[rule_pb.default_owner_id].email
|
| + elif rule_pb.add_cc_ids:
|
| + self.action_type = 'add_ccs'
|
| + usernames = [users_by_id[cc_id].email for cc_id in rule_pb.add_cc_ids]
|
| + self.action_value = ', '.join(usernames)
|
| + elif rule_pb.add_labels:
|
| + self.action_type = 'add_labels'
|
| + self.action_value = ', '.join(rule_pb.add_labels)
|
| + elif rule_pb.add_notify_addrs:
|
| + self.action_type = 'also_notify'
|
| + self.action_value = ', '.join(rule_pb.add_notify_addrs)
|
|
|