mirror of
https://github.com/OCA/knowledge.git
synced 2025-07-14 01:41:26 -06:00
document_page: fix link
This commit is contained in:
parent
1ed4b34550
commit
79cf9a6f7a
@ -101,6 +101,26 @@ class DocumentPage(models.Model):
|
||||
index=True,
|
||||
ondelete='cascade',
|
||||
)
|
||||
backend_url = fields.Char(
|
||||
string='Backend URL',
|
||||
help='Use it to link resources univocally',
|
||||
compute='_compute_backend_url',
|
||||
)
|
||||
|
||||
@api.depends('menu_id', 'parent_id.menu_id')
|
||||
def _compute_backend_url(self):
|
||||
tmpl = '/web#id={}&model=document.page&view_type=form'
|
||||
for rec in self:
|
||||
url = tmpl.format(rec.id)
|
||||
# retrieve action
|
||||
action = None
|
||||
parent = rec
|
||||
while not action and parent:
|
||||
action = parent.menu_id.action
|
||||
parent = parent.parent_id
|
||||
if action:
|
||||
url += '&action={}'.format(action.id)
|
||||
rec.backend_url = url
|
||||
|
||||
@api.constrains('parent_id')
|
||||
def _check_parent_id(self):
|
||||
@ -116,8 +136,7 @@ class DocumentPage(models.Model):
|
||||
index += ["<li>" + subpage._get_page_index() + "</li>"]
|
||||
r = ''
|
||||
if link:
|
||||
r = '<a href="#id=%s">%s</a>' % (self.id, self.name)
|
||||
|
||||
r = '<a href="{}">{}</a>'.format(self.backend_url, self.name)
|
||||
if index:
|
||||
r += "<ul>" + "".join(index) + "</ul>"
|
||||
return r
|
||||
|
@ -3,3 +3,4 @@
|
||||
* Iván Todorovich <ivan.todorovich@gmail.com>
|
||||
* Jose Maria Alzaga <jose.alzaga@aselcis.com>
|
||||
* Lois Rilo <lois.rilo@eficent.com>
|
||||
* Simone Orsi <simone.orsi@camptocamp.com>
|
||||
|
@ -37,3 +37,21 @@ class TestDocumentPage(common.TransactionCase):
|
||||
})
|
||||
page.content = 'New content'
|
||||
self.assertIsNotNone(page.history_ids[0].diff)
|
||||
|
||||
def test_page_link(self):
|
||||
page = self.page_obj.create({
|
||||
'name': 'Test Page 3',
|
||||
'content': 'Test content'
|
||||
})
|
||||
self.assertEqual(
|
||||
page.backend_url,
|
||||
'/web#id={}&model=document.page&view_type=form'.format(page.id)
|
||||
)
|
||||
menu = self.env.ref('knowledge.menu_document')
|
||||
page.menu_id = menu
|
||||
self.assertEqual(
|
||||
page.backend_url,
|
||||
'/web#id={}&model=document.page&view_type=form&action={}'.format(
|
||||
page.id, menu.action.id
|
||||
)
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user