2016-11-29 9 views
0

私はこのOdooの割り当てに取り組んでいます。私は、要件がこのようなカスタムモジュールを作成する必要があります。Odooのone2manyフィールドのカスタムデータ

「ノートブック」に「hr.employee」つまりMany2oneのフィールドが含まれているというフォームがあります。このフォームには次の3つの列(品質、スコア、コメント)が含まれます。現在の品質は、多くの品質名を含むマスター表でなければなりません。

私は、SalesOrderフォームが動作する方法で、つまり複数の販売ラインがある特定の受注の場合にこのタスクを達成しました。

しかし、私はすべての資質が0

のデフォルトのスコア値をフォーム上に存在になりたいここでは、コード

がある簡単な方法があります

class qualities_fields(models.Model): 

    _name = "ayda.qualities.fields"  
    _description = "Contains only Attributes"   
    @api.multi  
    def name_get(self): 

     data = []   
     for rows in self: 

      value = ''    
      value += rows.quality_name    
      data.append((rows.id, value))   
     return data   

    quality_name = fields.Char(string="Quality Name") 

class qualities_data(models.Model): 

    _name = "qualities.data"  
    _description = "All points mandatory to be filled"  
    quality_id = fields.Many2one('notebook', string="Quality IDs")  
    quality_name = fields.Many2one('qualities.fields', string="Quality Name")  
    score = fields.Integer(string="Score")  
    comment = fields.Char(string="Comment") 

class notebook(models.Model): 

    _name = "notebook"  
    _description = "Checking one2many of qualities" 
    def createRecords(self): 

     cr = self.pool.cursor()   
     quantity_fields = self.pool.get('qualities.fields').search(cr, self.env.uid, [])   
     quantity_lines = []   
     for field in quantity_fields: 

      quality_data = {       
          'quality_id' : self.id,       
          'quality_name' : field.id, 
          'score' : 0, 
          'comment' : ''      
          } 
      quantity_lines.append(quality_data)   
     return quantity_lines 
    name = fields.Many2one('hr.employee', string="Name")  
    qualities_line = fields.One2many('qualities.data', 'quality_id', string="Qualities Line", default=createRecords) 

答えて

0

私の解像度を教えてくださいこれを行うには、フィールド定義でデフォルトスコアを0に設定します。

score = fields.Integer(string="Score", default=0) 

そのようにして、作成時にすべての得点がゼロになる

関連する問題