[MIG] document_page_approval: Migration to 17.0

This commit is contained in:
EdgarRetes 2024-10-02 10:40:29 -06:00 committed by Bhavesh Heliconia
parent 49f3835e45
commit a4972a014d
8 changed files with 47 additions and 55 deletions

View File

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

View File

@ -5,10 +5,10 @@ import logging
_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
_logger.info("Setting history to approved.")
cr.execute(
env.cr.execute(
"""
UPDATE document_page_history
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
_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",
store=True,
index=True,
readonly=True,
)
approved_uid = fields.Many2one(
@ -28,7 +27,6 @@ class DocumentPage(models.Model):
related="history_head.approved_uid",
store=True,
index=True,
readonly=True,
)
approval_required = fields.Boolean(
@ -137,8 +135,9 @@ class DocumentPage(models.Model):
def action_changes_pending_approval(self):
self.ensure_one()
action = self.env.ref("document_page_approval.action_change_requests")
action = action.sudo().read()[0]
action = self.env["ir.actions.act_window"]._for_xml_id(
"document_page_approval.action_change_requests"
)
context = literal_eval(action["context"])
context["search_default_page_id"] = self.id
context["default_page_id"] = self.id

View File

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

View File

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