Skip to content

Commit 77db562

Browse files
committed
[IMP] util.records.remove_menus: merge queries
Avoids passing the ids list back and forth. closes #151 Signed-off-by: Christophe Simonis (chs) <[email protected]>
1 parent 06cbe42 commit 77db562

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

src/util/records.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -639,17 +639,22 @@ def remove_menus(cr, menu_ids):
639639
SELECT m.id
640640
FROM ir_ui_menu m
641641
JOIN tree t ON (m.parent_id = t.id)
642+
),
643+
removed_menus AS (
644+
DELETE
645+
FROM ir_ui_menu m
646+
USING tree t
647+
WHERE m.id = t.id
648+
RETURNING m.id
642649
)
643-
DELETE FROM ir_ui_menu m
644-
USING tree t
645-
WHERE m.id = t.id
646-
RETURNING m.id
647-
""",
650+
DELETE
651+
FROM ir_model_data imd
652+
USING removed_menus m
653+
WHERE imd.res_id = m.id
654+
AND imd.model = 'ir.ui.menu'
655+
""",
648656
[tuple(menu_ids)],
649657
)
650-
ids = tuple(x[0] for x in cr.fetchall())
651-
if ids:
652-
cr.execute("DELETE FROM ir_model_data WHERE model='ir.ui.menu' AND res_id IN %s", [ids])
653658

654659

655660
def remove_group(cr, xml_id=None, group_id=None):

0 commit comments

Comments
 (0)