def Import(self, context, request): """ Import Form """ infile = request.form['instrument_results_file'] fileformat = request.form.get( 'instrument_results_file_format', 'xls') artoapply = request.form['artoapply'] override = request.form['results_override'] instrument = request.form.get('instrument', None) errors = [] logs = [] warns = [] # Load the most suitable parser according to file extension/options/etc... parser = None if not hasattr(infile, 'filename'): errors.append(_("No file selected")) if fileformat in ('xls', 'xlsx'): parser = ChemStationParser(infile, encoding=fileformat) else: errors.append(t(_("Unrecognized file format ${fileformat}", mapping={"fileformat": fileformat}))) if parser: # Load the importer status = ['sample_received', 'attachment_due', 'to_be_verified'] if artoapply == 'received': status = ['sample_received'] elif artoapply == 'received_tobeverified': status = ['sample_received', 'attachment_due', 'to_be_verified'] over = [False, False] if override == 'nooverride': over = [False, False] elif override == 'override': over = [True, False] elif override == 'overrideempty': over = [True, True] importer = AnalysisResultsImporter( parser=parser, context=context, allowed_ar_states=status, allowed_analysis_states=None, override=over, instrument_uid=instrument) tbex = '' try: importer.process() errors = importer.errors logs = importer.logs warns = importer.warns except Exception as e: tbex = traceback.format_exc() errors.append(tbex) results = {'errors': errors, 'log': logs, 'warns': warns} return json.dumps(results)
def Import(context, request): errors = [] logs = [] warns = [] infile = request.form['instrument_results_file'] if not hasattr(infile, 'filename'): errors.append(_("No file selected")) artoapply = request.form['artoapply'] override = request.form['results_override'] instrument = request.form.get('instrument', None) default_unit = request.form['default_unit'] worksheet = request.form.get('worksheet', 0) parser = S8TigerParser(infile, worksheet=worksheet, default_unit=default_unit) if parser: status = ['sample_received', 'attachment_due', 'to_be_verified'] if artoapply == 'received': status = ['sample_received'] elif artoapply == 'received_tobeverified': status = [ 'sample_received', 'attachment_due', 'to_be_verified' ] over = [False, False] if override == 'nooverride': over = [False, False] elif override == 'override': over = [True, False] elif override == 'overrideempty': over = [True, True] importer = AnalysisResultsImporter(parser=parser, context=context, allowed_ar_states=status, allowed_analysis_states=None, override=over, instrument_uid=instrument) try: importer.process() errors = importer.errors logs = importer.logs warns = importer.warns except Exception as e: errors.extend([repr(e), traceback.format_exc()]) results = {'errors': errors, 'log': logs, 'warns': warns} return json.dumps(results)
def __init__(self, parser, context, override, allowed_ar_states=None, allowed_analysis_states=None, instrument_uid='', form=None): AnalysisResultsImporter.__init__(self, parser, context, override, allowed_ar_states, allowed_analysis_states, instrument_uid)