From b9e8786ef86b4ef89af84aab1a2a2c44d09826b9 Mon Sep 17 00:00:00 2001 From: "mra (Open ERP)" Date: Mon, 5 Jan 2009 18:14:34 +0530 Subject: changes on quality module bzr revid: mra@tinyerp.com-20090105124434-oll8rix427lv524l --- addons/base_module_quality/wizard/module_quality_check.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'addons/base_module_quality/wizard/module_quality_check.py') diff --git a/addons/base_module_quality/wizard/module_quality_check.py b/addons/base_module_quality/wizard/module_quality_check.py index 1da35f9f68a..155ad87061a 100644 --- a/addons/base_module_quality/wizard/module_quality_check.py +++ b/addons/base_module_quality/wizard/module_quality_check.py @@ -75,11 +75,10 @@ class wiz_quality_check(osv.osv_memory): ad = tools.config['root_path']+'/addons' module_path = os.path.join(ad, module_data[0].name) val = test.quality_test() - val.run_test(cr, uid, str(module_path), str(module_data[0].state)) - string_ret += val.result['summary'] #summary tab - if not val.error: - string_ret += "Score: " + str(val.score) + "/10\n" #val.score = val.score * val.ponderation ??? - string_detail += val.result['detail'] # detail tab + string_ret += val.get_result(cr, uid, str(module_path), str(module_data[0].state)) #result['summary'] #summary tab + string_detail += val.get_result_detail()#result['detail'] # detail tab +# if not val.error: +# string_ret += "Score: " + str(val.score) + "/10\n" #val.score = val.score * val.ponderation ??? score_sum += (val.add_quatation(val.score, 10) * val.ponderation) ponderation_sum += val.ponderation final_score = str(score_sum / ponderation_sum * 100) + "%" -- cgit v1.2.3 From aef3884e59c6b1aec0e0f127e3e6c1969f4289a9 Mon Sep 17 00:00:00 2001 From: qdp Date: Mon, 5 Jan 2009 17:25:46 +0100 Subject: improvements on base_module_quality bzr revid: qdp@tinyerp.com-20090105162546-yr8su19er4gkih48 --- .../wizard/module_quality_check.py | 170 ++++++++++----------- 1 file changed, 81 insertions(+), 89 deletions(-) (limited to 'addons/base_module_quality/wizard/module_quality_check.py') diff --git a/addons/base_module_quality/wizard/module_quality_check.py b/addons/base_module_quality/wizard/module_quality_check.py index 155ad87061a..827e4719800 100644 --- a/addons/base_module_quality/wizard/module_quality_check.py +++ b/addons/base_module_quality/wizard/module_quality_check.py @@ -27,107 +27,99 @@ import tools import os from base_module_quality import base_module_quality -#TODO: (utiliser les nouveaux wizards pour heriter la vue et rajouter un onglet par test?) -#TODO: implement the speed test -#TODO: add cheks: do the class quality_check inherits the class abstract_quality_check? -#TODO: improve translability -#TODO: clean - - -#To keep or not? to be discussed... - -#~ view_form = """ -#~
- #~ - #~ - #~ - #~ - #~ -#~
""" - - -#~ view_field = { - #~ "general_info": {'type': 'text', 'string': 'General Info', 'readonly':True}, -#~ } +#TODO: add cheks: do the class quality_check inherits the class abstract_quality_check? -class wiz_quality_check(osv.osv_memory): -# general_info = "" +class wiz_quality_check(osv.osv): _name = 'wizard.quality.check' - - def _check(self, cr, uid, data, context={}): - string_ret = "" - string_detail = "" - from tools import config - data['ids'] = data.get('module_id', False) - pool = pooler.get_pool(cr.dbname) - module_data = pool.get('ir.module.module').browse(cr, uid, [data['ids']]) - list_folders = os.listdir(config['addons_path']+'/base_module_quality/') - module_name = module_data[0].name - abstract_obj = base_module_quality.abstract_quality_check() - score_sum = 0.0 - ponderation_sum = 0.0 - final_score = "" - for test in abstract_obj.tests: - ad = tools.config['addons_path'] - if module_data[0].name == 'base': - ad = tools.config['root_path']+'/addons' - module_path = os.path.join(ad, module_data[0].name) - val = test.quality_test() - string_ret += val.get_result(cr, uid, str(module_path), str(module_data[0].state)) #result['summary'] #summary tab - string_detail += val.get_result_detail()#result['detail'] # detail tab -# if not val.error: -# string_ret += "Score: " + str(val.score) + "/10\n" #val.score = val.score * val.ponderation ??? - score_sum += (val.add_quatation(val.score, 10) * val.ponderation) - ponderation_sum += val.ponderation - final_score = str(score_sum / ponderation_sum * 100) + "%" - string_ret += "\n\nPonderation Result for module:" + final_score - self.string_detail = string_detail - return "" - - def _check_detail(self, cr, uid, data, context={}): - return self.string_detail - - -# def _general_info(self, cr, uid, data, context={}): -# return self.general_info - - #~ states = { - - #~ 'init': { - #~ 'actions': [_check], - #~ 'result': {'type':'form', 'arch':view_form, 'fields':view_field, 'state':[('end','Ok')]}, - #~ }, - #~ } -#To keep or not? to be discussed... - - #~ 'init': { - #~ 'actions': [], - #~ 'result': {'type':'form', 'arch':form_check, 'fields':fields_check, 'state':[('end','Cancel'),('do','Do Test')]} - #~ }, _columns = { -# 'general_info': fields.text('General Info', readonly="1",), -# 'detail' : fields.text('Detail', readonly="0",), - 'verbose_detail' : fields.one2many('quality.check.detail', 'quality_check', 'Verbose Detail', readonly="0",) + 'name': fields.char('Rated Module', size=64, ), + 'final_score': fields.char('Final Score', size=10,), + 'test_ids' : fields.one2many('quality.check.detail', 'quality_check_id', 'Test Details',) } - _defaults = { -# 'general_info': _check, -# 'detail': _check_detail - 'verbose_detail': _check, - } - wiz_quality_check() -class quality_check_detail(osv.osv_memory): + +class quality_check_detail(osv.osv): _name = 'quality.check.detail' - _rec_name = 'quality_check' _columns = { - 'quality_check': fields.many2one('wizard.quality.check', 'Quality'), - 'general_info': fields.text('General Info', readonly="1",), - 'detail' : fields.text('Detail', readonly="1",), + 'quality_check_id': fields.many2one('wizard.quality.check', 'Quality'), + 'name': fields.char('Name',size=128,), + 'score': fields.float('Score',), + 'ponderation': fields.float('Ponderation',), + 'summary': fields.text('Summary',), + 'detail' : fields.text('Details',), } quality_check_detail() + +class create_quality_check(wizard.interface): + + def _create_quality_check(self, cr, uid, data, context={}): + pool = pooler.get_pool(cr.dbname) + if data['id']: + module_data = pool.get('ir.module.module').browse(cr, uid, [data['id']])[0] + #list_folders = os.listdir(config['addons_path']+'/base_module_quality/') + abstract_obj = base_module_quality.abstract_quality_check() + score_sum = 0.0 + ponderation_sum = 0.0 + create_ids = [] + for test in abstract_obj.tests: + ad = tools.config['addons_path'] + if module_data.name == 'base': + ad = tools.config['root_path']+'/addons' + module_path = os.path.join(ad, module_data.name) + val = test.quality_test() + + if not val.bool_installed_only or module_data.state=="installed": + val.run_test(cr, uid, str(module_path)) + data = { + 'name': val.name, + 'score': val.score, + 'ponderation': val.ponderation, + 'summary': val.result, + 'detail': val.result_details, + } + create_ids.append((0,0,data)) + score_sum += val.score * val.ponderation + ponderation_sum += val.ponderation + else: + data = { + 'name': val.name, + 'score': 0, + 'summary': _("The module has to be installed before running this test.") + } + create_ids.append((0,0,data)) + + final_score = str(score_sum / ponderation_sum * 100) + "%" + data = { + 'name': module_data.name, + 'final_score': final_score, + 'test_ids' : create_ids, + } + obj = pool.get('wizard.quality.check').create(cr, uid, data, context) + return obj + + def _open_quality_check(self, cr, uid, data, context): + obj_id = self._create_quality_check(cr, uid, data, context) + return { + 'domain': "[('id','=', "+ str(obj_id)+")]", + 'name': _('Quality Check'), + 'view_type': 'form', + 'view_mode': 'tree,form', + 'res_model': 'wizard.quality.check', + 'type': 'ir.actions.act_window' + } + + states = { + 'init' : { + 'actions' : [], + 'result': {'type':'action', 'action':_open_quality_check, 'state':'end'} + } + } + +create_quality_check("create_quality_check_wiz") + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: -- cgit v1.2.3