...
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 Version does not exist… | TBD | |||||||||||||||||||||||||
…if I change the Source Library… | …then the Children will be re-included (see below). | |||||||||||||||||||||||||
…if a new version Version of the source library 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). | ||||||||||||||||||||||||||
…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 using Randomized Mode… | …then the new components will be included as Children. | ||||||||||||||||||||||||
…and if we are 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 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 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. | …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 block is 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 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 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 the content of the blocks in the pool will be updated with the content from the latest library version. | …and if I have edited the content of any of the blocks in the pool… | …then my content edits will be overwritten. | …and if I have overridden the settings of any of the blocks in the pool… | …then my setting overrides will be preserved. | …and if any blocks in the pool have been deleted from the latest library version… | …then they will be deleted from the pool as well. | …and if any new blocks have been added to the latest version of the source library… | …and if the library_content block is in “random” mode… | …then the new blocks will be added to the pool. | …and if the library_content block is in “include” mode… | …then the new blocks will not be added to the pool but they will be visible in the block selection dialog. | …and if the library_content block is in “random-include” mode… | …and if the block is in “random” mode… | …and if max_count is -1 | …then any new blocks in the library will be added to every learners' selection. | …and if max_count is greater than the number of items in the library… | …and if max_count is less than the number of blocks in the library… | …then if the block is in “random” mode and | ||||
…if course content is imported from OLX… | …then for each imported library_content block… | …the block’s pool should contain the exact set of blocks specified in the OLX using the block content defined by the OLX, regardless of:
| ||||||||||||||||||||||||
…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 |