Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Current Transformers

TransformerDescriptionJIRA"Collect" phase (given entire course block structure)"Transform" phase (given a sub block tree)
Visibility

Restrict access to blocks that are

visible to staff only

Jira Legacy
serverJIRA (openedx.atlassian.net)
serverId13fd1930-5608-3aac-a5dd-21b934d3a4b4
keyMA-1027

Percolate .visible_to_staff_only down the hierarchy, while honoring MultiParentAccessRule

If user isn't staff, remove all blocks that only staff can see.
Start Date

Restrict access to blocks based on start date and, if relevant, beta testing period

 


Jira Legacy
serverJIRA (openedx.atlassian.net)
serverId13fd1930-5608-3aac-a5dd-21b934d3a4b4
keyMA-1010

Percolate .start and beta_user_start (computed from .days_early_for_beta) as separate fields

down the hierarchy, taking the minimum of each along the way.

If user isn't staff, remove blocks that user can't see based on start or beta_user_start depending on the user's role.
User Partitions

Restrict access to blocks based on group affiliation

 


Jira Legacy
serverJIRA (openedx.atlassian.net)
serverId13fd1930-5608-3aac-a5dd-21b934d3a4b4
keyMA-1012
Percolate group intersection logic down the tree using the group_access xBlock field - a more performant reimplementation of merged_group_access.If user isn't staff, remove blocks that user can't see based on group membership requirements
Split TestOnly one of a Split Test Module's children is accessible to the user, as specified by the user_partition_id and group_id_to_child configuration settings.
Jira Legacy
serverJIRA (openedx.atlassian.net)
serverId13fd1930-5608-3aac-a5dd-21b934d3a4b4
keyMA-1015

cache fields: group_id_to_child and user_partition_id

? Further investigation of the code is required to see whether we can percolate the fields down the hierarchy.

If percolated in the collect phase, remove blocks whose associated group_id is not accessible by the user.

If not percolated, traverse the block tree and remove subtrees whose root is not accessible by the user.  

RandomizeOnly one of a Randomize Module's children is accessible to the user, stored as a child index in the block's user_state scope.
Jira Legacy
serverJIRA (openedx.atlassian.net)
serverId13fd1930-5608-3aac-a5dd-21b934d3a4b4
keyMA-1014

required fields: block's type

For each Randomize block encountered in the block tree, get/set the "choice" field value for the user and remove all other children of the block.
Library ContentOnly a subset of a Library Content Module's children is accessible to the user, stored as a list of block ids and block types in the block's user_state scope.
Jira Legacy
serverJIRA (openedx.atlassian.net)
serverId13fd1930-5608-3aac-a5dd-21b934d3a4b4
keyMA-1016
required fields: block's typeFor each Library Content module encountered in the block tree, get/set the "selected" field value for the user and remove the subset of children that are not selected for the user.
Course Blocks APIFeature-specific transformer that collects information for the endpoint and transforms the block tree with additionally required data for each block.
Jira Legacy
serverJIRA (openedx.atlassian.net)
serverId13fd1930-5608-3aac-a5dd-21b934d3a4b4
keyMA-1013

required fields: graded, format, display_name, type

cache fields: student_view_multi_device, student_view_data, olx_data (P2)

block_counts, lms_web_url, student_view_url

Future Transformers

The following transformers will be implemented in the future, when needed by the platform:

...