knowledge/document_page_approval/hooks.py
Iván Todorovich 6b2a0bf565 [FIX+IMP] document_page_approval:
* Rename classes and files to match model names, and removed workflow engine.
* Some fields should be readonly if not in draft.
* Allow Knowledge / Manager to edit previous history names and summary
* Improve ux by adding user_has_drafts to document pages.
* Changes because of implementation of active field on document_page
* Add ir.rules for document.page.history
* Allow to quickly cancel&draft from 'to approve' state
* FIX BUG: am_i_approver was being run as sudo(), hence always giving the user Approving rights.
* FIX hooks
  Because of default='draft' on the state field, state IS NULL wasn't selecting anything.
  Left the condition in case this is changed in the future.
2025-02-28 09:42:12 +05:30

26 lines
806 B
Python

# 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'"
)