Public release from ruodoo-project: 19.0 - 2026-05-10 21:19:01 UTC
This commit is contained in:
29
mklab_base_indicators/models/hg_index.py
Normal file
29
mklab_base_indicators/models/hg_index.py
Normal file
@ -0,0 +1,29 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import models, fields, api
|
||||
|
||||
|
||||
class HypergraphIndex(models.Model):
|
||||
_name = 'hg.index'
|
||||
|
||||
name = fields.Char(string='Название')
|
||||
internal_code_id = fields.Many2one(comodel_name='hg.index.code', string='Внутренний код')
|
||||
external_code = fields.Char(string='Внешний код')
|
||||
public = fields.Boolean(string='Публичный')
|
||||
value_ids = fields.One2many(comodel_name='hg.value', inverse_name='index_id', string='Значения')
|
||||
node_id = fields.Many2one(comodel_name='hg.node', string='Вершина графа')
|
||||
current_value = fields.Float(string='Текущее значение', compute='_compute_current_value', store=True)
|
||||
|
||||
@api.depends('value_ids.date_due')
|
||||
def _compute_current_value(self):
|
||||
today = fields.Date.today()
|
||||
for rec in self:
|
||||
valid_values = rec.value_ids.filtered(lambda v: (v.date_due or today) <= today)
|
||||
if valid_values:
|
||||
last_value = valid_values.sorted(lambda r: r.date_due, reverse=True)[0]
|
||||
rec.current_value = last_value.value_float_actual
|
||||
else:
|
||||
rec.current_value = 0
|
||||
|
||||
def calc(self):
|
||||
#метод, который вычисляет значение: или по формуле или по связанным
|
||||
return True
|
||||
Reference in New Issue
Block a user