some minor modifications concerning creation of concepts directly on the concepts folder
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2652 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
50522cf5dc
commit
7a3d57fe5f
7 changed files with 21 additions and 7 deletions
|
@ -164,13 +164,13 @@
|
||||||
permission="zope.ManageContent"
|
permission="zope.ManageContent"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<addMenuItem
|
<!--<addMenuItem
|
||||||
class="loops.concept.Concept"
|
class="loops.concept.Concept"
|
||||||
title="Concept"
|
title="Concept"
|
||||||
description="A Concept is a Concept is a Concept..."
|
description="A Concept is a Concept is a Concept..."
|
||||||
permission="zope.ManageContent"
|
permission="zope.ManageContent"
|
||||||
view="AddLoopsConcept.html"
|
view="AddLoopsConcept.html"
|
||||||
/>
|
/>-->
|
||||||
|
|
||||||
<pages
|
<pages
|
||||||
for="loops.interfaces.IConcept"
|
for="loops.interfaces.IConcept"
|
||||||
|
|
|
@ -29,6 +29,7 @@ from zope.interface import Interface
|
||||||
from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent
|
from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent
|
||||||
|
|
||||||
from zope.app.container.interfaces import INameChooser
|
from zope.app.container.interfaces import INameChooser
|
||||||
|
from zope.app.container.contained import ObjectAddedEvent
|
||||||
#from zope.app.container.contained import NameChooser
|
#from zope.app.container.contained import NameChooser
|
||||||
from zope.app.pagetemplate import ViewPageTemplateFile
|
from zope.app.pagetemplate import ViewPageTemplateFile
|
||||||
from zope.cachedescriptors.property import Lazy
|
from zope.cachedescriptors.property import Lazy
|
||||||
|
@ -568,6 +569,7 @@ class CreateObject(EditObject):
|
||||||
tc = form.get('form.type') or self.defaultTypeToken
|
tc = form.get('form.type') or self.defaultTypeToken
|
||||||
obj.setType(self.loopsRoot.loopsTraverse(tc))
|
obj.setType(self.loopsRoot.loopsTraverse(tc))
|
||||||
notify(ObjectCreatedEvent(obj))
|
notify(ObjectCreatedEvent(obj))
|
||||||
|
#notify(ObjectAddedEvent(obj))
|
||||||
self.object = obj
|
self.object = obj
|
||||||
self.updateFields() # TODO: suppress validation
|
self.updateFields() # TODO: suppress validation
|
||||||
# TODO: error handling
|
# TODO: error handling
|
||||||
|
|
|
@ -30,6 +30,7 @@ from zope.dublincore.interfaces import IZopeDublinCore
|
||||||
from zope.dublincore.annotatableadapter import ZDCAnnotatableAdapter
|
from zope.dublincore.annotatableadapter import ZDCAnnotatableAdapter
|
||||||
from zope.dublincore.zopedublincore import ScalarProperty
|
from zope.dublincore.zopedublincore import ScalarProperty
|
||||||
from zope.interface import implements
|
from zope.interface import implements
|
||||||
|
from zope.interface.interface import InterfaceClass
|
||||||
from zope.security.proxy import isinstance
|
from zope.security.proxy import isinstance
|
||||||
|
|
||||||
from cybertools.storage.interfaces import IStorageInfo
|
from cybertools.storage.interfaces import IStorageInfo
|
||||||
|
@ -65,6 +66,8 @@ def collectAttributeNames(lst, name):
|
||||||
attrs.append(arg)
|
attrs.append(arg)
|
||||||
elif isinstance(arg, type):
|
elif isinstance(arg, type):
|
||||||
attrs.extend(list(getattr(arg, name)))
|
attrs.extend(list(getattr(arg, name)))
|
||||||
|
elif isinstance(arg, InterfaceClass):
|
||||||
|
attrs.extend(list(arg))
|
||||||
else:
|
else:
|
||||||
raise ValueError("Argument must be string or class, '%s' is '%s'." %
|
raise ValueError("Argument must be string or class, '%s' is '%s'." %
|
||||||
(arg, type(arg)))
|
(arg, type(arg)))
|
||||||
|
|
10
concept.py
10
concept.py
|
@ -25,12 +25,14 @@ $Id$
|
||||||
from zope import component, schema
|
from zope import component, schema
|
||||||
from zope.app.container.btree import BTreeContainer
|
from zope.app.container.btree import BTreeContainer
|
||||||
from zope.app.container.contained import Contained
|
from zope.app.container.contained import Contained
|
||||||
|
from zope.app.container.interfaces import IAdding
|
||||||
from zope.cachedescriptors.property import Lazy
|
from zope.cachedescriptors.property import Lazy
|
||||||
from zope.component import adapts
|
from zope.component import adapts
|
||||||
from zope.component.interfaces import ObjectEvent
|
from zope.component.interfaces import ObjectEvent
|
||||||
from zope.event import notify
|
from zope.event import notify
|
||||||
from zope.interface import implements
|
from zope.interface import implements
|
||||||
from zope.interface import alsoProvides, directlyProvides, directlyProvidedBy
|
from zope.interface import alsoProvides, directlyProvides, directlyProvidedBy
|
||||||
|
from zope.publisher.interfaces.browser import IBrowserRequest
|
||||||
from zope.security.proxy import removeSecurityProxy, isinstance
|
from zope.security.proxy import removeSecurityProxy, isinstance
|
||||||
from zope.traversing.api import getName, getParent
|
from zope.traversing.api import getName, getParent
|
||||||
from persistent import Persistent
|
from persistent import Persistent
|
||||||
|
@ -333,9 +335,13 @@ class ConceptTypeSourceList(object):
|
||||||
implements(schema.interfaces.IIterableSource)
|
implements(schema.interfaces.IIterableSource)
|
||||||
|
|
||||||
def __init__(self, context):
|
def __init__(self, context):
|
||||||
self.context = context
|
if IBrowserRequest.providedBy(context):
|
||||||
|
context = context.context
|
||||||
|
if IAdding.providedBy(context):
|
||||||
|
context = context.context
|
||||||
if isinstance(context, AdapterBase):
|
if isinstance(context, AdapterBase):
|
||||||
self.context = self.context.context
|
context = context.context
|
||||||
|
self.context = context
|
||||||
|
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
<require
|
<require
|
||||||
permission="zope.View"
|
permission="zope.View"
|
||||||
attributes="getTypePredicate getDefaultPredicate getTypeConcept
|
attributes="getTypePredicate getDefaultPredicate getTypeConcept
|
||||||
getPredicateType" />
|
getPredicateType getLoopsRoot" />
|
||||||
</class>
|
</class>
|
||||||
|
|
||||||
<interface interface=".interfaces.IConcept"
|
<interface interface=".interfaces.IConcept"
|
||||||
|
|
|
@ -102,7 +102,7 @@ class IConcept(IConceptSchema, ILoopsObject, IPotentialTarget):
|
||||||
"a concept of type 'type'."),
|
"a concept of type 'type'."),
|
||||||
default=None,
|
default=None,
|
||||||
source="loops.conceptTypeSource",
|
source="loops.conceptTypeSource",
|
||||||
required=False)
|
required=True)
|
||||||
|
|
||||||
def getType():
|
def getType():
|
||||||
""" Return a concept that provides the object's type.
|
""" Return a concept that provides the object's type.
|
||||||
|
|
|
@ -23,11 +23,12 @@ $Id$
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from zope import component
|
from zope import component
|
||||||
|
from zope.app.container.interfaces import IObjectAddedEvent
|
||||||
from zope.app.securitypolicy.interfaces import IPrincipalRoleManager
|
from zope.app.securitypolicy.interfaces import IPrincipalRoleManager
|
||||||
from zope.app.securitypolicy.interfaces import IRolePermissionManager
|
from zope.app.securitypolicy.interfaces import IRolePermissionManager
|
||||||
from zope.cachedescriptors.property import Lazy
|
from zope.cachedescriptors.property import Lazy
|
||||||
from zope.interface import implements
|
from zope.interface import implements
|
||||||
from zope.lifecycleevent import IObjectCreatedEvent
|
from zope.lifecycleevent import IObjectCreatedEvent, IObjectModifiedEvent
|
||||||
from zope.security import canAccess, canWrite
|
from zope.security import canAccess, canWrite
|
||||||
from zope.security import checkPermission as baseCheckPermission
|
from zope.security import checkPermission as baseCheckPermission
|
||||||
from zope.security.management import getInteraction
|
from zope.security.management import getInteraction
|
||||||
|
@ -109,6 +110,8 @@ def restrictView(obj, roles=allRolesExceptOwnerAndMaster, revert=False):
|
||||||
|
|
||||||
# event handlers
|
# event handlers
|
||||||
|
|
||||||
|
#@component.adapter(ILoopsObject, IObjectAddedEvent)
|
||||||
|
#@component.adapter(ILoopsObject, IObjectModifiedEvent)
|
||||||
@component.adapter(ILoopsObject, IObjectCreatedEvent)
|
@component.adapter(ILoopsObject, IObjectCreatedEvent)
|
||||||
def setDefaultSecurity(obj, event):
|
def setDefaultSecurity(obj, event):
|
||||||
aObj = adapted(obj)
|
aObj = adapted(obj)
|
||||||
|
|
Loading…
Add table
Reference in a new issue