[gen] Added attribute 'xml' on every field allowing to customize the XML marshalling process. [gen] Added new layout 'xml', now different from the 'view' layout, allowing to define which fields are to be dumped in the XML version of some object. [gen] Security fix in ToolMixin::getUser. [gen] Bugfix in Mixin::getUrl. [shared] dav.py: method 'get' can now accept parameters. [shared] xml_parser: changes to the XmlMarshaller (due to XML-related changes).
This commit is contained in:
		
							parent
							
								
									f055ec1754
								
							
						
					
					
						commit
						c53654a1a1
					
				
					 19 changed files with 119 additions and 80 deletions
				
			
		|  | @ -530,7 +530,7 @@ class BaseMixin: | |||
|                     res = XmlMarshaller().marshall(methodRes, objectType='appy') | ||||
|             except Exception, e: | ||||
|                 tb = sutils.Traceback.get() | ||||
|                 res = XmlMarshaller().marshall(tb, objectType='appy') | ||||
|                 res = XmlMarshaller(rootTag='exception').marshall(tb) | ||||
|         return res | ||||
| 
 | ||||
|     def say(self, msg, type='info'): | ||||
|  | @ -1430,10 +1430,12 @@ class BaseMixin: | |||
|         return layoutType in showValue | ||||
| 
 | ||||
|     getUrlDefaults = {'page':True, 'nav':True} | ||||
|     def getUrl(self, base=None, mode='view', inPopup=False, **kwargs): | ||||
|     def getUrl(self, base=None, mode='view', inPopup=False, relative=False, | ||||
|                **kwargs): | ||||
|         '''Returns an URL for this object. | ||||
|            * If p_base is None, it will be the base URL for this object | ||||
|              (ie, Zope self.absolute_url()). | ||||
|              (ie, Zope self.absolute_url() or an URL this is relative to the | ||||
|              root site if p_relative is True). | ||||
|            * p_mode can be "edit", "view" or "raw" (a non-param, base URL) | ||||
|            * If p_inPopup is True, the link will be opened in the Appy iframe. | ||||
|              An additional param "popup=1" will be added to URL params, in order | ||||
|  | @ -1447,19 +1449,20 @@ class BaseMixin: | |||
|         # Define the URL suffix | ||||
|         suffix = '' | ||||
|         if mode != 'raw': suffix = '/%s' % mode | ||||
|         # Define base URL if omitted | ||||
|         # Define the base URL if omitted | ||||
|         if not base: | ||||
|             base = self.absolute_url() + suffix | ||||
|             base = relative and self.absolute_url_path() or self.absolute_url() | ||||
|             base += suffix | ||||
|             existingParams = '' | ||||
|         else: | ||||
|             existingParams = urllib.splitquery(base)[1] | ||||
|         # If a raw URL is asked, remove any param and suffix. | ||||
|         # If a raw URL is asked, remove any param and suffix | ||||
|         if mode == 'raw': | ||||
|             if '?' in base: base = base[:base.index('?')] | ||||
|             base = base.strip('/') | ||||
|             base = base.rstrip('/') | ||||
|             for mode in ('view', 'edit'): | ||||
|                 if base.endswith(mode): | ||||
|                     base = base[:-len(mode)].strip('/') | ||||
|                     base = base[:-len(mode)].rstrip('/') | ||||
|                     break | ||||
|             return base | ||||
|         # Manage default args | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Gaetan Delannay
						Gaetan Delannay