use z3c.table for links viewlet
This commit is contained in:
parent
c7dcf3b323
commit
9a9f29fb46
|
@ -1,4 +1,4 @@
|
|||
from zope.interface import implements, implementer
|
||||
from zope.interface import Interface, implements, implementer
|
||||
from five import grok
|
||||
from zope import schema
|
||||
from plone.directives import form
|
||||
|
@ -43,6 +43,32 @@ grok.context(IDmsDocument)
|
|||
from collective.dms.basecontent.browser.viewlets import BaseViewlet, DmsBelowContentViewletManager
|
||||
|
||||
|
||||
from collective.dms.basecontent.browser.listing import BaseTable, BaseTitleColumn
|
||||
from collective.dms.basecontent.browser import column
|
||||
|
||||
class LinksTable(BaseTable):
|
||||
def setUpColumns(self):
|
||||
columns = super(LinksTable, self).setUpColumns()
|
||||
column_names = [column.__name__ for column in columns]
|
||||
selected_columns = ('dms.delete', 'dms.title')
|
||||
return [column for column in columns if column.__name__ in selected_columns]
|
||||
|
||||
|
||||
class TitleColumn(BaseTitleColumn):
|
||||
grok.adapts(Interface, Interface, LinksTable)
|
||||
|
||||
def getLinkContent(self, item):
|
||||
return item.getObject().folder.to_object.Title()
|
||||
|
||||
def getLinkURL(self, item):
|
||||
return item.getObject().folder.to_object.absolute_url()
|
||||
|
||||
|
||||
class DeleteColumn(column.DeleteColumn):
|
||||
grok.name('dms.delete')
|
||||
grok.adapts(Interface, Interface, LinksTable)
|
||||
|
||||
|
||||
class LinkViewlet(grok.Viewlet):
|
||||
grok.template('linksviewlet')
|
||||
grok.viewletmanager(DmsBelowContentViewletManager)
|
||||
|
@ -50,9 +76,16 @@ class LinkViewlet(grok.Viewlet):
|
|||
portal_type = 'pfwbgedlink'
|
||||
label = _(u"Filed in Folders")
|
||||
|
||||
@property
|
||||
def table(self):
|
||||
table = LinksTable(self.context, self.request)
|
||||
table.values = self.links()
|
||||
table.update()
|
||||
return table
|
||||
|
||||
def links(self):
|
||||
links = []
|
||||
for child in self.context.values():
|
||||
for child in self.context.getFolderContents():
|
||||
if child.portal_type != 'pfwbgedlink':
|
||||
continue
|
||||
links.append(child)
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
<fieldset>
|
||||
<tal:block tal:define="links viewlet/links">
|
||||
<fieldset tal:condition="links">
|
||||
<legend
|
||||
i18n:translate=""
|
||||
tal:content="viewlet/label">label</legend>
|
||||
<ul>
|
||||
<li tal:repeat="link viewlet/links"><a tal:attributes="href
|
||||
link/folder/to_object/absolute_url"
|
||||
tal:content="link/folder/to_object/Title">plop</a></li>
|
||||
</ul>
|
||||
<table tal:replace="structure viewlet/table/render"/>
|
||||
</fieldset>
|
||||
</tal:block>
|
||||
|
|
Reference in New Issue