完善教育
This commit is contained in:
@@ -74,7 +74,6 @@ class SchoolCourse(models.Model):
|
||||
# 课程详情
|
||||
introduction = fields.Html(string='课程介绍', sanitize=True)
|
||||
objectives = fields.Html(string='课程目标', sanitize=True)
|
||||
syllabus = fields.Html(string='课程大纲', sanitize=True)
|
||||
features = fields.Html(string='课程特色', sanitize=True)
|
||||
business_scenario = fields.Html(string='业务情景', sanitize=True)
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ class CourseImportWizard(models.TransientModel):
|
||||
'<li>点击下方「下载模板」按钮下载 CSV 模板;</li>'
|
||||
'<li>用 Excel / WPS 打开模板,按示例填写数据:<br/>'
|
||||
'<b>课程名称</b>、<b>课程编号</b> 为必填;<br/>'
|
||||
'<b>所属学院、学期、课程类型、课时、课程大纲、业务情景</b> 为选填;</li>'
|
||||
'<b>所属学院、学期、课程类型、课时、课程介绍、业务情景</b> 为选填;</li>'
|
||||
'<li>课程类型可选:理论 / 实践</li>'
|
||||
'<li><b>章节 / 任务(可选)</b>:填「章节标题」会自动建/复用章节,'
|
||||
'填「任务名称」会在该章节下建一条任务列表明细(是否完成填 是/否);'
|
||||
@@ -80,12 +80,12 @@ class CourseImportWizard(models.TransientModel):
|
||||
def action_download_template(self):
|
||||
"""生成 CSV 模板并提供下载。"""
|
||||
header = ['课程名称', '课程编号', '所属学院', '学期',
|
||||
'课程类型(理论/实践)', '课时', '课程大纲', '业务情景',
|
||||
'课程类型(理论/实践)', '课时', '课程介绍', '业务情景',
|
||||
'章节标题', '章节说明', '章节课时',
|
||||
'任务名称', '是否完成']
|
||||
sample = ['Python 编程基础', 'PY101', '计算机学院',
|
||||
'2025-2026第1学期', '理论', '48',
|
||||
'Python基础语法、数据结构、面向对象编程',
|
||||
'本课程面向零基础学员,以项目驱动方式讲解核心知识',
|
||||
'通过电商订单管理场景贯穿课程',
|
||||
'第1章 环境搭建', '本章介绍开发环境', '4',
|
||||
'安装Python', '否']
|
||||
@@ -183,9 +183,9 @@ class CourseImportWizard(models.TransientModel):
|
||||
vals['hours'] = int(float(hours_raw))
|
||||
except ValueError:
|
||||
pass
|
||||
syllabus = row.get('syllabus', '')
|
||||
if syllabus:
|
||||
vals['syllabus'] = syllabus
|
||||
introduction = row.get('introduction', '')
|
||||
if introduction:
|
||||
vals['introduction'] = introduction
|
||||
business_scenario = row.get('business_scenario', '')
|
||||
if business_scenario:
|
||||
vals['business_scenario'] = business_scenario
|
||||
@@ -282,8 +282,8 @@ class CourseImportWizard(models.TransientModel):
|
||||
mapping[f] = 'course_type'
|
||||
elif f_lower in ('课时', 'hours'):
|
||||
mapping[f] = 'hours'
|
||||
elif f_lower in ('课程大纲', 'syllabus', '大纲'):
|
||||
mapping[f] = 'syllabus'
|
||||
elif f_lower in ('课程介绍', 'introduction', '课程简介', '课程大纲', 'syllabus', '大纲'):
|
||||
mapping[f] = 'introduction'
|
||||
elif f_lower in ('业务情景', 'business_scenario', 'scenario'):
|
||||
mapping[f] = 'business_scenario'
|
||||
elif f_lower in ('章节标题', 'chapter', '章节', 'chapter_name'):
|
||||
|
||||
@@ -55,9 +55,6 @@
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="课程内容">
|
||||
<group>
|
||||
<field name="syllabus" string="课程大纲"/>
|
||||
</group>
|
||||
<separator string="课程章节(每章含视频与资料)"/>
|
||||
<field name="chapter_ids">
|
||||
<list editable="top">
|
||||
|
||||
Reference in New Issue
Block a user