48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
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
|