lims_interface/lims_analysis_sheet: identify notebook lines also by the method (2)
This commit is contained in:
parent
87c905ff8e
commit
ddafeda4c1
|
@ -1915,30 +1915,35 @@ class Compilation(Workflow, ModelSQL, ModelView):
|
|||
pool = Pool()
|
||||
NotebookLine = pool.get('lims.notebook.line')
|
||||
|
||||
if (not self.interface.fraction_field or
|
||||
not self.interface.analysis_field or
|
||||
not self.interface.method_field or
|
||||
not self.interface.repetition_field):
|
||||
fraction_field = self.interface.fraction_field
|
||||
analysis_field = self.interface.analysis_field
|
||||
repetition_field = self.interface.repetition_field
|
||||
if not fraction_field or not analysis_field or not repetition_field:
|
||||
return None
|
||||
|
||||
fraction_value = line[self.interface.fraction_field.alias]
|
||||
analysis_value = line[self.interface.analysis_field.alias]
|
||||
method_value = line[self.interface.method_field.alias]
|
||||
repetition_value = line[self.interface.repetition_field.alias]
|
||||
fraction_value = line.get(fraction_field.alias)
|
||||
analysis_value = line.get(analysis_field.alias)
|
||||
repetition_value = line.get(repetition_field.alias)
|
||||
if (fraction_value is None or
|
||||
analysis_value is None or
|
||||
method_value is None or
|
||||
repetition_value is None):
|
||||
return None
|
||||
|
||||
nb_line = NotebookLine.search([
|
||||
clause = [
|
||||
('notebook.fraction.number', '=', fraction_value),
|
||||
('analysis.code', '=', analysis_value.split(' - ')[0]),
|
||||
('analysis.automatic_acquisition', '=', True),
|
||||
('method.code', '=', method_value.split(' - ')[0]),
|
||||
('repetition', '=', repetition_value),
|
||||
('annulled', '=', False),
|
||||
])
|
||||
]
|
||||
method_field = self.interface.method_field
|
||||
if method_field:
|
||||
method_value = line.get(method_field.alias)
|
||||
if method_value is not None:
|
||||
clause.append(
|
||||
('method.code', '=', method_value.split(' - ')[0]))
|
||||
|
||||
nb_line = NotebookLine.search(clause)
|
||||
if nb_line:
|
||||
return nb_line[0].id
|
||||
return None
|
||||
|
@ -1955,24 +1960,28 @@ class Compilation(Workflow, ModelSQL, ModelView):
|
|||
sub_clause = [('id', '=', -1)]
|
||||
fraction_field = self.interface.fraction_field
|
||||
analysis_field = self.interface.analysis_field
|
||||
method_field = self.interface.method_field
|
||||
repetition_field = self.interface.repetition_field
|
||||
if (fraction_field and analysis_field and method_field and
|
||||
repetition_field):
|
||||
fraction_value = line[fraction_field.alias]
|
||||
analysis_value = line[analysis_field.alias]
|
||||
method_value = line[method_field.alias]
|
||||
repetition_value = line[repetition_field.alias]
|
||||
if fraction_field and analysis_field and repetition_field:
|
||||
|
||||
fraction_value = line.get(fraction_field.alias)
|
||||
analysis_value = line.get(analysis_field.alias)
|
||||
repetition_value = line.get(repetition_field.alias)
|
||||
|
||||
if (fraction_value is not None and
|
||||
analysis_value is not None and
|
||||
method_value is not None and
|
||||
repetition_value is not None):
|
||||
sub_clause = [
|
||||
(fraction_field.alias, '=', fraction_value),
|
||||
(analysis_field.alias, '=', analysis_value),
|
||||
(method_field.alias, '=', method_value),
|
||||
(repetition_field.alias, '=', repetition_value),
|
||||
]
|
||||
method_field = self.interface.method_field
|
||||
if method_field:
|
||||
method_value = line.get(method_field.alias)
|
||||
if method_value is not None:
|
||||
sub_clause.append(
|
||||
(method_field.alias, '=', method_value))
|
||||
|
||||
clause.extend(sub_clause)
|
||||
line = Data.search(clause)
|
||||
return line and line[0].id or None
|
||||
|
|
Loading…
Reference in New Issue