a couple of minor improvements like using DC titles, ...
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1176 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
17a9a55b07
commit
6800f2e356
6 changed files with 89 additions and 18 deletions
|
@ -23,7 +23,7 @@ $Id$
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from zope.app import zapi
|
from zope.app import zapi
|
||||||
from zope.app.dublincore.interfaces import ICMFDublinCore
|
from zope.app.dublincore.interfaces import IZopeDublinCore
|
||||||
from zope.app.form.browser.interfaces import ITerms
|
from zope.app.form.browser.interfaces import ITerms
|
||||||
from zope.app.intid.interfaces import IIntIds
|
from zope.app.intid.interfaces import IIntIds
|
||||||
from zope.cachedescriptors.property import Lazy
|
from zope.cachedescriptors.property import Lazy
|
||||||
|
@ -67,7 +67,7 @@ class BaseView(object):
|
||||||
def modified(self):
|
def modified(self):
|
||||||
""" get date/time of last modification
|
""" get date/time of last modification
|
||||||
"""
|
"""
|
||||||
dc = ICMFDublinCore(self.context)
|
dc = IZopeDublinCore(self.context)
|
||||||
d = dc.modified or dc.created
|
d = dc.modified or dc.created
|
||||||
return d and d.strftime('%Y-%m-%d %H:%M') or ''
|
return d and d.strftime('%Y-%m-%d %H:%M') or ''
|
||||||
|
|
||||||
|
@ -87,6 +87,14 @@ class BaseView(object):
|
||||||
def title(self):
|
def title(self):
|
||||||
return self.context.title or zapi.getName(self.context)
|
return self.context.title or zapi.getName(self.context)
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
def dcTitle(self):
|
||||||
|
return IZopeDublinCore(self.context).title or self.title
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
def headTitle(self):
|
||||||
|
return self.dcTitle
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def value(self):
|
def value(self):
|
||||||
return self.context
|
return self.context
|
||||||
|
|
|
@ -24,7 +24,6 @@ $Id$
|
||||||
|
|
||||||
from zope.app import zapi
|
from zope.app import zapi
|
||||||
from zope.app.catalog.interfaces import ICatalog
|
from zope.app.catalog.interfaces import ICatalog
|
||||||
from zope.app.dublincore.interfaces import ICMFDublinCore
|
|
||||||
from zope.app.event.objectevent import ObjectCreatedEvent, ObjectModifiedEvent
|
from zope.app.event.objectevent import ObjectCreatedEvent, ObjectModifiedEvent
|
||||||
from zope.app.form.browser.interfaces import ITerms
|
from zope.app.form.browser.interfaces import ITerms
|
||||||
from zope.app.pagetemplate import ViewPageTemplateFile
|
from zope.app.pagetemplate import ViewPageTemplateFile
|
||||||
|
|
|
@ -48,6 +48,13 @@
|
||||||
permission="zope.View"
|
permission="zope.View"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<page
|
||||||
|
for="*"
|
||||||
|
name="resource_macros"
|
||||||
|
template="resource_macros.pt"
|
||||||
|
permission="zope.View"
|
||||||
|
/>
|
||||||
|
|
||||||
<!-- loops top-level container -->
|
<!-- loops top-level container -->
|
||||||
|
|
||||||
<addform
|
<addform
|
||||||
|
@ -261,6 +268,20 @@
|
||||||
permission="zope.ManageContent"
|
permission="zope.ManageContent"
|
||||||
menu="zmi_views" title="Edit" />
|
menu="zmi_views" title="Edit" />
|
||||||
|
|
||||||
|
<page
|
||||||
|
for="loops.interfaces.IDocument"
|
||||||
|
name="document.html"
|
||||||
|
permission="zope.View"
|
||||||
|
template="document.pt"
|
||||||
|
class=".resource.DocumentView" />
|
||||||
|
|
||||||
|
<menuItem
|
||||||
|
for="loops.interfaces.IDocument"
|
||||||
|
action="document.html"
|
||||||
|
permission="zope.View"
|
||||||
|
menu="zmi_views" title="View"
|
||||||
|
/>
|
||||||
|
|
||||||
<zope:adapter
|
<zope:adapter
|
||||||
for="loops.interfaces.IDocument
|
for="loops.interfaces.IDocument
|
||||||
zope.publisher.interfaces.browser.IBrowserRequest"
|
zope.publisher.interfaces.browser.IBrowserRequest"
|
||||||
|
@ -362,6 +383,18 @@
|
||||||
|
|
||||||
<!-- node -->
|
<!-- node -->
|
||||||
|
|
||||||
|
<menuItem
|
||||||
|
for="loops.interfaces.INode"
|
||||||
|
action="@@contents.html"
|
||||||
|
permission="zope.ManageContent"
|
||||||
|
menu="zmi_views" title="Contents"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<containerViews
|
||||||
|
for="loops.interfaces.INode"
|
||||||
|
index="zope.ManageContent"
|
||||||
|
/>
|
||||||
|
|
||||||
<addform
|
<addform
|
||||||
label="Add Node"
|
label="Add Node"
|
||||||
name="AddLoopsNode.html"
|
name="AddLoopsNode.html"
|
||||||
|
@ -419,11 +452,6 @@
|
||||||
<page name="action.html" attribute="action" />
|
<page name="action.html" attribute="action" />
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<containerViews
|
|
||||||
for="loops.interfaces.INode"
|
|
||||||
index="zope.ManageContent"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<page
|
<page
|
||||||
name="configure.html"
|
name="configure.html"
|
||||||
for="loops.interfaces.INode"
|
for="loops.interfaces.INode"
|
||||||
|
@ -439,13 +467,6 @@
|
||||||
menu="zmi_views" title="Configure"
|
menu="zmi_views" title="Configure"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<menuItem
|
|
||||||
for="loops.interfaces.INode"
|
|
||||||
action="@@contents.html"
|
|
||||||
permission="zope.ManageContent"
|
|
||||||
menu="zmi_views" title="Contents"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<editform
|
<editform
|
||||||
label="Edit Media Asset"
|
label="Edit Media Asset"
|
||||||
name="edit_target.html"
|
name="edit_target.html"
|
||||||
|
@ -468,7 +489,7 @@
|
||||||
menu="zmi_views" title="Edit Document"
|
menu="zmi_views" title="Edit Document"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<editform
|
<!--<editform
|
||||||
label="Edit Concept"
|
label="Edit Concept"
|
||||||
name="edit_target.html"
|
name="edit_target.html"
|
||||||
schema="loops.interfaces.IConcept"
|
schema="loops.interfaces.IConcept"
|
||||||
|
@ -477,7 +498,7 @@
|
||||||
template="edit.pt"
|
template="edit.pt"
|
||||||
permission="zope.ManageContent"
|
permission="zope.ManageContent"
|
||||||
menu="zmi_views" title="Edit Concept"
|
menu="zmi_views" title="Edit Concept"
|
||||||
/>
|
/>-->
|
||||||
|
|
||||||
<page
|
<page
|
||||||
name="node.html"
|
name="node.html"
|
||||||
|
|
|
@ -126,11 +126,24 @@ class NodeView(BaseView):
|
||||||
def editable(self):
|
def editable(self):
|
||||||
return canWrite(self.context, 'body')
|
return canWrite(self.context, 'body')
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
def menuObject(self):
|
||||||
|
return self.context.getMenu()
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def menu(self):
|
def menu(self):
|
||||||
menu = self.context.getMenu()
|
menu = self.menuObject
|
||||||
return menu is not None and NodeView(menu, self.request) or None
|
return menu is not None and NodeView(menu, self.request) or None
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
def headTitle(self):
|
||||||
|
menuObject = self.menuObject
|
||||||
|
if menuObject is not None and menuObject != self.context:
|
||||||
|
prefix = super(NodeView, self.menu).headTitle + ' - '
|
||||||
|
else:
|
||||||
|
prefix = ''
|
||||||
|
return prefix + super(NodeView, self).headTitle
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def menuItems(self):
|
def menuItems(self):
|
||||||
return [NodeView(child, self.request)
|
return [NodeView(child, self.request)
|
||||||
|
|
|
@ -217,6 +217,9 @@
|
||||||
|
|
||||||
<content class=".view.Node">
|
<content class=".view.Node">
|
||||||
|
|
||||||
|
<!--<implements
|
||||||
|
interface="loops.interfaces.ILoopsObject" />-->
|
||||||
|
|
||||||
<implements
|
<implements
|
||||||
interface="zope.app.annotation.interfaces.IAttributeAnnotatable" />
|
interface="zope.app.annotation.interfaces.IAttributeAnnotatable" />
|
||||||
|
|
||||||
|
@ -240,6 +243,30 @@
|
||||||
|
|
||||||
<!-- adapters -->
|
<!-- adapters -->
|
||||||
|
|
||||||
|
<adapter factory="loops.common.LoopsDCAdapter"
|
||||||
|
for="loops.interfaces.INode"
|
||||||
|
provides="zope.app.dublincore.interfaces.IZopeDublinCore"
|
||||||
|
trusted="True" />
|
||||||
|
|
||||||
|
<adapter factory="loops.common.LoopsDCAdapter"
|
||||||
|
for="loops.interfaces.IConcept"
|
||||||
|
provides="zope.app.dublincore.interfaces.IZopeDublinCore"
|
||||||
|
trusted="True" />
|
||||||
|
|
||||||
|
<adapter factory="loops.common.LoopsDCAdapter"
|
||||||
|
for="loops.interfaces.IDocument"
|
||||||
|
provides="zope.app.dublincore.interfaces.IZopeDublinCore"
|
||||||
|
trusted="True" />
|
||||||
|
|
||||||
|
<adapter factory="loops.common.LoopsDCAdapter"
|
||||||
|
for="loops.interfaces.IMediaAsset"
|
||||||
|
provides="zope.app.dublincore.interfaces.IZopeDublinCore"
|
||||||
|
trusted="True" />
|
||||||
|
|
||||||
|
<class class="loops.common.LoopsDCAdapter">
|
||||||
|
<require like_class="zope.app.dublincore.annotatableadapter.ZDCAnnotatableAdapter" />
|
||||||
|
</class>
|
||||||
|
|
||||||
<adapter factory="loops.concept.IndexAttributes" />
|
<adapter factory="loops.concept.IndexAttributes" />
|
||||||
<adapter factory="loops.resource.IndexAttributes" />
|
<adapter factory="loops.resource.IndexAttributes" />
|
||||||
<adapter factory="loops.resource.IndexableResource" />
|
<adapter factory="loops.resource.IndexableResource" />
|
||||||
|
|
|
@ -46,6 +46,9 @@ class ILoopsObject(Interface):
|
||||||
""" Return the loops root object.
|
""" Return the loops root object.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
title = Attribute(u'A short line of information about an object to be '
|
||||||
|
'used e.g. for menu items or listing entries.')
|
||||||
|
|
||||||
|
|
||||||
class IPotentialTarget(Interface):
|
class IPotentialTarget(Interface):
|
||||||
""" For objects that may be used as target objects for views/nodes.
|
""" For objects that may be used as target objects for views/nodes.
|
||||||
|
|
Loading…
Add table
Reference in a new issue