Example #1
0
 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)
Example #2
0
    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
Example #3
0
    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