Example #1
0
    def test_decorator(self):
        class someclass(object):
            pass

        conf = ViewModuleConf(id="test")
        newcls = DecorateViewClassWithViewModuleConf(conf, someclass)
        self.assert_(newcls.__configuration__)
        self.assert_(newcls.__configuration__().id == "test")

        newcls = DecorateViewClassWithViewModuleConf(
            conf, "nive.tests.test_helper.text")
        self.assert_(newcls.__configuration__)
        self.assert_(newcls.__configuration__().id == "test")
Example #2
0
from nive.components.reform.widget import RadioChoiceWidget

from nive_userdb.i18n import _

# view module definition ------------------------------------------------------------------

#@nive_module
configuration = ViewModuleConf("nive.adminview.view",
    id = "useradmin",
    name = _(u"User management"),
    containment = IApplication,
    context = "nive_userdb.useradmin.adminroot.adminroot",
    view = "nive_userdb.useradmin.view.UsermanagementView",
    templates = "nive_userdb.useradmin:",
    template = "nive.adminview:index.pt",
    permission = "manage users",
    # user interface configuration
    listfields = ("pool_state","name","email","groups","lastlogin","id"),
    addfields = ("name","password","email","groups"),
    editfields = (FieldConf(id="pool_state", name=_("Active"), datatype="bool",
                            widget=RadioChoiceWidget(values=((u"true", _(u"Yes")),(u"false", _(u"No"))))),
                  "name",
                  FieldConf(id="password", name=_("Password"), datatype="password", settings={"update": True}),
                  "email","groups")
)
t = configuration.templates
configuration.views = [
    # User Management Views
    ViewConf(name="",       attr="view",   renderer=t+"root.pt"),
    ViewConf(name="list",   attr="view",   renderer=t+"root.pt"),
    ViewConf(name="add",    attr="add",    renderer=t+"add.pt"),
    ViewConf(name="delete", attr="delete", renderer=t+"delete.pt"),
Example #3
0
configuration = ViewModuleConf(
    id = "editor",
    name = u"CMS Editor",
    static = "nive_cms.cmsview:static",
    templates = "nive_cms.cmsview:",
    template = "index.pt",
    permission = "read",
    context = IObject,
    containment = ICMSRoot,  
    view = "nive_cms.cmsview.view.Editor",
    # assets list the requirements for the editor pages. These are not mixed with the design!
    assets = [
        ('bootstrap.css', 'nive_cms.cmsview:static/mods/bootstrap/css/bootstrap.min.css'),
        ('cmsview.css', 'nive_cms.cmsview:static/cmsview.css'),              # nive css
        ('jquery.js', 'nive_cms.cmsview:static/mods/jquery-1.10.2.min.js'),
        ('jquery-ui.js', 'nive_cms.cmsview:static/mods/jquery-ui-1.10.3/js/jquery-ui-1.10.3.custom.min.js'),
        #?unused ('bootstrap.js', 'nive_cms.cmsview:static/mods/bootstrap/js/bootstrap.min.js'),
        ('cmsview.js', 'nive_cms.cmsview:static/cmsview.js'),            # nive js
    ],
    # editorAssets list the requirements to include the editor in the websites' design.
    editorAssets = [
        ('toolbox.css', 'nive_cms.cmsview:static/toolbox/toolbox.css'),
        #('jquery-ui.css', 'nive_cms.cmsview:static/mods/jquery-ui-1.10.3/css/ui-lightness/jquery-ui-1.10.3.custom.min.css'),
        ('cmseditor.css', 'nive_cms.cmsview:static/cmseditor.css'),
        ('jquery.js', 'nive_cms.cmsview:static/mods/jquery-1.10.2.min.js'),
        ('jquery-ui.js', 'nive_cms.cmsview:static/mods/jquery-ui-1.10.3/js/jquery-ui-1.10.3.custom.min.js'),
        ('cmseditor.js', 'nive_cms.cmsview:static/cmseditor.js'),            # nive js
    ],
    acl = (
        (Allow, 'group:editor', 'read'),
        (Allow, 'group:editor', 'add'),
        (Allow, 'group:editor', 'edit'), 
        (Allow, 'group:editor', 'delete'), 
        (Allow, 'group:editor', 'publish'), 
        (Allow, 'group:editor', 'revoke'), 
        (Allow, 'group:author', 'read'),
        (Allow, 'group:author', 'add'),
        (Allow, 'group:author', 'edit'), 
        (Allow, 'group:author', 'delete'), 
        (Allow, 'group:reviewer', 'read'),
        (Allow, 'group:reviewer', 'publish'),
        (Allow, 'group:reviewer', 'revoke'), 
        (Allow, 'group:reader', 'read'),
    ),
    description=__doc__
)
Example #4
0
# view module definition ------------------------------------------------------------------

#@nive_module
configuration = ViewModuleConf(
    "nive.adminview.view",
    id="useradmin",
    name=_(u"User management"),
    containment=IApplication,
    context="nive_userdb.useradmin.adminroot.adminroot",
    view="nive_userdb.useradmin.view.UsermanagementView",
    templates="nive_userdb.useradmin:",
    template="nive.adminview:index.pt",
    permission="manage users",
    # user interface configuration
    listfields=("pool_state", "name", "email", "groups", "lastlogin", "id"),
    addfields=("name", "password", "email", "groups"),
    editfields=(FieldConf(
        id="pool_state",
        name=_("Active"),
        datatype="bool",
        widget=RadioChoiceWidget(values=((u"true", _(u"Yes")),
                                         (u"false", _(u"No"))))), "name",
                FieldConf(id="password",
                          name=_("Password"),
                          datatype="password",
                          settings={"update": True}), "email", "groups"))
t = configuration.templates
configuration.views = [
    # User Management Views
    ViewConf(name="", attr="view", renderer=t + "root.pt"),
Example #5
0
#----------------------------------------------------------------------
__doc__ = """
"""

from nive.i18n import _
from nive.definitions import IPage
from nive.definitions import IToolboxWidgetConf, IEditorWidgetConf
from nive.definitions import ViewModuleConf, ViewConf, WidgetConf
from nive.cms.cmsview.view import Editor


configuration = ViewModuleConf(
    id = "wfview",
    name = _(u"CMS workflow extension"),
    static = "nive.cms.workflow:static",
    permission = "read",
    context = IPage,
    containment = "nive.cms.cmsview.cmsroot.cmsroot",
    view = "nive.cms.workflow.view.WorkflowEdit"
)

configuration.views = [
    ViewConf(name = "wfWidget", attr = "widget",   renderer = "nive.cms.workflow:templates/widget.pt"),
    ViewConf(name = "workflow", attr = "workflow", renderer = "nive.cms.workflow:templates/editorpage.pt"),
    ViewConf(name = "action",   attr = "action"),
    ViewConf(name = "pubr",     attr = "publishRecursive", permission = "edit")
]

configuration.widgets = [
    WidgetConf(name=_("Workflow"), widgetType=IToolboxWidgetConf, apply=(IPage,), viewmapper="wfWidget", id="cms.wf",    sort=250),
    WidgetConf(name=_("Workflow"), widgetType=IEditorWidgetConf,  apply=(IPage,), viewmapper="workflow", id="editor.wf", sort=250)
Example #6
0
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#----------------------------------------------------------------------
__doc__ = """
"""

from nive.i18n import _
from nive.definitions import IPage
from nive.definitions import IToolboxWidgetConf, IEditorWidgetConf
from nive.definitions import ViewModuleConf, ViewConf, WidgetConf
from nive.cms.cmsview.view import Editor

configuration = ViewModuleConf(id="wfview",
                               name=_(u"CMS workflow extension"),
                               static="nive.cms.workflow:static",
                               permission="read",
                               context=IPage,
                               containment="nive.cms.cmsview.cmsroot.cmsroot",
                               view="nive.cms.workflow.view.WorkflowEdit")

configuration.views = [
    ViewConf(name="wfWidget",
             attr="widget",
             renderer="nive.cms.workflow:templates/widget.pt"),
    ViewConf(name="workflow",
             attr="workflow",
             renderer="nive.cms.workflow:templates/editorpage.pt"),
    ViewConf(name="action", attr="action"),
    ViewConf(name="pubr", attr="publishRecursive", permission="edit")
]
Example #7
0
configuration = ViewModuleConf(
    id="editor",
    name=u"CMS Editor",
    static="nive_cms.cmsview:static",
    templates="nive_cms.cmsview:",
    template="index.pt",
    permission="read",
    context=IObject,
    containment=ICMSRoot,
    view="nive_cms.cmsview.view.Editor",
    # assets list the requirements for the editor pages. These are not mixed with the design!
    assets=[
        ('bootstrap.css',
         'nive_cms.cmsview:static/mods/bootstrap/css/bootstrap.min.css'),
        ('cmsview.css', 'nive_cms.cmsview:static/cmsview.css'),  # nive css
        ('jquery.js', 'nive_cms.cmsview:static/mods/jquery-1.10.2.min.js'),
        ('jquery-ui.js',
         'nive_cms.cmsview:static/mods/jquery-ui-1.10.3/js/jquery-ui-1.10.3.custom.min.js'
         ),
        #?unused ('bootstrap.js', 'nive_cms.cmsview:static/mods/bootstrap/js/bootstrap.min.js'),
        ('cmsview.js', 'nive_cms.cmsview:static/cmsview.js'),  # nive js
    ],
    # editorAssets list the requirements to include the editor in the websites' design.
    editorAssets=[
        ('toolbox.css', 'nive_cms.cmsview:static/toolbox/toolbox.css'),
        #('jquery-ui.css', 'nive_cms.cmsview:static/mods/jquery-ui-1.10.3/css/ui-lightness/jquery-ui-1.10.3.custom.min.css'),
        ('cmseditor.css', 'nive_cms.cmsview:static/cmseditor.css'),
        ('jquery.js', 'nive_cms.cmsview:static/mods/jquery-1.10.2.min.js'),
        ('jquery-ui.js',
         'nive_cms.cmsview:static/mods/jquery-ui-1.10.3/js/jquery-ui-1.10.3.custom.min.js'
         ),
        ('cmseditor.js', 'nive_cms.cmsview:static/cmseditor.js'),  # nive js
    ],
    acl=(
        (Allow, 'group:editor', 'read'),
        (Allow, 'group:editor', 'add'),
        (Allow, 'group:editor', 'edit'),
        (Allow, 'group:editor', 'delete'),
        (Allow, 'group:editor', 'publish'),
        (Allow, 'group:editor', 'revoke'),
        (Allow, 'group:author', 'read'),
        (Allow, 'group:author', 'add'),
        (Allow, 'group:author', 'edit'),
        (Allow, 'group:author', 'delete'),
        (Allow, 'group:reviewer', 'read'),
        (Allow, 'group:reviewer', 'publish'),
        (Allow, 'group:reviewer', 'revoke'),
        (Allow, 'group:reader', 'read'),
    ),
    description=__doc__)
Example #8
0
from nive.definitions import ViewModuleConf

configuration = ViewModuleConf("nive.cms.design.view",
                               static="nive_tmpl_design_python:static",
                               staticName="tmpldesign",
                               templates="nive_tmpl_design_python:templates")
Example #9
0
from nive.i18n import translate
from nive.definitions import ModuleConf, ViewModuleConf
from nive.helper import LoadListItems, ResolveName

from nive.components.reform.schema import *
from nive.components.reform.widget import *
from nive.components.reform.form import Button

# view module definition ------------------------------------------------------------------
#@nive_module
configuration = ModuleConf(
    id="reformed",
    name=u"Form widgets and resources",
    context="nive.components.reform.reformed",
    views=(ViewModuleConf(static="nive.components.reform:static",
                          id="reform"), ),
)

template_dir = resource_filename('nive.components.reform', 'templates/')
zpt_renderer = ZPTRendererFactory([template_dir], translator=translate)


def SchemaFactory(form, fields, actions, force=False):
    """
    converts the fields to colander schema nodes including widget.
    If fielddef has node set and force is false node is used as widget. To overwrite set
    force = True.
    
    SchemaNode(...)
    """
Example #10
0
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#----------------------------------------------------------------------
__doc__ = """
"""

from nive.i18n import _
from nive.definitions import FieldConf, ViewConf, ViewModuleConf, Conf

# view module definition ------------------------------------------------------------------

#@nive_module
configuration = ViewModuleConf(id="userview",
                               name=_(u"User signup"),
                               static="nive.userdb.userview:static",
                               containment="nive.userdb.app.UserDB",
                               context="nive.userdb.root.root",
                               view="nive.userdb.userview.view.UserView",
                               templates="nive.userdb.userview:",
                               permission="view")
t = configuration.templates
configuration.views = [
    # User Views
    ViewConf(name="login", attr="login", renderer=t + "loginpage.pt"),
    ViewConf(name="signup",
             attr="create",
             renderer=t + "signup.pt",
             permission="signup"),
    ViewConf(name="update",
             attr="update",
             renderer=t + "update.pt",
             permission="updateuser"),
Example #11
0
from nive_userdb.i18n import _
from nive_userdb.i18n import translator
from nive_userdb.app import EmailValidator, UsernameValidator, OldPwValidator


# view module definition ------------------------------------------------------------------

#@nive_module
configuration = ViewModuleConf(
    id = "userview",
    name = _(u"User signup"),
    static = "nive_userdb.userview:static",
    containment = "nive_userdb.app.UserDB",
    context = "nive_userdb.root.root",
    view = "nive_userdb.userview.view.UserView",
    templates = "nive_userdb.userview:",
    template = "main.pt",
    permission = "view",
    assets = (),
    # form settings: additional slot to configure the forms used in the views
    form = {}
)
t = configuration.templates
configuration.views = [
    # User Views
    ViewConf(name="login",          attr="login",      renderer=t+"loginpage.pt"),
    ViewConf(name="signup",         attr="create",     renderer=t+"signup.pt",    permission="signup"),
    ViewConf(name="activate",       attr="activate",   renderer=t+"form.pt"),
    ViewConf(name="update",         attr="update",     renderer=t+"update.pt",    permission="updateuser"),
    ViewConf(name="updatepass",     attr="updatepass", renderer=t+"form.pt",      permission="updateuser"),
    ViewConf(name="updatemail1",    attr="updatemail1",renderer=t+"form.pt",      permission="updateuser"),
Example #12
0
from nive.definitions import IWebsiteRoot, ICMSRoot

from nive.views import BaseView
from nive.forms import ValidationError, HTMLForm

from nive.utils.utils import SortConfigurationList, ConvertDictToStr


# view module definition ------------------------------------------------------------------

#@nive_module
configuration = ViewModuleConf(
    id = "administration",
    name = _(u"Administration"),
    static = "",
    context = IApplication,
    view = "nive.adminview.view.AdminView",
    templates = "nive.adminview:",
    permission = "administration"
)
t = configuration.templates
configuration.views = [
    # User Management Views
    ViewConf(name = "admin",    attr = "view",       renderer = t+"root.pt"),
    ViewConf(name = "basics",   attr = "editbasics", renderer = t+"form.pt"),
    #ViewConf(name = "portal",   attr = "editportal", renderer = t+"form.pt"),
    ViewConf(name = "tools",    attr = "tools",      renderer = t+"tools.pt"),
    ViewConf(name = "modules",  attr = "view",       renderer = t+"modules.pt"),
    ViewConf(name = "views",    attr = "view",       renderer = t+"views.pt"),
]
Example #13
0
"""

from pyramid.renderers import render

from nive_cms.i18n import _
from nive.definitions import ViewConf, ViewModuleConf, FieldConf, WidgetConf, Conf
from nive.definitions import IApplication, IAdminWidgetConf   
from nive.adminview.view import AdminBasics, ConfigurationForm

# view module definition ------------------------------------------------------------------

#@nive_module
configuration = ViewModuleConf("nive.adminview.view",
    id = "cms_admin",
    name = _(u"CMS Administration"),
    context = IApplication,
    view = "nive_cms.cmsview.admin.CMSAdminView",
    templates = "nive.adminview:",
    permission = "administration"
)

t = configuration.templates
configuration.views = [
    ViewConf(name = "design",   attr = "design",     renderer = t+"form.pt"),
    ViewConf(name = "help",     attr = "help",       renderer = t+"help.pt", permission="read"),
]

configuration.widgets = [
    WidgetConf(name=_(u"Design"), viewmapper="design", id="admin.design", sort=1500,   apply=(IApplication,), widgetType=IAdminWidgetConf,
               description=u""),
    WidgetConf(name=_(u"Help"),   viewmapper="help",   id="admin.help",   sort=50000,  apply=(IApplication,), widgetType=IAdminWidgetConf,
               description=_(u"Help and documentation.")),
Example #14
0
from nive.extensions.persistentRoot import IPersistentRoot
from nive.utils.utils import SortConfigurationList, ConvertDictToStr

# view module definition ------------------------------------------------------------------

#@nive_module
configuration = ViewModuleConf(
    id="administration",
    name=_(u"Administration"),
    context=IApplication,
    view="nive.adminview.view.AdminView",
    templates="nive.adminview:",
    template="index.pt",
    permission="administration",
    adminLink=u"app_folder_url/admin",
    static="nive.adminview:static",
    assets=[
        ('bootstrap.min.css',
         'nive.adminview:static/mods/bootstrap/css/bootstrap.min.css'),
        ('adminview.css', 'nive.adminview:static/adminview.css'),  # nive css
        ('jquery.js', 'nive.adminview:static/mods/jquery.min.js'),
        ('bootstrap.min.js',
         'nive.adminview:static/mods/bootstrap/js/bootstrap.min.js'),
    ],
)
t = configuration.templates
configuration.views = [
    # User Management Views
    ViewConf(name="admin", attr="view", renderer=t + "root.pt"),
    ViewConf(name="basics", attr="editbasics", renderer=t + "form.pt"),
    #ViewConf(name = "rootsettings",attr = "editroot",    renderer = t+"form.pt"),
Example #15
0
from pyramid.renderers import get_renderer, render, render_to_response

from nive.i18n import _
from nive.definitions import ViewConf, ViewModuleConf, Conf
from nive.definitions import IApplication, IUser


# view module definition ------------------------------------------------------------------

#@nive_module
configuration = ViewModuleConf(
    id = "useradmin",
    name = _(u"User management"),
    static = "",
    containment = "nive.userdb.useradmin.adminroot.adminroot",
    context = "nive.userdb.useradmin.adminroot.adminroot",
    view = "nive.userdb.useradmin.view.UsermanagementView",
    templates = "nive.userdb.useradmin:",
    permission = "manage users"
)
t = configuration.templates
configuration.views = [
    # User Management Views
    ViewConf(name = "",       attr = "view",   containment=IApplication, renderer = t+"root.pt"),
    ViewConf(name = "list",   attr = "view",   containment=IApplication, renderer = t+"root.pt"),
    ViewConf(name = "add",    attr = "add",    containment=IApplication, renderer = t+"add.pt"),
    ViewConf(name = "delete", attr = "delete", containment=IApplication, renderer = t+"delete.pt"),
    ViewConf(name = "",       attr = "edit",   context = IUser, renderer = t+"edit.pt"),
]

Example #16
0
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#----------------------------------------------------------------------
__doc__ = """
"""

from nive.i18n import _
from nive.definitions import FieldConf, ViewConf, ViewModuleConf, Conf

# view module definition ------------------------------------------------------------------

#@nive_module
configuration = ViewModuleConf(
    id = "userview",
    name = _(u"User signup"),
    static = "nive.userdb.userview:static",
    containment = "nive.userdb.app.UserDB",
    context = "nive.userdb.root.root",
    view = "nive.userdb.userview.view.UserView",
    templates = "nive.userdb.userview:",
    permission = "view"
)
t = configuration.templates
configuration.views = [
    # User Views
    ViewConf(name="login",    attr="login",    renderer=t+"loginpage.pt"),
    ViewConf(name="signup",   attr="create",   renderer=t+"signup.pt", permission="signup"),
    ViewConf(name="update",   attr="update",   renderer=t+"update.pt", permission="updateuser"),
    ViewConf(name="resetpass",attr="resetpass",renderer=t+"resetpass.pt"),
    ViewConf(name="logout",   attr="logout"),
    # disabled
    #ViewConf(name="mailpass", attr="mailpass", renderer=t+"mailpass.pt"),
]
Example #17
0
from nive.forms import ValidationError, HTMLForm

from nive.utils.utils import SortConfigurationList, ConvertDictToStr


# view module definition ------------------------------------------------------------------

#@nive_module
configuration = ViewModuleConf(
    id = "administration",
    name = _(u"Administration"),
    context = IApplication,
    view = "nive.adminview.view.AdminView",
    templates = "nive.adminview:",
    permission = "administration",
    static = "nive.adminview:static",
    assets = [
        # jquery and jquery-ui
        ('jquery.js', 'nive.adminview:static/mods/jquery.min.js'),
        ('jquery-ui.js', 'nive.adminview:static/mods/ui/jquery-ui-1.8.24.custom.min.js'),
        # nive specific
        ('nive.js', 'nive.adminview:static/nive.css'),
    ],
)
t = configuration.templates
configuration.views = [
    # User Management Views
    ViewConf(name = "admin",    attr = "view",       renderer = t+"root.pt"),
    ViewConf(name = "basics",   attr = "editbasics", renderer = t+"form.pt"),
    #ViewConf(name = "portal",   attr = "editportal", renderer = t+"form.pt"),
    ViewConf(name = "tools",    attr = "tools",      renderer = t+"tools.pt"),
    ViewConf(name = "modules",  attr = "view",       renderer = t+"modules.pt"),
Example #18
0
from nive.cms.cmsview import sort

# view module definition ------------------------------------------------------------------

#@nive_module
configuration = ViewModuleConf(
    id="editor",
    name=u"CMS Editor",
    static="nive.cms.cmsview:static",
    templates="nive.cms.cmsview:",
    permission="read",
    context=IObject,
    containment=ICMSRoot,
    view="nive.cms.cmsview.view.Editor",
    assets=[
        # jquery and jquery-ui
        ('jquery.js', 'nive.cms.cmsview:static/mods/jquery.min.js'),
        ('jquery-ui.js',
         'nive.cms.cmsview:static/mods/ui/jquery-ui-1.8.24.custom.min.js'),
        # nive specific
        ('cmseditor.js', 'nive.cms.cmsview:static/cmseditor.js'),
        ('toolbox.css', 'nive.cms.cmsview:static/toolbox/toolbox.css'),
        ('overlay.css', 'nive.cms.cmsview:static/overlay/overlay.css'),
        ('cmseditor.css', 'nive.cms.cmsview:static/cmseditor.css'),
    ],
    description=__doc__)

# views -----------------------------------------------------------------------------
# copy and sort extension views are imported from their files and added at the end of the list

t = configuration.templates
Example #19
0
"""

from pyramid.renderers import render

from nive.i18n import _
from nive.definitions import ViewConf, ViewModuleConf, FieldConf, WidgetConf, Conf
from nive.definitions import IApplication, IAdminWidgetConf
from nive.adminview.view import AdminBasics, ConfigurationForm

# view module definition ------------------------------------------------------------------

#@nive_module
configuration = ViewModuleConf(id="cms_admin",
                               name=_(u"CMS Administration"),
                               context=IApplication,
                               view="nive.cms.cmsview.admin.CMSAdminView",
                               templates="nive.adminview:",
                               permission="administration")

t = configuration.templates
configuration.views = [
    ViewConf(name="design", attr="design", renderer=t + "form.pt"),
    ViewConf(name="help",
             attr="help",
             renderer=t + "help.pt",
             permission="read"),
]

configuration.widgets = [
    WidgetConf(name=_(u"Design"),
               viewmapper="design",
Example #20
0
configuration = ViewModuleConf(
    id="design",
    name=_(u"Website design and view"),
    static="nive.cms.design:static",
    templates="nive.cms.design:templates",
    mainTemplate="index.pt",
    permission="view",
    view="nive.cms.design.view.Design",
    views=[
        ViewConf(id="appview", name="", attr="app", context=IWebsite),
        ViewConf(id="search", name="search", attr="search", context=IRoot),
        ViewConf(id="su", name="su", attr="open", context=IRoot),
        ViewConf(id="rootview", name="", attr="view", context=IWebsiteRoot),
        ViewConf(id="objview",
                 name="",
                 attr="view",
                 context=IPage,
                 containment=IWebsiteRoot),
        ViewConf(id="objview", name="", attr="view", context=IPageElement),
        ViewConf(id="objfile", name="file", attr="file", context=IFile),
        # restricted permmissions if called in editor
        ViewConf(id="rootview",
                 name="",
                 attr="view",
                 context=ICMSRoot,
                 containment=IWebsite),
        ViewConf(id="objview",
                 name="",
                 attr="view",
                 context=IPage,
                 containment=ICMSRoot),
    ],
    description=__doc__)