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