mirror of
https://github.com/OCA/knowledge.git
synced 2025-07-23 04:22:04 -06:00
document_page_approval migration from Odoo 8.0 to Odoo 9.0
Lint error corrected test improved lint error corrected in test file readme corrected test improved test of document page history workflow added CI error corrected dreipst comment Migration to new api improved in model's file and data tag remove in xml file code totally migrate to odoo 9.0 api
This commit is contained in:
parent
6fe0fb018b
commit
ff8e884874
88
document_page_approval/README.rst
Normal file
88
document_page_approval/README.rst
Normal file
@ -0,0 +1,88 @@
|
||||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
|
||||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
:alt: License: AGPL-3
|
||||
|
||||
======================
|
||||
Document Page Approval
|
||||
======================
|
||||
|
||||
This module adds a workflow to approve page modification and show the approved
|
||||
version by default.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
Makes the document page approval available from where some users can approved the modifications
|
||||
made by others users in documents that required approvement.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
No configuration required
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To use this module, you need to:
|
||||
|
||||
* Set a valid email address on the company settings.
|
||||
* go to knowledge > Categories.
|
||||
* Create a new page category and set an approver group. Make sure users
|
||||
belonging to that group have valid email addresses.
|
||||
* go to knowledge > Pages
|
||||
* Create a new page and choose the previously created category.
|
||||
* A notification is sent to the group with a link to the page history to
|
||||
review.
|
||||
* Depending on the review, the page history is approved or not.
|
||||
* Users reading the page see the last approved version.
|
||||
|
||||
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
|
||||
:alt: Try me on Runbot
|
||||
:target: https://runbot.odoo-community.org/runbot/118/9.0
|
||||
|
||||
Known issues / Roadmap
|
||||
======================
|
||||
|
||||
|
||||
Bug Tracker
|
||||
===========
|
||||
|
||||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/
|
||||
knowledge/issues>`_.
|
||||
In case of trouble, please check there if your issue has already been reported.
|
||||
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback `here <https://github.com/OCA/knowledge/issues/new?body=module:%20document_page_approval%0Aversion:%209.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
* Odoo SA <info@odoo.com>
|
||||
* Savoir-faire Linux <support@savoirfairelinux.com>
|
||||
* Gervais Naoussi <gervaisnaoussi@gmail.com>
|
||||
|
||||
Maintainer
|
||||
----------
|
||||
|
||||
.. image:: https://odoo-community.org/logo.png
|
||||
:alt: Odoo Community Association
|
||||
:target: https://odoo-community.org
|
||||
|
||||
This module is maintained by the OCA.
|
||||
|
||||
OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||||
mission is to support the collaborative development of Odoo features and
|
||||
promote its widespread use.
|
||||
|
||||
To contribute to this module, please visit http://odoo-community.org.
|
||||
|
||||
Changelog
|
||||
---------
|
||||
|
||||
v9.0.1.0.0
|
||||
|
||||
Here are the modification that have been done:
|
||||
|
||||
* The module does no depends anymore on email_template but on mail module
|
@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
@ -18,4 +18,4 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
from . import document_page_approval
|
||||
from . import models
|
||||
|
@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
@ -21,40 +21,24 @@
|
||||
|
||||
{
|
||||
'name': 'Document Page Approval',
|
||||
'version': '8.0.1.0.0',
|
||||
'version': '9.0.1.0.0',
|
||||
"author": "Savoir-faire Linux,Odoo Community Association (OCA)",
|
||||
"website": "http://www.savoirfairelinux.com",
|
||||
"license": "AGPL-3",
|
||||
'category': 'Knowledge Management',
|
||||
'description': """
|
||||
This module adds a workflow to approve page modification and show the approved
|
||||
version by default.
|
||||
|
||||
Scenario
|
||||
========
|
||||
|
||||
* Set a valid email address on the company settings.
|
||||
* Create a new page category and set an approver group. Make sure users
|
||||
belonging to that group have valid email addresses.
|
||||
* Create a new page and choose the previously created category.
|
||||
* A notification is sent to the group with a link to the page history to
|
||||
review.
|
||||
* Depending on the review, the page history is approved or not.
|
||||
* Users reading the page see the last approved version.
|
||||
""",
|
||||
'depends': [
|
||||
'knowledge',
|
||||
'document_page',
|
||||
'email_template',
|
||||
'mail',
|
||||
],
|
||||
'data': [
|
||||
'data/email_template.xml',
|
||||
'document_page_wkfl.xml',
|
||||
'document_page_view.xml',
|
||||
'workflows/document_page_approval.xml',
|
||||
'views/document_page_approval.xml',
|
||||
'security/document_page_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
],
|
||||
'installable': False,
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
'images': [
|
||||
'images/category.png',
|
||||
|
@ -1,12 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<odoo>
|
||||
|
||||
<!-- Allow user to make upgrade-proof customizations to email template -->
|
||||
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="email_template_new_draft_need_approval"
|
||||
model="email.template">
|
||||
model="mail.template">
|
||||
<field name="name">Automated new draft need approval Notification Mail</field>
|
||||
<field name="email_from">${object.create_uid.company_id.email or 'noreply@localhost.com'}</field>
|
||||
<field name="subject">New version of "${object.page_id.name}" to approve</field>
|
||||
@ -28,4 +28,4 @@ Odoo</p>]]>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</odoo>
|
||||
|
2
document_page_approval/models/__init__.py
Normal file
2
document_page_approval/models/__init__.py
Normal file
@ -0,0 +1,2 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from . import document_page_approval, document_page_history_workflow
|
130
document_page_approval/models/document_page_approval.py
Normal file
130
document_page_approval/models/document_page_approval.py
Normal file
@ -0,0 +1,130 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from openerp import models, fields, api
|
||||
|
||||
|
||||
class DocumentPageApproval(models.Model):
|
||||
"""Useful to know the state of a document."""
|
||||
|
||||
_inherit = 'document.page'
|
||||
|
||||
@api.multi
|
||||
def _get_display_content(self):
|
||||
"""Display the content of document."""
|
||||
for page in self:
|
||||
content = ""
|
||||
if page.type == "category":
|
||||
content = self._get_page_index(page, link=False)
|
||||
else:
|
||||
history = self.env['document.page.history']
|
||||
if self.is_approval_required(page):
|
||||
history_ids = history.search(
|
||||
[
|
||||
('page_id', '=', page.id),
|
||||
('state', '=', 'approved')
|
||||
],
|
||||
limit=1,
|
||||
order='create_date DESC'
|
||||
)
|
||||
content = history_ids.content
|
||||
else:
|
||||
content = page.content
|
||||
page.display_content = content
|
||||
|
||||
@api.multi
|
||||
def _get_approved_date(self):
|
||||
"""Return the approved date of a document."""
|
||||
for page in self:
|
||||
approved_date = False
|
||||
if self.is_approval_required(page):
|
||||
history = self.env['document.page.history']
|
||||
history_ids = history.search(
|
||||
[
|
||||
('page_id', '=', page.id),
|
||||
('state', '=', 'approved')
|
||||
],
|
||||
limit=1,
|
||||
order='create_date DESC'
|
||||
)
|
||||
approved_date = history_ids.approved_date
|
||||
page.approved_date = approved_date
|
||||
|
||||
@api.multi
|
||||
def _get_approved_uid(self):
|
||||
"""Return the user's id of the approved user."""
|
||||
for page in self:
|
||||
approved_uid = False
|
||||
if self.is_approval_required(page):
|
||||
history = self.env['document.page.history']
|
||||
history_ids = history.search(
|
||||
[
|
||||
('page_id', '=', page.id),
|
||||
('state', '=', 'approved')
|
||||
],
|
||||
limit=1,
|
||||
order='create_date DESC'
|
||||
)
|
||||
approved_uid = history_ids.approved_uid.id
|
||||
page.approved_uid = approved_uid
|
||||
|
||||
@api.multi
|
||||
def _is_parent_approval_required(self):
|
||||
"""Check if the document required approval base on his parrent."""
|
||||
for page in self:
|
||||
page.is_parent_approval_required = self.is_approval_required(page)
|
||||
|
||||
def is_approval_required(self, page):
|
||||
"""Check if a document required approval."""
|
||||
if page:
|
||||
res = page.approval_required
|
||||
res = res or self.is_approval_required(page.parent_id)
|
||||
else:
|
||||
res = False
|
||||
return res
|
||||
|
||||
display_content = fields.Text(
|
||||
compute=_get_display_content,
|
||||
string='Displayed Content'
|
||||
)
|
||||
|
||||
approved_date = fields.Datetime(
|
||||
compute=_get_approved_date,
|
||||
string="Approved Date"
|
||||
)
|
||||
|
||||
approved_uid = fields.Many2one(
|
||||
'res.users',
|
||||
compute=_get_approved_uid,
|
||||
string="Approved By",
|
||||
)
|
||||
|
||||
approval_required = fields.Boolean("Require approval")
|
||||
|
||||
is_parent_approval_required = fields.Boolean(
|
||||
compute=_is_parent_approval_required,
|
||||
string="parent approval"
|
||||
)
|
||||
|
||||
approver_gid = fields.Many2one(
|
||||
"res.groups",
|
||||
"Approver group"
|
||||
)
|
@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
@ -22,54 +22,51 @@
|
||||
from datetime import datetime
|
||||
from openerp.tools.translate import _
|
||||
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
|
||||
from openerp import models, fields, SUPERUSER_ID
|
||||
from openerp import models, fields, api
|
||||
|
||||
|
||||
class document_page_history_wkfl(models.Model):
|
||||
class DocumentPageHistoryWorkflow(models.Model):
|
||||
"""Useful to manage edition's workflow on a document."""
|
||||
|
||||
_inherit = 'document.page.history'
|
||||
|
||||
def page_approval_draft(self, cr, uid, ids, context=None):
|
||||
self.write(cr, uid, ids, {'state': 'draft'})
|
||||
template_id = self.pool.get('ir.model.data').get_object_reference(
|
||||
cr, uid,
|
||||
'document_page_approval',
|
||||
'email_template_new_draft_need_approval')[1]
|
||||
for page in self.browse(cr, uid, ids, context=context):
|
||||
@api.multi
|
||||
def page_approval_draft(self):
|
||||
"""Set a document state as draft and notified the reviewers."""
|
||||
self.write({'state': 'draft'})
|
||||
template = self.env.ref(
|
||||
'document_page_approval.email_template_new_draft_need_approval')
|
||||
for page in self:
|
||||
if page.is_parent_approval_required:
|
||||
self.pool.get('email.template').send_mail(
|
||||
cr,
|
||||
uid,
|
||||
template_id,
|
||||
page.id,
|
||||
force_send=True
|
||||
)
|
||||
template.send_mail(page.id, force_send=True)
|
||||
return True
|
||||
|
||||
def page_approval_approved(self, cr, uid, ids, context=None):
|
||||
model_data_obj = self.pool.get('ir.model.data')
|
||||
message_obj = self.pool.get('mail.message')
|
||||
self.write(cr, uid, ids, {
|
||||
@api.multi
|
||||
def page_approval_approved(self):
|
||||
"""Set a document state as approve."""
|
||||
message_obj = self.env['mail.message']
|
||||
self.write({
|
||||
'state': 'approved',
|
||||
'approved_date': datetime.now().strftime(
|
||||
DEFAULT_SERVER_DATETIME_FORMAT),
|
||||
'approved_uid': uid
|
||||
}, context=context)
|
||||
'approved_uid': self.env.uid
|
||||
})
|
||||
# Notify followers a new version is available
|
||||
for page_history in self.browse(cr, uid, ids, context=context):
|
||||
subtype_id = model_data_obj.get_object_reference(
|
||||
cr, SUPERUSER_ID, 'mail', 'mt_comment')[1]
|
||||
for page_history in self:
|
||||
subtype = self.env.ref('mail.mt_comment')
|
||||
message_obj.create(
|
||||
cr, uid,
|
||||
{'res_id': page_history.page_id.id,
|
||||
'model': 'document.page',
|
||||
'subtype_id': subtype_id,
|
||||
'subtype_id': subtype.id,
|
||||
'body': _('New version of the document %s'
|
||||
' approved.') % page_history.page_id.name
|
||||
}
|
||||
)
|
||||
return True
|
||||
|
||||
@api.multi
|
||||
def _can_user_approve_page(self):
|
||||
"""Check if a user cas approve the page."""
|
||||
user = self.env.user
|
||||
for page in self:
|
||||
page.can_user_approve_page = page.can_user_approve_this_page(
|
||||
@ -78,6 +75,7 @@ class document_page_history_wkfl(models.Model):
|
||||
)
|
||||
|
||||
def can_user_approve_this_page(self, page, user):
|
||||
"""Check if a user can approved the page."""
|
||||
if page:
|
||||
res = page.approver_gid in user.groups_id
|
||||
res = res or self.can_user_approve_this_page(page.parent_id, user)
|
||||
@ -85,13 +83,16 @@ class document_page_history_wkfl(models.Model):
|
||||
res = False
|
||||
return res
|
||||
|
||||
@api.multi
|
||||
def get_approvers_guids(self):
|
||||
"""Return the approvers group."""
|
||||
res = {}
|
||||
for page in self:
|
||||
res[page.id] = self.get_approvers_guids_for_page(page.page_id)
|
||||
return res
|
||||
|
||||
def get_approvers_guids_for_page(self, page):
|
||||
"""Return the approvers group for a page."""
|
||||
if page:
|
||||
if page.approver_gid:
|
||||
res = [page.approver_gid.id]
|
||||
@ -103,7 +104,9 @@ class document_page_history_wkfl(models.Model):
|
||||
|
||||
return res
|
||||
|
||||
@api.multi
|
||||
def _get_approvers_email(self):
|
||||
"""Get the approvers email."""
|
||||
for page in self:
|
||||
emails = ''
|
||||
guids = self.get_approvers_guids()
|
||||
@ -126,7 +129,9 @@ class document_page_history_wkfl(models.Model):
|
||||
|
||||
page.get_approvers_email = emails[:-1]
|
||||
|
||||
@api.multi
|
||||
def _get_page_url(self):
|
||||
"""Get the page url."""
|
||||
for page in self:
|
||||
base_url = self.env['ir.config_parameter'].get_param(
|
||||
'web.base.url',
|
||||
@ -175,100 +180,3 @@ class document_page_history_wkfl(models.Model):
|
||||
string="URL",
|
||||
store=False
|
||||
)
|
||||
|
||||
|
||||
class document_page_approval(models.Model):
|
||||
_inherit = 'document.page'
|
||||
|
||||
def _get_display_content(self):
|
||||
for page in self:
|
||||
content = ""
|
||||
if page.type == "category":
|
||||
content = self._get_page_index(page, link=False)
|
||||
else:
|
||||
history = self.env['document.page.history']
|
||||
if self.is_approval_required(page):
|
||||
history_ids = history.search(
|
||||
[
|
||||
('page_id', '=', page.id),
|
||||
('state', '=', 'approved')
|
||||
],
|
||||
limit=1,
|
||||
order='create_date DESC'
|
||||
)
|
||||
content = history_ids.content
|
||||
else:
|
||||
content = page.content
|
||||
page.display_content = content
|
||||
|
||||
def _get_approved_date(self):
|
||||
for page in self:
|
||||
approved_date = False
|
||||
if self.is_approval_required(page):
|
||||
history = self.env['document.page.history']
|
||||
history_ids = history.search(
|
||||
[
|
||||
('page_id', '=', page.id),
|
||||
('state', '=', 'approved')
|
||||
],
|
||||
limit=1,
|
||||
order='create_date DESC'
|
||||
)
|
||||
approved_date = history_ids.approved_date
|
||||
page.approved_date = approved_date
|
||||
|
||||
def _get_approved_uid(self):
|
||||
for page in self:
|
||||
approved_uid = False
|
||||
if self.is_approval_required(page):
|
||||
history = self.env['document.page.history']
|
||||
history_ids = history.search(
|
||||
[
|
||||
('page_id', '=', page.id),
|
||||
('state', '=', 'approved')
|
||||
],
|
||||
limit=1,
|
||||
order='create_date DESC'
|
||||
)
|
||||
approved_uid = history_ids.approved_uid.id
|
||||
page.approved_uid = approved_uid
|
||||
|
||||
def _is_parent_approval_required(self):
|
||||
for page in self:
|
||||
page.is_parent_approval_required = self.is_approval_required(page)
|
||||
|
||||
def is_approval_required(self, page):
|
||||
if page:
|
||||
res = page.approval_required
|
||||
res = res or self.is_approval_required(page.parent_id)
|
||||
else:
|
||||
res = False
|
||||
return res
|
||||
|
||||
display_content = fields.Text(
|
||||
compute=_get_display_content,
|
||||
string='Displayed Content'
|
||||
)
|
||||
|
||||
approved_date = fields.Datetime(
|
||||
compute=_get_approved_date,
|
||||
string="Approved Date"
|
||||
)
|
||||
|
||||
approved_uid = fields.Many2one(
|
||||
'res.users',
|
||||
compute=_get_approved_uid,
|
||||
string="Approved By",
|
||||
)
|
||||
|
||||
approval_required = fields.Boolean("Require approval")
|
||||
|
||||
is_parent_approval_required = fields.Boolean(
|
||||
compute=_is_parent_approval_required,
|
||||
string="parent approval"
|
||||
)
|
||||
|
||||
approver_gid = fields.Many2one(
|
||||
"res.groups",
|
||||
"Approver group"
|
||||
)
|
@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<odoo>
|
||||
<data noupdate="0">
|
||||
<record id="base.group_document_approver_user" model="res.groups">
|
||||
<field name="name">Document approver</field>
|
||||
<field name="users" eval="[(4, ref('base.user_root'))]"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
</odoo>
|
||||
|
2
document_page_approval/tests/__init__.py
Normal file
2
document_page_approval/tests/__init__.py
Normal file
@ -0,0 +1,2 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from . import test_document_page_approval, test_document_page_history_workflow
|
36
document_page_approval/tests/test_document_page_approval.py
Normal file
36
document_page_approval/tests/test_document_page_approval.py
Normal file
@ -0,0 +1,36 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from openerp.tests import common
|
||||
|
||||
|
||||
class TestDocumentPageApproval(common.TransactionCase):
|
||||
"""Test document page approval model."""
|
||||
|
||||
def test_get_display_content(self):
|
||||
"""Test page display content."""
|
||||
# Check content of a category
|
||||
category = self.env['document.page'].search([
|
||||
('name', '=', 'OpenERP Features')
|
||||
])
|
||||
|
||||
self.assertIsNotNone(category.display_content, 'a category')
|
||||
|
||||
# Check content of a page
|
||||
pages = self.env['document.page'].search([
|
||||
('parent_id', '=', category.id)
|
||||
])
|
||||
page = pages[0]
|
||||
self.assertIsNotNone(page.display_content, 'Page content')
|
||||
|
||||
# Check if approval is required
|
||||
self.assertFalse(page.is_approval_required(page))
|
||||
|
||||
# Check content of an approval page
|
||||
page.approval_required = True
|
||||
|
||||
self.assertIsNotNone(page.display_content, 'Page content')
|
||||
|
||||
# Check if approval is required
|
||||
self.assertTrue(page.is_approval_required(page))
|
||||
|
||||
# Check if parent approval is required
|
||||
self.assertTrue(page.is_parent_approval_required)
|
@ -0,0 +1,58 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from openerp.tests import common
|
||||
# Import logger
|
||||
import logging
|
||||
|
||||
# Get the logger
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class TestDocumentPageHistoryWorkflow(common.TransactionCase):
|
||||
"""Test document page history workflow."""
|
||||
|
||||
def test_can_user_approve_this_page(self):
|
||||
"""Test if a user can approve this page."""
|
||||
user = self.env.user
|
||||
category = self.env.ref('document_page.demo_category1')
|
||||
category.approval_required = True
|
||||
category.approver_uid = user
|
||||
|
||||
pages = self.env['document.page.history'].search([
|
||||
('page_id', '=', category.id)
|
||||
])
|
||||
page = pages[0]
|
||||
|
||||
self.assertTrue(page.can_user_approve)
|
||||
|
||||
def test_get_approvers_guids(self):
|
||||
"""Get approver guids."""
|
||||
category = self.env.ref('document_page.demo_category1')
|
||||
category.approval_required = True
|
||||
pages = self.env['document.page.history'].search([
|
||||
('page_id', '=', category.id)
|
||||
])
|
||||
page = pages[0]
|
||||
approvers_guid = page.get_approvers_guids()
|
||||
self.assertTrue(len(approvers_guid) > 0)
|
||||
|
||||
def test_get_approvers_email(self):
|
||||
"""Get approver email."""
|
||||
category = self.env.ref('document_page.demo_category1')
|
||||
category.approval_required = True
|
||||
pages = self.env['document.page.history'].search([
|
||||
('page_id', '=', category.id)
|
||||
])
|
||||
page = pages[0]
|
||||
_logger.info("Email: " + str(page.get_approvers_email))
|
||||
self.assertIsNotNone(page.get_approvers_email)
|
||||
|
||||
def test_get_page_url(self):
|
||||
"""Test if page url exist."""
|
||||
category = self.env.ref('document_page.demo_category1')
|
||||
category.approval_required = True
|
||||
pages = self.env['document.page.history'].search([
|
||||
('page_id', '=', category.id)
|
||||
])
|
||||
page = pages[0]
|
||||
_logger.info("Page: "+str(page.get_page_url))
|
||||
self.assertIsNotNone(page.get_page_url)
|
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<odoo>
|
||||
<record id="wiki_history_form_inherit" model="ir.ui.view">
|
||||
<field name="name">document.page.history.form</field>
|
||||
<field name="model">document.page.history</field>
|
||||
@ -89,5 +88,4 @@
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
</odoo>
|
@ -1,7 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<odoo>
|
||||
<record model="workflow" id="wkf_document_page_history_aproval">
|
||||
<field name="name">document.page.history.aproval.wkf</field>
|
||||
<field name="osv">document.page.history</field>
|
||||
@ -37,7 +35,4 @@
|
||||
<field name="act_to" ref="act_draft" />
|
||||
<field name="signal">edit</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
</openerp>
|
||||
</odoo>
|
Loading…
Reference in New Issue
Block a user