college: 实训模块白名单 36->50(新增 gzth 14 个自研模块)

This commit is contained in:
yuthon
2026-10-26 16:03:39 +08:00
parent 0d8008868a
commit 0f7955d5bf
+13 -5
View File
@@ -9,13 +9,17 @@
<field name="view_mode">kanban,list,form</field>
<field name="view_id" ref="shixun_module_kanban_view"/>
<!-- 过滤目标:白名单制——只有列在下方 name 清单里的模块才显示(只过滤、不删模块),
使应用列表精确收敛到 36 条(limit=50,单页即可容纳,无第 2 页)。
使应用列表精确收敛到 50 条(=limit=50,单页封顶,无第 2 页,module_list_cap.js 也硬顶 50)。
方案:2026-10-19 起改用白名单(按模块名,跨库稳定),不再用类目 ID 排除。
2026-10-23 按"只保留 Odoo 非企业版原生模块(可安装)+ 3 个校园自研例外"重新筛选;
2026-10-26 校验可安装性:从 41 剔除 5 个企业版/幽灵模块
(accountant、helpdesk、knowledge、mrp_workorder、quality_control)——它们在本机 CE 源码的
addons_path 中无文件夹、state=uninstallable,学生无法安装,不属于"非企业版可安装"范围。
名单构成(共 36 个):
2026-10-26(二次)用户要求把 gzth 提供的 14 个自研模块也加进培训页(位于 gzth_addons,
已挂进 odoo.conf 的 addons_path):其中 12 个可直接安装,另 2 个
(yuthon_property_report 缺 yuthon_property、yuthon_sps_approval 缺 yuthon_issue)依赖缺失、
学生点安装会报错,但用户仍要求列入白名单让学生看到。
名单构成(共 50 个):
1) Odoo 原生 33 个
· 财务会计 1:account
· 采购与库存 2:purchase、stock
@@ -29,15 +33,19 @@
mass_mailing、survey、membership、website_blog
· 协作与知识 3:project、calendar、contacts
2) 校园自研例外 3 个(用户指定保留):yuthon_employee、yuthon_notice、yuthon_will_task
3) gzth 自研 14 个:soong_workflow_stub、yuthon_account_report、yuthon_datetime_rounding、
yuthon_inspection、yuthon_noprint_county、yuthon_partner、yuthon_party、
yuthon_property_report、yuthon_required_mark、yuthon_sps_approval、yuthon_tianhe、
yuthon_ui_custom、yuthon_web_notice、yuthon_work
被筛除:所有 Agent 智能体平台(agent_*)、教学线自研(college、learning_center、
student_organization、odoosh_connector)、宇森游戏自研(game_base、yt_world、
yusen_website)、人事薪酬自研(yuthon_salary、yuthon_hr_attendance)、
以及 5 个企业版模块(accountant、helpdesk、knowledge、mrp_workorder、quality_control)。
注意:domain 已去掉 ('application','=',True),白名单里 6 个 application=False 的原生子模块
(delivery/payment/hr_timesheet/hr_work_entry/membership/website_blog)也会显示,故页面=36。
注意:domain 已去掉 ('application','=',True),白名单里 application=False 的原生子模块
(delivery/payment/hr_timesheet/hr_work_entry/membership/website_blog)也会显示,故页面=50。
维护:新装的自有模块必须往本清单加,否则不显示;总数超过 50 时
module_list_cap.js 把显示硬顶在 50。 -->
<field name="domain">[('name', 'in', ['account', 'calendar', 'contacts', 'crm', 'delivery', 'fleet', 'hr', 'hr_attendance', 'hr_contract', 'hr_expense', 'hr_holidays', 'hr_recruitment', 'hr_timesheet', 'hr_work_entry', 'im_livechat', 'maintenance', 'mass_mailing', 'membership', 'mrp', 'payment', 'point_of_sale', 'pos_restaurant', 'project', 'purchase', 'repair', 'sale_management', 'stock', 'survey', 'website', 'website_blog', 'website_event', 'website_sale', 'website_slides', 'yuthon_employee', 'yuthon_notice', 'yuthon_will_task'])]</field>
<field name="domain">[('name', 'in', ['account', 'calendar', 'contacts', 'crm', 'delivery', 'fleet', 'hr', 'hr_attendance', 'hr_contract', 'hr_expense', 'hr_holidays', 'hr_recruitment', 'hr_timesheet', 'hr_work_entry', 'im_livechat', 'maintenance', 'mass_mailing', 'membership', 'mrp', 'payment', 'point_of_sale', 'pos_restaurant', 'project', 'purchase', 'repair', 'sale_management', 'soong_workflow_stub', 'stock', 'survey', 'website', 'website_blog', 'website_event', 'website_sale', 'website_slides', 'yuthon_account_report', 'yuthon_datetime_rounding', 'yuthon_employee', 'yuthon_inspection', 'yuthon_noprint_county', 'yuthon_notice', 'yuthon_party', 'yuthon_partner', 'yuthon_property_report', 'yuthon_required_mark', 'yuthon_sps_approval', 'yuthon_tianhe', 'yuthon_ui_custom', 'yuthon_web_notice', 'yuthon_will_task', 'yuthon_work'])]</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>