769eafb483
Flectra is Forked from Odoo v11 commit : (6135e82d73
)
57 lines
1.6 KiB
Python
57 lines
1.6 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'
|
|
|
|
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'
|
|
|
|
base_id = fields.Many2one('test_performance.base', required=True, ondelete='cascade')
|
|
value = fields.Integer()
|
|
|
|
|
|
class TagModel(models.Model):
|
|
_name = 'test_performance.tag'
|
|
|
|
name = fields.Char()
|
|
|
|
|
|
class MailModel(models.Model):
|
|
_name = 'test_performance.mail'
|
|
_inherit = 'mail.thread'
|
|
|
|
name = fields.Char()
|
|
value = fields.Integer()
|
|
value_pc = fields.Float(compute="_value_pc", store=True)
|
|
track = fields.Char(default='test', track_visibility="onchange")
|
|
partner_id = fields.Many2one('res.partner', string='Customer')
|
|
|
|
@api.depends('value')
|
|
def _value_pc(self):
|
|
for record in self:
|
|
record.value_pc = float(record.value) / 100
|