mirror of
https://github.com/OCA/knowledge.git
synced 2025-07-22 20:12:04 -06:00
commit
f0cd0811b5
@ -33,4 +33,15 @@
|
||||
<field name="perm_create" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="rule_change_request_manager">
|
||||
<field name="name">Change Request Manager</field>
|
||||
<field name="model_id" ref="model_document_page_history"/>
|
||||
<field name="groups" eval="[(6, 0, [ref('document_page.group_document_manager')])]"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_unlink" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
@ -1,4 +1,5 @@
|
||||
from odoo.tests import common
|
||||
from odoo.exceptions import AccessError
|
||||
|
||||
|
||||
class TestDocumentPageApproval(common.TransactionCase):
|
||||
@ -31,6 +32,23 @@ class TestDocumentPageApproval(common.TransactionCase):
|
||||
],
|
||||
}
|
||||
)
|
||||
self.manager_gid = self.env.ref('document_page.group_document_manager')
|
||||
self.user_manager = self.env["res.users"].create(
|
||||
{
|
||||
"name": "Test document manager",
|
||||
"login": "Test document manager",
|
||||
"groups_id": [
|
||||
(
|
||||
6,
|
||||
0,
|
||||
[
|
||||
self.env.ref("base.group_user").id,
|
||||
self.manager_gid.id,
|
||||
],
|
||||
)
|
||||
],
|
||||
}
|
||||
)
|
||||
# demo_approval
|
||||
self.category2 = self.page_obj.create({
|
||||
'name': 'This category requires approval',
|
||||
@ -134,6 +152,32 @@ class TestDocumentPageApproval(common.TransactionCase):
|
||||
self.assertEqual(page.approved_date, chreq.approved_date)
|
||||
self.assertEqual(page.approved_uid, chreq.approved_uid)
|
||||
|
||||
def test_check_rules(self):
|
||||
page = self.page2
|
||||
# aprove everything
|
||||
self.history_obj.search([
|
||||
('page_id', '=', page.id),
|
||||
('state', '!=', 'approved')
|
||||
]).action_approve()
|
||||
# new change request from scrath
|
||||
chreq = self.history_obj.create({
|
||||
'page_id': page.id,
|
||||
'summary': 'Changed something',
|
||||
'content': 'New content',
|
||||
})
|
||||
self.assertEqual(chreq.state, 'draft')
|
||||
chreq.action_to_approve()
|
||||
self.assertEqual(chreq.state, 'to approve')
|
||||
chreq.action_cancel()
|
||||
self.assertEqual(chreq.state, 'cancelled')
|
||||
chreq.sudo().action_draft()
|
||||
with self.assertRaises(AccessError):
|
||||
self.assertEqual(chreq.sudo(self.user2).state, 'draft')
|
||||
self.assertEqual(chreq.state, 'draft')
|
||||
self.assertEqual(chreq.sudo(self.user_manager).state, 'draft')
|
||||
chreq.action_approve()
|
||||
self.assertEqual(chreq.state, 'approved')
|
||||
|
||||
def test_get_approvers_guids(self):
|
||||
"""Get approver guids."""
|
||||
page = self.page2
|
||||
|
Loading…
Reference in New Issue
Block a user