lims_analysis_sheet: use field definition from compilation table

This commit is contained in:
Adri?n Bernardi 2020-03-19 12:06:37 -03:00
parent a30f63a3a1
commit 6ea3871b42
3 changed files with 31 additions and 30 deletions

View File

@ -337,7 +337,7 @@ class InternalRelationsCalc(Wizard):
pool = Pool()
AnalysisSheet = pool.get('lims.analysis_sheet')
ModelField = pool.get('ir.model.field')
Column = pool.get('lims.interface.column')
Field = pool.get('lims.interface.table.field')
Data = pool.get('lims.interface.data')
sheet_id = Transaction().context['active_id']
@ -347,15 +347,15 @@ class InternalRelationsCalc(Wizard):
('model.model', '=', 'lims.notebook.line'),
('name', '=', 'result'),
])
result_column = Column.search([
('interface', '=', sheet.template.interface),
result_column = Field.search([
('table', '=', sheet.compilation.table.id),
('transfer_field', '=', True),
('related_line_field', '=', nl_result_field)
('related_line_field', '=', nl_result_field),
])
if not result_column:
return 'end'
result_field = result_column[0].alias
result_field = result_column[0].name
relations = {}
notebooks = {}
with Transaction().set_context(
@ -529,7 +529,7 @@ class ResultsVerification(Wizard):
pool = Pool()
AnalysisSheet = pool.get('lims.analysis_sheet')
ModelField = pool.get('ir.model.field')
Column = pool.get('lims.interface.column')
Field = pool.get('lims.interface.table.field')
Data = pool.get('lims.interface.data')
sheet_id = Transaction().context['active_id']
@ -539,10 +539,10 @@ class ResultsVerification(Wizard):
('model.model', '=', 'lims.notebook.line'),
('name', '=', 'result'),
])
result_column = Column.search([
('interface', '=', sheet.template.interface),
result_column = Field.search([
('table', '=', sheet.compilation.table.id),
('transfer_field', '=', True),
('related_line_field', '=', nl_result_field)
('related_line_field', '=', nl_result_field),
])
if not result_column:
return 'end'
@ -551,16 +551,16 @@ class ResultsVerification(Wizard):
('model.model', '=', 'lims.notebook.line'),
('name', '=', 'verification'),
])
verification_column = Column.search([
('interface', '=', sheet.template.interface),
verification_column = Field.search([
('table', '=', sheet.compilation.table.id),
('transfer_field', '=', True),
('related_line_field', '=', nl_verification_field)
('related_line_field', '=', nl_verification_field),
])
if not verification_column:
return 'end'
result_field = result_column[0].alias
verification_field = verification_column[0].alias
result_field = result_column[0].name
verification_field = verification_column[0].name
notebook_lines = {}
with Transaction().set_context(
lims_interface_table=sheet.compilation.table.id):

View File

@ -352,7 +352,7 @@ class AnalysisSheet(Workflow, ModelSQL, ModelView):
def get_completion_percentage(cls, sheets, name):
pool = Pool()
ModelField = pool.get('ir.model.field')
Column = pool.get('lims.interface.column')
Field = pool.get('lims.interface.table.field')
Data = pool.get('lims.interface.data')
nl_result_field, = ModelField.search([
@ -363,14 +363,14 @@ class AnalysisSheet(Workflow, ModelSQL, ModelView):
result = {}
for s in sheets:
result[s.id] = 0
result_column = Column.search([
('interface', '=', s.template.interface),
result_column = Field.search([
('table', '=', s.compilation.table.id),
('transfer_field', '=', True),
('related_line_field', '=', nl_result_field)
('related_line_field', '=', nl_result_field),
])
if not result_column:
continue
result_field = result_column[0].alias
result_field = result_column[0].name
with Transaction().set_context(
lims_interface_table=s.compilation.table.id):
lines = Data.search([('compilation', '=', s.compilation.id)])
@ -520,7 +520,7 @@ class AnalysisSheet(Workflow, ModelSQL, ModelView):
def check_results(cls, sheets):
pool = Pool()
ModelField = pool.get('ir.model.field')
Column = pool.get('lims.interface.column')
Field = pool.get('lims.interface.table.field')
Data = pool.get('lims.interface.data')
nl_result_field, = ModelField.search([
@ -529,15 +529,15 @@ class AnalysisSheet(Workflow, ModelSQL, ModelView):
])
for s in sheets:
result_column = Column.search([
('interface', '=', s.template.interface),
result_column = Field.search([
('table', '=', s.compilation.table.id),
('transfer_field', '=', True),
('related_line_field', '=', nl_result_field)
('related_line_field', '=', nl_result_field),
])
if not result_column:
raise UserError(gettext(
'lims_analysis_sheet.msg_template_not_result_field'))
result_field = result_column[0].alias
result_field = result_column[0].name
with Transaction().set_context(
lims_interface_table=s.compilation.table.id):
lines = Data.search([('compilation', '=', s.compilation.id)])
@ -691,6 +691,7 @@ class ExportAnalysisSheetFile(Wizard):
return
sheet = AnalysisSheet(sheet_id)
# TODO: use lims.interface.table.field
columns = Column.search([
('interface', '=', sheet.template.interface),
('destination_column', '!=', None),

View File

@ -1002,11 +1002,11 @@ class Compilation(Workflow, ModelSQL, ModelView):
repetition_value = line[self.interface.repetition_field.alias]
fraction = Fraction.search([
('number', '=', fraction_value)
('number', '=', fraction_value),
])
if fraction and repetition_value is not None:
nb = Notebook.search([
('fraction', '=', fraction[0].id)
('fraction', '=', fraction[0].id),
])
analysis = Analysis.search([
('code', '=', analysis_value),
@ -1034,7 +1034,7 @@ class Compilation(Workflow, ModelSQL, ModelView):
result_fields = {}
fields = Field.search([
('table', '=', c.table),
('transfer_field', '=', True)
('transfer_field', '=', True),
])
for field in fields:
result_fields[field.name] = {
@ -1044,7 +1044,7 @@ class Compilation(Workflow, ModelSQL, ModelView):
with Transaction().set_context(
lims_interface_table=c.table):
lines = Data.search([
('compilation', '=', c.id)
('compilation', '=', c.id),
])
for l in lines:
nb_line = l.notebook_line
@ -1070,7 +1070,7 @@ class Compilation(Workflow, ModelSQL, ModelView):
result_fields = {}
fields = Field.search([
('table', '=', c.table),
('transfer_field', '=', True)
('transfer_field', '=', True),
])
for field in fields:
result_fields[field.name] = {
@ -1080,7 +1080,7 @@ class Compilation(Workflow, ModelSQL, ModelView):
with Transaction().set_context(
lims_interface_table=c.table):
lines = Data.search([
('compilation', '=', c.id)
('compilation', '=', c.id),
])
for l in lines:
nb_line = l.notebook_line