"""Interfaces for viewing components. """ from zope import schema from zope.interface import Interface, Attribute from waeup.sirp.interfaces import ( IWAeUPObject, IUniversity, IUserContainer, IDataCenter) from waeup.sirp.university.interfaces import ( IFacultyContainer, IFaculty, IDepartment, ICourseContainer, ICourse, ICertificateContainer, ICertificate, ICertificateCourse) class IBreadcrumb(Interface): """Provide breadcrumbs. """ title = schema.TextLine( title = u'Context description', readonly = True, ) viewname = schema.TextLine( title = u'The viewname, for which the breadcrumb is provided.', readonly = True, default = u'index' ) parent_viewname = schema.TextLine( title = u'The viewname of the parent to use.', readonly = True, default = u'index' ) parent = Attribute("The parent object.") context = Attribute("The context of the breadcrumb.") def getURL(view=None): """Return a URL to the breadcrumb target. """ class IBreadcrumbIgnorable(Interface): """A marker interface for breadcrumbs that should be skipped in output. If a breadcrumb wants to be skipped in real output (for instance, because it is set on a layer in site hierarchy that should not be accessed by users), it can also provide this interface. The getBreadcrumbList() function defined here will exclude IIgnorables by default. """ pass class IBreadcrumbContainer(Interface): """A container of breadcrumbs. """ def __iter__(): """Allow iteration over the container. """ def getList(): """Get the list of breadcrumbs as real Python list. """