2014-11-03 141 views
2

請我面對薩姆問題與新odoo 8 API,我有以下類ODOO 8 on_change

class TypeProcessus(models.Model): 
    _name = 'atom.promaintenance.type.processus' 
    name = fields.Char() 
    id_phases = fields.One2many('atom.promaintenance.phases','id_processus','Liste des Phases') 

class Phases(models.Model): 
    _name = 'atom.promaintenance.phases' 
    name = fields.Char() 
    autoriserCommentaire = fields.Boolean() 
    autoriserPiecesJointes = fields.Boolean() 
    id_processus = fields.Many2one('atom.promaintenance.type.processus') 
    parent_id = fields.Many2one('atom.promaintenance.phases','Phase Parent', select=True,  ondelete='cascade') 
    commentaire = fields.Text() 

    @api.one 
    @api.onchange('name') 
    def phases_write(self): 
     print 'test' 

<record model="ir.ui.view" id="atom_promaintenance_type_processus"> 
<field name="name">atom.promaintenance.type.processus.form</field> 
<field name="model">atom.promaintenance.type.processus</field> 
<field name="type">form</field> 
<field name="arch" type="xml"> 

     <form string="Type Processus" > 
      <sheet> 
      <h1>UPDATED</h1> 
       <field name="name" /> 
        <tree string="note_evaluation_tree" editable="bottom"> 
         <field name="id_phases" /> 
        </tree> 
      </sheet> 
     </form> 

</field> 
</record> 

首先,我的問題是創建一個新的突未時,添加階段,有一個在階段和父母保持空白的下拉列表之間關聯父子代,除非你保存了進程使它們可用。

我設法onChange事件添加到階段他們堅持到數據庫,但我無法弄清楚如何保存這些記錄與新的API系統,謝謝

+0

你不能使用onchange方法保存記錄。我真的不明白你想在這裏做什麼。如果您想要更改記錄的保存/創建方式,如果您需要創建/更新某些相關記錄,則必須重寫「create」和/或「write」方法或在方法中調用它們。 – Andrius 2015-02-24 09:41:56

+0

我無法找到你的問題,onChange()和商店記錄之間的關係是什麼?所以你告訴最新的問題 – Virbhadrasinh 2015-04-23 06:01:07

回答

0

如果你的意思我明白了,你需要在XML代碼中使用小部件one2many_list,順便說一句,我認爲是錯誤的。它應該是這樣的:

<record model="ir.ui.view" id="atom_promaintenance_type_processus"> 
    <field name="name">atom.promaintenance.type.processus.form</field> 
    <field name="model">atom.promaintenance.type.processus</field> 
    <field name="type">form</field> 
    <field name="arch" type="xml"> 
     <form string="Type Processus" > 
      <sheet> 
      <h1>UPDATED</h1> 
       <field name="name" /> 
       <field name="id_phases" widget="one2many_list"> 
        <tree string="note_evaluation_tree" editable="bottom"> 
         <field name="name"/> 
         <field name="autoriserCommentaire"/> 
         <field name="autoriserPiecesJointes"/> 
         <field name="parent_id"/> 
         <field name="commentaire"/> 
        </tree> 
       </field> 
      </sheet> 
     </form> 
    </field> 
</record> 

小部件將允許您爲processus添加階段,然後保存它。

0

新API使用self進行所有記錄修改。所以在你的情況下,如果你想更改name,請這樣寫:

@api.one 
@api.onchange('name') 
def onchange_name(self): 
    self.name = 'what you want to save'