| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- from odoo import api, SUPERUSER_ID
- import logging
- _logger = logging.getLogger(__name__)
- def migrate(cr, version):
- env = api.Environment(cr, SUPERUSER_ID, {})
-
- # Verificar si el campo ya existe
- cr.execute("""
- SELECT id FROM ir_model_fields
- WHERE model = 'helpdesk.ticket' AND name = 'affected_user_email'
- """)
- existing = cr.fetchone()
-
- if existing:
- _logger.info("Campo affected_user_email ya existe en ir.model.fields")
- # Asegurar que no esté en la lista negra
- cr.execute("""
- UPDATE ir_model_fields
- SET website_form_blacklisted = false
- WHERE id = %s
- """, (existing[0],))
- _logger.info("Campo actualizado: website_form_blacklisted = false")
- else:
- # Obtener el modelo
- cr.execute("""
- SELECT id FROM ir_model WHERE model = 'helpdesk.ticket'
- """)
- model_result = cr.fetchone()
-
- if model_result:
- model_id = model_result[0]
- # Crear el campo usando el ORM
- try:
- field_vals = {
- 'model_id': model_id,
- 'name': 'affected_user_email',
- 'field_description': 'Affected User',
- 'ttype': 'char',
- 'model': 'helpdesk.ticket',
- 'help': 'Email address of the affected user (from another Odoo instance)',
- 'website_form_blacklisted': False,
- 'state': 'base',
- }
- field = env['ir.model.fields'].sudo().create(field_vals)
- _logger.info(f"Campo affected_user_email creado con ID: {field.id}")
- except Exception as e:
- _logger.error(f"Error al crear campo con ORM: {e}")
- else:
- _logger.error("Modelo helpdesk.ticket no encontrado")
-
- cr.commit()
|