Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
94da6c1
create document_page_approval module
cloutierjo Apr 16, 2013
c5cb649
[IMP] Documentation
Jul 19, 2013
a5204c3
Set document_page_approval as unported
Jul 18, 2014
a007d77
start porting
gborelli Nov 11, 2014
669aec7
Comment workflow that cause the error
llacroix Dec 29, 2014
605e16e
[IMP] - Changed string from email template.
Jul 23, 2015
5a58660
[FIX] - document-page-approval: Fixes #60 url not valid when website …
Aug 19, 2015
d310ad7
[MIG] document_page_approval: Migration to 9.0
naousse Oct 28, 2015
2e13977
[MIG] document_page_approval: Migration to 10.0
LeartS Dec 22, 2016
ba0406e
[FIX] View
max3903 Apr 13, 2018
7606fbe
[IMP][10.0][document_page_approval] Change Requests and workflow impr…
ivantodorovich Apr 13, 2018
2b3d805
[MIG] document_page_approval: Migration to 11.0
Jun 14, 2018
3674016
[FIX+IMP] document_page_approval:
ivantodorovich Apr 20, 2018
9828042
[FIX] pylint/javascript-lint
MiquelRForgeFlow Mar 11, 2019
1fe3f23
[FIX] document_page_aproval: Modify in records rules
nicomacr May 31, 2019
ba72e36
[MIG] document_page_approval: Migration to v12
Aug 23, 2019
ac79a28
[IMP] document_page_approval: black, isort
Jul 4, 2020
e47b36f
Migrate to 13.0 document_page_approval
Jul 4, 2020
369c008
[IMP] document_page_approval: black, isort, prettier + squashed admin…
jeroen-vet Sep 22, 2020
4b95695
[MIG] document_page_approval: Migration to 14.0
jeroen-vet Feb 23, 2021
80d354e
[FIX] document_page_approval: Avoid W7940 (dangerous-view-replace-wo-…
pedrobaeza Mar 30, 2022
a5f7e6c
[MIG] document_page_approval: Migration to 15.0
victoralmau Jul 26, 2022
b058ea7
[16.0][MIG] document_page_approval: Migration to 16.0
FernandoRomera Dec 13, 2022
e08390e
Translated using Weblate (Italian)
mymage Dec 28, 2022
9b841c5
Translated using Weblate (Croatian)
badbole Feb 15, 2023
8f2b50a
Translated using Weblate (Italian)
francesco-ooops Apr 7, 2023
2b232be
Translated using Weblate (Italian)
mymage Apr 10, 2023
254eef6
[FIX] document_page_approval: Change mail template expressions
victoralmau Apr 19, 2023
80314f7
Translated using Weblate (Italian)
francesco-ooops Apr 26, 2023
d0996aa
Translated using Weblate (Italian)
mymage May 18, 2023
1ed365e
Translated using Weblate (Spanish)
luis-ron Jun 6, 2023
b6c2e14
Translated using Weblate (Italian)
francesco-ooops Jun 6, 2023
38e93e0
Translated using Weblate (Italian)
mymage Jun 22, 2023
e3f981b
Translated using Weblate (Spanish)
Ivorra78 Aug 4, 2023
2b9e8eb
Translated using Weblate (Italian)
mymage Sep 4, 2023
dc21a03
Translated using Weblate (Spanish)
Ivorra78 Sep 5, 2023
66de216
Translated using Weblate (Portuguese)
peterromao Feb 28, 2024
80871b1
Translated using Weblate (Italian)
mymage Apr 2, 2024
3c54e4e
[FIX] document_page_approval: Add correct followers in history pages
victoralmau Feb 23, 2021
6aa372e
Translated using Weblate (Spanish)
berisoft-arg May 15, 2024
61ab32c
Translated using Weblate (Swedish)
jakobkrabbe Jun 19, 2024
80d0e72
[IMP] document_page_approval: pre-commit auto fixes
victoralmau Nov 12, 2024
a71565a
[MIG] document_page_approval: Migration to 17.0
EdgarRetes Oct 2, 2024
302192d
[MIG] document_page_approval: Finish migration
victoralmau Nov 12, 2024
b8c5cc4
[UPD] Update document_page_approval.pot
Nov 13, 2024
b444907
[BOT] post-merge updates
OCA-git-bot Nov 13, 2024
33b26e9
Update translation files
weblate Nov 13, 2024
53e7e3c
[UPD] Update document_page_approval.pot
Jan 24, 2025
92d38fd
Update translation files
weblate Jan 24, 2025
ba198e9
Translated using Weblate (Italian)
mymage Jan 25, 2025
1978330
Translated using Weblate (Spanish)
victoralmau Feb 3, 2025
802a939
[IMP] document_page_approval: pre-commit auto fixes
BhaveshHeliconia Feb 17, 2025
f1535b6
[FIX] document_page_approval: Add Change Request Manager rule
victoralmau Mar 17, 2025
8fc4f0c
[MIG] document_page_approval: Migration to 18.0
BhaveshHeliconia Mar 28, 2025
625ca26
[UPD] Update document_page_approval.pot
Mar 28, 2025
bdb5828
[BOT] post-merge updates
OCA-git-bot Mar 28, 2025
93267f4
[UPD] Update document_page_approval.pot
Jun 21, 2025
8462345
Update translation files
weblate Jun 21, 2025
a34610f
Translated using Weblate (Italian)
mymage Jun 23, 2025
3f9eabe
[UPD] Update document_page_approval.pot
Jul 17, 2025
ae23ac8
Update translation files
weblate Jul 17, 2025
33427f3
Translated using Weblate (Swedish)
jakobkrabbe Sep 18, 2025
9850151
[FIX] document_page_approval: Fix tests to use real html
etobella Dec 17, 2025
3c48482
[BOT] post-merge updates
OCA-git-bot Dec 17, 2025
386d361
[FIX] document_page_approval: Avoid errors when creating a page histo…
victoralmau Mar 2, 2026
99ff85a
[BOT] post-merge updates
OCA-git-bot Mar 3, 2026
55e527c
[MIG] document_page_approval: Migration to 19.0
gregory-rutecki Mar 16, 2026
b7c28c3
[FIX] document_page_approval: pre-commit fixes
gregory-rutecki Mar 16, 2026
10e120c
[FIX] document_page_approval: ruff format
gregory-rutecki Mar 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 124 additions & 0 deletions document_page_approval/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

======================
Document Page Approval
======================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:076e3494c42033cf34cf3d9a7a92ea7f0d7982d04738360bec6ff9604ee1b357
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github
:target: https://github.com/OCA/knowledge/tree/18.0/document_page_approval
:alt: OCA/knowledge
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/knowledge-18-0/knowledge-18-0-document_page_approval
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/knowledge&target_branch=18.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module adds a workflow to approve page modifications and show the
approved version by default.

**Table of contents**

.. contents::
:local:

Configuration
=============

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.

Usage
=====

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.

Bug Tracker
===========

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.
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:%2018.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.

Credits
=======

Authors
-------

* Savoir-faire Linux

Contributors
------------

- 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>

- `Heliconia Solutions Pvt. Ltd. <https://www.heliconia.io>`__

- Bhavesh Heliconia

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/knowledge <https://github.com/OCA/knowledge/tree/18.0/document_page_approval>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
5 changes: 5 additions & 0 deletions document_page_approval/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from . import models
from .hooks import post_init_hook, uninstall_hook
25 changes: 25 additions & 0 deletions document_page_approval/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Document Page Approval",
"version": "19.0.1.1.1",
"author": "Savoir-faire Linux, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/knowledge",
"license": "AGPL-3",
"category": "Knowledge Management",
"depends": ["document_page", "mail"],
"data": [
"data/email_template.xml",
"views/document_page_approval.xml",
"security/document_page_security.xml",
],
"images": [
"images/category.png",
"images/page_history_list.png",
"images/page_history.png",
],
"post_init_hook": "post_init_hook",
"uninstall_hook": "uninstall_hook",
"installable": True,
}
44 changes: 44 additions & 0 deletions document_page_approval/data/email_template.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- If user wants to make upgrade-proof customizations to email templates, he should edit ir.model.data and check noupdate himself -->
<record id="email_template_new_draft_need_approval" model="mail.template">
<field name="name">Automated new draft need approval Notification Mail</field>
<field
name="email_from"
>{{object.create_uid.company_id.email or 'noreply@localhost.com'}}</field>
<field
name="subject"
>New version of {{object.display_name}} needs your approval</field>
<field name="model_id" ref="model_document_page_history" />
<field name="auto_delete" eval="True" />
<field name="lang">{{object.create_uid.partner_id.lang}}</field>
<field name="body_html" type="html">
<p>Hello,</p>
<p><t t-out="object.create_uid.name" /> submited a new Change Request for <b
t-out="object.page_id.name"
/> and it needs your approval.</p>
<h1>
<a t-att-href="object.page_url" t-out="object.display_name" />
</h1>
<p>
<b>Modified by:</b>
<t t-out="object.create_uid.name" />
</p>
<p>
<b>Date:</b>
<t t-out="object.create_date" />
</p>
<t t-if="object.summary">
<h3>Summary</h3>
<p t-out="object.summary" />
</t>
<h3>Diff</h3>
<div style="overflow-x:scroll; font-size:0.85em; margin-bottom:2em;">
<t t-out="object.diff" />
</div>
<p>Have a great day.</p>
<br />
<p>Odoo</p>
</field>
</record>
</odoo>
25 changes: 25 additions & 0 deletions document_page_approval/hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright 2018 Ivan Todorovich (<ivan.todorovich@gmail.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import logging

_logger = logging.getLogger(__name__)


def post_init_hook(env): # pragma: no cover
# Set all pre-existing pages history to approved
_logger.info("Setting history to approved.")
env.cr.execute(
"""
UPDATE document_page_history
SET state='approved',
approved_uid=create_uid,
approved_date=create_date
WHERE state IS NULL OR state = 'draft'
"""
)


def uninstall_hook(env): # pragma: no cover
# Remove unapproved pages
_logger.info("Deleting unapproved Change Requests.")
env.cr.execute("DELETE FROM document_page_history WHERE state != 'approved'")
Loading
Loading