~launchpad-pqm/launchpad/devel

7675.906.1 by Ian Booth
Initial prototype
1
# Copyright 2010 Canonical Ltd.  This software is licensed under the
2
# GNU Affero General Public License version 3 (see the file LICENSE).
3
4
"""Base class view for merge queue listings."""
5
6
__metaclass__ = type
7
8
__all__ = [
9
    'MergeQueueListingView',
10
    'HasMergeQueuesMenuMixin',
11
    'PersonMergeQueueListingView',
12
    'ProductMergeQueueListingView',
13
    ]
14
15
16
from canonical.launchpad.browser.feeds import FeedsMixin
17
from canonical.launchpad.webapp import (
18
    LaunchpadView,
19
    Link,
20
    )
21
22
23
class HasMergeQueuesMenuMixin:
24
    """A context menus mixin for objects that implement IHasMergeQueues."""
25
26
    def view_merge_queues(self):
27
        text = 'View merge queues'
28
        enabled = self.context.getMergeQueues().count() > 0
29
#        enabled = True
30
        return Link(
31
            '+merge-queues', text, icon='info', enabled=enabled, site='code')
32
33
34
class MergeQueueListingView(LaunchpadView, FeedsMixin):
35
36
    feed_types = ()
37
38
    branch_enabled = True
39
    owner_enabled = True
40
41
    @property
42
    def page_title(self):
43
        return 'Merge Queues for %(displayname)s' % {
44
            'displayname': self.context.displayname}
45
46
47
class PersonMergeQueueListingView(MergeQueueListingView):
48
49
    owner_enabled = False
50