translate
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
from odoo import models, fields, api, _
|
||||
|
||||
|
||||
class TranslationMixin(models.AbstractModel):
|
||||
_name = 'otk.translation.mixin'
|
||||
_description = 'Translation Mixin'
|
||||
|
||||
last_translation_date = fields.Datetime('Last Translation Date')
|
||||
|
||||
def action_bulk_translate(self):
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': _('Bulk translate'),
|
||||
'res_model': 'otk.translation.bulk.translate',
|
||||
'view_mode': 'form',
|
||||
'view_id': self.env.ref('otoolkit_auto_translate_fields.view_bulk_translate_wizard_form').id,
|
||||
'target': 'new',
|
||||
}
|
||||
|
||||
@api.model
|
||||
def _get_view(self, view_id=None, view_type='search', **options):
|
||||
arch, view = super()._get_view(view_id, view_type, **options)
|
||||
if view_type == 'list':
|
||||
# Here we check if the action already exists
|
||||
model_name = self._name
|
||||
action_xml_id = 'bulk_translate_action_for_' + model_name.replace('.', '_')
|
||||
|
||||
server_action = self.env.ref(f'otoolkit_auto_translate_fields.{action_xml_id}', raise_if_not_found=False)
|
||||
|
||||
if not server_action:
|
||||
# Create the server action dynamically
|
||||
model = self.env['ir.model']._get(model_name)
|
||||
action_name = _('Bulk translate')
|
||||
server_action = self.env['ir.actions.server'].sudo().create({
|
||||
'name': action_name,
|
||||
'model_id': model.id,
|
||||
'binding_model_id': model.id,
|
||||
'binding_view_types': 'list',
|
||||
'state': 'code',
|
||||
'code': "action = env['%s'].action_bulk_translate()" % model_name,
|
||||
})
|
||||
self.env['ir.model.data'].sudo().create({
|
||||
'name': action_xml_id,
|
||||
'model': 'ir.actions.server',
|
||||
'module': "otoolkit_auto_translate_fields",
|
||||
'res_id': server_action.id,
|
||||
'noupdate': True,
|
||||
})
|
||||
return arch, view
|
||||
Reference in New Issue
Block a user