diff options
Diffstat (limited to 'addons/document_webdav')
| -rw-r--r-- | addons/document_webdav/document_webdav.py | 34 | ||||
| -rw-r--r-- | addons/document_webdav/security/ir.model.access.csv | 1 | ||||
| -rw-r--r-- | addons/document_webdav/webdav_view.xml | 63 |
3 files changed, 97 insertions, 1 deletions
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 @@ <field name="model">document.webdav.dir.property</field> <field name="type">search</field> <field name="arch" type="xml"> - <search string="Search Document storage"> + <search string="Search Document properties"> <field name="name" /> <field name="namespace" /> <newline/> @@ -92,7 +92,68 @@ </page> </field> </record> + + <!-- File properties --> + <record model="ir.ui.view" id="view_file_props_form"> + <field name="name">document.webdav.file.property.form</field> + <field name="model">document.webdav.file.property</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Properties"> + <field name="namespace"/> + <field name="name"/> + <newline /> + <field name="file_id" /> + <field name="do_subst" /> + <newline /> + <field name="value" colspan="4" /> + </form> + </field> + </record> + <record model="ir.ui.view" id="view_file_props_tree"> + <field name="name">document.webdav.file.property.tree</field> + <field name="model">document.webdav.file.property</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Properties" toolbar="1"> + <field name="file_id" /> + <field name="namespace"/> + <field name="name"/> + </tree> + </field> + </record> + + <record id="view_file_props_filter" model="ir.ui.view"> + <field name="name">Search View: File DAV properties</field> + <field name="model">document.webdav.file.property</field> + <field name="type">search</field> + <field name="arch" type="xml"> + <search string="Search Document properties"> + <field name="name" /> + <field name="namespace" /> + <newline/> + <group expand="0" string="Group By..." groups="base.group_extended"> + <filter string="Document" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'file_id'}"/> + <filter string="Namespace" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'namespace'}"/> + </group> + </search> + </field> + </record> + + <record model="ir.actions.act_window" id="action_file_props_form"> + <field name="type">ir.actions.act_window</field> + <field name="res_model">document.webdav.file.property</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="search_view_id" ref="view_file_props_filter"/> + </record> + <menuitem + name="DAV properties for documents" + action="action_file_props_form" + id="menu_file_props" + groups="base.group_no_one" + parent="document.menu_document_management_configuration"/> </data> </openerp> |
