lims_instrument: "Load Results from File" wizard: replace O2M with 20 fixed files

To avoid issue7541
This commit is contained in:
Adri?n Bernardi 2019-01-28 13:39:49 -03:00
parent 4b62faca67
commit feb500f53a
6 changed files with 271 additions and 65 deletions

View File

@ -11,7 +11,6 @@ def register():
resultsimport.NotebookLine,
resultsimport.ResultsImport,
resultsimport.NotebookLoadResultsFileStart,
resultsimport.NotebookLoadResultsFileStartLine,
resultsimport.NotebookLoadResultsFileEmpty,
resultsimport.NotebookLoadResultsFileResult,
resultsimport.NotebookLoadResultsFileWarning,

View File

@ -70,26 +70,170 @@ msgctxt "field:lims.notebook.load_results_file.start,id:"
msgid "ID"
msgstr "ID"
msgctxt "field:lims.notebook.load_results_file.start,lines:"
msgid "Files"
msgstr "Archivos"
msgctxt "field:lims.notebook.load_results_file.start,infile_01:"
msgid "File 01"
msgstr "Archivo 01"
msgctxt "field:lims.notebook.load_results_file.start,infile_02:"
msgid "File 02"
msgstr "Archivo 02"
msgctxt "field:lims.notebook.load_results_file.start,infile_03:"
msgid "File 03"
msgstr "Archivo 03"
msgctxt "field:lims.notebook.load_results_file.start,infile_04:"
msgid "File 04"
msgstr "Archivo 04"
msgctxt "field:lims.notebook.load_results_file.start,infile_05:"
msgid "File 05"
msgstr "Archivo 05"
msgctxt "field:lims.notebook.load_results_file.start,infile_06:"
msgid "File 06"
msgstr "Archivo 06"
msgctxt "field:lims.notebook.load_results_file.start,infile_07:"
msgid "File 07"
msgstr "Archivo 07"
msgctxt "field:lims.notebook.load_results_file.start,infile_08:"
msgid "File 08"
msgstr "Archivo 08"
msgctxt "field:lims.notebook.load_results_file.start,infile_09:"
msgid "File 09"
msgstr "Archivo 09"
msgctxt "field:lims.notebook.load_results_file.start,infile_10:"
msgid "File 10"
msgstr "Archivo 10"
msgctxt "field:lims.notebook.load_results_file.start,infile_11:"
msgid "File 11"
msgstr "Archivo 11"
msgctxt "field:lims.notebook.load_results_file.start,infile_12:"
msgid "File 12"
msgstr "Archivo 12"
msgctxt "field:lims.notebook.load_results_file.start,infile_13:"
msgid "File 13"
msgstr "Archivo 13"
msgctxt "field:lims.notebook.load_results_file.start,infile_14:"
msgid "File 14"
msgstr "Archivo 14"
msgctxt "field:lims.notebook.load_results_file.start,infile_15:"
msgid "File 15"
msgstr "Archivo 15"
msgctxt "field:lims.notebook.load_results_file.start,infile_16:"
msgid "File 16"
msgstr "Archivo 16"
msgctxt "field:lims.notebook.load_results_file.start,infile_17:"
msgid "File 17"
msgstr "Archivo 17"
msgctxt "field:lims.notebook.load_results_file.start,infile_18:"
msgid "File 18"
msgstr "Archivo 18"
msgctxt "field:lims.notebook.load_results_file.start,infile_19:"
msgid "File 19"
msgstr "Archivo 19"
msgctxt "field:lims.notebook.load_results_file.start,infile_20:"
msgid "File 20"
msgstr "Archivo 20"
msgctxt "field:lims.notebook.load_results_file.start,name_01:"
msgid "Name 01"
msgstr "Nombre 01"
msgctxt "field:lims.notebook.load_results_file.start,name_02:"
msgid "Name 02"
msgstr "Nombre 02"
msgctxt "field:lims.notebook.load_results_file.start,name_03:"
msgid "Name 03"
msgstr "Nombre 03"
msgctxt "field:lims.notebook.load_results_file.start,name_04:"
msgid "Name 04"
msgstr "Nombre 04"
msgctxt "field:lims.notebook.load_results_file.start,name_05:"
msgid "Name 05"
msgstr "Nombre 05"
msgctxt "field:lims.notebook.load_results_file.start,name_06:"
msgid "Name 06"
msgstr "Nombre 06"
msgctxt "field:lims.notebook.load_results_file.start,name_07:"
msgid "Name 07"
msgstr "Nombre 07"
msgctxt "field:lims.notebook.load_results_file.start,name_08:"
msgid "Name 08"
msgstr "Nombre 08"
msgctxt "field:lims.notebook.load_results_file.start,name_09:"
msgid "Name 09"
msgstr "Nombre 09"
msgctxt "field:lims.notebook.load_results_file.start,name_10:"
msgid "Name 10"
msgstr "Nombre 10"
msgctxt "field:lims.notebook.load_results_file.start,name_11:"
msgid "Name 11"
msgstr "Nombre 11"
msgctxt "field:lims.notebook.load_results_file.start,name_12:"
msgid "Name 12"
msgstr "Nombre 12"
msgctxt "field:lims.notebook.load_results_file.start,name_13:"
msgid "Name 13"
msgstr "Nombre 13"
msgctxt "field:lims.notebook.load_results_file.start,name_14:"
msgid "Name 14"
msgstr "Nombre 14"
msgctxt "field:lims.notebook.load_results_file.start,name_15:"
msgid "Name 15"
msgstr "Nombre 15"
msgctxt "field:lims.notebook.load_results_file.start,name_16:"
msgid "Name 16"
msgstr "Nombre 16"
msgctxt "field:lims.notebook.load_results_file.start,name_17:"
msgid "Name 17"
msgstr "Nombre 17"
msgctxt "field:lims.notebook.load_results_file.start,name_18:"
msgid "Name 18"
msgstr "Nombre 18"
msgctxt "field:lims.notebook.load_results_file.start,name_19:"
msgid "Name 19"
msgstr "Nombre 19"
msgctxt "field:lims.notebook.load_results_file.start,name_20:"
msgid "Name 20"
msgstr "Nombre 20"
msgctxt "field:lims.notebook.load_results_file.start,results_importer:"
msgid "Results importer"
msgstr "Importador de resultados"
msgctxt "field:lims.notebook.load_results_file.start.line,id:"
msgid "ID"
msgstr "ID"
msgctxt "field:lims.notebook.load_results_file.start.line,infile:"
msgid "File"
msgstr "Archivo"
msgctxt "field:lims.notebook.load_results_file.start.line,name:"
msgid "Name"
msgstr "Nombre"
msgctxt "field:lims.notebook.load_results_file.warning,id:"
msgid "ID"
msgstr "ID"
@ -119,7 +263,7 @@ msgid "Name"
msgstr "Nombre"
msgctxt "field:lims.resultsimport,rec_name:"
msgid "Name"
msgid "Record Name"
msgstr "Nombre"
msgctxt "field:lims.resultsimport,write_date:"
@ -162,10 +306,6 @@ msgctxt "model:lims.notebook.load_results_file.start,name:"
msgid "Load Results from File"
msgstr "Carga de resultados desde archivo"
msgctxt "model:lims.notebook.load_results_file.start.line,name:"
msgid "Load Results from File"
msgstr "Carga de resultados desde archivo"
msgctxt "model:lims.notebook.load_results_file.warning,name:"
msgid "Load Results from File Warning"
msgstr "Carga de resultados desde archivo - Advertencia"
@ -178,18 +318,10 @@ msgctxt "view:lims.notebook.line:"
msgid "Notebook lines"
msgstr "Líneas de cuaderno"
msgctxt "view:lims.notebook.load_results_file.empty:"
msgid "Load Results from File"
msgstr "Carga de resultados desde archivo"
msgctxt "view:lims.notebook.load_results_file.empty:"
msgid "No data could be collected from files"
msgstr "No fue posible obtener resultados desde los archivos"
msgctxt "view:lims.notebook.load_results_file.export:"
msgid "Export Results"
msgstr "Exportar resultados"
msgctxt "view:lims.notebook.load_results_file.export:"
msgid "Save the results in file"
msgstr "Guarde los resultados en un archivo"
@ -198,18 +330,10 @@ msgctxt "view:lims.notebook.load_results_file.result:"
msgid "Load Results from File"
msgstr "Carga de resultados desde archivo"
msgctxt "view:lims.notebook.load_results_file.start.line:"
msgid "Files"
msgstr "Archivos"
msgctxt "view:lims.notebook.load_results_file.start:"
msgid "Load Results from File"
msgstr "Carga de resultados desde archivo"
msgctxt "view:lims.notebook.load_results_file.warning:"
msgid "Load Results from File"
msgstr "Carga de resultados desde archivo"
msgctxt "view:lims.notebook.load_results_file.warning:"
msgid "There are some issues with the imported data"
msgstr "Se han detectado problemas en la información importada"
@ -253,7 +377,3 @@ msgstr "Cancelar"
msgctxt "wizard_button:lims.notebook.load_results_file,warning,close:"
msgid "Ok"
msgstr "Aceptar"
msgctxt "field:lims.notebook.line,imported_inj_date:"
msgid "Injection date"
msgstr "Fecha de Inyección"

View File

@ -18,7 +18,7 @@ from trytond.transaction import Transaction
__all__ = ['NotebookLine', 'ResultsImport', 'NotebookLoadResultsFileStart',
'NotebookLoadResultsFileStartLine', 'NotebookLoadResultsFileEmpty',
'NotebookLoadResultsFileEmpty',
'NotebookLoadResultsFileResult', 'NotebookLoadResultsFileWarning',
'NotebookLoadResultsFileExport', 'NotebookLoadResultsFile']
@ -118,16 +118,46 @@ class NotebookLoadResultsFileStart(ModelView):
results_importer = fields.Many2One('lims.resultsimport',
'Results importer', required=True)
lines = fields.One2Many('lims.notebook.load_results_file.start.line',
None, 'Files', required=True)
class NotebookLoadResultsFileStartLine(ModelView):
'Load Results from File'
__name__ = 'lims.notebook.load_results_file.start.line'
infile = fields.Binary('File', required=True, filename='name')
name = fields.Char('Name', readonly=True)
infile_01 = fields.Binary('File 01', filename='name_01')
name_01 = fields.Char('Name 01', readonly=True)
infile_02 = fields.Binary('File 02', filename='name_02')
name_02 = fields.Char('Name 02', readonly=True)
infile_03 = fields.Binary('File 03', filename='name_03')
name_03 = fields.Char('Name 03', readonly=True)
infile_04 = fields.Binary('File 04', filename='name_04')
name_04 = fields.Char('Name 04', readonly=True)
infile_05 = fields.Binary('File 05', filename='name_05')
name_05 = fields.Char('Name 05', readonly=True)
infile_06 = fields.Binary('File 06', filename='name_06')
name_06 = fields.Char('Name 06', readonly=True)
infile_07 = fields.Binary('File 07', filename='name_07')
name_07 = fields.Char('Name 07', readonly=True)
infile_08 = fields.Binary('File 08', filename='name_08')
name_08 = fields.Char('Name 08', readonly=True)
infile_09 = fields.Binary('File 09', filename='name_09')
name_09 = fields.Char('Name 09', readonly=True)
infile_10 = fields.Binary('File 10', filename='name_10')
name_10 = fields.Char('Name 10', readonly=True)
infile_11 = fields.Binary('File 11', filename='name_11')
name_11 = fields.Char('Name 11', readonly=True)
infile_12 = fields.Binary('File 12', filename='name_12')
name_12 = fields.Char('Name 12', readonly=True)
infile_13 = fields.Binary('File 13', filename='name_13')
name_13 = fields.Char('Name 13', readonly=True)
infile_14 = fields.Binary('File 14', filename='name_14')
name_14 = fields.Char('Name 14', readonly=True)
infile_15 = fields.Binary('File 15', filename='name_15')
name_15 = fields.Char('Name 15', readonly=True)
infile_16 = fields.Binary('File 16', filename='name_16')
name_16 = fields.Char('Name 16', readonly=True)
infile_17 = fields.Binary('File 17', filename='name_17')
name_17 = fields.Char('Name 17', readonly=True)
infile_18 = fields.Binary('File 18', filename='name_18')
name_18 = fields.Char('Name 18', readonly=True)
infile_19 = fields.Binary('File 19', filename='name_19')
name_19 = fields.Char('Name 19', readonly=True)
infile_20 = fields.Binary('File 20', filename='name_20')
name_20 = fields.Char('Name 20', readonly=True)
class NotebookLoadResultsFileEmpty(ModelView):
@ -198,9 +228,12 @@ class NotebookLoadResultsFile(Wizard):
Analysis = pool.get('lims.analysis')
lines = []
for fline in self.start.lines:
for fline in [str(item).zfill(2) for item in range(1, 21)]:
file_ = getattr(self.start, 'infile_%s' % fline)
if not file_:
continue
self.start.results_importer.rawresults = {}
self.start.results_importer.parse(fline.infile)
self.start.results_importer.parse(file_)
raw_results = self.start.results_importer.rawresults
fractions_numbers = list(raw_results.keys())
if not fractions_numbers:

View File

@ -39,11 +39,6 @@
<field name="type">form</field>
<field name="name">notebook_load_results_file_start_form</field>
</record>
<record model="ir.ui.view" id="lims_load_results_file_start_line_view_list">
<field name="model">lims.notebook.load_results_file.start.line</field>
<field name="type">tree</field>
<field name="name">notebook_load_results_file_start_line_list</field>
</record>
<record model="ir.ui.view" id="lims_load_results_file_empty_view_form">
<field name="model">lims.notebook.load_results_file.empty</field>
<field name="type">form</field>

View File

@ -2,5 +2,69 @@
<form>
<label name="results_importer"/>
<field name="results_importer" widget="selection"/>
<field name="lines" colspan="4"/>
<newline/>
<group col="3" colspan="2" id="files_10">
<label name="infile_01"/>
<field name="infile_01"/>
<field name="name_01"/>
<label name="infile_02"/>
<field name="infile_02"/>
<field name="name_02"/>
<label name="infile_03"/>
<field name="infile_03"/>
<field name="name_03"/>
<label name="infile_04"/>
<field name="infile_04"/>
<field name="name_04"/>
<label name="infile_05"/>
<field name="infile_05"/>
<field name="name_05"/>
<label name="infile_06"/>
<field name="infile_06"/>
<field name="name_06"/>
<label name="infile_07"/>
<field name="infile_07"/>
<field name="name_07"/>
<label name="infile_08"/>
<field name="infile_08"/>
<field name="name_08"/>
<label name="infile_09"/>
<field name="infile_09"/>
<field name="name_09"/>
<label name="infile_10"/>
<field name="infile_10"/>
<field name="name_10"/>
</group>
<group col="3" colspan="2" id="files_20">
<label name="infile_11"/>
<field name="infile_11"/>
<field name="name_11"/>
<label name="infile_12"/>
<field name="infile_12"/>
<field name="name_12"/>
<label name="infile_13"/>
<field name="infile_13"/>
<field name="name_13"/>
<label name="infile_14"/>
<field name="infile_14"/>
<field name="name_14"/>
<label name="infile_15"/>
<field name="infile_15"/>
<field name="name_15"/>
<label name="infile_16"/>
<field name="infile_16"/>
<field name="name_16"/>
<label name="infile_17"/>
<field name="infile_17"/>
<field name="name_17"/>
<label name="infile_18"/>
<field name="infile_18"/>
<field name="name_18"/>
<label name="infile_19"/>
<field name="infile_19"/>
<field name="name_19"/>
<label name="infile_20"/>
<field name="infile_20"/>
<field name="name_20"/>
</group>
</form>

View File

@ -1,5 +0,0 @@
<?xml version="1.0"?>
<tree editable="bottom">
<field name="infile"/>
<field name="name" expand="1"/>
</tree>