prayno/moveon-course-catalogue-bundle

管理MoveOn课程目录的命令集合

安装: 43

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

1.5.3 2021-01-12 09:19 UTC

This package is auto-updated.

Last update: 2024-09-12 17:39:08 UTC


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%'

这允许您在处理课程目录时注入其他服务