lims: add some indexes to improve performance
This commit is contained in:
parent
f4b516c21d
commit
5dab76a9a8
|
@ -783,7 +783,7 @@ class Analysis(Workflow, ModelSQL, ModelView):
|
|||
__name__ = 'lims.analysis'
|
||||
_rec_name = 'description'
|
||||
|
||||
code = fields.Char('Code', required=True,
|
||||
code = fields.Char('Code', required=True, select=True,
|
||||
states={'readonly': Eval('state') != 'draft'}, depends=['state'])
|
||||
description = fields.Char('Description', required=True, translate=True,
|
||||
states={'readonly': Bool(Equal(Eval('state'), 'disabled'))},
|
||||
|
@ -883,7 +883,7 @@ class Analysis(Workflow, ModelSQL, ModelView):
|
|||
product = fields.Many2One('product.product', 'Product')
|
||||
automatic_acquisition = fields.Boolean('Automatic acquisition',
|
||||
states={'readonly': Bool(Equal(Eval('state'), 'disabled'))},
|
||||
depends=['state'])
|
||||
depends=['state'], select=True)
|
||||
order = fields.Integer('Order', states={
|
||||
'invisible': Not(And(
|
||||
Bool(Equal(Eval('type'), 'analysis')),
|
||||
|
|
|
@ -773,9 +773,10 @@ class NotebookLine(ModelSQL, ModelView):
|
|||
service = fields.Many2One('lims.service', 'Service', readonly=True,
|
||||
ondelete='CASCADE', select=True)
|
||||
analysis = fields.Many2One('lims.analysis', 'Analysis', required=True,
|
||||
readonly=True)
|
||||
readonly=True, select=True)
|
||||
repetition = fields.Integer('Repetition', readonly=True)
|
||||
start_date = fields.Date('Start date', states={'readonly': True})
|
||||
start_date = fields.Date('Start date', states={'readonly': True},
|
||||
select=True)
|
||||
end_date = fields.Date('End date', states={
|
||||
'readonly': Or(~Bool(Eval('start_date')), Bool(Eval('accepted'))),
|
||||
}, depends=['start_date', 'accepted'])
|
||||
|
@ -868,12 +869,13 @@ class NotebookLine(ModelSQL, ModelView):
|
|||
analysis_order = fields.Function(fields.Integer('Order'),
|
||||
'get_analysis_order')
|
||||
dilution_factor = fields.Float('Dilution factor')
|
||||
accepted = fields.Boolean('Accepted')
|
||||
accepted = fields.Boolean('Accepted', select=True)
|
||||
acceptance_date = fields.DateTime('Acceptance date',
|
||||
states={'readonly': True})
|
||||
not_accepted_message = fields.Text('Message', readonly=True,
|
||||
states={'invisible': Not(Bool(Eval('not_accepted_message')))})
|
||||
annulled = fields.Boolean('Annulled', states={'readonly': True})
|
||||
annulled = fields.Boolean('Annulled', states={'readonly': True},
|
||||
select=True)
|
||||
annulment_date = fields.DateTime('Annulment date',
|
||||
states={'readonly': True})
|
||||
results_report = fields.Many2One('lims.results_report', 'Results Report',
|
||||
|
|
|
@ -615,9 +615,10 @@ class PlanificationDetail(ModelSQL, ModelView):
|
|||
|
||||
planification = fields.Many2One('lims.planification', 'Planification',
|
||||
ondelete='CASCADE', select=True, required=True)
|
||||
fraction = fields.Many2One('lims.fraction', 'Fraction', required=True)
|
||||
fraction = fields.Many2One('lims.fraction', 'Fraction', required=True,
|
||||
select=True)
|
||||
service_analysis = fields.Many2One('lims.analysis', 'Service',
|
||||
required=True)
|
||||
required=True, select=True)
|
||||
fraction_type = fields.Function(fields.Many2One('lims.fraction.type',
|
||||
'Fraction type'), 'get_fraction_field',
|
||||
searcher='search_fraction_field')
|
||||
|
@ -731,8 +732,8 @@ class PlanificationServiceDetail(ModelSQL, ModelView):
|
|||
staff_responsible = fields.Many2Many(
|
||||
'lims.planification.service_detail-laboratory.professional', 'detail',
|
||||
'professional', 'Laboratory professionals')
|
||||
is_control = fields.Boolean('Is Control')
|
||||
is_replanned = fields.Boolean('Is Replanned')
|
||||
is_control = fields.Boolean('Is Control', select=True)
|
||||
is_replanned = fields.Boolean('Is Replanned', select=True)
|
||||
planned_service = fields.Many2One('lims.analysis', 'Planned service')
|
||||
repetition = fields.Function(fields.Integer('Repetition'),
|
||||
'get_repetition')
|
||||
|
@ -859,8 +860,9 @@ class LabProfessionalMethod(ModelSQL, ModelView):
|
|||
__name__ = 'lims.lab.professional.method'
|
||||
|
||||
professional = fields.Many2One('lims.laboratory.professional',
|
||||
'Professional', required=True)
|
||||
method = fields.Many2One('lims.lab.method', 'Method', required=True)
|
||||
'Professional', required=True, select=True)
|
||||
method = fields.Many2One('lims.lab.method', 'Method', required=True,
|
||||
select=True)
|
||||
state = fields.Selection([
|
||||
('training', 'Training'),
|
||||
('qualified', 'Qualified'),
|
||||
|
@ -869,7 +871,7 @@ class LabProfessionalMethod(ModelSQL, ModelView):
|
|||
type = fields.Selection([
|
||||
('preparation', 'Preparation'),
|
||||
('analytical', 'Analytical'),
|
||||
], 'Type', sort=False)
|
||||
], 'Type', sort=False, select=True)
|
||||
requalification_history = fields.One2Many(
|
||||
'lims.lab.professional.method.requalification', 'professional_method',
|
||||
'Trainings/Qualifications/Requalifications')
|
||||
|
|
|
@ -354,13 +354,14 @@ class NotebookLoadResultsFile(Wizard):
|
|||
('converted_result_modifier', 'not in',
|
||||
['d', 'nd', 'pos', 'neg', 'ni', 'abs', 'pre']),
|
||||
]
|
||||
line = NotebookLine.search(clause)
|
||||
if line:
|
||||
data = raw_results[f[1]][analysis][rep]
|
||||
res = self.get_results(line[0], data)
|
||||
if res:
|
||||
NotebookLine.write([line[0]], res)
|
||||
lines.append(line[0])
|
||||
line = NotebookLine.search(clause, limit=1)
|
||||
if not line:
|
||||
continue
|
||||
data = raw_results[f[1]][analysis][rep]
|
||||
res = self.get_results(line[0], data)
|
||||
if res:
|
||||
NotebookLine.write([line[0]], res)
|
||||
lines.append(line[0])
|
||||
|
||||
if lines:
|
||||
self.result.result_lines = [l.id for l in lines]
|
||||
|
|
Loading…
Reference in New Issue