From 10aafc1ea3a3f349fb61aadceeaefbf87a63d80b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Todorovich?= Date: Fri, 20 Apr 2018 10:42:10 -0300 Subject: [PATCH] [document_page] FIX creating history when there are no changes made. Add history name field, to name revisions. Modified views to allow setting this field. [document_page] FIX BUG: UI hanging when editing content. This was due to the api.depends on _compute_diff. Removing it because it's not really necessary since the field is not stored. [document_page] page_id should be readonly. Improve active field [document_page] Update version number [UPD] Update document_page.pot [MIG] document_page_multi_company (#188) * [MIG] document_page_multi_company Added this feature from the old module directly in document_page --- document_page/__manifest__.py | 2 +- document_page/i18n/document_page.pot | 27 +++++++++++++++++-- document_page/models/document_page.py | 27 ++++++++++++++++--- document_page/models/document_page_history.py | 16 ++++++++--- .../security/document_page_security.xml | 14 ++++++++++ document_page/views/document_page.xml | 21 +++++++++++---- document_page/views/document_page_history.xml | 10 ++++--- 7 files changed, 99 insertions(+), 18 deletions(-) diff --git a/document_page/__manifest__.py b/document_page/__manifest__.py index 29e548cc..6c44dccd 100644 --- a/document_page/__manifest__.py +++ b/document_page/__manifest__.py @@ -4,7 +4,7 @@ { 'name': 'Document Page', - 'version': '11.0.1.0.0', + 'version': '11.0.2.1.0', 'category': 'Knowledge Management', 'author': 'OpenERP SA, Odoo Community Association (OCA)', 'images': [ diff --git a/document_page/i18n/document_page.pot b/document_page/i18n/document_page.pot index bfcb4990..87cbb50e 100644 --- a/document_page/i18n/document_page.pot +++ b/document_page/i18n/document_page.pot @@ -13,6 +13,11 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: document_page +#: model:ir.model.fields,field_description:document_page.field_document_page_active +msgid "Active" +msgstr "" + #. module: document_page #: model:ir.ui.view,arch_db:document_page.view_wiki_filter #: model:ir.ui.view,arch_db:document_page.view_wiki_history_filter @@ -94,7 +99,7 @@ msgid "Created on" msgstr "" #. module: document_page -#: model:ir.model.fields,help:document_page.field_document_page_summary +#: model:ir.model.fields,help:document_page.field_document_page_draft_summary msgid "Describe the changes made" msgstr "" @@ -233,12 +238,19 @@ msgid "Menu Name" msgstr "" #. module: document_page +#: model:ir.model.fields,field_description:document_page.field_document_page_draft_name +#: model:ir.model.fields,field_description:document_page.field_document_page_history_name #: model:ir.ui.view,arch_db:document_page.view_category_form #: model:ir.ui.view,arch_db:document_page.view_wiki_form #: model:ir.ui.view,arch_db:document_page.view_wiki_menu_form msgid "Name" msgstr "" +#. module: document_page +#: model:ir.model.fields,help:document_page.field_document_page_draft_name +msgid "Name for the changes made" +msgstr "" + #. module: document_page #: model:ir.model.fields,field_description:document_page.field_document_page_history_page_id msgid "Page" @@ -276,6 +288,17 @@ msgstr "" msgid "Parent Menu" msgstr "" +#. module: document_page +#: model:ir.ui.view,arch_db:document_page.view_wiki_form +#: model:ir.ui.view,arch_db:document_page.wiki_history_form +msgid "Rev 01" +msgstr "" + +#. module: document_page +#: model:ir.ui.view,arch_db:document_page.view_wiki_form +msgid "Revision" +msgstr "" + #. module: document_page #: code:addons/document_page/wizard/document_page_show_diff.py:28 #, python-format @@ -283,8 +306,8 @@ msgid "Select one or maximum two history revisions!" msgstr "" #. module: document_page +#: model:ir.model.fields,field_description:document_page.field_document_page_draft_summary #: model:ir.model.fields,field_description:document_page.field_document_page_history_summary -#: model:ir.model.fields,field_description:document_page.field_document_page_summary msgid "Summary" msgstr "" diff --git a/document_page/models/document_page.py b/document_page/models/document_page.py index 24524210..5ec91dea 100644 --- a/document_page/models/document_page.py +++ b/document_page/models/document_page.py @@ -21,6 +21,8 @@ class DocumentPage(models.Model): default="content" ) + active = fields.Boolean(default=True) + parent_id = fields.Many2one( 'document.page', 'Category', @@ -42,7 +44,16 @@ class DocumentPage(models.Model): ) # no-op computed field - summary = fields.Char( + draft_name = fields.Char( + string='Name', + help='Name for the changes made', + compute=lambda x: x, + inverse=lambda x: x, + ) + + # no-op computed field + draft_summary = fields.Char( + string='Summary', help='Describe the changes made', compute=lambda x: x, inverse=lambda x: x, @@ -93,6 +104,14 @@ class DocumentPage(models.Model): readonly=True, ) + company_id = fields.Many2one( + 'res.company', + 'Company', + help='If set, page is accessible only from this company', + index=True, + ondelete='cascade', + ) + @api.multi def _get_page_index(self, link=True): """Return the index of a document.""" @@ -124,10 +143,12 @@ class DocumentPage(models.Model): @api.multi def _inverse_content(self): for rec in self: - if rec.type == 'content': + if rec.type == 'content' and \ + rec.content != rec.history_head.content: rec._create_history({ + 'name': rec.draft_name, + 'summary': rec.draft_summary, 'content': rec.content, - 'summary': rec.summary, }) @api.multi diff --git a/document_page/models/document_page_history.py b/document_page/models/document_page_history.py index a5e70e78..d7e4a356 100644 --- a/document_page/models/document_page_history.py +++ b/document_page/models/document_page_history.py @@ -14,12 +14,22 @@ class DocumentPageHistory(models.Model): _order = 'id DESC' page_id = fields.Many2one('document.page', 'Page', ondelete='cascade') - summary = fields.Char('Summary', index=True) - content = fields.Text("Content") + name = fields.Char(index=True) + summary = fields.Char(index=True) + content = fields.Text() diff = fields.Text(compute='_compute_diff') + company_id = fields.Many2one( + 'res.company', + 'Company', + help='If set, page is accessible only from this company', + related='page_id.company_id', + store=True, + index=True, + readonly=True, + ) + @api.multi - @api.depends('content', 'page_id.history_ids') def _compute_diff(self): """Shows a diff between this version and the previous version""" history = self.env['document.page.history'] diff --git a/document_page/security/document_page_security.xml b/document_page/security/document_page_security.xml index 57495106..7124e7fd 100644 --- a/document_page/security/document_page_security.xml +++ b/document_page/security/document_page_security.xml @@ -14,4 +14,18 @@ + + document_page multi-company + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + document_page_history multi-company + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + diff --git a/document_page/views/document_page.xml b/document_page/views/document_page.xml index f19341a5..aad355c1 100644 --- a/document_page/views/document_page.xml +++ b/document_page/views/document_page.xml @@ -24,6 +24,7 @@ + @@ -38,6 +39,11 @@
+
+ +

@@ -45,6 +51,7 @@ + @@ -54,17 +61,21 @@ - + diff --git a/document_page/views/document_page_history.xml b/document_page/views/document_page_history.xml index b0b49faf..413fd6e4 100755 --- a/document_page/views/document_page_history.xml +++ b/document_page/views/document_page_history.xml @@ -9,6 +9,7 @@ + @@ -39,18 +40,19 @@ -

+

+ + + + -