Commit ee0526ec authored by 's avatar

*** empty log message ***

parent 4f5b11dc
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
############################################################################## ##############################################################################
"""Property sheets""" """Property sheets"""
__version__='$Revision: 1.13 $'[11:-2] __version__='$Revision: 1.14 $'[11:-2]
import time, string, App.Management import time, string, App.Management
from ZPublisher.Converters import type_converters from ZPublisher.Converters import type_converters
...@@ -283,15 +283,19 @@ class PropertySheet(Persistent, Implicit): ...@@ -283,15 +283,19 @@ class PropertySheet(Persistent, Implicit):
# return property names and values. # return property names and values.
for item in self.propertyMap(): for item in self.propertyMap():
name, type=item['id'], item.get('type','string') name, type=item['id'], item.get('type','string')
meta=item.get('meta', {})
value=self.getProperty(name) value=self.getProperty(name)
if type=='tokens': if type=='tokens':
value=join(value, ' ') value=join(value, ' ')
elif type=='lines': elif type=='lines':
value=join(value, '\n') value=join(value, '\n')
if meta.get('dav_xml', 0):
prop=value # allow for xml properties
else: prop=' <n:%s>%s</n:%s>' % (name, value, name) meta=item.get('meta', {})
attrs=meta.get('__xml_attrs__', '')
if attrs:
attrs=map(lambda n, v: ' %s="%s"', attrs.items())
attrs=join(attrs, '')
prop=' <n:%s%s>%s</n:%s>' % (name, attrs, value, name)
result.append(prop) result.append(prop)
if not result: return '' if not result: return ''
result=join(result, '\n') result=join(result, '\n')
...@@ -304,21 +308,25 @@ class PropertySheet(Persistent, Implicit): ...@@ -304,21 +308,25 @@ class PropertySheet(Persistent, Implicit):
if ns==xml_id: if ns==xml_id:
if not propdict.has_key(name): if not propdict.has_key(name):
prop=' <n:%s/>' % name prop=' <n:%s/>' % name
emsg=errormsg % 'Property not found: %s' % name emsg=errormsg % (
'The property %s does not exist.' % name)
result.append(propstat % (prop, '404 Not Found', emsg)) result.append(propstat % (prop, '404 Not Found', emsg))
else: else:
item=propdict[name] item=propdict[name]
name, type=item['id'], item.get('type','string') name, type=item['id'], item.get('type','string')
meta=item.get('meta', {})
value=self.getProperty(name) value=self.getProperty(name)
if type=='tokens': if type=='tokens':
value=join(value, ' ') value=join(value, ' ')
elif type=='lines': elif type=='lines':
value=join(value, '\n') value=join(value, '\n')
if meta.get('dav_xml', 0):
prop=value # allow for xml properties
else: meta=item.get('meta', {})
prop=' <n:%s>%s</n:%s>' % (name, value, name) attrs=meta.get('__xml_attrs__', '')
if attrs:
attrs=map(lambda n, v: ' %s="%s"', attrs.items())
attrs=join(attrs, '')
prop=' <n:%s%s>%s</n:%s>' % (name, attrs, value, name)
result.append(propstat % (prop, '200 OK', '')) result.append(propstat % (prop, '200 OK', ''))
if not result: return '' if not result: return ''
return join(result, '') return join(result, '')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment