Ejemplo n.º 1
0
 def _handle_menu(self):
     if self.menu:
         menuItemDirective(self._context,
                           self.menu,
                           self.for_ or self.schema,
                           '@@' + self.name,
                           self.title,
                           permission=self.permission,
                           layer=self.layer)
Ejemplo n.º 2
0
 def _handle_menu(self):
     if self.menu or self.title:
         if (not self.menu) or (not self.title):
             raise ValueError("If either menu or title are specified, "
                              "they must both be specified")
         # Add forms are really for IAdding components, so do not use
         # for=self.schema.
         menuItemDirective(
             self._context, self.menu, self.for_, '@@' + self.name,
             self.title, permission=self.permission, layer=self.layer,
             description=self.description)
Ejemplo n.º 3
0
 def _handle_menu(self):
     if self.menu or self.title:
         if (not self.menu) or (not self.title):
             raise ValueError("If either menu or title are specified, "
                              "they must both be specified")
         # Add forms are really for IAdding components, so do not use
         # for=self.schema.
         menuItemDirective(
             self._context, self.menu, self.for_, '@@' + self.name,
             self.title, permission=self.permission, layer=self.layer,
             description=self.description)
Ejemplo n.º 4
0
def _handle_menu(_context,
                 menu,
                 title,
                 for_,
                 name,
                 permission,
                 layer=IDefaultBrowserLayer):

    if menu or title:
        if not (menu and title):
            raise ConfigurationError(
                "If either menu or title are specified, they must "
                "both be specified.")
            if len(for_) != 1:
                raise ConfigurationError(
                    "Menus can be specified only for single-view, not for "
                    "multi-views.")

        return menuItemDirective(_context,
                                 menu,
                                 for_[0],
                                 '@@' + name,
                                 title,
                                 permission=permission,
                                 layer=layer)

    return []
Ejemplo n.º 5
0
def containerViews(_context, for_, contents=None, add=None, index=None, layer=IDefaultBrowserLayer):
    """Set up container views for a given content type."""

    if for_ is None:
        raise ValueError("A for interface must be specified.")

    if contents is not None:
        from zope.app.menus import zmi_views

        page(
            _context,
            name="contents.html",
            permission=contents,
            for_=for_,
            layer=layer,
            class_=Contents,
            attribute="contents",
            menu=zmi_views,
            title=_("Contents"),
        )

    if index is not None:
        page(_context, name="index.html", permission=index, for_=for_, layer=layer, class_=Contents, attribute="index")

    if add is not None:
        from zope.app.menus import zmi_actions

        viewObj = view(_context, name="+", layer=layer, for_=for_, permission=add, class_=Adding)
        menuItemDirective(
            _context,
            zmi_actions,
            for_,
            "+",
            _("Add"),
            permission=add,
            layer=layer,
            filter='python:modules["zope.app.container.browser.metaconfigure"].menuFilter(context, request)',
        )
        viewObj.page(_context, name="index.html", attribute="index")
        viewObj.page(_context, name="action.html", attribute="action")
        viewObj()
Ejemplo n.º 6
0
def _handle_menu(_context, menu, title, for_, name, permission, layer=IDefaultBrowserLayer):

    if menu or title:
        if not (menu and title):
            raise ConfigurationError(
                "If either menu or title are specified, they must "
                "both be specified.")
            if len(for_) != 1:
                raise ConfigurationError(
                    "Menus can be specified only for single-view, not for "
                    "multi-views.")

        registeredTitles = _registeredMenus.setdefault(menu, {})
        registered = registeredTitles.setdefault(title, [])

        if for_[0] not in registered:
            registered.append(for_[0])
            return menuItemDirective(
                _context, menu, for_[0], '@@' + name, title,
                permission=permission, layer=layer)

    return []
Ejemplo n.º 7
0
 def _handle_menu(self):
     if self.menu:
         menuItemDirective(
             self._context, self.menu, self.for_ or self.schema,
             '@@' + self.name, self.title, permission=self.permission,
             layer=self.layer)