This question has been flagged
3 Replies
5506 Views

While I was trying to modify the default filters of the hr.holidays Dashboard view I made a huge mistake: I forgot I was not in a python file and I typed a # at the begining of 3 lines in order to turn them to comment... :-/

Since then, when I try to display any view of the Leave module, I get the following error message :

Uncaught TypeError: Cannot read property 'context' of undefined
http://109.100.102.64:8069/web/content/903-175f00e/web.assets_backend.js:2545
Retraçage :
TypeError: Cannot read property 'context' of undefined
    at eval_item (http://109.100.102.64:8069/web/content/903-175f00e/web.assets_backend.js:2545:1422)
    at http://109.100.102.64:8069/web/content/903-175f00e/web.assets_backend.js:2545:1311
    at Function._.map._.collect (http://109.100.102.64:8069/web/content/584-83b2d37/web.assets_common.js:13:270)
    at Class.prepare_search_inputs (http://109.100.102.64:8069/web/content/903-175f00e/web.assets_backend.js:2545:1252)
    at Class.start (http://109.100.102.64:8069/web/content/903-175f00e/web.assets_backend.js:2535:397)
    at Array.<anonymous> (http://109.100.102.64:8069/web/content/584-83b2d37/web.assets_common.js:3113:963)
    at Array.<anonymous> (http://109.100.102.64:8069/web/content/584-83b2d37/web.assets_common.js:547:681)
    at fire (http://109.100.102.64:8069/web/content/584-83b2d37/web.assets_common.js:541:299)
    at Object.add [as done] (http://109.100.102.64:8069/web/content/584-83b2d37/web.assets_common.js:542:467)
    at Array.<anonymous> (http://109.100.102.64:8069/web/content/584-83b2d37/web.assets_common.js:547:649)


By chance I kept a copy of the xml code I badly modified (remove the # char below to get the original file) :

 

             <?xml version="1.0"?>
		<search string="Search Leave">
                    <field name="name"/>
                    <filter domain="[('state','in',('confirm','validate1'))]" string="To Approve" name="approve"/>
                    <filter string="Approved Leaves" domain="[('state', '=', 'validate')]" name="validated"/>
                    <separator/>
                    <filter name="active_types" string="Active Types" domain="[('holiday_status_id.active', '=', True)]" help="Filters only on allocations and requests that belong to an holiday type that is 'active' (active field is True)"/>
                    <separator/>
                    <filter string="Unread Messages" name="message_needaction" domain="[('message_needaction','=',True)]"/>
                    <separator/>
                    #<filter string="My Department Leaves" name="department" domain="[('department_id.manager_id.user_id', '=', uid)]" help="My Department Leaves"/>
                    #<filter name="my_team_leaves" string="My Team Leaves" domain="[('employee_id.parent_id.user_id', '=', uid)]" groups="hr_holidays.group_hr_holidays_manager" help="Leaves of Your Team Member"/>
                    #<separator/>
                    <filter string="To Report in Payslip" name="gray" domain="[('payslip_status', '=', False)]" groups="hr_holidays.group_hr_holidays_manager"/>
                    <separator/>
                    <filter string="To Do" name="todo" domain="[('payslip_status', '=', False), ('holiday_status_id.active', '=', True)]"/>
                    <separator/>
                    <filter name="year" string="Current Year" domain="[('holiday_status_id.active', '=', True)]" help="Active Leaves and Allocations"/>
                    <separator/>
                    <filter string="My Requests" name="my_leaves" domain="[('user_id', '=', uid)]"/>
                    <separator/>
                    <filter name="leaves" string="Leaves" domain="[('type', '=', 'remove')]"/>
                    <filter name="allocations" string="Allocations" domain="[('type', '=', 'add')]"/>
                    <field name="employee_id"/>
                    <field name="department_id"/>
                    <field name="holiday_status_id"/>
                    <group expand="0" string="Group By">
                        <filter name="group_name" string="Description" context="{'group_by':'name'}"/>
                        <filter name="group_employee" string="Employee" context="{'group_by':'employee_id'}"/>
                        <filter name="group_category" string="Category" context="{'group_by':'category_id'}"/>
                        <filter string="Manager" context="{'group_by':'manager_id'}"/>
                        <filter name="group_type" string="Type" context="{'group_by':'holiday_status_id'}"/>
                        <separator/>
                        <filter name="group_date_from" string="Start Month" context="{'group_by':'date_from'}"/>
                    </group>
                </search>


I tried to identify this file in the odoo addons folder and I found that in the file addons/hr.holidays/views/hr_holidays_views.xml I could find this exact code without the # char.

I also made a complete search in the files of the addons folder to lookup for the "#<filter" string but I couldn't find any occurence.

For your information, I also use the following addons :

  • hr_holiday_exclude_special_days

  • hr_holidays_notify_employee_manager

  • hr_holidays_settings

Could you please help me correcting my mistake and make the Leave module work again ?

 
Avatar
Discard
Best Answer

Hi Slim, 


It looks like those comments that you've made have been updated in the database, which means your errors are now in the database. It's rather easy to fix though. First remove all comments (#) in the XML if you still have them. Afterwards stop your service and update the module. This will trigger all XML records to be updated, removing the comments in the database too. You can do this with the - u command to update the module or modules that you've edited like this:

./odoo-bin -u module1,module2 -c /etc/odoo-server.conf

Regards, 

Yenthe

Avatar
Discard

P.s: you should be good by starting, stopping, updating the modules list and then updating the module from the frontend too if you can't figure out the commands.

Author Best Answer

Thanks a lot Yenthe for your help and explanations !

You were right ! Since my xml file was OK (without the #), I just updated the extension and everything went back to normal ! Next time I'll make a backup of the VM before making such changes !

For newbies like me, here is the exact procedure to update the extension :

  • Log in

  • Go to the "Applications" module

  • Look up for the Leave Management App in the list.

  • Click on the "Update" button (it shloud be replacing the "Installed" button.

Avatar
Discard