...
User stories Start here, and then read the cells left-to-right: As a course author using a Libraries component in their course… | Works in… | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
V1? | V2? | |||||||||||||||||||
…if no Source Library is chosen… | …then the user will see a message telling them to choose a library, and clicking it will bring them to the block’s settings editor. | |||||||||||||||||||
…if I choose a Source Library… | ||||||||||||||||||||
…if the Source Library does not exist on the system… | TBD | |||||||||||||||||||
…if the Source Library exists on the system, but the specific Version does not exist… | TBD | |||||||||||||||||||
…if I change the Source Library… | …then the Children will be re-included (see below). | |||||||||||||||||||
…if a new Version of the Source Library is available… | …then my library_content block will give me the option of updating to the latest library version. | |||||||||||||||||||
…if I select to update to the latest Source Library Version…. | …then it will will silence the update prompt until the next Source Library Version is available. | |||||||||||||||||||
…then Children will be re-included (see below). | ||||||||||||||||||||
…if I import OLX into the course… | …then for each imported Libraries component… | …the component’s Children should contain the exact set of blocks specified in the OLX and should use the the block content defined by the OLX, regardless of whether:
| ||||||||||||||||||
…if the OLX contains a library default settings document for this Source Library… (Later feature; not applicable to the initial V2 launch!) | …then for each Child component, it should…
| |||||||||||||||||||
..if the OLX does not contain a library default settings document for the Source Library… (Test this one--it will be the case for all OLX imports in the initial V2 launch.) | …then if the Source Library exists on the instance… | …then for each Child component, it should…
| ||||||||||||||||||
…then if the Source Library is missing from the instance… | …then for each Child component, it should…
| |||||||||||||||||||
…if the source library exists on the destination instance with the right version… | TBD | |||||||||||||||||||
…if the source library exists on the destination instance but the right version doesn’t… | TBD | |||||||||||||||||||
…if the source library does not exist on the destination instance… | TBD | |||||||||||||||||||
…when the Children are re-included… | …then the updated Children will be visible in the Libraries component detail page, by clicking “View”. | |||||||||||||||||||
…then the unit editor containing the Libraries component will indicate that the block has unpublished changes. | ||||||||||||||||||||
…then no learner’s Selection will be changed until the unit containing the Libraries component is published. | ||||||||||||||||||||
…and if I have edited the content of any of the existing Children… | …then my content edits will be overwritten. | |||||||||||||||||||
…and if I have overridden the settings of any of the existing Children… | …then my setting overrides will be preserved. | |||||||||||||||||||
…and if any of the existing Children no longer exist in the current Version of the Source Library… | …then they will be removed. | |||||||||||||||||||
…and if any of the existing Children no longer meet the criteria to be included (e.g., they no longer meet the Problem Type filter)… | …then they will be removed. | |||||||||||||||||||
…and if this version of the Source Library contains new components… | …and if we are I am using Randomized Mode… | …then the new components will be included as Children. | ||||||||||||||||||
…and if we are I am using using Static Mode… | …then the new blocks will not be included as Children, but they will be visible the next time the component picker is opened. | |||||||||||||||||||
…if I am in using Static mode… | …then I cannot see the Problem Type or Count fields. | |||||||||||||||||||
…and I change the Mode to Randomized… | …then the Children will be re-included, such that the entire library (filtered by Problem Type) is included. | |||||||||||||||||||
…if I am in using Randomized mode… | …and I change the Problem Type… | …then the Children will be re-included, such that the entire library (filtered by Problem Type) is included. | ||||||||||||||||||
…and I change the Count… | …then the Children will not be re-included, as it is unecessary. | |||||||||||||||||||
…and I change the Mode to Static… | …then the the library component picker dialog will be shown, starting with the entire library included… | …and, based on the what the author picks, the the Children will be re-included. | ||||||||||||||||||
…and I make any of the above changes (Problem Type, Count, or Mode)… | …then the unit will not indicate that it has unpublished changes. | |||||||||||||||||||
…then the changes will not impact learners until published. | ||||||||||||||||||||
…if I change the Mode or Count settings… | …then the set of included Children will not be affected. | |||||||||||||||||||
…then the unit editor containing the Libraries component will indicate that the block has unpublished changes. | ||||||||||||||||||||
…then no learner’s Selection will be changed until the block is published. | ||||||||||||||||||||
…if I publish a Libraries component in Static mode after either of the following have changed:
| ...then the unit editor will no longer indicate that the unit has unpublished changes. | |||||||||||||||||||
…then for each learner, next time they load the Libraries component… | …the …the learner’s Selection will equal the Children, both in content and ordering. | |||||||||||||||||||
…if I publish a Libraries component in Static mode after either of the following have changed:
| ...then the unit editor will no longer indicate that the unit has unpublished changes. | |||||||||||||||||||
…then for each learner, next time they load the Libraries component… | …if Count equals -1… | …then the learner’s Selection will equal the set of included Children, but in a random order. | ||||||||||||||||||
…if Count is greater than the number of included Children… | ||||||||||||||||||||
…if Count is greater than zero and less than the number of included Children… | …then the learner’s Selection be will a subset of the included Children of size Count, in a random order. | |||||||||||||||||||
…and if the learner has an existing Selection containing components which still exist in the included Children… | …then those previously-selected components should remain in the Selection, unless it would make the Selection larger than Count, in which case the appropriate number of them should be randomly removed. | …if course content is imported from OLX… | …then for each imported library_content block… | . | …if the OLX contains a library default settings document… | …then blocks in the pool should calculate settings from the defaults from the document plus overrides from library_content in the OLX. | ..then if the OLX has no library defaults document… | …then if the source library exists on the instance, then library_content block’s pool should calculate settings as the defaults from the source library’s blocks plus overrides from the OLX. | …then if the source library is missing from the instance, then the library_content block’s pool should calculate settings as the platform-defined XBlock defaults plus overrides from the OLX. | …if the source library exists on the destination instance with the right version… | TBD | …if the source library exists on the destination instance but the right version doesn’t… | TBD | …if the source library does not exist on the destination instance… | TBD | TBD | ||||