Passed
Push — 2.x ( 36ece0...5c0463 )
by Jordi
05:35
created

senaite.core.browser.contentmenu.menu_provider   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 24
dl 0
loc 35
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A MenuProviderView.contentmenu() 0 4 1
A MenuProviderView.available() 0 2 1
A MenuProviderView.__init__() 0 3 1
A MenuProviderView.workflow_menu() 0 6 2
1
# -*- coding: utf-8 -*-
2
3
from Products.Five import BrowserView
4
from zope.component import getMultiAdapter
5
from zope.interface import implementer
6
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
7
8
from .interfaces import IMenuProvider
9
10
11
@implementer(IMenuProvider)
12
class MenuProviderView(BrowserView):
13
    """View to render a menu/submenu
14
    """
15
    template = ViewPageTemplateFile('templates/contentmenu.pt')
16
17
    def __init__(self, context, request):
18
        super(BrowserView, self).__init__(context, request)
19
        self.menu = []
20
21
    @property
22
    def contentmenu(self):
23
        return getMultiAdapter(
24
            (self.context, self.request, self), name="plone.contentmenu")
25
26
    def available(self):
27
        return self.contentmenu.available()
28
29
    def workflow_menu(self):
30
        menu_id = "content_status_history"
31
        menu = self.contentmenu.menu()
32
        self.menu = filter(
33
            lambda m: m.get("action").endswith(menu_id), menu)
34
        return self.template()
35