[MERGE]
[odoo/odoo.git] / addons / document_webdav / document_webdav.py
index b060320..f5fa7b5 100644 (file)
@@ -46,8 +46,6 @@ class document_davdir(osv.osv):
             raise ValueError("dir node for %s type", dbro.type)
 
     def _prepare_context(self, cr, uid, nctx, context=None):
-        if not context:
-            context = {}
         nctx.node_file_class = nodes.node_file
         # We can fill some more fields, but avoid any expensive function
         # that might be not worth preparing.
@@ -82,6 +80,10 @@ class dav_dir_property(osv.osv):
     _name = 'document.webdav.dir.property'
     
     _columns = {
+        'create_date': fields.datetime('Date Created', readonly=True),
+        'create_uid':  fields.many2one('res.users', 'Creator', readonly=True),
+        'write_date': fields.datetime('Date Modified', readonly=True),
+        'write_uid':  fields.many2one('res.users', 'Last Modification User', readonly=True),
         'dir_id': fields.many2one('document.directory', 'Directory', required=False, select=1),
         'namespace': fields.char('Namespace', size=127, required=True),
         'name': fields.char('Name', size=64, required=True),
@@ -95,4 +97,34 @@ class dav_dir_property(osv.osv):
         
 dav_dir_property()
 
+class dav_file_property(osv.osv):
+    """ Arbitrary WebDAV properties, attached to ir.attachments.
+    
+    A special case is the locks that can be applied on file nodes.
+    
+    There _can_ be properties without a file (RFC?), which means that they
+    globally apply to all the attachments of the present database.
+    
+    TODO access permissions, per property.
+    """
+    _name = 'document.webdav.file.property'
+    
+    _columns = {
+        'create_date': fields.datetime('Date Created', readonly=True),
+        'create_uid':  fields.many2one('res.users', 'Creator', readonly=True),
+        'write_date': fields.datetime('Date Modified', readonly=True),
+        'write_uid':  fields.many2one('res.users', 'Last Modification User', readonly=True),
+        'file_id': fields.many2one('ir.attachment', 'Document', required=False, select=1),
+        'namespace': fields.char('Namespace', size=127, required=True),
+        'name': fields.char('Name', size=64, required=True),
+        'value': fields.text('Value'),
+        'do_subst': fields.boolean('Substitute', required=True),
+        }
+        
+    _defaults = {
+        'do_subst': False,
+        }
+        
+dav_file_property()
+
 #eof
\ No newline at end of file