--- a/src/pyams_content/shared/site/container.py Mon Oct 15 17:22:15 2018 +0200
+++ b/src/pyams_content/shared/site/container.py Tue Oct 16 11:18:52 2018 +0200
@@ -12,29 +12,36 @@
__docformat__ = 'restructuredtext'
-
-# import standard library
import json
from pyramid.location import lineage
from zope.interface import implementer
from zope.intid.interfaces import IIntIds
-# import interfaces
from pyams_content.shared.common.interfaces import ISharedContentFactory
-# import packages
from pyams_content.shared.site import SiteTopic
-from pyams_content.shared.site.interfaces import ISiteContainer, ISiteFolder
+from pyams_content.shared.site.interfaces import ISiteContainer, ISiteElementNavigation, ISiteFolder
from pyams_i18n.interfaces import II18n
from pyams_utils.adapter import adapter_config
-from pyams_utils.registry import get_utility
-from pyams_utils.request import query_request
+from pyams_utils.registry import get_global_registry, get_utility
+from pyams_utils.request import check_request, query_request
@implementer(ISiteContainer)
class SiteContainerMixin(object):
"""Site container mixin class"""
+ def get_visible_items(self, request=None):
+
+ def check_item(item):
+ navigation = registry.queryMultiAdapter((item, request), ISiteElementNavigation)
+ return (navigation is not None) and navigation.visible
+
+ if request is None:
+ request = check_request()
+ registry = get_global_registry()
+ yield from filter(check_item, self.values())
+
def get_folders_tree(self, selected=None, permission=None):
request = query_request()