2016-11-29 5 views
0

Я работаю над этим назначением Odoo. Я должен создать собственный модуль, в котором это требование.Пользовательские данные в one2many поле в Odoo

Существует форма «Блокнот», в которой содержится поле, которое исходит от «hr.employee» i.e. Many2one. Следующее, что будет содержать эта форма, - это таблица, в которой три столбца (Качество, Оценка, Комментарий). Теперь Качества должны быть главной таблицей, содержащей много качеств.

Я достиг этой задачи в способе работы 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) 

Таким образом, все оценки будут равны нулю, когда они будут созданы

Смежные вопросы