[MIG] document_page_approval: Migration to 17.0

This commit is contained in:
EdgarRetes 2024-10-02 10:40:29 -06:00
parent cb0ad1b1a8
commit 81725ef698
20 changed files with 134 additions and 134 deletions

View File

@ -66,11 +66,5 @@ class DocumentPageHistory(models.Model):
context=True, context=True,
) )
# TODO: Replace for _compute_display_name
def name_get(self): def name_get(self):
return [(rec.id, "%s #%i" % (rec.page_id.name, rec.id)) for rec in self] return [(rec.id, "%s #%i" % (rec.page_id.name, rec.id)) for rec in self]
@api.depends("page_id")
def _compute_display_name(self):
for rec in self:
rec.display_name = rec.id, "%s #%i" % (rec.page_id.name, rec.id)

View File

@ -17,19 +17,19 @@ Document Page Approval
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3 :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github
:target: https://github.com/OCA/knowledge/tree/16.0/document_page_approval :target: https://github.com/OCA/knowledge/tree/17.0/document_page_approval
:alt: OCA/knowledge :alt: OCA/knowledge
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/knowledge-16-0/knowledge-16-0-document_page_approval :target: https://translation.odoo-community.org/projects/knowledge-17-0/knowledge-17-0-document_page_approval
:alt: Translate me on Weblate :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/knowledge&target_branch=16.0 :target: https://runboat.odoo-community.org/builds?repo=OCA/knowledge&target_branch=17.0
:alt: Try me on Runboat :alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5| |badge1| |badge2| |badge3| |badge4| |badge5|
This module adds a workflow to approve page modifications This module adds a workflow to approve page modifications and show the
and show the approved version by default. approved version by default.
**Table of contents** **Table of contents**
@ -41,22 +41,22 @@ Configuration
To configure this module, you need to: To configure this module, you need to:
#. Set a valid email address on the company settings. 1. Set a valid email address on the company settings.
#. Go to Knowledge > Categories. 2. Go to Knowledge > Categories.
#. Create a new page category and set an approver group. 3. Create a new page category and set an approver group. Make sure users
Make sure users belonging to that group have valid email addresses. belonging to that group have valid email addresses.
Usage Usage
===== =====
To use this module, you need to: To use this module, you need to:
#. Go to Knowledge > Pages 1. Go to Knowledge > Pages
#. Create a new page and choose the previously created category. 2. Create a new page and choose the previously created category.
#. A notification is sent to the approvers group with a link to the 3. A notification is sent to the approvers group with a link to the page
page history to review. history to review.
#. Depending on the review, the page history is approved or not. 4. Depending on the review, the page history is approved or not.
#. Users reading the page see the last approved version. 5. Users reading the page see the last approved version.
Bug Tracker Bug Tracker
=========== ===========
@ -64,7 +64,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/knowledge/issues>`_. Bugs are tracked on `GitHub Issues <https://github.com/OCA/knowledge/issues>`_.
In case of trouble, please check there if your issue has already been reported. In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/knowledge/issues/new?body=module:%20document_page_approval%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. `feedback <https://github.com/OCA/knowledge/issues/new?body=module:%20document_page_approval%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues. Do not contact contributors directly about support or help with technical issues.
@ -72,30 +72,34 @@ Credits
======= =======
Authors Authors
~~~~~~~ -------
* Savoir-faire Linux * Savoir-faire Linux
Contributors Contributors
~~~~~~~~~~~~ ------------
* Odoo SA <info@odoo.com> - Odoo SA <info@odoo.com>
* Savoir-faire Linux <support@savoirfairelinux.com>
* Gervais Naoussi <gervaisnaoussi@gmail.com>
* Maxime Chambreuil <mchambreuil@opensourceintegrators.com>
* Iván Todorovich <ivan.todorovich@gmail.com>
* `Tecnativa <https://www.tecnativa.com>`_: - Savoir-faire Linux <support@savoirfairelinux.com>
* Victor M.M. Torres - Gervais Naoussi <gervaisnaoussi@gmail.com>
* Víctor Martínez
* `Guadaltech <https://www.guadaltech.es>`_: - Maxime Chambreuil <mchambreuil@opensourceintegrators.com>
* Fernando La Chica <fernando.lachica@guadaltech.es> - Iván Todorovich <ivan.todorovich@gmail.com>
- `Tecnativa <https://www.tecnativa.com>`__:
- Victor M.M. Torres
- Víctor Martínez
- `Guadaltech <https://www.guadaltech.es>`__:
- Fernando La Chica <fernando.lachica@guadaltech.es>
Maintainers Maintainers
~~~~~~~~~~~ -----------
This module is maintained by the OCA. This module is maintained by the OCA.
@ -107,6 +111,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use. promote its widespread use.
This module is part of the `OCA/knowledge <https://github.com/OCA/knowledge/tree/16.0/document_page_approval>`_ project on GitHub. This module is part of the `OCA/knowledge <https://github.com/OCA/knowledge/tree/17.0/document_page_approval>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@ -3,7 +3,7 @@
{ {
"name": "Document Page Approval", "name": "Document Page Approval",
"version": "16.0.1.1.1", "version": "17.0.1.0.0",
"author": "Savoir-faire Linux, Odoo Community Association (OCA)", "author": "Savoir-faire Linux, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/knowledge", "website": "https://github.com/OCA/knowledge",
"license": "AGPL-3", "license": "AGPL-3",

View File

@ -5,10 +5,10 @@ import logging
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
def post_init_hook(cr, registry): # pragma: no cover def post_init_hook(env): # pragma: no cover
# Set all pre-existing pages history to approved # Set all pre-existing pages history to approved
_logger.info("Setting history to approved.") _logger.info("Setting history to approved.")
cr.execute( env.cr.execute(
""" """
UPDATE document_page_history UPDATE document_page_history
SET state='approved', SET state='approved',
@ -19,7 +19,7 @@ def post_init_hook(cr, registry): # pragma: no cover
) )
def uninstall_hook(cr, registry): # pragma: no cover def uninstall_hook(env): # pragma: no cover
# Remove unapproved pages # Remove unapproved pages
_logger.info("Deleting unapproved Change Requests.") _logger.info("Deleting unapproved Change Requests.")
cr.execute("DELETE FROM document_page_history WHERE state != 'approved'") env.cr.execute("DELETE FROM document_page_history WHERE state != 'approved'")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 126 KiB

View File

@ -19,7 +19,6 @@ class DocumentPage(models.Model):
related="history_head.approved_date", related="history_head.approved_date",
store=True, store=True,
index=True, index=True,
readonly=True,
) )
approved_uid = fields.Many2one( approved_uid = fields.Many2one(
@ -28,7 +27,6 @@ class DocumentPage(models.Model):
related="history_head.approved_uid", related="history_head.approved_uid",
store=True, store=True,
index=True, index=True,
readonly=True,
) )
approval_required = fields.Boolean( approval_required = fields.Boolean(
@ -137,8 +135,9 @@ class DocumentPage(models.Model):
def action_changes_pending_approval(self): def action_changes_pending_approval(self):
self.ensure_one() self.ensure_one()
action = self.env.ref("document_page_approval.action_change_requests") action = self.env["ir.actions.act_window"]._for_xml_id(
action = action.sudo().read()[0] "document_page_approval.action_change_requests"
)
context = literal_eval(action["context"]) context = literal_eval(action["context"])
context["search_default_page_id"] = self.id context["search_default_page_id"] = self.id
context["default_page_id"] = self.id context["default_page_id"] = self.id

View File

@ -22,7 +22,6 @@ class DocumentPageHistory(models.Model):
], ],
"Status", "Status",
default="draft", default="draft",
readonly=True,
) )
approved_date = fields.Datetime() approved_date = fields.Datetime()
@ -79,7 +78,7 @@ class DocumentPageHistory(models.Model):
[("groups_id", "in", guids), ("groups_id", "in", approver_gid.id)] [("groups_id", "in", guids), ("groups_id", "in", approver_gid.id)]
) )
rec.message_subscribe(partner_ids=users.mapped("partner_id").ids) rec.message_subscribe(partner_ids=users.mapped("partner_id").ids)
rec.message_post_with_template(template.id) rec.message_post_with_source(template)
else: else:
# auto-approve if approval is not required # auto-approve if approval is not required
rec.action_approve() rec.action_approve()

View File

@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

@ -0,0 +1,6 @@
To configure this module, you need to:
1. Set a valid email address on the company settings.
2. Go to Knowledge \> Categories.
3. Create a new page category and set an approver group. Make sure
users belonging to that group have valid email addresses.

View File

@ -1,6 +0,0 @@
To configure this module, you need to:
#. Set a valid email address on the company settings.
#. Go to Knowledge > Categories.
#. Create a new page category and set an approver group.
Make sure users belonging to that group have valid email addresses.

View File

@ -0,0 +1,18 @@
- Odoo SA \<<info@odoo.com>\>
- Savoir-faire Linux \<<support@savoirfairelinux.com>\>
- Gervais Naoussi \<<gervaisnaoussi@gmail.com>\>
- Maxime Chambreuil \<<mchambreuil@opensourceintegrators.com>\>
- Iván Todorovich \<<ivan.todorovich@gmail.com>\>
- [Tecnativa](https://www.tecnativa.com):
> - Victor M.M. Torres
> - Víctor Martínez
- [Guadaltech](https://www.guadaltech.es):
- Fernando La Chica \<<fernando.lachica@guadaltech.es>\>

View File

@ -1,14 +0,0 @@
* Odoo SA <info@odoo.com>
* Savoir-faire Linux <support@savoirfairelinux.com>
* Gervais Naoussi <gervaisnaoussi@gmail.com>
* Maxime Chambreuil <mchambreuil@opensourceintegrators.com>
* Iván Todorovich <ivan.todorovich@gmail.com>
* `Tecnativa <https://www.tecnativa.com>`_:
* Victor M.M. Torres
* Víctor Martínez
* `Guadaltech <https://www.guadaltech.es>`_:
* Fernando La Chica <fernando.lachica@guadaltech.es>

View File

@ -0,0 +1,2 @@
This module adds a workflow to approve page modifications and show the
approved version by default.

View File

@ -1,2 +0,0 @@
This module adds a workflow to approve page modifications
and show the approved version by default.

View File

@ -0,0 +1,8 @@
To use this module, you need to:
1. Go to Knowledge \> Pages
2. Create a new page and choose the previously created category.
3. A notification is sent to the approvers group with a link to the
page history to review.
4. Depending on the review, the page history is approved or not.
5. Users reading the page see the last approved version.

View File

@ -1,8 +0,0 @@
To use this module, you need to:
#. Go to Knowledge > Pages
#. Create a new page and choose the previously created category.
#. A notification is sent to the approvers group with a link to the
page history to review.
#. Depending on the review, the page history is approved or not.
#. Users reading the page see the last approved version.

View File

@ -8,10 +8,11 @@
/* /*
:Author: David Goodger (goodger@python.org) :Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ :Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain. :Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils. Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet. customize this style sheet.
@ -274,7 +275,7 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ; margin-left: 2em ;
margin-right: 2em } margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */ pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee } pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 } pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@ -300,7 +301,7 @@ span.option {
span.pre { span.pre {
white-space: pre } white-space: pre }
span.problematic { span.problematic, pre.problematic {
color: red } color: red }
span.section-subtitle { span.section-subtitle {
@ -368,9 +369,9 @@ ul.auto-toc {
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:eaa85b29d79372636ce9dda9fbf87f567e6702f38a57385384a168b28a517ff5 !! source digest: sha256:eaa85b29d79372636ce9dda9fbf87f567e6702f38a57385384a168b28a517ff5
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/knowledge/tree/16.0/document_page_approval"><img alt="OCA/knowledge" src="https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/knowledge-16-0/knowledge-16-0-document_page_approval"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/knowledge&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p> <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/knowledge/tree/17.0/document_page_approval"><img alt="OCA/knowledge" src="https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/knowledge-17-0/knowledge-17-0-document_page_approval"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/knowledge&amp;target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module adds a workflow to approve page modifications <p>This module adds a workflow to approve page modifications and show the
and show the approved version by default.</p> approved version by default.</p>
<p><strong>Table of contents</strong></p> <p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents"> <div class="contents local topic" id="contents">
<ul class="simple"> <ul class="simple">
@ -391,8 +392,8 @@ and show the approved version by default.</p>
<ol class="arabic simple"> <ol class="arabic simple">
<li>Set a valid email address on the company settings.</li> <li>Set a valid email address on the company settings.</li>
<li>Go to Knowledge &gt; Categories.</li> <li>Go to Knowledge &gt; Categories.</li>
<li>Create a new page category and set an approver group. <li>Create a new page category and set an approver group. Make sure users
Make sure users belonging to that group have valid email addresses.</li> belonging to that group have valid email addresses.</li>
</ol> </ol>
</div> </div>
<div class="section" id="usage"> <div class="section" id="usage">
@ -401,8 +402,8 @@ Make sure users belonging to that group have valid email addresses.</li>
<ol class="arabic simple"> <ol class="arabic simple">
<li>Go to Knowledge &gt; Pages</li> <li>Go to Knowledge &gt; Pages</li>
<li>Create a new page and choose the previously created category.</li> <li>Create a new page and choose the previously created category.</li>
<li>A notification is sent to the approvers group with a link to the <li>A notification is sent to the approvers group with a link to the page
page history to review.</li> history to review.</li>
<li>Depending on the review, the page history is approved or not.</li> <li>Depending on the review, the page history is approved or not.</li>
<li>Users reading the page see the last approved version.</li> <li>Users reading the page see the last approved version.</li>
</ol> </ol>
@ -412,7 +413,7 @@ page history to review.</li>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/knowledge/issues">GitHub Issues</a>. <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/knowledge/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported. In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/knowledge/issues/new?body=module:%20document_page_approval%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p> <a class="reference external" href="https://github.com/OCA/knowledge/issues/new?body=module:%20document_page_approval%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p> <p>Do not contact contributors directly about support or help with technical issues.</p>
</div> </div>
<div class="section" id="credits"> <div class="section" id="credits">
@ -454,11 +455,13 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
<div class="section" id="maintainers"> <div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2> <h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p> <p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a> <a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose <p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use.</p> promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/knowledge/tree/16.0/document_page_approval">OCA/knowledge</a> project on GitHub.</p> <p>This module is part of the <a class="reference external" href="https://github.com/OCA/knowledge/tree/17.0/document_page_approval">OCA/knowledge</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p> <p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div> </div>
</div> </div>

View File

@ -14,7 +14,7 @@
type="object" type="object"
string="Send to Review" string="Send to Review"
class="oe_highlight" class="oe_highlight"
attrs="{'invisible':['|','|',('is_approval_required','=',False),('am_i_owner','=',False),('state', 'not in', ['draft'])]}" invisible="not is_approval_required or not am_i_owner or state != 'draft'"
/> />
<!-- approve if i am approver --> <!-- approve if i am approver -->
<button <button
@ -22,7 +22,7 @@
type="object" type="object"
string="Approve" string="Approve"
class="oe_highlight" class="oe_highlight"
attrs="{'invisible':['|','|',('is_approval_required','=',False),('am_i_approver','=',False),('state','not in',['draft','to approve'])]}" invisible="not is_approval_required or not am_i_approver or state not in ('draft', 'to approve')"
/> />
<!-- approve if it's not required and i am owner --> <!-- approve if it's not required and i am owner -->
<button <button
@ -30,34 +30,35 @@
type="object" type="object"
string="Approve" string="Approve"
class="oe_highlight" class="oe_highlight"
attrs="{'invisible':['|','|',('is_approval_required','=',True),('am_i_owner','=',False),('state','not in',['draft', 'to approve'])]}" invisible="is_approval_required or not am_i_owner or state not in ('draft', 'to approve')"
/> />
<!-- cancel if i am owner or approver --> <!-- cancel if i am owner or approver -->
<button <button
name="action_cancel" name="action_cancel"
type="object" type="object"
string="Cancel" string="Cancel"
attrs="{'invisible':['|','&amp;',('am_i_owner','=',False),('am_i_approver','=',False),('state','not in',['draft','to approve'])]}" invisible="(not am_i_owner or not am_i_approver) and (state not in ('draft', 'to approve'))"
/> />
<!-- reopen if i am owner or approver --> <!-- reopen if i am owner or approver -->
<button <button
name="action_draft" name="action_draft"
type="object" type="object"
string="Back to draft" string="Back to draft"
attrs="{'invisible':['|','&amp;',('am_i_owner','=',False),('am_i_approver','=',False),('state','not in',['cancelled'])]}" invisible="(not am_i_owner or not am_i_approver) and (state != 'cancelled')"
/> />
<!-- cancel & reopen, if i am owner or approver --> <!-- cancel & reopen, if i am owner or approver -->
<button <button
name="action_draft" name="action_draft"
type="object" type="object"
string="Back to draft" string="Back to draft"
attrs="{'invisible':['|','&amp;',('am_i_owner','=',False),('am_i_approver','=',False),('state','not in',['to approve'])]}" invisible="(not am_i_owner or not am_i_approver) and (state != 'to approve')"
/> />
<field name="am_i_owner" invisible="1" /> <field name="am_i_owner" invisible="1" />
<field name="am_i_approver" invisible="1" /> <field name="am_i_approver" invisible="1" />
<field name="is_approval_required" invisible="1" /> <field name="is_approval_required" invisible="1" />
<field <field
name="state" name="state"
readonly="1"
widget="statusbar" widget="statusbar"
statusbar_visible="draft,approved" statusbar_visible="draft,approved"
/> />
@ -68,35 +69,31 @@
<field <field
name="approved_uid" name="approved_uid"
readonly="1" readonly="1"
attrs="{'invisible':[('state','not in',['approved'])]}" invisible="state != 'approved'"
/> />
<field <field
name="approved_date" name="approved_date"
readonly="1" readonly="1"
attrs="{'invisible':[('state','not in',['approved'])]}" invisible="state != 'approved'"
/> />
</group> </group>
</xpath> </xpath>
<!-- Readonly fields --> <!-- Readonly fields -->
<field name="content" position="attributes"> <field name="content" position="attributes">
<attribute <attribute name="readonly">state != 'draft'
name="attrs" </attribute>
>{'readonly': [('state', 'not in', ['draft'])]}</attribute>
</field> </field>
<field name="page_id" position="attributes"> <field name="page_id" position="attributes">
<attribute <attribute name="readonly">state != 'draft'
name="attrs" </attribute>
>{'readonly': [('state', 'not in', ['draft'])]}</attribute>
</field> </field>
<field name="name" position="attributes"> <field name="name" position="attributes">
<attribute <attribute name="readonly">state != 'draft'
name="attrs" </attribute>
>{'readonly': [('state', 'not in', ['draft'])]}</attribute>
</field> </field>
<field name="summary" position="attributes"> <field name="summary" position="attributes">
<attribute <attribute name="readonly">state != 'draft'
name="attrs" </attribute>
>{'readonly': [('state', 'not in', ['draft'])]}</attribute>
</field> </field>
<!-- Chatter --> <!-- Chatter -->
<sheet position="after"> <sheet position="after">
@ -119,14 +116,14 @@
position="attributes" position="attributes"
groups="document_page.group_document_manager" groups="document_page.group_document_manager"
> >
<attribute name="attrs">{'readonly': False}</attribute> <attribute name="readonly">False</attribute>
</field> </field>
<field <field
name="summary" name="summary"
position="attributes" position="attributes"
groups="document_page.group_document_manager" groups="document_page.group_document_manager"
> >
<attribute name="attrs">{'readonly': False}</attribute> <attribute name="readonly">False</attribute>
</field> </field>
</field> </field>
</record> </record>
@ -141,7 +138,7 @@
class="alert alert-info" class="alert alert-info"
role="alert" role="alert"
style="margin-bottom:0px;" style="margin-bottom:0px;"
attrs="{'invisible': [('has_changes_pending_approval','=',False)]}" invisible="not has_changes_pending_approval"
> >
This document has <b This document has <b
>Changes Pending Approval</b>. You are viewing the last approved content. >Changes Pending Approval</b>. You are viewing the last approved content.
@ -150,7 +147,7 @@
class="alert alert-warning oe_edit_only" class="alert alert-warning oe_edit_only"
role="alert" role="alert"
style="margin-bottom:0px;" style="margin-bottom:0px;"
attrs="{'invisible': [('is_approval_required','=',False)]}" invisible="not is_approval_required"
> >
This document requires approval. If edited, you will create a new <b This document requires approval. If edited, you will create a new <b
>Change Request</b>. >Change Request</b>.
@ -159,7 +156,7 @@
class="alert alert-warning oe_edit_only" class="alert alert-warning oe_edit_only"
role="alert" role="alert"
style="margin-bottom:0px;" style="margin-bottom:0px;"
attrs="{'invisible': [('user_has_drafts','=',False)]}" invisible="not user_has_drafts"
> >
<b>You already have a Draft Change Request for this page.</b> <b>You already have a Draft Change Request for this page.</b>
It is highly recommended that you edit that one instead of creating a new one. It is highly recommended that you edit that one instead of creating a new one.
@ -174,26 +171,26 @@
name="action_changes_pending_approval" name="action_changes_pending_approval"
string="Change Requests" string="Change Requests"
type="object" type="object"
attrs="{'invisible':[('has_changes_pending_approval','=',False),('user_has_drafts','=',False)]}" invisible="not has_changes_pending_approval and not user_has_drafts"
icon="fa-edit" icon="fa-edit"
/> />
</xpath> </xpath>
<field name="content_uid" position="after"> <field name="content_uid" position="after">
<field name="approved_uid" /> <field name="approved_uid" readonly="1" />
</field> </field>
<field name="content_date" position="attributes"> <field name="content_date" position="attributes">
<attribute name="invisible">1</attribute> <attribute name="invisible">1</attribute>
</field> </field>
<field name="content_date" position="after"> <field name="content_date" position="after">
<field name="approved_date" /> <field name="approved_date" readonly="1" />
</field> </field>
<field name="history_ids" position="inside"> <field name="history_ids" position="inside">
<tree> <tree>
<field name="id" /> <field name="id" />
<field name="approved_date" /> <field name="approved_date" readonly="1" />
<field name="summary" /> <field name="summary" />
<field name="create_uid" /> <field name="create_uid" />
<field name="approved_uid" /> <field name="approved_uid" readonly="1" />
</tree> </tree>
</field> </field>
</field> </field>
@ -205,12 +202,9 @@
<field name="inherit_id" ref="document_page.view_wiki_menu_form" /> <field name="inherit_id" ref="document_page.view_wiki_menu_form" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="content" position="before"> <field name="content" position="before">
<group <group class="oe_read_only" invisible="type != 'content'">
class="oe_read_only" <field name="approved_date" readonly="1" />
attrs="{'invisible':[('type','!=','content')]}" <field name="approved_uid" readonly="1" />
>
<field name="approved_date" />
<field name="approved_uid" />
</group> </group>
</field> </field>
</field> </field>
@ -225,7 +219,8 @@
<field name="approval_required" /> <field name="approval_required" />
<field <field
name="approver_gid" name="approver_gid"
attrs="{'invisible':[('approval_required','!=', True)], 'required':[('approval_required','=', True)]}" invisible="not approval_required"
required="approval_required"
/> />
</field> </field>
</field> </field>
@ -242,9 +237,9 @@
<attribute name="decoration-muted">state=='cancelled'</attribute> <attribute name="decoration-muted">state=='cancelled'</attribute>
</tree> </tree>
<tree position="inside"> <tree position="inside">
<field name="state" /> <field name="state" readonly="1" />
<field name="approved_uid" /> <field name="approved_uid" readonly="1" />
<field name="approved_date" /> <field name="approved_date" readonly="1" />
</tree> </tree>
</field> </field>
</record> </record>
@ -255,7 +250,7 @@
<field name="inherit_id" ref="document_page.view_wiki_history_filter" /> <field name="inherit_id" ref="document_page.view_wiki_history_filter" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="page_id" position="before"> <field name="page_id" position="before">
<field name="state" /> <field name="state" readonly="1" />
</field> </field>
<field name="create_uid" position="after"> <field name="create_uid" position="after">
<filter name="draft" string="Draft" domain="[('state','=','draft')]" /> <filter name="draft" string="Draft" domain="[('state','=','draft')]" />
@ -296,9 +291,8 @@
<field name="name">Change Requests</field> <field name="name">Change Requests</field>
<field name="res_model">document.page.history</field> <field name="res_model">document.page.history</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field <field name="context">{'search_default_draft': 1, 'search_default_pending': 1}
name="context" </field>
>{'search_default_draft': 1, 'search_default_pending': 1}</field>
</record> </record>
<menuitem <menuitem
id="menu_page_change_requests" id="menu_page_change_requests"