Skip to content

Commit

Permalink
[MIG] document_page_approval: Migration to 17.0
Browse files Browse the repository at this point in the history
  • Loading branch information
EdgarRetes authored and victoralmau committed Nov 12, 2024
1 parent b919f6b commit 74660f1
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 61 deletions.
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):
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)
2 changes: 1 addition & 1 deletion document_page_approval/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
8 changes: 4 additions & 4 deletions document_page_approval/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
_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',
Expand All @@ -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 modified document_page_approval/images/category.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified document_page_approval/images/page_history.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified document_page_approval/images/page_history_list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 3 additions & 4 deletions document_page_approval/models/document_page.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ class DocumentPage(models.Model):
related="history_head.approved_date",
store=True,
index=True,
readonly=True,
)

approved_uid = fields.Many2one(
Expand All @@ -28,7 +27,6 @@ class DocumentPage(models.Model):
related="history_head.approved_uid",
store=True,
index=True,
readonly=True,
)

approval_required = fields.Boolean(
Expand Down Expand Up @@ -137,8 +135,9 @@ def _create_history(self, vals):

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
Expand Down
3 changes: 1 addition & 2 deletions document_page_approval/models/document_page_history.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ class DocumentPageHistory(models.Model):
],
"Status",
default="draft",
readonly=True,
)

approved_date = fields.Datetime()
Expand Down Expand Up @@ -79,7 +78,7 @@ def action_to_approve(self):
[("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()
Expand Down
82 changes: 38 additions & 44 deletions document_page_approval/views/document_page_approval.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,50 +14,51 @@
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
name="action_approve"
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
name="action_approve"
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"
/>
Expand All @@ -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">
Expand All @@ -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>
Expand All @@ -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.
Expand All @@ -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>.
Expand All @@ -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.
Expand All @@ -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>
Expand All @@ -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>
Expand All @@ -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>
Expand All @@ -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>
Expand All @@ -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')]" />
Expand Down Expand Up @@ -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"
Expand Down

0 comments on commit 74660f1

Please sign in to comment.