doc webdav: fix namespaces, properties
bzr revid: p_christ@hol.gr-20101012103830-0mfo4ecuu4lu78ia
This commit is contained in:
parent
eeffc06f2a
commit
96499ac6ce
|
@ -194,7 +194,12 @@ class openerp_dav_handler(dav_interface):
|
|||
pname -- name of the property
|
||||
"""
|
||||
if self.M_NS.has_key(ns):
|
||||
return dav_interface.get_prop(self, uri, ns, propname)
|
||||
try:
|
||||
# if it's not in the interface class, a "DAV:" property
|
||||
# may be at the node class. So shouldn't give up early.
|
||||
return dav_interface.get_prop(self, uri, ns, propname)
|
||||
except DAV_NotFound:
|
||||
pass
|
||||
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
|
||||
if not dbname:
|
||||
if cr: cr.close()
|
||||
|
|
|
@ -48,7 +48,7 @@ def mk_prop_response(self, uri, good_props, bad_props, doc):
|
|||
re=doc.createElement("D:response")
|
||||
# append namespaces to response
|
||||
nsnum=0
|
||||
namespaces = self.namespaces
|
||||
namespaces = self.namespaces[:]
|
||||
if 'DAV:' in namespaces:
|
||||
namespaces.remove('DAV:')
|
||||
for nsname in namespaces:
|
||||
|
@ -108,10 +108,14 @@ def mk_prop_response(self, uri, good_props, bad_props, doc):
|
|||
ve=doc.createElement(ns_prefix+v[0])
|
||||
if need_ns:
|
||||
ve.setAttribute("xmlns:ns"+str(nsnum), v[1])
|
||||
if len(v) > 2 and isinstance(v[2], list):
|
||||
# support nested elements like:
|
||||
# ( 'elem', 'ns:', [('sub-elem1', 'ns1'), ...]
|
||||
_prop_elem_child(ve, v[1], v[2], ns_prefix)
|
||||
if len(v) > 2:
|
||||
if isinstance(v[2], list):
|
||||
# support nested elements like:
|
||||
# ( 'elem', 'ns:', [('sub-elem1', 'ns1'), ...]
|
||||
_prop_elem_child(ve, v[1], v[2], ns_prefix)
|
||||
else:
|
||||
vt =doc.createTextNode(tools.ustr(v[2]))
|
||||
ve.appendChild(vt)
|
||||
pnode.appendChild(ve)
|
||||
else:
|
||||
ve=doc.createTextNode(tools.ustr(v))
|
||||
|
@ -141,7 +145,7 @@ def mk_prop_response(self, uri, good_props, bad_props, doc):
|
|||
else:
|
||||
ns_prefix="ns"+str(namespaces.index(ns))+":"
|
||||
for p,v in good_props[ns].items():
|
||||
if not v:
|
||||
if v is None:
|
||||
continue
|
||||
_prop_child(gp, ns, p, v)
|
||||
|
||||
|
|
|
@ -208,8 +208,9 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
|
|||
if self.headers.has_key("Content-Type"):
|
||||
ct=self.headers['Content-Type']
|
||||
try:
|
||||
location = dc.put(uri,body,ct)
|
||||
location = dc.put(uri, body, ct)
|
||||
except DAV_Error, (ec,dd):
|
||||
self._logger.warning("Cannot PUT to %s: %s", uri, dd, exc_info=True)
|
||||
return self.send_status(ec)
|
||||
|
||||
headers = {}
|
||||
|
|
Loading…
Reference in New Issue