merge branch master
This commit is contained in:
commit
fd2d9794a5
10 changed files with 88 additions and 38 deletions
|
@ -351,7 +351,12 @@ class ConceptView(BaseView):
|
||||||
#IOptions(adapted(pr.predicate))('hide_parents_for', [])):
|
#IOptions(adapted(pr.predicate))('hide_parents_for', [])):
|
||||||
IOptions(pr.predicate)('hide_parents_for', [])):
|
IOptions(pr.predicate)('hide_parents_for', [])):
|
||||||
return True
|
return True
|
||||||
hideRoles = IOptions(adapted(pr.first.conceptType))('hide_for', None)
|
hideRoles = None
|
||||||
|
options = component.queryAdapter(adapted(pr.first), IOptions)
|
||||||
|
if options is not None:
|
||||||
|
hideRoles = options('hide_for', None)
|
||||||
|
if not hideRoles:
|
||||||
|
hideRoles = IOptions(adapted(pr.first.conceptType))('hide_for', None)
|
||||||
if hideRoles is not None:
|
if hideRoles is not None:
|
||||||
principal = self.request.principal
|
principal = self.request.principal
|
||||||
if (IUnauthenticatedPrincipal.providedBy(principal) and
|
if (IUnauthenticatedPrincipal.providedBy(principal) and
|
||||||
|
@ -399,10 +404,16 @@ class ConceptView(BaseView):
|
||||||
if fv.check(r.first):
|
if fv.check(r.first):
|
||||||
yield ResourceRelationView(r, self.request, contextIsSecond=True)
|
yield ResourceRelationView(r, self.request, contextIsSecond=True)
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
def resourcesList(self):
|
||||||
|
from loops.browser.resource import ResourceRelationView
|
||||||
|
return [ResourceRelationView(r, self.request, contextIsSecond=True)
|
||||||
|
for r in self.context.getResourceRelations()]
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def resourcesByType(self):
|
def resourcesByType(self):
|
||||||
result = dict(texts=[], images=[], files=[])
|
result = dict(texts=[], images=[], files=[])
|
||||||
for rv in self.resources():
|
for rv in self.resourcesList:
|
||||||
r = rv.context
|
r = rv.context
|
||||||
if r.contentType.startswith('text/'):
|
if r.contentType.startswith('text/'):
|
||||||
result['texts'].append(r)
|
result['texts'].append(r)
|
||||||
|
|
|
@ -26,6 +26,12 @@
|
||||||
class="loops.browser.node.NodeView"
|
class="loops.browser.node.NodeView"
|
||||||
permission="zope.Public" />
|
permission="zope.Public" />
|
||||||
|
|
||||||
|
<page for="loops.interfaces.INode"
|
||||||
|
name="contents.html"
|
||||||
|
template="contents.pt"
|
||||||
|
class="cybertools.container.ordered.ContainerView"
|
||||||
|
permission="loops.ManageSite" />
|
||||||
|
|
||||||
<!-- login/logout -->
|
<!-- login/logout -->
|
||||||
|
|
||||||
<page for="loops.interfaces.INode"
|
<page for="loops.interfaces.INode"
|
||||||
|
@ -125,7 +131,7 @@
|
||||||
name="edit.html"
|
name="edit.html"
|
||||||
for="loops.interfaces.ILoops"
|
for="loops.interfaces.ILoops"
|
||||||
class="loops.browser.manager.LoopsEditForm"
|
class="loops.browser.manager.LoopsEditForm"
|
||||||
permission="zope.ManageSite"
|
permission="loops.ManageSite"
|
||||||
menu="zmi_views" title="Edit"
|
menu="zmi_views" title="Edit"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -175,7 +181,7 @@
|
||||||
<pages
|
<pages
|
||||||
for="loops.interfaces.IConcept"
|
for="loops.interfaces.IConcept"
|
||||||
class=".concept.ConceptConfigureView"
|
class=".concept.ConceptConfigureView"
|
||||||
permission="zope.ManageContent">
|
permission="loops.ManageSite">
|
||||||
|
|
||||||
<page
|
<page
|
||||||
name="configure.html"
|
name="configure.html"
|
||||||
|
@ -193,7 +199,7 @@
|
||||||
name="edit.html"
|
name="edit.html"
|
||||||
for="loops.interfaces.IConcept"
|
for="loops.interfaces.IConcept"
|
||||||
class="loops.browser.concept.ConceptEditForm"
|
class="loops.browser.concept.ConceptEditForm"
|
||||||
permission="zope.ManageContent"
|
permission="loops.ManageSite"
|
||||||
menu="zmi_views" title="Edit" />
|
menu="zmi_views" title="Edit" />
|
||||||
|
|
||||||
<page
|
<page
|
||||||
|
@ -279,7 +285,7 @@
|
||||||
<pages
|
<pages
|
||||||
for="loops.interfaces.IResource"
|
for="loops.interfaces.IResource"
|
||||||
class=".resource.ResourceConfigureView"
|
class=".resource.ResourceConfigureView"
|
||||||
permission="zope.ManageContent">
|
permission="loops.ManageSite">
|
||||||
|
|
||||||
<page
|
<page
|
||||||
name="configure.html"
|
name="configure.html"
|
||||||
|
@ -292,7 +298,7 @@
|
||||||
name="edit.html"
|
name="edit.html"
|
||||||
for="loops.interfaces.IResource"
|
for="loops.interfaces.IResource"
|
||||||
class="loops.browser.resource.ResourceEditForm"
|
class="loops.browser.resource.ResourceEditForm"
|
||||||
permission="zope.ManageContent"
|
permission="loops.ManageSite"
|
||||||
menu="zmi_views" title="Edit" />
|
menu="zmi_views" title="Edit" />
|
||||||
|
|
||||||
<!-- suppress the upload menu item: -->
|
<!-- suppress the upload menu item: -->
|
||||||
|
@ -314,7 +320,7 @@
|
||||||
name="edit.html"
|
name="edit.html"
|
||||||
for="loops.interfaces.IDocument"
|
for="loops.interfaces.IDocument"
|
||||||
class="loops.browser.resource.DocumentEditForm"
|
class="loops.browser.resource.DocumentEditForm"
|
||||||
permission="zope.ManageContent"
|
permission="loops.ManageSite"
|
||||||
menu="zmi_views" title="Edit" />
|
menu="zmi_views" title="Edit" />
|
||||||
|
|
||||||
<page
|
<page
|
||||||
|
@ -353,17 +359,17 @@
|
||||||
schema="loops.interfaces.IViewManager"
|
schema="loops.interfaces.IViewManager"
|
||||||
content_factory="loops.view.ViewManager"
|
content_factory="loops.view.ViewManager"
|
||||||
template="add.pt"
|
template="add.pt"
|
||||||
permission="zope.ManageContent" />
|
permission="loops.ManageSite" />
|
||||||
|
|
||||||
<containerViews
|
<containerViews
|
||||||
for="loops.interfaces.IViewManager"
|
for="loops.interfaces.IViewManager"
|
||||||
index="zope.View"
|
index="zope.View"
|
||||||
add="zope.ManageContent" />
|
add="loops.ManageSite" />
|
||||||
|
|
||||||
<menuItem
|
<menuItem
|
||||||
for="loops.interfaces.IViewManager"
|
for="loops.interfaces.IViewManager"
|
||||||
action="contents.html"
|
action="contents.html"
|
||||||
permission="zope.ManageContent"
|
permission="loops.ManageSite"
|
||||||
menu="zmi_views" title="Contents" />
|
menu="zmi_views" title="Contents" />
|
||||||
|
|
||||||
<!-- record manager -->
|
<!-- record manager -->
|
||||||
|
@ -389,7 +395,7 @@
|
||||||
<menuItem
|
<menuItem
|
||||||
for="loops.interfaces.INode"
|
for="loops.interfaces.INode"
|
||||||
action="contents.html"
|
action="contents.html"
|
||||||
permission="zope.ManageContent"
|
permission="loops.ManageSite"
|
||||||
menu="zmi_views" title="Contents" />
|
menu="zmi_views" title="Contents" />
|
||||||
|
|
||||||
<addform
|
<addform
|
||||||
|
@ -418,7 +424,7 @@
|
||||||
fields="title description nodeType viewName body"
|
fields="title description nodeType viewName body"
|
||||||
for="loops.interfaces.INode"
|
for="loops.interfaces.INode"
|
||||||
template="edit.pt"
|
template="edit.pt"
|
||||||
permission="zope.ManageContent"
|
permission="loops.ManageSite"
|
||||||
menu="zmi_views" title="Edit">
|
menu="zmi_views" title="Edit">
|
||||||
|
|
||||||
<widget field="description" height="2" />
|
<widget field="description" height="2" />
|
||||||
|
@ -452,13 +458,13 @@
|
||||||
for="loops.interfaces.INode"
|
for="loops.interfaces.INode"
|
||||||
template="node_target.pt"
|
template="node_target.pt"
|
||||||
class="loops.browser.node.ConfigureView"
|
class="loops.browser.node.ConfigureView"
|
||||||
permission="zope.ManageContent"
|
permission="loops.ManageSite"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<menuItem
|
<menuItem
|
||||||
for="loops.interfaces.INode"
|
for="loops.interfaces.INode"
|
||||||
action="@@configure.html"
|
action="@@configure.html"
|
||||||
permission="zope.ManageContent"
|
permission="loops.ManageSite"
|
||||||
menu="zmi_views" title="Configure"
|
menu="zmi_views" title="Configure"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -704,12 +710,12 @@
|
||||||
schema="loops.interfaces.IViewConfiguratorSchema"
|
schema="loops.interfaces.IViewConfiguratorSchema"
|
||||||
for="loops.interfaces.INode"
|
for="loops.interfaces.INode"
|
||||||
template="edit.pt"
|
template="edit.pt"
|
||||||
permission="zope.ManageContent" />
|
permission="loops.ManageSite" />
|
||||||
|
|
||||||
<menuItem
|
<menuItem
|
||||||
for="loops.interfaces.INode"
|
for="loops.interfaces.INode"
|
||||||
action="viewconfigure.html"
|
action="viewconfigure.html"
|
||||||
permission="zope.ManageContent"
|
permission="loops.ManageSite"
|
||||||
menu="zmi_views" title="View Properties"
|
menu="zmi_views" title="View Properties"
|
||||||
filter="python: context.nodeType == 'menu'" />
|
filter="python: context.nodeType == 'menu'" />
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,14 @@
|
||||||
factory="loops.browser.lobo.standard.List2"
|
factory="loops.browser.lobo.standard.List2"
|
||||||
permission="zope.View" />
|
permission="zope.View" />
|
||||||
|
|
||||||
|
<zope:adapter
|
||||||
|
name="lobo_h0"
|
||||||
|
for="loops.interfaces.IConcept
|
||||||
|
loops.browser.skin.Lobo"
|
||||||
|
provides="zope.interface.Interface"
|
||||||
|
factory="loops.browser.lobo.standard.Header0"
|
||||||
|
permission="zope.View" />
|
||||||
|
|
||||||
<zope:adapter
|
<zope:adapter
|
||||||
name="lobo_h1"
|
name="lobo_h1"
|
||||||
for="loops.interfaces.IConcept
|
for="loops.interfaces.IConcept
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
<a tal:attributes="href cell/targetUrl">
|
<a tal:attributes="href cell/targetUrl">
|
||||||
<b tal:content="cell/title" /></a><br />
|
<b tal:content="cell/title" /></a><br />
|
||||||
<tal:desc condition="cell/description">
|
<tal:desc condition="cell/description">
|
||||||
<i tal:content="structure cell/renderedDescription" /></tal:desc>
|
<span tal:content="structure cell/renderedDescription" /></tal:desc>
|
||||||
<br />
|
<br />
|
||||||
</div>
|
</div>
|
||||||
</tal:cell>
|
</tal:cell>
|
||||||
|
@ -46,22 +46,24 @@
|
||||||
<metal:block define-macro="header">
|
<metal:block define-macro="header">
|
||||||
<div tal:define="cell part/getView">
|
<div tal:define="cell part/getView">
|
||||||
<metal:headline use-macro="item/macros/headline" />
|
<metal:headline use-macro="item/macros/headline" />
|
||||||
<div tal:define="showImageLink python:True"
|
<tal:image condition="part/showImage">
|
||||||
tal:attributes="class python:part.cssClass[0]">
|
<div tal:define="showImageLink python:True"
|
||||||
<metal:image use-macro="item/macros/image" />
|
tal:attributes="class python:part.cssClass[0]">
|
||||||
<span tal:condition="cell/img/showInfo|nothing">
|
<metal:image use-macro="item/macros/image" />
|
||||||
<a tal:define="url string:${cell/img/url}/meta_info.html"
|
<span tal:condition="cell/img/showInfo|nothing">
|
||||||
tal:attributes="href url;
|
<a tal:define="url string:${cell/img/url}/meta_info.html"
|
||||||
onclick string:objectDialog('', '$url');;
|
tal:attributes="href url;
|
||||||
return false">
|
onclick string:objectDialog('', '$url');;
|
||||||
<img tal:attributes="src
|
return false">
|
||||||
string:${controller/resourceBase}/cybertools.icons/info.png" />
|
<img tal:attributes="src
|
||||||
</a></span>
|
string:${controller/resourceBase}/cybertools.icons/info.png" />
|
||||||
</div>
|
</a></span>
|
||||||
|
</div>
|
||||||
|
</tal:image>
|
||||||
<div tal:attributes="class python:part.cssClass[1]">
|
<div tal:attributes="class python:part.cssClass[1]">
|
||||||
<span tal:content="structure cell/renderedTextDescription" />
|
<span tal:content="structure cell/renderedTextDescription" />
|
||||||
</div>
|
</div>
|
||||||
<tal:break condition="cell/img">
|
<tal:break condition="python:part.showImage and cell.img">
|
||||||
<br style="clear: both" /> </tal:break>
|
<br style="clear: both" /> </tal:break>
|
||||||
<div tal:condition="cell/renderedText"
|
<div tal:condition="cell/renderedText"
|
||||||
tal:attributes="class python:part.cssClass[2]">
|
tal:attributes="class python:part.cssClass[2]">
|
||||||
|
@ -108,13 +110,15 @@
|
||||||
title cell/img/title">
|
title cell/img/title">
|
||||||
<img tal:condition="showImageLink|python:False"
|
<img tal:condition="showImageLink|python:False"
|
||||||
tal:attributes="src cell/img/src;
|
tal:attributes="src cell/img/src;
|
||||||
class cell/img/cssClass" />
|
class cell/img/cssClass;
|
||||||
|
alt cell/title" />
|
||||||
</a>
|
</a>
|
||||||
<a tal:condition="not:showImageLink|python:False"
|
<a tal:condition="not:showImageLink|python:False"
|
||||||
tal:attributes="href cell/targetUrl;
|
tal:attributes="href cell/targetUrl;
|
||||||
title cell/description">
|
title cell/title">
|
||||||
<img tal:attributes="src cell/img/src;
|
<img tal:attributes="src cell/img/src;
|
||||||
class cell/img/cssClass" />
|
class cell/img/cssClass;
|
||||||
|
alt cell/title" />
|
||||||
</a>
|
</a>
|
||||||
</tal:img>
|
</tal:img>
|
||||||
</metal:image>
|
</metal:image>
|
||||||
|
|
|
@ -157,6 +157,7 @@ class BasePart(Base):
|
||||||
imageCssClass = ''
|
imageCssClass = ''
|
||||||
height = 260
|
height = 260
|
||||||
gridPattern = []
|
gridPattern = []
|
||||||
|
showImage = True
|
||||||
|
|
||||||
def getChildren(self):
|
def getChildren(self):
|
||||||
subtypeNames = (self.params.get('subtypes') or [''])[0].split(',')
|
subtypeNames = (self.params.get('subtypes') or [''])[0].split(',')
|
||||||
|
@ -206,6 +207,14 @@ class List2(BasePart):
|
||||||
gridPattern = [['span-4 clear', 'span-2 last']]
|
gridPattern = [['span-4 clear', 'span-2 last']]
|
||||||
|
|
||||||
|
|
||||||
|
class Header0(BasePart):
|
||||||
|
|
||||||
|
macroName = 'header'
|
||||||
|
cssClass = ['span-6 last', 'clear']
|
||||||
|
showImage = False
|
||||||
|
cssClass = ['', 'span-6 last', 'clear']
|
||||||
|
|
||||||
|
|
||||||
class Header1(BasePart):
|
class Header1(BasePart):
|
||||||
|
|
||||||
macroName = 'header'
|
macroName = 'header'
|
||||||
|
|
|
@ -243,8 +243,10 @@ class ResourceView(BaseView):
|
||||||
# actions
|
# actions
|
||||||
|
|
||||||
def getPortletActions(self, page=None, target=None):
|
def getPortletActions(self, page=None, target=None):
|
||||||
return actions.get('portlet', ['edit_object'], view=self, page=page,
|
if canWrite(target.context, 'data'):
|
||||||
target=target)
|
return actions.get('portlet', ['edit_object'], view=self, page=page,
|
||||||
|
target=target)
|
||||||
|
return []
|
||||||
|
|
||||||
def getObjectActions(self, page=None, target=None):
|
def getObjectActions(self, page=None, target=None):
|
||||||
acts = ['info']
|
acts = ['info']
|
||||||
|
|
|
@ -443,7 +443,7 @@ img.notselected {
|
||||||
/* lobo layout-specific classes */
|
/* lobo layout-specific classes */
|
||||||
|
|
||||||
.legend {
|
.legend {
|
||||||
margin-top: 3px;
|
margin-top: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* comments */
|
/* comments */
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<metal:block define-macro="asset">
|
<metal:block define-macro="asset">
|
||||||
<div tal:attributes="ondblclick python: item.openEditWindow('edit.html')">
|
<div tal:attributes="ondblclick python: item.openEditWindow('edit.html')">
|
||||||
<div metal:use-macro="views/node_macros/object_actions" />
|
<tal:actions condition="view/showObjectActions">
|
||||||
|
<div metal:use-macro="views/node_macros/object_actions" /></tal:actions>
|
||||||
<h1 tal:content="item/title">Title</h1><br />
|
<h1 tal:content="item/title">Title</h1><br />
|
||||||
<p tal:define="url python: view.getUrlForTarget(item)">
|
<p tal:define="url python: view.getUrlForTarget(item)">
|
||||||
<a tal:omit-tag="view/isAnonymous"
|
<a tal:omit-tag="view/isAnonymous"
|
||||||
|
|
|
@ -49,6 +49,14 @@
|
||||||
|
|
||||||
<!-- ZMI views -->
|
<!-- ZMI views -->
|
||||||
|
|
||||||
|
<browser:page
|
||||||
|
for="cybertools.tracking.interfaces.ITrackingStorage"
|
||||||
|
name="contents.html"
|
||||||
|
template="../../browser/contents.pt"
|
||||||
|
class="cybertools.container.ordered.ContainerView"
|
||||||
|
menu="zmi_views" title="Contents"
|
||||||
|
permission="loops.ManageSite" />
|
||||||
|
|
||||||
<browser:page
|
<browser:page
|
||||||
for="cybertools.tracking.interfaces.ITrackingStorage"
|
for="cybertools.tracking.interfaces.ITrackingStorage"
|
||||||
name="index.html"
|
name="index.html"
|
||||||
|
|
|
@ -49,6 +49,7 @@
|
||||||
<grant role="loops.SiteManager" permission="loops.AssignAsParent" />
|
<grant role="loops.SiteManager" permission="loops.AssignAsParent" />
|
||||||
<grant role="loops.SiteManager" permission="loops.xmlrpc.ManageConcepts" />
|
<grant role="loops.SiteManager" permission="loops.xmlrpc.ManageConcepts" />
|
||||||
<grant role="loops.SiteManager" permission="zope.ManageContent" />
|
<grant role="loops.SiteManager" permission="zope.ManageContent" />
|
||||||
|
<grant role="loops.SiteManager" permission="zope.app.dublincore.change" />
|
||||||
<grant role="loops.SiteManager" permission="zope.View" />
|
<grant role="loops.SiteManager" permission="zope.View" />
|
||||||
|
|
||||||
<role id="loops.xmlrpc.ConceptManager"
|
<role id="loops.xmlrpc.ConceptManager"
|
||||||
|
|
Loading…
Add table
Reference in a new issue