def add_irradiation_holder(self, name, blob, commit=False, overwrite=False): p = os.path.join(paths.meta_dir, 'irradiation_holders', add_extension(name)) if not os.path.isfile(p) or overwrite: with open(p, 'w') as wfile: holes = list(iter_geom(blob)) n = len(holes) wfile.write('{},0.0175\n'.format(n)) for idx, (x, y, r) in holes: wfile.write('{:0.4f},{:0.4f},{:0.4f}\n'.format(x, y, r)) self.add(p, commit=commit)
def _save_tray(self, level, original_tray): db = self.db tr = db.get_irradiation_holder(self.selected_tray) n = len(tuple(iter_geom(tr.geometry))) on = len(level.positions) if n < on: if any([p.labnumber.analyses for p in level.positions[n:]]): self.warning_dialog('Cannot change tray from "{}" to "{}" ' 'This change would orphan irradiation identifiers ' 'that have associated analyses'.format(original_tray, self.selected_tray)) elif self.confirmation_dialog('You are about to orphan {} irradiation identifiers. ' 'Are you sure you want to continue?'.format(on - n)): level.holder = tr for p in level.positions[n:]: self.debug('deleting {} {} {} {}'.format(level.irradiation.name, level.name, p.position, p.labnumber.identifier)) db.delete_irradiation_position(p) else: level.holder = tr
def _save_tray(self, level, original_tray): db = self.db tr = db.get_irradiation_holder(self.selected_tray) n = len(tuple(iter_geom(tr.geometry))) on = len(level.positions) if n < on: if any([p.labnumber.analyses for p in level.positions[n:]]): self.warning_dialog( 'Cannot change tray from "{}" to "{}" ' 'This change would orphan irradiation identifiers ' 'that have associated analyses'.format( original_tray, self.selected_tray)) elif self.confirmation_dialog( 'You are about to orphan {} irradiation identifiers. ' 'Are you sure you want to continue?'.format(on - n)): level.holder = tr for p in level.positions[n:]: self.debug('deleting {} {} {} {}'.format( level.irradiation.name, level.name, p.position, p.labnumber.identifier)) db.delete_irradiation_position(p) else: level.holder = tr