You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
2.2 KiB

  1. from openupgradelib import openupgrade
  2. xmlid_renames = [
  3. (
  4. "easy_my_coop.group_energiris_user",
  5. "easy_my_coop.group_easy_my_coop_user",
  6. ),
  7. (
  8. "easy_my_coop.group_energiris_manager",
  9. "easy_my_coop.group_easy_my_coop_manager",
  10. ),
  11. ]
  12. def copy_records_module_category_cooperator_management(env):
  13. openupgrade.logged_query(
  14. env.cr,
  15. """
  16. CREATE TABLE res_groups_users_rel_module_category_cooperator_management AS
  17. SELECT gid, uid
  18. FROM res_groups_users_rel
  19. WHERE gid = (
  20. SELECT id
  21. FROM res_groups
  22. WHERE name = 'User'
  23. AND category_id = (
  24. SELECT id
  25. FROM ir_module_category
  26. WHERE name = 'EasyMy Coop'
  27. )
  28. )
  29. ORDER BY gid,uid;""",
  30. )
  31. def delete_records_module_category_cooperator_management(env):
  32. """"Since XML-ID module_category_cooperator_management is now flagged as noupdate="1",
  33. we need to manually delete it as well as other records that are linked to it
  34. """
  35. openupgrade.logged_query(
  36. env.cr,
  37. """
  38. DELETE
  39. FROM res_groups_users_rel
  40. WHERE gid = (
  41. SELECT id
  42. FROM res_groups
  43. WHERE name = 'User'
  44. AND category_id = (
  45. SELECT id
  46. FROM ir_module_category
  47. WHERE name = 'EasyMy Coop'
  48. )
  49. );""",
  50. )
  51. openupgrade.logged_query(
  52. env.cr,
  53. """
  54. DELETE
  55. FROM res_groups
  56. WHERE name = 'User'
  57. AND category_id = (
  58. SELECT id
  59. FROM ir_module_category
  60. WHERE name = 'EasyMy Coop'
  61. );""",
  62. )
  63. openupgrade.logged_query(
  64. env.cr,
  65. """
  66. DELETE
  67. FROM ir_module_category
  68. WHERE name = 'EasyMy Coop';""",
  69. )
  70. @openupgrade.migrate()
  71. def migrate(env, version):
  72. cr = env.cr
  73. openupgrade.rename_xmlids(cr, xmlid_renames)
  74. copy_records_module_category_cooperator_management(env)
  75. delete_records_module_category_cooperator_management(env)