Fix collection properties set by proppatch or mk* requests

This commit is contained in:
Guillaume Ayoub 2013-05-13 23:19:22 +02:00
parent fab7796ca0
commit b7aa5c8d14

View File

@ -148,18 +148,21 @@ def props_from_request(root, actions=("set", "remove")):
prop_element = action_element.find(_tag("D", "prop")) prop_element = action_element.find(_tag("D", "prop"))
if prop_element is not None: if prop_element is not None:
for prop in prop_element: for prop in prop_element:
result[_tag_from_clark(prop.tag)] = prop.text if prop.tag == _tag("D", "resourcetype"):
if prop.tag == "resourcetype":
for resource_type in prop: for resource_type in prop:
if resource_type.tag in ("calendar", "addressbook"): if resource_type.tag == _tag("C", "calendar"):
result["resourcetype"] = \ result["tag"] = "VCALENDAR"
"V%s" % resource_type.tag.upper()
break break
elif prop.tag == "supported-calendar-component-set": elif resource_type.tag == _tag("CR", "addressbook"):
result["tag"] = "VADDRESSBOOK"
break
elif prop.tag == _tag("C", "supported-calendar-component-set"):
result[_tag_from_clark(prop.tag)] = ",".join( result[_tag_from_clark(prop.tag)] = ",".join(
supported_comp.attrib["name"] supported_comp.attrib["name"]
for supported_comp in prop for supported_comp in prop
if supported_comp.tag == "comp") if supported_comp.tag == _tag("C", "comp"))
else:
result[_tag_from_clark(prop.tag)] = prop.text
return result return result