This question has been flagged
1 Reply
8100 Views

Hi, 

   While i am trying to create record rule using xml i got error please anyone can give any suggestion how to clear this

Code:

<record id="manager_of_dept _can_access_all_leaves" model="ir.rule">
            <field name="name">Manager of dept can access all leaves</field>
            <field name="model_id" ref="model_hr_holidays"/>
            <field name="domain_force">[('employee_id.department_id.manager_id.user_id', '=', user.id)]</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"/>             
            <field name="global" eval="0" />
            <field name="groups" eval="[(4,[ref('hr_payroll_kenya.hr_department_manager')])]"/>        
</record>

Error:

ParseError: "External ID not found in the system: hr_payroll_kenya.model_hr_holidays" while parsing /home/umashankar/Uma/Odoo8/odoo-8.0/openerp/addons/hr_payroll_kenya/security/department_manager_record_rule.xml:4, near
<record id="manager_of_dept _can_access_all_leaves" model="ir.rule">
            <field name="name">Manager of dept can access all leaves</field>
            <field name="model_id" ref="model_hr_holidays"/>
            <field name="domain_force">[('employee_id.department_id.manager_id.user_id', '=', user.id)]</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"/>             
            <field name="global" eval="0"/>
            <field name="groups" eval="[(4,[ref('hr_payroll_kenya.hr_department_manager')])]"/>   

Thanks in advance....

Avatar
Discard
Author

I got this error..... ParseError: "ValidateError Field(s) `model_id` failed against a constraint: Rules can not be applied on Transient models. Error details: hr.expense.expense" while parsing /home/umashankar/Uma/Odoo8/odoo-8.0/openerp/addons/hr_payroll_kenya/security/hr_employee_record_rule.xml:4, near Employee Expense [('employee_id.user_id','=',user.id)]

Best Answer

Hello,

Try this,

            <field name="model_id" ref="hr_holidays.model_hr_holidays"/>

As this model belong to hr_holidays module.

Hope this will help you.

 

Avatar
Discard
Author

Thank you Mansi Kariya....It works fine....

Here you are trying to apply rule on Transient model which odoo will not allow. Show your error so that I can say at which point you are going wrong

Author

I got some error like this .... ParseError: "ValidateError Field(s) `model_id` failed against a constraint: Rules can not be applied on Transient models. Code: Employee Expense [('employee_id.user_id','=',user.id)]

As I have said, Odoo will not allow to define rule on TransientModel. So Once go to that module and check that the model you are passing here must have osv.osv or osv.Model passed in it while declaring object model. NOTE - osv.osv_memory and osv.TransientModel is not allowed.

Author

I have checked that hr.expense.expense is defined as osv.osv, so why this error ......please give me some suggestion, i am stuck here...