fix(college): 实训模块列表精确收敛到 50 条——按模块名排除 6 个教学实训用不上的Odoo 原生小应用(企业库实测 56→50;类目 ID 跨库不一致的坑写进注释)

This commit is contained in:
qitangbo
2026-10-16 17:11:00 +08:00
parent 11c77c7496
commit befeb1b60c
+15 -15
View File
@@ -8,21 +8,21 @@
<field name="res_model">ir.module.module</field>
<field name="view_mode">kanban,list,form</field>
<field name="view_id" ref="shixun_module_kanban_view"/>
<!-- 过滤掉与教育/物管实训无关的类目,使应用总数收敛到 50(limit=50 时不再出现「加载更多」翻页)。
category_id 为 M2O,domain 在客户端用 Python eval 解析,无法使用 ref(),故此处用真实类目 id:
13=Education(教育) 54=Lucky Theme Backend(主题后端)
71=preview_attachment 15=Data Cleaning(数据清理)
94=Administration(后台) 6=Tools(工具)
10=Productivity(生产力) 11=Calendar(日历)
20=Uncategorized(未分类)
2026-09-18 追加过滤(各类目仅 1 个应用、教学实训用不上),使总数精确收敛到 50:
33=Timesheets(工时单) 55=Lunch(午餐) 37=Live Chat(在线聊天)
59=Social Marketing(社会营销) 21=Events(活动) 89=Sign(签署)
90=Helpdesk(服务台) 92=Field Service(现场服务) 103=Planning(排班)
28=Time Off(休息时间) 32=Recruitment(招聘) 88=Appraisals(评估)
23=Fleet(车辆)
如需保留/恢复某类目,从下面列表中删除对应 id 即可(注意总数会变化)。 -->
<field name="domain">[('application', '=', True), ('category_id', 'not in', [13, 54, 71, 15, 94, 6, 10, 11, 20, 33, 55, 37, 59, 21, 89, 90, 92, 103, 28, 32, 88, 23])]</field>
<!-- 过滤目标:与教育/物管实训无关的模块不显示(只过滤、不删模块),使列表收敛到 50 条。
两层过滤,分工不同:
1) category_id 排除(下方 id 清单)——按类目粗过滤。
警告:类目 id 跨数据库不一致!2026-10-16 核对企业库(school)实际映射为
13=CRM、20=人力资源、45=未分类、99=Education、102=Game、114=Custom……,
本地开发库又是另一套(旧注释里 13=Education 之类的映射两边都不对,已作废)。
此清单按企业库现状保留;要改先查目标库 ir_module_category,否则会误伤。
2) name 排除(模块名,跨库稳定)——精确微调数量。
2026-10-16 企业库匹配 56 条,排除以下 6 个教学实训用不上的 Odoo 原生小应用后
精确收敛到 50 条(显示 1-50 / 50,无第 2 页):
preview_easy(附件预览) room(会议室) lunch(午餐)
data_recycle(数据清理) marketing_card(营销卡片) project_todo(待办)
增长兜底:以后再装新模块总数会超过 50,module_list_cap.js 把显示硬顶在 50
(第 2 页点不动、每页数锁定);想把总数重新收敛回 50,按第 2 层加模块名即可。 -->
<field name="domain">[('application', '=', True), ('category_id', 'not in', [13, 54, 71, 15, 94, 6, 10, 11, 20, 33, 55, 37, 59, 21, 89, 90, 92, 103, 28, 32, 88, 23]), ('name', 'not in', ['preview_easy', 'room', 'lunch', 'data_recycle', 'marketing_card', 'project_todo'])]</field>
<!-- shixun_hide_empty_categories:搜索面板「类别」列过滤掉计数为 0 的类别
(见 models/ir_module_module_info.py 对 search_panel_select_range 的包装) -->
<field name="context">{'shixun_hide_empty_categories': True}</field>