| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # -*- coding: utf-8 -*-
- import logging
- from odoo import api, SUPERUSER_ID
- _logger = logging.getLogger(__name__)
- def migrate(cr, version):
- """Cargar traducciones de selection fields en ir.model.fields.selection"""
- env = api.Environment(cr, SUPERUSER_ID, {})
-
- # Traducciones de business_impact
- translations = {
- 'business_impact': {
- '0': 'Crítico',
- '1': 'Alto',
- '2': 'Normal',
- }
- }
-
- # Traducciones de approval_status
- translations['approval_status'] = {
- 'draft': 'N/A',
- 'waiting': 'Esperando Aprobación',
- 'approved': 'Aprobado',
- 'rejected': 'Rechazado',
- }
-
- _logger.info("Cargando traducciones de selection fields...")
-
- for field_name, field_translations in translations.items():
- # Buscar el campo en ir.model.fields
- field_record = env['ir.model.fields'].search([
- ('model', '=', 'helpdesk.ticket'),
- ('name', '=', field_name)
- ], limit=1)
-
- if not field_record:
- _logger.warning(f"Campo {field_name} no encontrado en ir.model.fields")
- continue
-
- # Actualizar cada opción de selection
- updated_count = 0
- for sel in field_record.selection_ids:
- if sel.value in field_translations:
- translated_name = field_translations[sel.value]
- # Actualizar en español
- sel.with_context(lang='es_MX').write({'name': translated_name})
- updated_count += 1
- _logger.info(f" {field_name}.{sel.value}: '{sel.name}' → '{translated_name}'")
-
- _logger.info(f"✅ {updated_count} opciones actualizadas para {field_name}")
-
- cr.commit()
- _logger.info("✅ Traducciones de selection fields cargadas exitosamente")
|