Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
67c5550
create document_page_approval module
cloutierjo Apr 16, 2013
6c76944
[IMP] Documentation
Jul 19, 2013
02d2450
Set document_page_approval as unported
Jul 18, 2014
25c14f9
start porting
gborelli Nov 11, 2014
33ec3fe
Comment workflow that cause the error
llacroix Dec 29, 2014
1f525f2
[IMP] - Changed string from email template.
Jul 23, 2015
18cef34
[FIX] - document-page-approval: Fixes #60 url not valid when website …
Aug 19, 2015
9c2e056
[MIG] document_page_approval: Migration to 9.0
naousse Oct 28, 2015
ef51fcb
[MIG] document_page_approval: Migration to 10.0
LeartS Dec 22, 2016
33a0b04
[FIX] View
max3903 Apr 13, 2018
f24799e
[IMP][10.0][document_page_approval] Change Requests and workflow impr…
ivantodorovich Apr 13, 2018
526b481
[MIG] document_page_approval: Migration to 11.0
Jun 14, 2018
a120514
[FIX+IMP] document_page_approval:
ivantodorovich Apr 20, 2018
86af43c
[FIX] pylint/javascript-lint
MiquelRForgeFlow Mar 11, 2019
5356032
[FIX] document_page_aproval: Modify in records rules
nicomacr May 31, 2019
83aab88
[MIG] document_page_approval: Migration to v12
Aug 23, 2019
465cd0b
[IMP] document_page_approval: black, isort
Jul 4, 2020
8a14abd
Migrate to 13.0 document_page_approval
Jul 4, 2020
9fb9afe
[IMP] document_page_approval: black, isort, prettier + squashed admin…
jeroen-vet Sep 22, 2020
f643da0
[MIG] document_page_approval: Migration to 14.0
jeroen-vet Feb 23, 2021
4371134
[FIX] document_page_approval: Avoid W7940 (dangerous-view-replace-wo-…
pedrobaeza Mar 30, 2022
8fb2e3e
[IMP] document_page_approval: black, isort, prettier
victoralmau Jul 26, 2022
59e7776
[MIG] document_page_approval: Migration to 15.0
victoralmau Jul 26, 2022
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
105 changes: 105 additions & 0 deletions document_page_approval/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
======================
Document Page Approval
======================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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/licence-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/15.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-15-0/knowledge-15-0-document_page_approval
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/118/15.0
:alt: Try me on Runbot

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

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

Usage
=====

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.

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 smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/knowledge/issues/new?body=module:%20document_page_approval%0Aversion:%2015.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>
* Victor M.M. Torres <victor.martin@tecnativa.com>

* `Guadaltech <https://www.guadaltech.es>`_:

* Fernando La Chica <fernando.lachica@guadaltech.es>

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/15.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
26 changes: 26 additions & 0 deletions document_page_approval/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# 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": "15.0.1.0.0",
"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",
"security/ir.model.access.csv",
],
"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,
}
45 changes: 45 additions & 0 deletions document_page_approval/data/email_template.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?xml version="1.0" ?>
<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">
<![CDATA[
<p>Hello,</p>

<p>${object.create_uid.name} submited a new Change Request for <b>${object.page_id.name}</b> and it needs your approval.</p>

<h1><a href="${object.page_url}">${object.display_name}</a></h1>
<p>
<b>Modified by:</b> ${object.create_uid.name}<br/>
<b>Date:</b> ${object.create_date}<br>
</p>

% if object.summary:
<h3>Summary</h3>
<p>${object.summary}</p>
% endif

<h3>Diff</h3>
<div style="overflow-x:scroll; font-size:0.85em; margin-bottom:2em;">
${object.diff|safe}
</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(cr, registry): # pragma: no cover
# Set all pre-existing pages history to approved
_logger.info("Setting history to approved.")
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(cr, registry): # pragma: no cover
# Remove unapproved pages
_logger.info("Deleting unapproved Change Requests.")
cr.execute("DELETE FROM document_page_history WHERE state != 'approved'")
Loading