mirror of
https://github.com/Kalenis/kalenislims.git
synced 2023-12-14 07:13:04 +01:00
lims: service: check for duplication only when modifying the analysis or method
This commit is contained in:
parent
a99fa46d8b
commit
406a8ca1a5
|
@ -531,17 +531,23 @@ class Service(ModelSQL, ModelView):
|
||||||
super().write(*args)
|
super().write(*args)
|
||||||
actions = iter(args)
|
actions = iter(args)
|
||||||
for services, vals in zip(actions, actions):
|
for services, vals in zip(actions, actions):
|
||||||
|
check_duplicated = False
|
||||||
|
for field in ('analysis', 'method'):
|
||||||
|
if vals.get(field):
|
||||||
|
check_duplicated = True
|
||||||
|
break
|
||||||
|
if check_duplicated:
|
||||||
|
cls.check_duplicated_analysis([{
|
||||||
|
'fraction': s.fraction.id,
|
||||||
|
'analysis': s.analysis.id,
|
||||||
|
'method': s.method.id,
|
||||||
|
} for s in services])
|
||||||
change_detail = False
|
change_detail = False
|
||||||
for field in ('analysis', 'laboratory', 'method', 'device'):
|
for field in ('analysis', 'laboratory', 'method', 'device'):
|
||||||
if vals.get(field):
|
if vals.get(field):
|
||||||
change_detail = True
|
change_detail = True
|
||||||
break
|
break
|
||||||
if change_detail:
|
if change_detail:
|
||||||
cls.check_duplicated_analysis([{
|
|
||||||
'fraction': s.fraction.id,
|
|
||||||
'analysis': s.analysis.id,
|
|
||||||
'method': s.method.id,
|
|
||||||
} for s in services])
|
|
||||||
cls.update_analysis_detail(services)
|
cls.update_analysis_detail(services)
|
||||||
fractions_ids = list(set(s.fraction.id for s in services))
|
fractions_ids = list(set(s.fraction.id for s in services))
|
||||||
cls.set_shared_fraction(fractions_ids)
|
cls.set_shared_fraction(fractions_ids)
|
||||||
|
|
Loading…
Reference in a new issue