diff --git a/addons/document_webdav/document_webdav.py b/addons/document_webdav/document_webdav.py
index 2e1eb8cabd2..aa14bc239bb 100644
--- a/addons/document_webdav/document_webdav.py
+++ b/addons/document_webdav/document_webdav.py
@@ -80,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),
@@ -93,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
diff --git a/addons/document_webdav/security/ir.model.access.csv b/addons/document_webdav/security/ir.model.access.csv
index a77304eb297..987f7a4f90a 100644
--- a/addons/document_webdav/security/ir.model.access.csv
+++ b/addons/document_webdav/security/ir.model.access.csv
@@ -2,3 +2,4 @@
"access_webdav_dir_property_all","webdav.dir.property all","model_document_webdav_dir_property",,1,0,0,0
"access_webdav_dir_property_group_doc_manager","webdav.dir.property document manager","model_document_webdav_dir_property","base.group_system",1,1,1,1
"access_webdav_dir_property_group_system","webdav.dir.property group system","model_document_webdav_dir_property","base.group_system",1,1,1,1
+"access_webdav_file_property_all","webdav.file.property all","model_document_webdav_file_property",,1,1,1,1
diff --git a/addons/document_webdav/webdav_view.xml b/addons/document_webdav/webdav_view.xml
index 2ea0bca5279..4e76346469a 100644
--- a/addons/document_webdav/webdav_view.xml
+++ b/addons/document_webdav/webdav_view.xml
@@ -37,7 +37,7 @@
document.webdav.dir.property
search
-
+
@@ -92,7 +92,68 @@
+
+
+
+ document.webdav.file.property.form
+ document.webdav.file.property
+ form
+
+
+
+
+
+ document.webdav.file.property.tree
+ document.webdav.file.property
+ tree
+
+
+
+
+
+
+
+
+
+
+ Search View: File DAV properties
+ document.webdav.file.property
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ir.actions.act_window
+ document.webdav.file.property
+ form
+ tree,form
+
+
+