Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MIG][17.0] document_page_approval #498

Closed
wants to merge 63 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
bcea319
create document_page_approval module
cloutierjo Apr 16, 2013
3ee4bf6
[IMP] Documentation
Jul 19, 2013
aaf0251
Set document_page_approval as unported
Jul 18, 2014
41d03b8
start porting
gborelli Nov 11, 2014
08183ae
Comment workflow that cause the error
llacroix Dec 29, 2014
757e077
[IMP] - Changed string from email template.
Jul 23, 2015
46cb817
[FIX] - document-page-approval: Fixes #60 url not valid when website …
Aug 19, 2015
82b0942
[MIG] document_page_approval: Migration to 9.0
naousse Oct 28, 2015
b7ff569
[MIG] document_page_approval: Migration to 10.0
LeartS Dec 22, 2016
18baa07
[FIX] View
max3903 Apr 13, 2018
71a34dd
[IMP][10.0][document_page_approval] Change Requests and workflow impr…
ivantodorovich Apr 13, 2018
5fdd373
[MIG] document_page_approval: Migration to 11.0
Jun 14, 2018
53800f8
[FIX+IMP] document_page_approval:
ivantodorovich Apr 20, 2018
b9ce469
[FIX] pylint/javascript-lint
MiquelRForgeFlow Mar 11, 2019
8759586
[FIX] document_page_aproval: Modify in records rules
nicomacr May 31, 2019
48d178e
[MIG] document_page_approval: Migration to v12
Aug 23, 2019
3e7f9c6
[IMP] document_page_approval: black, isort
Jul 4, 2020
872c04e
Migrate to 13.0 document_page_approval
Jul 4, 2020
c00d84d
[IMP] document_page_approval: black, isort, prettier + squashed admin…
jeroen-vet Sep 22, 2020
5b925c1
[MIG] document_page_approval: Migration to 14.0
jeroen-vet Feb 23, 2021
b3438f3
[FIX] document_page_approval: Avoid W7940 (dangerous-view-replace-wo-…
pedrobaeza Mar 30, 2022
94e5497
[MIG] document_page_approval: Migration to 15.0
victoralmau Jul 26, 2022
3128936
[UPD] Update document_page_approval.pot
Sep 8, 2022
632eb77
[UPD] README.rst
OCA-git-bot Sep 8, 2022
721246a
[16.0][MIG] document_page_approval: Migration to 16.0
FernandoRomera Dec 13, 2022
405afc8
[UPD] Update document_page_approval.pot
Dec 16, 2022
0aa0d10
[UPD] README.rst
OCA-git-bot Dec 16, 2022
86d8d44
Update translation files
weblate Dec 16, 2022
6f4afbe
Translated using Weblate (Italian)
mymage Dec 28, 2022
3d0159e
Translated using Weblate (Italian)
mymage Feb 14, 2023
e848393
Translated using Weblate (Croatian)
badbole Feb 15, 2023
f731e82
Translated using Weblate (Croatian)
badbole Feb 16, 2023
8540a35
Translated using Weblate (Italian)
francesco-ooops Apr 7, 2023
811c654
Translated using Weblate (Italian)
mymage Apr 10, 2023
26d4478
[FIX] document_page_approval: Change mail template expressions
victoralmau Apr 19, 2023
605f35a
[UPD] Update document_page_approval.pot
Apr 20, 2023
bd358ea
document_page_approval 16.0.1.1.0
OCA-git-bot Apr 20, 2023
40b9c8a
Update translation files
weblate Apr 20, 2023
921cc90
Translated using Weblate (Italian)
francesco-ooops Apr 26, 2023
a037339
Translated using Weblate (Italian)
francesco-ooops May 12, 2023
3dd3238
[UPD] Update document_page_approval.pot
May 12, 2023
1573ab9
Update translation files
weblate May 12, 2023
b318cd8
Translated using Weblate (Italian)
mymage May 18, 2023
4514792
Translated using Weblate (Spanish)
luis-ron Jun 6, 2023
f6445f2
Translated using Weblate (Italian)
francesco-ooops Jun 6, 2023
b3bac4c
Translated using Weblate (Italian)
mymage Jun 22, 2023
fe40b2c
Translated using Weblate (Spanish)
Ivorra78 Aug 4, 2023
dba1885
[UPD] Update document_page_approval.pot
Aug 29, 2023
a671bf4
[UPD] README.rst
OCA-git-bot Sep 3, 2023
5360967
Update translation files
weblate Sep 3, 2023
00f49dd
Translated using Weblate (Italian)
mymage Sep 4, 2023
9bd51b6
Translated using Weblate (Spanish)
Ivorra78 Sep 5, 2023
36c87a2
[UPD] Update document_page_approval.pot
Nov 6, 2023
a05454f
Update translation files
weblate Nov 6, 2023
4396bcb
Translated using Weblate (Portuguese)
peterromao Feb 28, 2024
3bd9fbd
[UPD] Update document_page_approval.pot
Mar 28, 2024
1772b75
Update translation files
weblate Mar 28, 2024
ffe2e51
Translated using Weblate (Italian)
mymage Apr 2, 2024
2f627e1
[FIX] document_page_approval: Add correct followers in history pages
victoralmau Feb 23, 2021
4a06f4a
[BOT] post-merge updates
OCA-git-bot Apr 25, 2024
0ea1636
Translated using Weblate (Spanish)
berisoft-arg May 15, 2024
cb0ad1b
Translated using Weblate (Swedish)
jakobkrabbe Jun 19, 2024
81725ef
[MIG] document_page_approval: Migration to 17.0
EdgarRetes Oct 2, 2024
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
6 changes: 0 additions & 6 deletions document_page/models/document_page_history.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,5 @@ def _get_diff(self, v1, v2):
context=True,
)

# TODO: Replace for _compute_display_name
def name_get(self):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the name_get() method, but do NOT remove the _compute_display_name() method. That's what is stated in the migration guidelines https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-17.0

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)
116 changes: 116 additions & 0 deletions document_page_approval/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
======================
Document Page Approval
======================

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

.. |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/17.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-17-0/knowledge-17-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=17.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:%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.

Credits
=======

Authors
-------

* Savoir-faire Linux

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

- Odoo SA <[email protected]>

- Savoir-faire Linux <[email protected]>

- Gervais Naoussi <[email protected]>

- Maxime Chambreuil <[email protected]>

- Iván Todorovich <[email protected]>

- `Tecnativa <https://www.tecnativa.com>`__:

- Victor M.M. Torres
- Víctor Martínez

- `Guadaltech <https://www.guadaltech.es>`__:

- Fernando La Chica <[email protected]>

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/17.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": "17.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,
}
38 changes: 38 additions & 0 deletions document_page_approval/data/email_template.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?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 '[email protected]'}}</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 (<[email protected]>)
# 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