prayno / moveon-course-catalogue-bundle
管理MoveOn课程目录的命令集合
Requires
- php: ^7.1.3
- prayno/moveon-api-bundle: ^1.0
- symfony/framework-bundle: ^4.0
README
这是一个用于管理MoveOn(《https://www.qs-unisolution.com/moveon/》)课程目录的Symfony组件。
它提供了2个命令
- 从CSV文件导入课程目录到MoveOn
- 在MoveOn课程目录中停用课程列表
安装
通过运行以下命令使用Composer安装库: composer require prayno/moveon-course-catalogue-bundle
配置
此组件依赖于MoveOnApiBundle,因此您还必须包含此组件的配置(《https://github.com/PRayno/MoveOnApiBundle#configuration》)
在您的Symfony应用程序中创建一个config/packages/prayno_moveon_course_catalogue.yaml文件,并包含以下设置
prayno_moveon_course_catalogue: csv: delimiter: "" latest_date_fields: ['FIELD1','FIELD2'] required_fields: ['FIELD3','FIELD4'] sub_institution: code_field: "fieldname" main_institution_id: 1 academic_periods: code1: id code2: id update_courses_modified_by : ["User1-firstname, User1-lastname","User2-firstname, User2-lastname"] course_identifier_regex: "/regex/" excluded_lines: key: ["value1","value2"]
- delimiter : CSV分隔符(默认为制表符)
- latest_date_fields : CSV文件中与行修改日期对应的字段名数组
- required_fields : CSV文件中处理行所必需的字段名数组
- code_field : MoveOn机构数据库表中子机构代码的字段名
- main_institution_id : 子机构链接的父机构ID
- academic_periods : 用于将CSV课程与学期间接的学期间代码数组:id(例如,1S2019/20: 123456)
- update_courses_modified_by : 只有这些用户(姓,名)修改的课程将受到更新的影响(以避免覆盖本地修改)
- course_identifier_regex : 标识符的正则表达式(默认为external_id),用于停用MoveOn数据库中不再在CSV中的课程
- excluded_lines : 要排除的处理行(可选)。
使用方法
从CSV导入
此命令将从您的CSV文件创建或更新课程。更新比较基于您的MoveOnCourse对象的getIdentifier()方法中提供的字段。
bin/console moveon:course-catalog:update path/to/csv/file.csv 2019-01-01
第一个参数是CSV文件的路径,第二个参数是处理行的最小日期(默认值:昨天)
停用课程
此命令将根据您的搜索条件停用课程。
bin/console moveon:course-catalog:deactivate '{myquery}'
查询示例
'{\"field\":\"catalogue_course.id\",\"op\":\"eq\",\"data\":\"1234\"}'
'{\"field\":\"catalogue_course.start_academic_period\",\"op\":\"eq\",\"data\":\"1er semestre 2018/19\"}'
'{\"field\":\"catalogue_course.is_active\",\"op\":\"eq\",\"data\":\"1\"},{\"field\":\"catalogue_course.start_academic_period\",\"op\":\"eq\",\"data\":\"1er semestre 2017/18\"}'
自定义
您可以通过创建一个实现PRayno\MoveOnCourseCatalogueBundle\Course\MoveonCourseInterface(或扩展默认的PRayno\MoveOnCourseCatalogueBundle\Course\MoveonCourse)的类来自定义课程对象以符合您的需求。您必须创建一个具有以下示例中所示的snakecase名称的函数,以自定义MoveOn课程属性
use PRayno\MoveOnCourseCatalogueBundle\Course\MoveonCourse; class MyCustomMoveOnCourse extends MoveonCourse { protected function setName(array $row) { return $row["FIELD1"]." ~~ ".$row["FIELD2"]; }
然后,在services.yml中声明您的类,并将"academic_periods"参数复制到您的应用程序参数中
prayno_moveon_course_catalogue.course: class: MyCustomMoveOnCourseNamespace\MyCustomMoveOnCourse arguments: $academicPeriods: '%academic_periods%'
这允许您在处理课程目录时注入其他服务