diff --git a/bemade_fsm/__manifest__.py b/bemade_fsm/__manifest__.py index 60e6672..096e4fb 100644 --- a/bemade_fsm/__manifest__.py +++ b/bemade_fsm/__manifest__.py @@ -20,7 +20,7 @@ ######################################################################################## { "name": "Improved Field Service Management", - "version": "17.0.0.3.0", + "version": "17.0.0.4.0", "summary": ( "Adds functionality necessary for managing field service operations at Durpro." ), diff --git a/bemade_fsm/migrations/17.0.0.4.0/pre-migrate.py b/bemade_fsm/migrations/17.0.0.4.0/pre-migrate.py new file mode 100644 index 0000000..5dea508 --- /dev/null +++ b/bemade_fsm/migrations/17.0.0.4.0/pre-migrate.py @@ -0,0 +1,56 @@ +from odoo import api, SUPERUSER_ID +import logging +from openupgradelib.openupgrade import update_module_moved_models + +_logger = logging.getLogger(__name__) + + +def migrate(cr, version): + """In this version, we separate the bemade_fsm.equipment and its associated models + out into a new module named fsm_equipment. We need to move those models and rename + some fields.""" + env = api.Environment(cr, SUPERUSER_ID, {}) + _logger.info("Moving FSM equipment...") + # Move the old equipment over to the new table + sql = """ + INSERT INTO fsm_equipment + (id, code, name, description, partner_id, location_notes, active) + SELECT id, pid_tag code, name, description, partner_location_id, location_notes, + active + FROM bemade_fsm_equipment + """ + cr.execute(sql) + + _logger.info("Moving FSM equipment tags...") + # Move the tags + sql = """ + INSERT INTO fsm_equipment_tag (id, name, color) + SELECT id, name, color FROM bemade_fsm_equipment_tag + """ + cr.execute(sql) + + _logger.info("Re-creating equipment to tag relations.") + # Add the relations + sql = """ + INSERT INTO fsm_task_equipment_rel (equipment_id, task_id) + SELECT equipment_id, task_id from bemade_fsm_equipment_rel + """ + + _logger.info("Deleting menu items.") + cr.execute( + """ + DELETE FROM ir_ui_menu WHERE id in ( + SELECT res_id from ir_model_data where model='ir.ui.menu' + and module='bemade_fsm' + ) + """ + ) + + cr.execute( + "DELETE FROM ir_model_data where model='ir.ui.menu' and module='bemade_fsm'" + ) + + cr.execute("DELETE FROM ir_model_fields where model ilike 'bemade_fsm.equipment%'") + cr.execute( + "DELETE FROM ir_model WHERE name->>'en_US' ilike 'bemade_fsm.equipment%'" + ) diff --git a/fsm_equipment/models/equipment.py b/fsm_equipment/models/equipment.py index ca55ac5..488f422 100644 --- a/fsm_equipment/models/equipment.py +++ b/fsm_equipment/models/equipment.py @@ -37,7 +37,7 @@ class Equipment(models.Model): task_ids = fields.Many2many( comodel_name="project.task", - relation="bemade_fsm_task_equipment_rel", + relation="fsm_task_equipment_rel", column1="equipment_id", column2="task_id", string="Interventions",