lims_interface: add data inputs to grouped data
This commit is contained in:
parent
ca50736e84
commit
b2cc659e16
|
@ -405,6 +405,7 @@ class Data(ModelSQL, ModelView):
|
|||
'type': 'one2many',
|
||||
'help': '',
|
||||
'relation': 'lims.interface.grouped_data',
|
||||
'relation_field': 'data',
|
||||
}
|
||||
res[field_name]['views'] = {
|
||||
'tree': GroupedData.fields_view_get(
|
||||
|
@ -810,7 +811,8 @@ class GroupedData(ModelView):
|
|||
def fn(self):
|
||||
ast = field.get_ast()
|
||||
inputs = field.get_inputs().split()
|
||||
inputs = [getattr(self, x) for x in inputs]
|
||||
inputs = [self.data.get(x) if x in self.data.keys()
|
||||
else getattr(self, x) for x in inputs]
|
||||
try:
|
||||
value = ast(*inputs)
|
||||
except schedula.utils.exc.DispatcherError as e:
|
||||
|
@ -831,8 +833,9 @@ class GroupedData(ModelView):
|
|||
setattr(cls, fn_name, fn)
|
||||
|
||||
@classmethod
|
||||
def fields_get(cls, fields_names=None, group=0):
|
||||
def fields_get(cls, fields_names=None, group=0, level=0):
|
||||
Model = Pool().get('ir.model')
|
||||
Data = Pool().get('lims.interface.data')
|
||||
res = super().fields_get(fields_names)
|
||||
|
||||
table = cls.get_table()
|
||||
|
@ -869,6 +872,17 @@ class GroupedData(ModelView):
|
|||
'%H:%M:%S.%f')
|
||||
if field.type in ['float', 'numeric']:
|
||||
res[field.name]['digits'] = encoder.encode((16, field.digits))
|
||||
res['data'] = {
|
||||
'name': 'data',
|
||||
'string': 'Data',
|
||||
'type': 'many2one',
|
||||
'relation': 'lims.interface.data',
|
||||
'relation_field': 'group_%s' % group,
|
||||
'relation_fields': (Data.fields_get(level=level - 1)
|
||||
if level > 0 else []),
|
||||
'readonly': True,
|
||||
'states': '{}',
|
||||
}
|
||||
return res
|
||||
|
||||
@classmethod
|
||||
|
|
|
@ -630,6 +630,9 @@ class Interface(Workflow, ModelSQL, ModelView):
|
|||
fields.append('<field name="group_%s" colspan="4"/>' % (
|
||||
i + 1, ))
|
||||
|
||||
if current_group:
|
||||
fields.append('</group>')
|
||||
|
||||
fields.append('<label name="notebook_line"/>')
|
||||
fields.append('<field name="notebook_line"/>')
|
||||
|
||||
|
@ -705,6 +708,8 @@ class Interface(Workflow, ModelSQL, ModelView):
|
|||
fields.append('<field name="%s" %s/>' % (line.name,
|
||||
' '.join(attributes)))
|
||||
|
||||
fields.append('<field name="data"/>')
|
||||
|
||||
return fields
|
||||
|
||||
def get_form_grouped_view(self, group):
|
||||
|
|
Loading…
Reference in New Issue