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
	
	 helmutm
						helmutm