Doc webdav: Fix, implement node_res_obj for latest document.
authorP. Christeas <p_christ@hol.gr>
Tue, 12 Oct 2010 10:40:19 +0000 (13:40 +0300)
committerP. Christeas <p_christ@hol.gr>
Tue, 12 Oct 2010 10:40:19 +0000 (13:40 +0300)
bzr revid: p_christ@hol.gr-20101012104019-nhoqnvgpr9ecjjky

addons/document_webdav/document_webdav.py
addons/document_webdav/nodes.py

index fb0b62c..6cc5650 100644 (file)
@@ -38,8 +38,6 @@ class document_davdir(osv.osv):
         if dbro.type == 'directory':
             return nodes.node_dir
         elif dbro.type == 'ressource':
-            assert not dbro.ressource_parent_type_id, \
-                "resource and parent_id at #%d: %r" % (dbro.id, dbro.ressource_parent_type_id)
             return nodes.node_res_dir
         else:
             raise ValueError("dir node for %s type", dbro.type)
index ce847ef..b9483b7 100644 (file)
@@ -157,5 +157,46 @@ class node_database(nodes.node_database):
         return self._get_dav_eprop_hlpr(cr, nodes.node_dir, ns, prop,
                 'document.webdav.dir.property', 'dir_id', False)
 
+class node_res_obj(node_acl_mixin, nodes.node_res_obj):
+    DAV_PROPS = { "DAV:": ('owner', 'group', 
+                            'supported-privilege-set', 
+                            'current-user-privilege-set'), 
+                }
+    DAV_M_NS = { "DAV:" : '_get_dav',}
+    http_options = { 'DAV': ['access-control',] }
+
+    def get_dav_resourcetype(self, cr):
+        return ('collection', 'DAV:')
+
+    def get_dav_props(self, cr):
+        return self._get_dav_props_hlpr(cr, nodes.node_res_obj, 
+                'document.webdav.dir.property', 'dir_id', self.dir_id)
+
+    def get_dav_eprop(self, cr, ns, prop):
+        return self._get_dav_eprop_hlpr(cr, ns, prop, nodes.node_res_obj,
+                'document.webdav.dir.property', 'dir_id', self.dir_id)
+
+
+class node_res_dir(node_acl_mixin, nodes.node_res_dir):
+    DAV_PROPS = { "DAV:": ('owner', 'group', 
+                            'supported-privilege-set', 
+                            'current-user-privilege-set'), 
+                }
+    DAV_M_NS = { "DAV:" : '_get_dav',}
+    http_options = { 'DAV': ['access-control',] }
+    res_obj_class = node_res_obj
+
+    def get_dav_resourcetype(self, cr):
+        return ('collection', 'DAV:')
+
+    def get_dav_props(self, cr):
+        return self._get_dav_props_hlpr(cr, nodes.node_res_dir, 
+                'document.webdav.dir.property', 'dir_id', self.dir_id)
+
+    def get_dav_eprop(self, cr, ns, prop):
+        return self._get_dav_eprop_hlpr(cr, ns, prop, nodes.node_res_dir,
+                'document.webdav.dir.property', 'dir_id', self.dir_id)
+
+
 
 #eof