Merge lp:~credativ/openobject-addons/elico-6.1-fixes-gap-analysis-xls-import-warnings into lp:~openerp-community/openobject-addons/elico-6.1

Proposed by Tom Pickering
Status: Needs review
Proposed branch: lp:~credativ/openobject-addons/elico-6.1-fixes-gap-analysis-xls-import-warnings
Merge into: lp:~openerp-community/openobject-addons/elico-6.1
Diff against target: 120 lines (+52/-13)
1 file modified
gap_analysis/wizard/import_from_sheet.py (+52/-13)
To merge this branch: bzr merge lp:~credativ/openobject-addons/elico-6.1-fixes-gap-analysis-xls-import-warnings
Reviewer Review Type Date Requested Status
OpenERP Community (OBSOLETE) Pending
Review via email: mp+218433@code.launchpad.net

Description of the change

This branch improves the clarity of warning messages displayed when a user tries to import an invalid Gap Analysis from a spreadsheet.

To post a comment you must log in.

Unmerged revisions

10. By Tom Pickering

[IMP] Improvements to clarity of warnings during spreadsheet import.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'gap_analysis/wizard/import_from_sheet.py'
--- gap_analysis/wizard/import_from_sheet.py 2013-06-22 02:18:01 +0000
+++ gap_analysis/wizard/import_from_sheet.py 2014-05-06 14:02:57 +0000
@@ -125,10 +125,15 @@
125 def retrieve_gap_analysis(filecontents):125 def retrieve_gap_analysis(filecontents):
126 warning = ''126 warning = ''
127 g_cat_pool = self.pool.get('gap_analysis.functionality.category')127 g_cat_pool = self.pool.get('gap_analysis.functionality.category')
128 g_eft_pool = self.pool.get('gap_analysis.effort')
128 gap_lines_entries = {}129 gap_lines_entries = {}
129 rb = open_workbook(file_contents=filecontents,formatting_info=True, encoding_override="utf-8")130 rb = open_workbook(file_contents=filecontents,formatting_info=True, encoding_override="utf-8")
131 missing_categories = []
132 missing_efforts = []
133 sheet_count = 1
130 134
131 for rs in rb.sheets(): 135 for rs in rb.sheets():
136 line_count = 4
132 for line in range(3, rs.nrows):137 for line in range(3, rs.nrows):
133 try:138 try:
134 keep = getcell(rs, line, 1)139 keep = getcell(rs, line, 1)
@@ -168,22 +173,37 @@
168 total_dev = getfloat(getcell(rs, line,29))173 total_dev = getfloat(getcell(rs, line,29))
169 174
170 if functionality:175 if functionality:
176 if effort:
177 effort_ids = g_eft_pool.search(cr, uid, [('name','=',str(effort))], context=context)
178 if not effort_ids:
179 eft_str = str(effort)
180 if eft_str not in missing_efforts:
181 missing_efforts.append(eft_str)
182 warning += 'Effort %s does not exist in OpenERP. Please create it first, then upload your Gap Analysis again.\n\n' % eft_str
183
171 if category:184 if category:
172 categ_ids = g_cat_pool.search(cr, uid, ['|',('name','ilike',category),('full_path','ilike',category)])185 categ_ids = g_cat_pool.search(cr, uid, ['|',('name','ilike',category),('full_path','ilike',category)])
173 if categ_ids:186 if categ_ids:
174 category = categ_ids[0]187 if not missing_efforts:
188 category = categ_ids[0]
175 189
176 gap_line = GapLineTemp(gap_analysis, keep, functionality.strip(), function_desc, category, critical_level, phase, contributors, openerp_fct, basic_report, advan_report, basic_process, advan_process, basic_screen, advan_screen, basic_workflow, advan_workflow, acl, obj, calcul_field, basic_wizard, advan_wizard, effort, duration_wk, total_cost, total_analysis, total_dev, testing, training, project_mgmt)190 gap_line = GapLineTemp(gap_analysis, keep, functionality.strip(), function_desc, category, critical_level, phase, contributors, openerp_fct, basic_report, advan_report, basic_process, advan_process, basic_screen, advan_screen, basic_workflow, advan_workflow, acl, obj, calcul_field, basic_wizard, advan_wizard, effort, duration_wk, total_cost, total_analysis, total_dev, testing, training, project_mgmt)
177 if gap_line:191 if gap_line:
178 gap_lines_entries[rs.name.lower().strip() + str(line)] = gap_line192 gap_lines_entries[rs.name.lower().strip() + str(line)] = gap_line
179 else:193 else:
180 warning += 'The category ' + str(category) + ' does not exist in OpenERP. Please create it first, then upload you Gap analysis again.\n'194 cat_str = str(category)
195 if cat_str not in missing_categories:
196 missing_categories.append(cat_str)
197 warning += 'The category %s does not exist in OpenERP. Please create it first, then upload your Gap Analysis again.\n\n' % cat_str
181 else:198 else:
182 warning += 'The category ' + str(category) + ' does not exist in OpenERP. Please create it first, then upload you Gap analysis again.\n'199 warning += 'Missing category in spreadsheet row %d. Please specify a category and upload your Gap Analysis again.\n\n' % line_count
183 else:200 else:
184 print(" ("+ str(line) +"), No functionality... ######################## .......")201 print(" ("+ str(line) +"), No functionality... ######################## .......")
185 except RuntimeError as error:202 except RuntimeError as error:
186 print(" ("+ str(line) +", "+ str(col) +"), didn't make it ######################## ......."+ str(error))203 print(" ("+ str(line) +", "+ str(col) +"), didn't make it ######################## ......."+ str(error))
204
205 line_count += 1
206 sheet_count += 1
187 207
188 if warning != '':208 if warning != '':
189 raise osv.except_osv(_('Error'), warning)209 raise osv.except_osv(_('Error'), warning)
@@ -342,8 +362,12 @@
342 g_cat_pool = self.pool.get('gap_analysis.functionality.category')362 g_cat_pool = self.pool.get('gap_analysis.functionality.category')
343 warning = ''363 warning = ''
344 rb = open_workbook(file_contents=filecontents,formatting_info=True, encoding_override="utf-8")364 rb = open_workbook(file_contents=filecontents,formatting_info=True, encoding_override="utf-8")
365 missing_categories = []
366 missing_efforts = []
367 sheet_count = 1
345 368
346 for rs in rb.sheets(): 369 for rs in rb.sheets():
370 line_count = 4
347 for line in range(3, rs.nrows):371 for line in range(3, rs.nrows):
348 try:372 try:
349 keep = False 373 keep = False
@@ -378,21 +402,36 @@
378 category = getcell(rs, line, 25, forceText=True)402 category = getcell(rs, line, 25, forceText=True)
379 403
380 if functionality:404 if functionality:
405 if effort:
406 effort_ids = g_eft_pool.search(cr, uid, [('name','=',str(effort))], context=context)
407 if not effort_ids:
408 eft_str = str(effort)
409 if eft_str not in missing_efforts:
410 missing_efforts.append(eft_str)
411 warning += 'Effort %s does not exist in OpenERP. Please create it first, then upload your Gap Analysis again.\n\n' % eft_str
412
381 if category:413 if category:
382 categ_ids = g_cat_pool.search(cr, uid, ['|',('name','ilike',category),('full_path','ilike',category)])414 categ_ids = g_cat_pool.search(cr, uid, ['|',('name','ilike',category),('full_path','ilike',category)])
383 if categ_ids:415 if categ_ids:
384 category = categ_ids[0]416 if not missing_efforts:
385 one_fct = GapLineTemp(gap_analysis, keep, functionality.strip(), function_desc, category, critical_level, phase, contributors, openerp_fct, basic_report, advan_report, basic_process, advan_process, basic_screen, advan_screen, basic_workflow, advan_workflow, acl, obj, calcul_field, basic_wizard, advan_wizard, effort, duration_wk, total_cost, total_analysis, total_dev, testing, training, project_mgmt)417 category = categ_ids[0]
386 if one_fct:418 one_fct = GapLineTemp(gap_analysis, keep, functionality.strip(), function_desc, category, critical_level, phase, contributors, openerp_fct, basic_report, advan_report, basic_process, advan_process, basic_screen, advan_screen, basic_workflow, advan_workflow, acl, obj, calcul_field, basic_wizard, advan_wizard, effort, duration_wk, total_cost, total_analysis, total_dev, testing, training, project_mgmt)
387 fct_entries[rs.name.lower().strip() + str(line)] = one_fct419 if one_fct:
420 fct_entries[rs.name.lower().strip() + str(line)] = one_fct
388 else:421 else:
389 warning += 'The category ' + str(category) + ' dont exist in OpenERP. Please create it first, then upload you Gap analysis.\n'422 cat_str = str(category)
423 if cat_str not in missing_categories:
424 missing_categories.append(cat_str)
425 warning += 'The category %s does not exist in OpenERP. Please create it first, then upload your Gap Analysis again.\n\n' % cat_id
390 else:426 else:
391 warning += 'The category ' + str(category) + ' dont exist in OpenERP. Please create it first, then upload you Gap analysis.\n'427 warning += 'Missing category in spreadsheet row %d. Please specify a category and upload your Gap Analysis again.\n\n' % line_count
392 else:428 else:
393 print(" ("+ str(line) +"), No functionality... ######################## .......")429 print(" ("+ str(line) +"), No functionality... ######################## .......")
394 except RuntimeError as error:430 except RuntimeError as error:
395 print(" ("+ str(line) +", "+ str(col) +"), didn't make it ######################## ......."+ str(error))431 print(" ("+ str(line) +", "+ str(col) +"), didn't make it ######################## ......."+ str(error))
432
433 line_count += 1
434 sheet_count += 1
396 435
397 if warning != '':436 if warning != '':
398 raise osv.except_osv(_('Error'), warning)437 raise osv.except_osv(_('Error'), warning)

Subscribers

People subscribed via source and target branches