From 7187ef8bb4dad5cb6302f112e941139f68dcd0fa Mon Sep 17 00:00:00 2001 From: "ajay javiya (OpenERP)" Date: Mon, 6 Aug 2012 15:55:17 +0530 Subject: [PATCH] [IMP]: Improve in base_gengo as per pylint standard bzr revid: aja@tinyerp.com-20120806102517-tretlbhm2ydwetxi --- addons/base_gengo/ir_translation.py | 21 ++- addons/base_gengo/ir_translation.xml | 4 +- addons/base_gengo/res_company.py | 28 ++-- addons/base_gengo/res_company_view.xml | 2 +- addons/base_gengo/res_lang.py | 7 +- addons/base_gengo/res_lang_view.xml | 2 +- addons/base_gengo/wizard/__init__.py | 2 - .../base_gengo/wizard/alert_message_gengo.xml | 6 +- .../wizard/gengo_response_scheduler.xml | 4 +- .../wizard/gengo_update_translation.py | 133 +++++++-------- addons/base_gengo/wizard/wrap_object.py | 156 +++++++++--------- 11 files changed, 178 insertions(+), 187 deletions(-) diff --git a/addons/base_gengo/ir_translation.py b/addons/base_gengo/ir_translation.py index 2c1740b9b04..297e449ecdc 100644 --- a/addons/base_gengo/ir_translation.py +++ b/addons/base_gengo/ir_translation.py @@ -19,20 +19,19 @@ # ############################################################################## -from osv import fields,osv +from osv import fields, osv + class ir_translation(osv.Model): _name = "ir.translation" - _description="Translation" - _inherit="ir.translation" + _inherit = "ir.translation" _columns = { - 'gengo_comment':fields.text("Comments"), - 'gengo_translation':fields.boolean("Translation", help='This term has to be translated by Gengo automatically'), - 'gengo_control':fields.boolean('Active'), - 'job_id':fields.char('Gengo Job Id',size=32), - } - - _defaults = { - 'gengo_control':False, + 'gengo_comment': fields.text("Comments"), + 'gengo_translation': fields.boolean("Translation", help='This term has to be translated by Gengo automatically'), + 'gengo_control': fields.boolean('Active'), + 'job_id': fields.char('Gengo Job Id', size=32), } + _defaults = { + 'gengo_control': False, + } diff --git a/addons/base_gengo/ir_translation.xml b/addons/base_gengo/ir_translation.xml index 52b081cd7d6..753c12c7e7d 100644 --- a/addons/base_gengo/ir_translation.xml +++ b/addons/base_gengo/ir_translation.xml @@ -13,12 +13,12 @@ - + ir.translation.form.inherit - ir.translation + ir.translation form diff --git a/addons/base_gengo/res_company.py b/addons/base_gengo/res_company.py index 2a91d13f1b1..888e675e26b 100644 --- a/addons/base_gengo/res_company.py +++ b/addons/base_gengo/res_company.py @@ -19,24 +19,24 @@ # ############################################################################## -from osv import fields,osv +from osv import fields, osv + class res_company(osv.Model): _name = "res.company" - _description = "Companies" _inherit = "res.company" _columns = { - "gengo_private_key":fields.text("Gengo private key"), - "gengo_public_key":fields.text("Gengo public key"), - "gengo_tier":fields.selection([('machine','Machine'), - ('standard','Standard'), - ('pro','Pro'), - ('ultra','Ultra')],"Tier types", required=True), - "gengo_comment":fields.text("comments"), - "gengo_auto_approve":fields.boolean("Active",help="Jobs are Automatically Approved by Gengo."), - "fields_ids":fields.many2many('ir.model.fields','fields_company_rel','field_id','model_id','fields'), + "gengo_private_key": fields.text("Gengo private key"), + "gengo_public_key": fields.text("Gengo public key"), + "gengo_tier": fields.selection([('machine', 'Machine'), + ('standard', 'Standard'), + ('pro', 'Pro'), + ('ultra', 'Ultra')], "Tier types", required=True), + "gengo_comment": fields.text("comments"), + "gengo_auto_approve": fields.boolean("Active", help="Jobs are Automatically Approved by Gengo."), + "fields_ids": fields.many2many('ir.model.fields', 'fields_company_rel', 'field_id', 'model_id', 'fields'), } - - _defaults={ - "gengo_tier":"machine", + + _defaults = { + "gengo_tier": "machine", } diff --git a/addons/base_gengo/res_company_view.xml b/addons/base_gengo/res_company_view.xml index a4f6ceffcce..bfa0b1ddf95 100644 --- a/addons/base_gengo/res_company_view.xml +++ b/addons/base_gengo/res_company_view.xml @@ -5,7 +5,7 @@ res.company.form.inherit - res.company + res.company form diff --git a/addons/base_gengo/res_lang.py b/addons/base_gengo/res_lang.py index 48e5a6db995..e9c88c9fd29 100644 --- a/addons/base_gengo/res_lang.py +++ b/addons/base_gengo/res_lang.py @@ -19,14 +19,13 @@ # ############################################################################## -from osv import fields,osv +from osv import fields, osv + class res_company(osv.Model): _name = "res.lang" - _description = "Languages" _inherit = "res.lang" _columns = { - 'gengo_sync':fields.boolean('Active', help='Synchronize Translation Periodically') + 'gengo_sync': fields.boolean('Active', help='Synchronize Translation Periodically') } - diff --git a/addons/base_gengo/res_lang_view.xml b/addons/base_gengo/res_lang_view.xml index efdfeed671e..e0c8edd11aa 100644 --- a/addons/base_gengo/res_lang_view.xml +++ b/addons/base_gengo/res_lang_view.xml @@ -5,7 +5,7 @@ res.lang.form.inherit - res.lang + res.lang form diff --git a/addons/base_gengo/wizard/__init__.py b/addons/base_gengo/wizard/__init__.py index fe8452a5b64..e7935ca8b1c 100644 --- a/addons/base_gengo/wizard/__init__.py +++ b/addons/base_gengo/wizard/__init__.py @@ -22,5 +22,3 @@ import gengo_update_translation import wrap_object # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - - diff --git a/addons/base_gengo/wizard/alert_message_gengo.xml b/addons/base_gengo/wizard/alert_message_gengo.xml index 9b16c34552f..304175db031 100644 --- a/addons/base_gengo/wizard/alert_message_gengo.xml +++ b/addons/base_gengo/wizard/alert_message_gengo.xml @@ -7,16 +7,16 @@ base.update.translations form - + + - + diff --git a/addons/base_gengo/wizard/gengo_response_scheduler.xml b/addons/base_gengo/wizard/gengo_response_scheduler.xml index f924dc5e4ee..544235d8a6f 100644 --- a/addons/base_gengo/wizard/gengo_response_scheduler.xml +++ b/addons/base_gengo/wizard/gengo_response_scheduler.xml @@ -6,12 +6,12 @@ Run Gengo Response Scheduler 1 - minutes + days -1 - + Run Gengo Sync Request Scheduler diff --git a/addons/base_gengo/wizard/gengo_update_translation.py b/addons/base_gengo/wizard/gengo_update_translation.py index a5186b4ab6d..1a5c90edb0a 100644 --- a/addons/base_gengo/wizard/gengo_update_translation.py +++ b/addons/base_gengo/wizard/gengo_update_translation.py @@ -20,123 +20,118 @@ ############################################################################## from osv import osv, fields -import tools -import cStringIO from tools.translate import _ import wrap_object import logging _logger = logging.getLogger(__name__) + class gengo_update_translation(osv.osv_memory): def send_translation_terms(self, cr, uid, ids, context): """Lasy Loading will be perform when user or cron send a bunch of request.""" - - total_term=0 - limit= 0 - translation_list=context['translation_term_id'] - range_jobs=1 - + total_term = 0 + limit = 0 + translation_list = context['translation_term_id'] + range_jobs = 1 meta = self.pool.get('jobs.meta') - translation_pool=self.pool.get('ir.translation') + translation_pool = self.pool.get('ir.translation') user = self.pool.get('res.users').browse(cr, uid, uid, context) - gengo = meta.gengo_authentication(cr,uid,ids,context) - job_length=len(context['translation_term_id']) - remain=len(context['translation_term_id']) % wrap_object.REQUEST_LIMIT + gengo = meta.gengo_authentication(cr, uid, ids, context) + job_length = len(context['translation_term_id']) + remain = len(context['translation_term_id']) % wrap_object.REQUEST_LIMIT if len(context['translation_term_id']) > wrap_object.REQUEST_LIMIT: if remain > 0: - range_jobs=(len(context['translation_term_id']) / wrap_object.REQUEST_LIMIT) + 1 + range_jobs = (len(context['translation_term_id']) / wrap_object.REQUEST_LIMIT) + 1 else: - range_jobs=len(context['translation_term_id']) / wrap_object.REQUEST_LIMIT - for length in range(0,range_jobs): - trans_list=[] + range_jobs = len(context['translation_term_id']) / wrap_object.REQUEST_LIMIT + for length in range(0, range_jobs): + trans_list = [] if job_length > wrap_object.REQUEST_LIMIT: - job_length-=wrap_object.REQUEST_LIMIT - limit+=wrap_object.REQUEST_LIMIT + job_length -= wrap_object.REQUEST_LIMIT + limit += wrap_object.REQUEST_LIMIT else: - limit+=remain + limit += remain for key in translation_list[total_term:limit]: trans_list.append(key) - total_term=limit - jobs = meta.pack_jobs_request(cr,uid,trans_list,context={'language_code':context['lang']}) - result = gengo.postTranslationJobs(jobs = jobs) - self.write(cr, uid, ids, {'state':'done'}) + total_term = limit + jobs = meta.pack_jobs_request(cr, uid, trans_list, context={'language_code': context['lang']}) + result = gengo.postTranslationJobs(jobs=jobs) + self.write(cr, uid, ids, {'state': 'done'}) if user.company_id.gengo_tier == 'machine': - if result.get('opstat')=='ok': - for job in result.get('response').get('jobs'): - for translation_id,val in job.items(): - translation_pool.write(cr,uid,int(translation_id),{'value': - val['body_tgt'],'state':'translated','gengo_control':True}) + if result.get('opstat') == 'ok': + for job in result.get('response').get('jobs'): + for translation_id, val in job.items(): + translation_pool.write(cr, uid, int(translation_id), {'value': + val['body_tgt'], 'state': 'translated', 'gengo_control': True}) else: for job in result.get('response').get('jobs'): - for translation_id,val in job.items(): - translation_pool.write(cr,uid,int(translation_id),{'job_id':val['job_id']}) + for translation_id, val in job.items(): + translation_pool.write(cr, uid, int(translation_id), {'job_id': val['job_id']}) return - + def act_update(self, cr, uid, ids, context=None): try: - language_pool=self.pool.get('res.lang') + language_pool = self.pool.get('res.lang') this = self.browse(cr, uid, ids)[0] - translation_pool=self.pool.get('ir.translation') - lang_search_id=language_pool.search(cr, uid, [('gengo_sync','=',True),('code','=',this.lang)]) - + translation_pool = self.pool.get('ir.translation') + lang_search_id = language_pool.search(cr, uid, + [('gengo_sync', '=', True), ('code', '=', this.lang)]) + if not lang_search_id: - translation_term_id=translation_pool.search(cr,uid,[('state','=','translate'), ('gengo_translation','=','True'),('lang','=',this.lang)]) - context.update({'lang':this.lang,'translation_term_id':translation_term_id}) - self.send_translation_terms(cr,uid,ids,context) + translation_term_id = translation_pool.search(cr, uid, [('state', '=', 'translate'), ('gengo_translation', '=', 'True'), ('lang', '=', this.lang)]) + context.update({'lang': this.lang, 'translation_term_id': translation_term_id}) + self.send_translation_terms(cr, uid, ids, context) return else: - self.write(cr, uid, ids, {'state':'inprogress'}) + self.write(cr, uid, ids, {'state': 'inprogress'}) except Exception, e: raise osv.except_osv(_('Warning !'), _('%s') % e) - + def scheduler_get_gengo_response(self, cr, uid, ids=0, context=None): - """Scheduler will be call to get response from gengo and all term will get + """Scheduler will be call to get response from gengo and all term will get by scheduler which terms are in reviewable state""" - + meta = self.pool.get('jobs.meta') - translation_pool=self.pool.get('ir.translation') - - gengo = meta.gengo_authentication(cr,uid,ids,context) - res = gengo.getTranslationJobs(status = "approved") + translation_pool = self.pool.get('ir.translation') + gengo = meta.gengo_authentication(cr, uid, ids, context) + res = gengo.getTranslationJobs(status="approved") if res: response = meta.unpack_jobs_response(res) for job in response.response: - translation_id=translation_pool.search(cr,uid,[('job_id','=',job.job_id)],context) - response=gengo.getTranslationJob(id = job.job_id) - translation_pool.write(cr,uid,translation_id,{'value':response['response']['job']['body_tgt'],'state':'translated','gengo_control':True}) - + translation_id = translation_pool.search(cr, uid, [('job_id', '=', job.job_id)], context) + response = gengo.getTranslationJob(id=job.job_id) + translation_pool.write(cr, uid, translation_id, {'value': response['response']['job']['body_tgt'], 'state': 'translated', 'gengo_control': True}) + def scheduler_get_gengo_sync_request(self, cr, uid, ids=0, context=None): - """This scheduler will send a job request to the gengo , which terms are + """This scheduler will send a job request to the gengo , which terms are in translate state and gengo_translation is true""" - + if context is None: - context={} + context = {} try: - language_pool=self.pool.get('res.lang') - translation_pool=self.pool.get('ir.translation') - - lang_search_id=language_pool.search(cr, uid, [('gengo_sync','=',True)]) - lang_ids=language_pool.read(cr, uid,lang_search_id) - + language_pool = self.pool.get('res.lang') + translation_pool = self.pool.get('ir.translation') + lang_search_id = language_pool.search(cr, uid, [('gengo_sync', '=', True)]) + lang_ids = language_pool.read(cr, uid, lang_search_id) + for lang_id in lang_ids: - translation_term_id=translation_pool.search(cr,uid,[('state','=','translate'), ('gengo_translation','=','True'),('lang','=',lang_id['code']),('job_id','=',False)]) - context.update({'lang':lang_id['code'],'translation_term_id':translation_term_id}) + translation_term_id = translation_pool.search(cr, uid, [('state', '=', 'translate'), ('gengo_translation', '=', 'True'), ('lang', '=', lang_id['code']), ('job_id', '=', False)]) + context.update({'lang': lang_id['code'], 'translation_term_id': translation_term_id}) if translation_term_id: self.send_translation_terms(cr, uid, ids, context) except Exception, e: - _logger.warning('A Gengo Exception is occur:: %s',e) + _logger.warning('A Gengo Exception is occur:: %s', e) _name = 'base.update.translations' _inherit = "base.update.translations" - - _columns= { - 'state':fields.selection([('init','init'),('inprogress','inprogress'),('done','done')], 'state'), + _columns = { + 'state': fields.selection([('init', 'init'), ('inprogress', 'inprogress'), ('done', 'done')], 'state'), } - - _defaults= { - 'state':'init', + + _defaults = { + 'state': 'init', } gengo_update_translation() - +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_gengo/wizard/wrap_object.py b/addons/base_gengo/wizard/wrap_object.py index 51007bdbd71..01368e5e2cb 100644 --- a/addons/base_gengo/wizard/wrap_object.py +++ b/addons/base_gengo/wizard/wrap_object.py @@ -20,66 +20,65 @@ ############################################################################## from osv import orm, osv -import tools from tools.translate import _ from mygengo import MyGengo import re -REQUEST_LIMIT=10 +REQUEST_LIMIT = 10 -LANG_MAPPING={ - 'ar':'Arabic', - 'id':'Indonesian', - 'nl':'Dutch', - 'fr-ca':'French (Canada)', - 'pl':'Polish', - 'zh-tw':'Chinese (Traditional)', - 'sv':'Swedish', - 'ko':'Korean', - 'pt':'Portuguese (Europe)', - 'en':'English', - 'ja':'Japanese', - 'es':'Spanish (Spain)', - 'zh':'Chinese (Simplified)', - 'de':'German', - 'fr':'French', - 'ru':'Russian', - 'it':'Italian', - 'pt-br':'Portuguese (Brazil)', +LANG_MAPPING = { + 'ar': 'Arabic', + 'id': 'Indonesian', + 'nl': 'Dutch', + 'fr-ca': 'French (Canada)', + 'pl': 'Polish', + 'zh-tw': 'Chinese (Traditional)', + 'sv': 'Swedish', + 'ko': 'Korean', + 'pt': 'Portuguese (Europe)', + 'en': 'English', + 'ja': 'Japanese', + 'es': 'Spanish (Spain)', + 'zh': 'Chinese (Simplified)', + 'de': 'German', + 'fr': 'French', + 'ru': 'Russian', + 'it': 'Italian', + 'pt-br': 'Portuguese (Brazil)', } LANG_CODE_MAPPING = { - 'ar_SA':'ar', - 'id_ID':'id', - 'nl_NL':'nl', - 'fr_CA':'fr-ca', - 'pl':'pl', - 'zh_TW':'zh-tw', - 'sv_SE':'sv', - 'ko_KR':'ko', - 'pt_PT':'pt', - 'en':'en', - 'ja_JP':'ja', - 'es_ES':'es', - 'zh_CN':'zh', - 'de_DE':'de', - 'fr_FR':'fr', - 'ru_RU':'ru', - 'it_IT':'it', - 'pt_BR':'pt-br' + 'ar_SA': 'ar', + 'id_ID': 'id', + 'nl_NL': 'nl', + 'fr_CA': 'fr-ca', + 'pl': 'pl', + 'zh_TW': 'zh-tw', + 'sv_SE': 'sv', + 'ko_KR': 'ko', + 'pt_PT': 'pt', + 'en': 'en', + 'ja_JP': 'ja', + 'es_ES': 'es', + 'zh_CN': 'zh', + 'de_DE': 'de', + 'fr_FR': 'fr', + 'ru_RU': 'ru', + 'it_IT': 'it', + 'pt_BR': 'pt-br' } + class gengo_response(object): - """ + """ """ def __init__(self, jobs): - response = jobs['response'] + response = jobs['response'] job = [] - jobs_id=[] if isinstance(response, list): - job = [ gengo_job(value) for value in response] + job = [gengo_job(value) for value in response] else: - job = [ gengo_job(value) for value in response.values()] + job = [gengo_job(value) for value in response.values()] jobs.update({'response': job}) self._data = jobs @@ -92,8 +91,9 @@ class gengo_response(object): except KeyError, e: raise AttributeError(e) + class gengo_job(object): - """ + """ """ def __init__(self, job): self._data = job @@ -107,53 +107,53 @@ class gengo_job(object): except KeyError, e: raise AttributeError(e) + class JobsMeta(orm.AbstractModel): - - _name="jobs.meta" - - def gengo_authentication(self,cr,uid,ids,context=None): + + _name = "jobs.meta" + + def gengo_authentication(self, cr, uid, ids, context=None): ''' To Send Request and Get Response from Gengo User needs Public and Private - key for that user need to signup to gengo and get public and private + key for that user need to signup to gengo and get public and private key which is provided by gengo to authentic user ''' - - gengo_parameter_pool=self.pool.get('res.users').browse(cr,uid,uid,context) + + gengo_parameter_pool = self.pool.get('res.users').browse(cr, uid, uid, context) try: gengo = MyGengo( - public_key = gengo_parameter_pool.company_id.gengo_public_key.encode('ascii'), - private_key = gengo_parameter_pool.company_id.gengo_private_key.encode('ascii'), - sandbox = True, + public_key=gengo_parameter_pool.company_id.gengo_public_key.encode('ascii'), + private_key=gengo_parameter_pool.company_id.gengo_private_key.encode('ascii'), + sandbox=True, ) return gengo except Exception, e: raise osv.except_osv(_('Warning !'), _(e)) - - def pack_jobs_request(self, cr, uid, translation_term_id, context): - jobs={} - auto_approve = 0 - gengo_parameter_pool=self.pool.get('res.users').browse(cr, uid, uid, context) - translation_pool =self.pool.get('ir.translation') - - if gengo_parameter_pool.company_id.gengo_auto_approve == True: - auto_approve=1 - for key,value in LANG_CODE_MAPPING.items(): + def pack_jobs_request(self, cr, uid, translation_term_id, context): + jobs = {} + auto_approve = 0 + gengo_parameter_pool = self.pool.get('res.users').browse(cr, uid, uid, context) + translation_pool = self.pool.get('ir.translation') + + if gengo_parameter_pool.company_id.gengo_auto_approve == True: + auto_approve = 1 + + for key, value in LANG_CODE_MAPPING.items(): if key == context['language_code']: for terms in translation_pool.read(cr, uid, translation_term_id, context=None): -# translation_pool.write(cr,uid,translation_term_id,{'state':'inprogress'}) - if re.search(r"[a-z A-Z]",terms['src']): - job = {'type':'text', - 'slug':'single::English to '+ LANG_MAPPING.get(value), - 'tier':gengo_parameter_pool.company_id.gengo_tier, - 'body_src':terms['src'], - 'lc_src':'en', - 'lc_tgt':value, - 'auto_approve': auto_approve, - 'comment':gengo_parameter_pool.company_id.gengo_comment , + translation_pool.write(cr, uid, translation_term_id, {'state': 'inprogress'}) + if re.search(r"[a-z A-Z]", terms['src']): + job = {'type': 'text', + 'slug': 'single::English to' + LANG_MAPPING.get(value), + 'tier': gengo_parameter_pool.company_id.gengo_tier, + 'body_src': terms['src'], + 'lc_src': 'en', + 'lc_tgt': value, + 'auto_approve': auto_approve, + 'comment': gengo_parameter_pool.company_id.gengo_comment, } jobs.update({terms['id']: job}) return {'jobs': jobs} - + def unpack_jobs_response(self, jobs): return gengo_response(jobs) - - +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: