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: | ||||
|             urlParams['fixed_type'] = 'yes' | ||||
|         urlParams.update(self.addParams) | ||||
|         url = self.page.virtualTargetUrlWithSkin | ||||
|         #url = self.page.virtualTargetUrlWithSkin | ||||
|         url = self.page.virtualTargetUrl | ||||
|         return self.jsOnClick % (self.dialogName, url, self.viewName, | ||||
|                                  urlencode(urlParams)) | ||||
| 
 | ||||
|  |  | |||
|  | @ -25,10 +25,11 @@ $Id$ | |||
| from zope.interface import Interface, Attribute | ||||
| from zope import interface, component, schema | ||||
| 
 | ||||
| from loops.interfaces import IConceptSchema | ||||
| from loops.util import _ | ||||
| 
 | ||||
| 
 | ||||
| class IClassifier(Interface): | ||||
| class IClassifier(IConceptSchema): | ||||
|     """ An object that is able to analyze a resource and identify the | ||||
|         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.write(elements, output) | ||||
|   >>> 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', | ||||
|        viewName=u'')... | ||||
|   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) | ||||
|         instance = IInstance(aObj) | ||||
|         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='edit') | ||||
|         if 'title' in data: | ||||
|  |  | |||
							
								
								
									
										18
									
								
								external/element.py
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								external/element.py
									
										
									
									
										vendored
									
									
								
							|  | @ -25,7 +25,7 @@ $Id$ | |||
| 
 | ||||
| from zope.cachedescriptors.property import Lazy | ||||
| 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 loops.external.interfaces import IElement | ||||
|  | @ -68,17 +68,18 @@ class TypeElement(ConceptElement): | |||
| 
 | ||||
|     def __init__(self, name, title, *args, **kw): | ||||
|         super(TypeElement, self).__init__(name, title, *args, **kw) | ||||
|         ti = self['typeInterface'] | ||||
|         ti = self.get('typeInterface') | ||||
|         if ti: | ||||
|             self['typeInterface'] = '.'.join((ti.__module__, ti.__name__)) | ||||
|         else: | ||||
|             del self['typeInterface'] | ||||
|             if not isinstance(ti, basestring): | ||||
|                 self['typeInterface'] = '.'.join((ti.__module__, ti.__name__)) | ||||
| 
 | ||||
|     def __call__(self, loader): | ||||
|         kw = dict((k, v) for k, v in self.items() | ||||
|                 if k not in ('name', 'title', 'type', 'typeInterface')) | ||||
|         kw['typeInterface'] = resolve(self['typeInterface']) | ||||
|         loader.addConcept(self['name'], self['title'], 'type', **kw) | ||||
|         ti = self.get('typeInterface') | ||||
|         if ti: | ||||
|             kw['typeInterface'] = resolve(ti) | ||||
|         loader.addConcept(self['name'], self['title'], loader.typeConcept, **kw) | ||||
| 
 | ||||
| 
 | ||||
| class ChildElement(Element): | ||||
|  | @ -113,7 +114,8 @@ class NodeElement(Element): | |||
|                          if k not in self.posArgs) | ||||
|         node = loader.addNode(self['name'], self['title'], cont, type, **kw) | ||||
|         if target is not None: | ||||
|             node.target = traverse(loader.context, target) | ||||
|             targetObject = traverse(loader.context, target, None) | ||||
|             node.target = targetObject | ||||
| 
 | ||||
| 
 | ||||
| # 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 | ||||
| 
 | ||||
| 
 | ||||
| class PyReader(dict): | ||||
| class PyReader(object): | ||||
| 
 | ||||
|     implements(IReader) | ||||
| 
 | ||||
|     def __init__(self): | ||||
|         self.elements = [] | ||||
| 
 | ||||
|     def read(self, input): | ||||
|         if not isinstance(input, str): | ||||
|             input = input.read() | ||||
|         exec input in self | ||||
|         return self.elements | ||||
|         proc = InputProcessor() | ||||
|         exec input in proc | ||||
|         return proc.elements | ||||
| 
 | ||||
| 
 | ||||
| class InputProcessor(dict): | ||||
| 
 | ||||
|     def __init__(self): | ||||
|         self.elements = [] | ||||
| 
 | ||||
|     def __getitem__(self, key): | ||||
|         def factory(*args, **kw): | ||||
|  |  | |||
|  | @ -115,7 +115,7 @@ Now we are ready to enter a language-specific title. | |||
|   >>> form.update() | ||||
| 
 | ||||
|   >>> 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 | ||||
| value corresponding to the language preferences that appear in the request. | ||||
|  |  | |||
|  | @ -58,8 +58,8 @@ class I18NValue(PersistentMapping): | |||
|     #def __unicode__(self): | ||||
|     #    return unicode(self.getDefault()) | ||||
| 
 | ||||
|     #def __repr__(self): | ||||
|     #    return repr(self.getDefault()) | ||||
|     def __repr__(self): | ||||
|         return 'I18NValue(%r)' % dict(self) | ||||
| 
 | ||||
| 
 | ||||
| def getI18nValue(obj, attr, langInfo=None): | ||||
|  | @ -115,6 +115,9 @@ class I18NAdapterBase(AdapterBase): | |||
| 
 | ||||
|     @Lazy | ||||
|     def i18nAttributes(self): | ||||
|         if getattr(self.context, '__parent__', None) is None: | ||||
|             # temporary object during creation | ||||
|             return [] | ||||
|         tp = IType(self.context) | ||||
|         attrs = tp.optionsDict.get('i18nattributes', '') | ||||
|         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): | ||||
|         if predicate is None: | ||||
|             predicate = self.concepts.getDefaultPredicate() | ||||
|         if isinstance(predicate, str): | ||||
|         if isinstance(predicate, basestring): | ||||
|             predicate = self.concepts[predicate] | ||||
|         concept = self.concepts[conceptName] | ||||
|         child = self.concepts[childName] | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm