This question has been flagged
5 Replies
5344 Views

Hello,

(I use ODOO v10)

I am getting an error while trying to add custom fields into hr.employee model. Below is the code -

My XML file -

<?xml version="1.0" encoding="utf-8"?>

<odoo>

<data>

<record id="employee_extn" model="ir.ui.view">

<field name="name">employee.extn</field>

<field name="model">hr.employee</field>

<field name="inherit_id" ref="hr.view_employee_form"/>

<field name="arch" type="xml">

<xpath expr="//form/sheet/notebook/page[2]/group[1]/group[1]/field[@name='identification_id']" position="replace">

<label for="identification_id" string="Aadhaar Number"/>

</xpath>

<xpath expr="//form/sheet/notebook/page[2]/group[1]/group[2]/field[@name='address_home_id']" position="after">

<field name="address_perm_id"/>

</xpath>

<xpath expr="//form/sheet/notebook/page[2]/group[1]/group[4]/field[@name='birthday']" position="after">

<field name="wedding_date"/>

</xpath>

</field>

</record>

</data>

</odoo>


My .py file -

from odoo import models, fields, api, _

class EmpExtension{models.Model):

_name = "hr.employee"

_inherit = "hr.employee"

address_perm_id = fields.Many2one("res.partner", string="Permanent Address", store=True, help="Select or Enter the Permanent Address of employee")

contract_type = fields.Selection([("Regular", "Daily Wager")], string="Contract Type", store=True, help="Is this employee a Regular employee or contracted Daily Wager?")

wedding_date = fields.Date(string="Wedding Date", store=True, help="Enter wedding date of employee")

joining_date = fields.Date(string="Date of Joining", store=True, help="Enter date on which employee joined this organization.")

joining_desig = fields.Char(string="Joining Designation", store=True, help="Enter Joining Designation of this employee.")

joining_salary = fields.Float(string="Joining Salary", required=True, store=True, help="Enter the consolidated salary paid / offered to employee at the time of joining the organization.")

current_salary = fields.Float(string="Current Salary", required=True, store=True, help="Enter the current consolidated salary paid to employee.")

 attendance_type = fields.Char(string="Attendance Type", required=True, store=True, help="Choose how the attendance of this employee will be recorded. It could be Biometric, Card Swipe or Manual.")


I get error as below -

Traceback (most recent call last):
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\http.py", line 640, in _handle_exception
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\http.py", line 677, in dispatch
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\http.py", line 333, in _call_function
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\service\model.py", line 101, in wrapper
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\http.py", line 326, in checked_call
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\http.py", line 935, in __call__
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\http.py", line 506, in response_wrap
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\addons\web\controllers\main.py", line 889, in call_button
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\addons\web\controllers\main.py", line 877, in _call_kw
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\api.py", line 689, in call_kw
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\api.py", line 680, in call_kw_multi
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\addons\base\module\module.py", line 411, in button_immediate_install
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\addons\base\module\module.py", line 485, in _button_immediate_function
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\modules\registry.py", line 82, in new
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\modules\loading.py", line 339, in load_modules
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\modules\loading.py", line 237, in load_marked_modules
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\modules\loading.py", line 156, in load_module_graph
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\modules\loading.py", line 95, in _load_data
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\tools\convert.py", line 845, in convert_file
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\tools\convert.py", line 915, in convert_xml_import
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\tools\convert.py", line 796, in parse
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\tools\convert.py", line 799, in parse
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\tools\convert.py", line 707, in _tag_record
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\addons\base\ir\ir_model.py", line 1229, in _update
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\addons\base\ir\ir_ui_view.py", line 362, in create
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\models.py", line 3834, in create
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\fields.py", line 1041, in determine_inverse
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\addons\base\ir\ir_ui_view.py", line 220, in _inverse_arch
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\addons\base\ir\ir_ui_view.py", line 380, in write
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\models.py", line 3560, in write
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\models.py", line 3711, in _write
  File "C:\Program Files (x86)\Odoo 10.0\server\odoo\models.py", line 1083, in _validate_fields
ParseError: "Error while validating constraint

Field `wedding_date` does not exist

Error context:
View `employee.extn`
[view_id: 1490, xml_id: n/a, model: hr.employee, parent_id: 874]
None" while parsing file:///c:/program files (x86)/odoo 10.0/server/odoo/addons/employee_extn/employee_extn.xml:4, near
<record id="employee_extn" model="ir.ui.view">
            <field name="name">employee.extn</field>
            <field name="model">hr.employee</field>
            <field name="inherit_id" ref="hr.view_employee_form"/>
            <field name="arch" type="xml">
				<data><xpath expr="//form/sheet/notebook/page[2]/group[1]/group[1]/field[@name='identification_id']" position="replace">
					<label for="identification_id" string="Aadhaar Number"/>
				</xpath>
				<xpath expr="//form/sheet/notebook/page[2]/group[1]/group[2]/field[@name='address_home_id']" position="after">
					<field name="address_perm_id"/>
				</xpath>
				<xpath expr="//form/sheet/notebook/page[2]/group[1]/group[4]/field[@name='birthday']" position="after">
					<field name="wedding_date"/>
				</xpath>
			</data></field>
		</record>
Avatar
Discard
Best Answer

Make sure you restarted the server first before upgrading the module.

Also make sure that py file is added in __init__.py file.

Sudhir Arya
ERP Harbor Consulting Services
Skype:sudhir@erpharbor.com
Website: http://www.erpharbor.com
Avatar
Discard
Author Best Answer

Hi Sudhir, replying to your revert as "answer" for I have insufficient Karma to comment.

Thanks for writing in and or your suggestion. Yes, I tried with the options you suggested. But, no gain.

My __init__.py is as -

import emp_extension

Name of the .py file is emp_extension.py

Avatar
Discard
Author

I later realized that while installing this module does not create the fields that it intends to. So, the error I guess. Can anyone suggest about that? I am unable to figure out.

Make sure you have imported 'models' folder in __init__.py if you are using models folder.

Best Answer

Make sure you have imported 'models' folder in __init__.py if you are using 'models' folder.

Avatar
Discard