Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311
44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models, fields, api
|
|
|
|
|
|
class BaseModel(models.Model):
|
|
_name = 'test_performance.base'
|
|
_description = 'Test Performance Base'
|
|
|
|
name = fields.Char()
|
|
value = fields.Integer()
|
|
value_pc = fields.Float(compute="_value_pc", store=True)
|
|
partner_id = fields.Many2one('res.partner', string='Customer')
|
|
|
|
line_ids = fields.One2many('test_performance.line', 'base_id')
|
|
total = fields.Integer(compute="_total", store=True)
|
|
tag_ids = fields.Many2many('test_performance.tag')
|
|
|
|
@api.depends('value')
|
|
def _value_pc(self):
|
|
for record in self:
|
|
record.value_pc = float(record.value) / 100
|
|
|
|
@api.depends('line_ids.value')
|
|
def _total(self):
|
|
for record in self:
|
|
record.total = sum(line.value for line in record.line_ids)
|
|
|
|
|
|
class LineModel(models.Model):
|
|
_name = 'test_performance.line'
|
|
_description = 'Test Performance Line'
|
|
|
|
base_id = fields.Many2one('test_performance.base', required=True, ondelete='cascade')
|
|
value = fields.Integer()
|
|
|
|
|
|
class TagModel(models.Model):
|
|
_name = 'test_performance.tag'
|
|
_description = 'Test Performance Tag'
|
|
|
|
name = fields.Char()
|