[MIG] document_page: Migration to 13.0

This commit is contained in:
ernesto
2019-11-07 15:26:37 -05:00
committed by Justine Doutreloux
parent 4cf81af527
commit c181491259
23 changed files with 108 additions and 150 deletions

View File

@@ -13,6 +13,8 @@ class DocumentPage(models.Model):
_description = "Document Page"
_order = "name"
_HTML_WIDGET_DEFAULT_VALUE = "<p><br></p>"
name = fields.Char("Title", required=True)
type = fields.Selection(
[("content", "Content"), ("category", "Category")],
@@ -33,20 +35,18 @@ class DocumentPage(models.Model):
required=True,
)
# no-op computed field
draft_name = fields.Char(
string="Name",
help="Name for the changes made",
compute=lambda x: x,
inverse=lambda x: x,
related="history_head.name",
readonly=False,
)
# no-op computed field
draft_summary = fields.Char(
string="Summary",
help="Describe the changes made",
compute=lambda x: x,
inverse=lambda x: x,
related="history_head.summary",
readonly=False,
)
template = fields.Html(
@@ -117,13 +117,12 @@ class DocumentPage(models.Model):
if not self._check_recursion():
raise ValidationError(_("You cannot create recursive categories."))
@api.multi
def _get_page_index(self, link=True):
"""Return the index of a document."""
self.ensure_one()
index = []
for subpage in self.child_ids:
index += ["<li>" + subpage._get_page_index() + "</li>"]
index = [
"<li>" + subpage._get_page_index() + "</li>" for subpage in self.child_ids
]
r = ""
if link:
r = '<a href="{}">{}</a>'.format(self.backend_url, self.name)
@@ -131,7 +130,6 @@ class DocumentPage(models.Model):
r += "<ul>" + "".join(index) + "</ul>"
return r
@api.multi
@api.depends("history_head")
def _compute_content(self):
for rec in self:
@@ -142,46 +140,42 @@ class DocumentPage(models.Model):
rec.content = rec.history_head.content
else:
# html widget's default, so it doesn't trigger ghost save
rec.content = "<p><br></p>"
rec.content = self._HTML_WIDGET_DEFAULT_VALUE
@api.multi
def _inverse_content(self):
vals = []
for rec in self:
if rec.type == "content" and rec.content != rec.history_head.content:
rec._create_history(
vals.append(
{
"page_id": rec.id,
"name": rec.draft_name,
"summary": rec.draft_summary,
"content": rec.content,
}
)
self.env["document.page.history"].create(vals)
@api.multi
def _search_content(self, operator, value):
return [("history_head.content", operator, value)]
@api.multi
@api.depends("history_ids")
def _compute_history_head(self):
for rec in self:
if rec.history_ids:
rec.history_head = rec.history_ids[0]
@api.multi
def _create_history(self, vals):
self.ensure_one()
history = self.env["document.page.history"]
vals["page_id"] = self.id
return history.create(vals)
else:
rec.history_head = False
@api.onchange("parent_id")
def _onchange_parent_id(self):
"""We Set it the right content to the new parent."""
if not self.content or self.content == "<p><br></p>":
if self.parent_id and self.parent_id.type == "category":
self.content = self.parent_id.template
if (
self.content in (False, self._HTML_WIDGET_DEFAULT_VALUE)
and self.parent_id.type == "category"
):
self.content = self.parent_id.template
@api.multi
def unlink(self):
menus = self.mapped("menu_id")
res = super().unlink()

View File

@@ -3,8 +3,7 @@
import difflib
from odoo import api, fields, models
from odoo.tools.translate import _
from odoo import _, api, fields, models
class DocumentPageHistory(models.Model):
@@ -30,7 +29,6 @@ class DocumentPageHistory(models.Model):
readonly=True,
)
@api.multi
def _compute_diff(self):
"""Shows a diff between this version and the previous version"""
history = self.env["document.page.history"]
@@ -43,10 +41,7 @@ class DocumentPageHistory(models.Model):
limit=1,
order="create_date DESC",
)
if prev:
rec.diff = self._get_diff(prev.id, rec.id)
else:
rec.diff = self._get_diff(False, rec.id)
rec.diff = self._get_diff(prev.id, rec.id)
@api.model
def _get_diff(self, v1, v2):
@@ -71,10 +66,5 @@ class DocumentPageHistory(models.Model):
context=True,
)
@api.multi
def name_get(self):
result = []
for rec in self:
name = "%s #%i" % (rec.page_id.name, rec.id)
result.append((rec.id, name))
return result
return [(rec.id, "%s #%i" % (rec.page_id.name, rec.id)) for rec in self]