kalenislims/lims_report_html/notebook.py

34 lines
1.3 KiB
Python

# This file is part of lims_report_html module for Tryton.
# The COPYRIGHT file at the top level of this repository contains
# the full copyright notices and license terms.
from trytond.model import fields
from trytond.pool import Pool, PoolMeta
class Notebook(metaclass=PoolMeta):
__name__ = 'lims.notebook'
result_template = fields.Function(fields.Many2One(
'lims.report.template', 'Report Template'), 'get_sample_field')
resultrange_origin = fields.Function(fields.Many2One('lims.range.type',
'Comparison range'), 'get_sample_field')
def _order_sample_field(name):
def order_field(tables):
pool = Pool()
Sample = pool.get('lims.sample')
Fraction = pool.get('lims.fraction')
field = Sample._fields[name]
table, _ = tables[None]
fraction_tables = tables.get('fraction')
if fraction_tables is None:
fraction = Fraction.__table__()
fraction_tables = {
None: (fraction, fraction.id == table.fraction),
}
tables['fraction'] = fraction_tables
return field.convert_order(name, fraction_tables, Fraction)
return staticmethod(order_field)
order_result_template = _order_sample_field('result_template')