from zope.interface import implements from five import grok from zope import schema from plone.directives import form from plone.dexterity.content import Item from plone.supermodel import model from plone.formwidget.contenttree import ObjPathSourceBinder from z3c.relationfield.schema import RelationChoice from . import _ class ILink(model.Schema): """ """ folder = RelationChoice(title=_(u'Folder'), required=True, source=ObjPathSourceBinder()) class Link(Item): """ """ implements(ILink) from collective.dms.basecontent.dmsdocument import IDmsDocument grok.templatedir('templates') grok.context(IDmsDocument) from collective.dms.basecontent.browser.viewlets import BaseViewlet, DmsBelowContentViewletManager class LinkViewlet(grok.Viewlet): grok.template('linksviewlet') grok.viewletmanager(DmsBelowContentViewletManager) grok.order(15) portal_type = 'pfwbgedlink' label = _(u"Filed in Folders") def links(self): links = [] for child in self.context.values(): if child.portal_type != 'pfwbgedlink': continue links.append(child) return links