Commit c74f4865 authored by Richard Glosner's avatar Richard Glosner
Browse files

Merge branch '336-multiple-info-channels-in-definition' into 'main'

Resolve "Multiple info channels in definition"

See merge request inject/backend!303
parents 051355b0 053b476e
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
## 0.14.0

Allow multiple info channels in a definition. #336

### injects.yml

- add field `target` that specifies info channel for the info injects

### channels.yml
- allow occurrence of multiple `info` channels

## 0.13.0

Enabled a more fine-grained control over milestone modifications for 
+4 −3
Original line number Diff line number Diff line
@@ -129,19 +129,19 @@ Each learning objective has the following fields:

This file contains the definitions of _all_ channels used in the exercise.

- **name**: _string_ - the name that will be displayed to users
- **name**: _string_ - the name that will be displayed to users; all channels must have _unique_ names.
- **type**: _string_ - the type of messages that will be sent to this channel, see [injects.yml](#injectsyml) for details.

Currently supported channel types:

- `info` - the most basic type of message,
  **IMPORTANT**: A definition _**MUST**_ include one and only one channel with the `info` type.
  A definition _can_ include one or more channels with the `info` type.
- `tool` - tool usage by trainees will be sent to the channel with this type.
  Injects _cannot_ be specified with this type and there can be at most _one channel_ with this type in a definition
- `email` - injects meant to represent email communication
- `form` - questionnaires will be sent to this channel

_At most one channel_ of a specific type can exist.
_At most one channel_ of a specific type can exist (except the `info` channels).
In other words, there cannot be multiple channels with type `email`.
If a definition does not contain a channel with the `tool` type, _no tools_ can be specified.
Same rule applies to emails and questionnaires.
@@ -165,6 +165,7 @@ Each inject has the following fields:
- **organization**: _string, default=""_ - name of the organization this inject was sent from
- **type**: _string, default="info"_ - type of this inject, the `alternatives` field depends on this value
- **alternatives**: options specified bellow
- **target**: _string, default=""_ - a mandatory field (only for `info` injects) that specifies to which info channel should be the inject sent

When selecting alternatives to send,
they are ordered alphabetically based on their `name`.
+6 −0
Original line number Diff line number Diff line
- name: Exercise Information
  type: info

- name: TV Channel
  type: info

- name: Social Media Feed
  type: info

- name: Tools
  type: tool

+1 −1
Original line number Diff line number Diff line
exercise_duration: 60
show_exercise_time: False
version: 0.13.0
version: 0.14.0
+23 −0
Original line number Diff line number Diff line
- name: First Inject
  organization: Org 1
  target: Exercise Information
  alternatives:
    - name: First inject
      control: { activate_milestone: first_inject }
      content: { content: first inject which activates first_inject milestone }
      overlay: { duration: 1 }

- name: First Social Media Feed Inject
  target: Social Media Feed
  alternatives:
    - name: First social media feed inject
      content: { content: This is the first social media feed inject. It should be visible on the social media feed channel. }

- name: First TV Channel Inject
  target: TV Channel
  alternatives:
    - name: First TV channel inject
      content: { content: This is the first TV channel inject. It should be visible on the TV channel. }

- name: Markdown lists showcase inject
  organization: Org 2
  target: Exercise Information
  time: 1
  alternatives:
    - name: Auto markdown inject with lists
@@ -15,6 +29,7 @@

- name: Markdown links showcase inject
  organization: Org 2
  target: Exercise Information
  time: 2
  alternatives:
    - name: Auto markdown inject with links
@@ -22,6 +37,7 @@

- name: Markdown text formatting showcase inject
  organization: Org 2
  target: Exercise Information
  time: 3
  alternatives:
    - name: Auto markdown inject with text formatting
@@ -29,6 +45,7 @@

- name: Delayed first inject
  organization: Org 1
  target: Exercise Information
  delay: 1
  alternatives:
    - name: Delayed first inject
@@ -36,12 +53,14 @@


- name: Timed inject
  target: Exercise Information
  time: 3
  alternatives:
    - name: Timed inject
      content: { content: This is a timed inject which should arrive after 3 minutes. }

- name: Conditional inject
  target: Exercise Information
  time: 5
  alternatives:
    - name: 1 Inject
@@ -57,12 +76,14 @@
      control: { milestone_condition: evaluation_great }

- name: Exercise state inject
  target: Exercise Information
  time: 5
  alternatives:
    - name: State management alternative
      control: { deactivate_milestone: initial_milestone }

- name: Auto timed inject depends on website_traffic_blocked milestone
  target: Exercise Information
  time: 6
  alternatives:
    - name: Inject option when not website_traffic_blocked
@@ -74,6 +95,7 @@
      content: { content: Website was blocked., file_name: website-root.jpg }

- name: Timed inject when website visited but not blocked sending zip
  target: Exercise Information
  organization: Org 1
  time: 10
  alternatives:
@@ -87,6 +109,7 @@


- name: Conditional delayed inject
  target: Exercise Information
  time: 10
  delay: 5
  alternatives:
Loading