Skip to Content
Menu
This question has been flagged
2 Replies
515 Views

Hi everybody!!!

I have a class named seetek_contrat which contains three fields: date_end, company_id, and seetek_contrat_line_id and an other class which contains other three fields which are employee_id, employee_company_id and date_from i want to display the list of employees of one company where the date_end of their contract < date_end that one user can choose.

Here is my code:


class seetek_ferier(osv.osv):

_name ='seetek.ferier'

def _get_year_selection (self, cursor, user_id, context=None):

return (

('2014', '2014'),

('2015', '2015'),

('2016', '2016'),

('2017', '2017'),

('2018', '2018'),

('2019', '2019'),

('2020', '2020'))

_columns = {

'company_id': fields.many2one('res.company', 'Company'),

'date_end': fields.date('Date from', required=True, select=1),

'seetek_contrat_ids': fields.one2many('seetek.contrat.line','employee_company_convention_id', 'seetek_employee Inputs'),

}

def get_inputs(self, cr, uid,ids, employee_id, company_id, context=None):

ret = []

obj = self.pool.get('hr.contract')

obj_ids = obj.search(cr, uid, [('company_id', '=', company_id), ('date_end', '>', date_end)])

res = obj.read(cr, uid, obj_ids, ['employee_id','company_id','date_end', 'id'], context)

for r in res :

inputs = {

'contrat_id': r['id'],

'employee_id': employee_id,

'date_end': r['date_end']

}

ret += [inputs]

return ret

def on_change_company_id(self, cr, uid, ids, date_end, company_id, context=None):

res = {'value':{'seetek_contrat_ids': self.get_inputs(cr, uid, ids, date_end, company_id, context=context),

}

}

return res

seetek_ferier()

class seetek_contrat_line(osv.osv):

_name = 'seetek.contrat.line'

_description= "Seetek_Contrat line"

_columns = {

'employee_company_id' : fields.many2one('seetek.contrat', 'index convention', required=True,select=True,ondelete='cascade'),

'employee_id' : fields.many2one('hr.employee'),

'date_end': fields.datetime('amount'),

}

seetek_contrat_line()

 and my view:


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

<field name="name">seetek.ferier.form</field>

<field name="model">seetek.ferier</field>

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

<form string="Seetek Ferier">

<group>

<group name="a" position="inside">

<field name="date_end" string="Période des données horaires DE"/>

<field name="company_id" on_change="on_change_company_id(date_end,company_id)"/>

<field name="seetek_contrat_ids">

<tree string="Input Data" editable="bottom">

</tree>

</group>

</group>

</form>

</field>

</record>

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

<field name="name">seetek.ferier.tree</field>

<field name="model">seetek.ferier</field>

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

<tree string="Seetek Ferier">

<field name="date_from" string="Période des données horaires DE"/>

<field name="company_id"/>

</tree>

</field>

</record>

<record model="ir.actions.act_window" id="action_seetek_ferier">

<field name="name">SeeTek Ferier</field>

<field name="type">ir.actions.act_window</field>

<field name="res_model">seetek.ferier</field>

<field name="view_type">form</field>

<field name="view_mode">tree,form</field>

</record>

But it doesnt work. I got this error: AttributeError: 'NoneType' object has no attribute '_table'

Please who can help me please.

Avatar
Discard
Best Answer

Its because you are creating  a m2o field with class 'seetek.contrat'' which table doesn't exist and you get this error.

'employee_company_id' : fields.many2one('seetek.contrat', 'index convention', required=True,select=True,ondelete='cascade'),

Avatar
Discard
Author Best Answer
Avatar
Discard
Related Posts Replies Views Activity
4
Oct 16
30757
1
Sep 15
3540
1
Jun 15
483
0
Apr 15
369
0
Apr 15
318