bug fixes for import, i18n, actions
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2437 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									86d7781725
								
							
						
					
					
						commit
						32ef1a067d
					
				
					 9 changed files with 34 additions and 22 deletions
				
			
		|  | @ -68,7 +68,8 @@ class DialogAction(Action): | ||||||
|         if self.fixedType: |         if self.fixedType: | ||||||
|             urlParams['fixed_type'] = 'yes' |             urlParams['fixed_type'] = 'yes' | ||||||
|         urlParams.update(self.addParams) |         urlParams.update(self.addParams) | ||||||
|         url = self.page.virtualTargetUrlWithSkin |         #url = self.page.virtualTargetUrlWithSkin | ||||||
|  |         url = self.page.virtualTargetUrl | ||||||
|         return self.jsOnClick % (self.dialogName, url, self.viewName, |         return self.jsOnClick % (self.dialogName, url, self.viewName, | ||||||
|                                  urlencode(urlParams)) |                                  urlencode(urlParams)) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -25,10 +25,11 @@ $Id$ | ||||||
| from zope.interface import Interface, Attribute | from zope.interface import Interface, Attribute | ||||||
| from zope import interface, component, schema | from zope import interface, component, schema | ||||||
| 
 | 
 | ||||||
|  | from loops.interfaces import IConceptSchema | ||||||
| from loops.util import _ | from loops.util import _ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class IClassifier(Interface): | class IClassifier(IConceptSchema): | ||||||
|     """ An object that is able to analyze a resource and identify the |     """ An object that is able to analyze a resource and identify the | ||||||
|         concepts to assign. |         concepts to assign. | ||||||
|     """ |     """ | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								external/README.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								external/README.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -82,7 +82,7 @@ Writing object information to the external storage | ||||||
|   >>> writer = PyWriter() |   >>> writer = PyWriter() | ||||||
|   >>> writer.write(elements, output) |   >>> writer.write(elements, output) | ||||||
|   >>> print output.getvalue() |   >>> print output.getvalue() | ||||||
|   type(u'customer', u'Customer', options=u'', viewName=u'')... |   type(u'customer', u'Customer', options=u'', typeInterface=u'', viewName=u'')... | ||||||
|   type(u'query', u'Query', options=u'', typeInterface='loops.query.IQueryConcept', |   type(u'query', u'Query', options=u'', typeInterface='loops.query.IQueryConcept', | ||||||
|        viewName=u'')... |        viewName=u'')... | ||||||
|   concept(u'myquery', u'My Query', u'query', options=u'', viewName='mystuff.html')... |   concept(u'myquery', u'My Query', u'query', options=u'', viewName='mystuff.html')... | ||||||
|  |  | ||||||
							
								
								
									
										3
									
								
								external/base.py
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								external/base.py
									
										
									
									
										vendored
									
									
								
							|  | @ -125,7 +125,8 @@ class Extractor(Base): | ||||||
|         schema = schemaFactory(ti, manager=self) #, request=self.request) |         schema = schemaFactory(ti, manager=self) #, request=self.request) | ||||||
|         instance = IInstance(aObj) |         instance = IInstance(aObj) | ||||||
|         instance.template = schema |         instance.template = schema | ||||||
|         # TODO: use ``_not_exportable`` attribute of adapter to control export |         # TODO: use ``_not_exportable`` attribute of adapter to control export; | ||||||
|  |         # this should also convert object attributes like e.g. typeInterface | ||||||
|         #data = instance.applyTemplate(mode='export') |         #data = instance.applyTemplate(mode='export') | ||||||
|         data = instance.applyTemplate(mode='edit') |         data = instance.applyTemplate(mode='edit') | ||||||
|         if 'title' in data: |         if 'title' in data: | ||||||
|  |  | ||||||
							
								
								
									
										16
									
								
								external/element.py
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								external/element.py
									
										
									
									
										vendored
									
									
								
							|  | @ -25,7 +25,7 @@ $Id$ | ||||||
| 
 | 
 | ||||||
| from zope.cachedescriptors.property import Lazy | from zope.cachedescriptors.property import Lazy | ||||||
| from zope.dottedname.resolve import resolve | from zope.dottedname.resolve import resolve | ||||||
| from zope.interface import implements | from zope.interface import Interface, implements | ||||||
| from zope.traversing.api import getName, traverse | from zope.traversing.api import getName, traverse | ||||||
| 
 | 
 | ||||||
| from loops.external.interfaces import IElement | from loops.external.interfaces import IElement | ||||||
|  | @ -68,17 +68,18 @@ class TypeElement(ConceptElement): | ||||||
| 
 | 
 | ||||||
|     def __init__(self, name, title, *args, **kw): |     def __init__(self, name, title, *args, **kw): | ||||||
|         super(TypeElement, self).__init__(name, title, *args, **kw) |         super(TypeElement, self).__init__(name, title, *args, **kw) | ||||||
|         ti = self['typeInterface'] |         ti = self.get('typeInterface') | ||||||
|         if ti: |         if ti: | ||||||
|  |             if not isinstance(ti, basestring): | ||||||
|                 self['typeInterface'] = '.'.join((ti.__module__, ti.__name__)) |                 self['typeInterface'] = '.'.join((ti.__module__, ti.__name__)) | ||||||
|         else: |  | ||||||
|             del self['typeInterface'] |  | ||||||
| 
 | 
 | ||||||
|     def __call__(self, loader): |     def __call__(self, loader): | ||||||
|         kw = dict((k, v) for k, v in self.items() |         kw = dict((k, v) for k, v in self.items() | ||||||
|                 if k not in ('name', 'title', 'type', 'typeInterface')) |                 if k not in ('name', 'title', 'type', 'typeInterface')) | ||||||
|         kw['typeInterface'] = resolve(self['typeInterface']) |         ti = self.get('typeInterface') | ||||||
|         loader.addConcept(self['name'], self['title'], 'type', **kw) |         if ti: | ||||||
|  |             kw['typeInterface'] = resolve(ti) | ||||||
|  |         loader.addConcept(self['name'], self['title'], loader.typeConcept, **kw) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class ChildElement(Element): | class ChildElement(Element): | ||||||
|  | @ -113,7 +114,8 @@ class NodeElement(Element): | ||||||
|                          if k not in self.posArgs) |                          if k not in self.posArgs) | ||||||
|         node = loader.addNode(self['name'], self['title'], cont, type, **kw) |         node = loader.addNode(self['name'], self['title'], cont, type, **kw) | ||||||
|         if target is not None: |         if target is not None: | ||||||
|             node.target = traverse(loader.context, target) |             targetObject = traverse(loader.context, target, None) | ||||||
|  |             node.target = targetObject | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # not yet implemented | # not yet implemented | ||||||
|  |  | ||||||
							
								
								
									
										16
									
								
								external/pyfunc.py
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								external/pyfunc.py
									
										
									
									
										vendored
									
									
								
							|  | @ -30,18 +30,22 @@ from loops.external.interfaces import IReader, IWriter | ||||||
| from loops.external.element import elementTypes | from loops.external.element import elementTypes | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class PyReader(dict): | class PyReader(object): | ||||||
| 
 | 
 | ||||||
|     implements(IReader) |     implements(IReader) | ||||||
| 
 | 
 | ||||||
|     def __init__(self): |  | ||||||
|         self.elements = [] |  | ||||||
| 
 |  | ||||||
|     def read(self, input): |     def read(self, input): | ||||||
|         if not isinstance(input, str): |         if not isinstance(input, str): | ||||||
|             input = input.read() |             input = input.read() | ||||||
|         exec input in self |         proc = InputProcessor() | ||||||
|         return self.elements |         exec input in proc | ||||||
|  |         return proc.elements | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class InputProcessor(dict): | ||||||
|  | 
 | ||||||
|  |     def __init__(self): | ||||||
|  |         self.elements = [] | ||||||
| 
 | 
 | ||||||
|     def __getitem__(self, key): |     def __getitem__(self, key): | ||||||
|         def factory(*args, **kw): |         def factory(*args, **kw): | ||||||
|  |  | ||||||
|  | @ -115,7 +115,7 @@ Now we are ready to enter a language-specific title. | ||||||
|   >>> form.update() |   >>> form.update() | ||||||
| 
 | 
 | ||||||
|   >>> topic01.title |   >>> topic01.title | ||||||
|   {'en': u'loops for Zope 3', 'it': u'loops per Zope 3'} |   I18NValue({'en': u'loops for Zope 3', 'it': u'loops per Zope 3'}) | ||||||
| 
 | 
 | ||||||
| If we access an i18n attribute via a view that is i18n-aware we get the | If we access an i18n attribute via a view that is i18n-aware we get the | ||||||
| value corresponding to the language preferences that appear in the request. | value corresponding to the language preferences that appear in the request. | ||||||
|  |  | ||||||
|  | @ -58,8 +58,8 @@ class I18NValue(PersistentMapping): | ||||||
|     #def __unicode__(self): |     #def __unicode__(self): | ||||||
|     #    return unicode(self.getDefault()) |     #    return unicode(self.getDefault()) | ||||||
| 
 | 
 | ||||||
|     #def __repr__(self): |     def __repr__(self): | ||||||
|     #    return repr(self.getDefault()) |         return 'I18NValue(%r)' % dict(self) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def getI18nValue(obj, attr, langInfo=None): | def getI18nValue(obj, attr, langInfo=None): | ||||||
|  | @ -115,6 +115,9 @@ class I18NAdapterBase(AdapterBase): | ||||||
| 
 | 
 | ||||||
|     @Lazy |     @Lazy | ||||||
|     def i18nAttributes(self): |     def i18nAttributes(self): | ||||||
|  |         if getattr(self.context, '__parent__', None) is None: | ||||||
|  |             # temporary object during creation | ||||||
|  |             return [] | ||||||
|         tp = IType(self.context) |         tp = IType(self.context) | ||||||
|         attrs = tp.optionsDict.get('i18nattributes', '') |         attrs = tp.optionsDict.get('i18nattributes', '') | ||||||
|         return [attr.strip() for attr in attrs.split(',')] |         return [attr.strip() for attr in attrs.split(',')] | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								setup.py
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								setup.py
									
										
									
									
									
								
							|  | @ -155,7 +155,7 @@ class SetupManager(object): | ||||||
|     def assignChild(self, conceptName, childName, predicate=None): |     def assignChild(self, conceptName, childName, predicate=None): | ||||||
|         if predicate is None: |         if predicate is None: | ||||||
|             predicate = self.concepts.getDefaultPredicate() |             predicate = self.concepts.getDefaultPredicate() | ||||||
|         if isinstance(predicate, str): |         if isinstance(predicate, basestring): | ||||||
|             predicate = self.concepts[predicate] |             predicate = self.concepts[predicate] | ||||||
|         concept = self.concepts[conceptName] |         concept = self.concepts[conceptName] | ||||||
|         child = self.concepts[childName] |         child = self.concepts[childName] | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm