Repository navigation
Copy tags when using content from a V2 Library in a Course #177
Description
"As a content author, when I import library content into a Course, I expect the tags to be copied over as well"
"As a content author, when I import library content into a course, I can add my own tags to that content."
Acceptance Criteria
For this discovery ticket, plan and estimate the implementation of the following:
- Tags that are added to a piece of content in a library stay with the content when it's imported to a course.
- Tags that were added from a library cannot be deleted from the course.
- Users can add new tags to library content when it is being used in a course, but those new tags don't sync back to the Library version of the content.
- When the piece of content is refreshed to use the latest version from the library, its tags will be refreshed as well (tags that were added to the library version get added to the course version; tags that were removed from the library version get removed from the course version; tags that were added to the content within the course are preserved unchanged).
This only applies to v2 Libraries ("Libraries Relaunch") based on Learning Core / Blockstore - not modulestore.
Implementation will be done in #193
Older Notes
This issue was split off from #165 since it is large enough and a lot of different cases that need to be thought through.
Related Slack thread: https://openedx.slack.com/archives/C03T0RZEASG/p1705345057688579
Main point to address:
If a problem is tagged "easy" in the library, and the tag comes with it when it's used in a course, can authors add additional tags? change or delete those tags from the library? And if so, do we need to keep their changes even after we "update" the content to a newer version (with updated tags) from the library?
i.e.:
- Do the tags of the library in the course need to be kept in sync with the changes to tags in the library itself.
- Can tags be added/updated/deleted from the library that is inside the course if they originated from the library itself?
Notes:
From a technical perspective, several simple options exist:
- Don't bring the tags with the content into the course;
- Bring the tags one time but let authors change them - future changes to the content's tags in the library won't propagate into the course;
- bring the tags from the library into the course and keep them in sync but don't let authors change/add tags in the course; or
- Change the UX so that in the course we display the "library tags" separately (and read-only) from the tags that the content has in the course. (So when you bring something into the course, it has no tags but the UI displays something like "Tagged in the library with: Tag 1, Tag 2". You can't edit those, but you can add tags normally like you can with any other component in the course.)
- Many other options exist, but they would be more work to implement than these "simple" options. Still a possibility though.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsIn Progress
- StatusShow more project fieldsDone
Activity
[-][Tagging] Discovery: Copying tags when Importing from a V2 Library into a Course[/-][+][Tagging] Discovery: Copying tags when using content from a V2 Library in a Course[/+]bradenmacdonald commentedon Jan 17, 2024
This is blocked until we get some product input from users.
jmakowski1123 commentedon Jan 31, 2024
What would it take to implement:
bradenmacdonald commentedon Jan 31, 2024
@jmakowski1123 1 and 3 are relatively easy. For 2, I think it would take quite a bit of work - changes both on the backend and all the required UX. I'd probably recommend de-scoping it at first until we get user feedback.
jmakowski1123 commentedon Feb 2, 2024
Got it. What if 2 was limited to "Users can add new tags to library content when it is being used in a course, but those new tags don't sync back to the Library version of the content." Would that be an easier lift? Then the behavior for tags would follow the exact same pattern as the current behavior for changing Library content when it's being used in a course, ie changes can be made locally in the course but don't sync back to the Library.
bradenmacdonald commentedon Feb 7, 2024
@jmakowski1123 Yep, I think that's going to be a lot easier to implement.
bradenmacdonald commentedon Feb 7, 2024
@jmakowski1123 Let us know if you'd like to proceed with estimating & planning that ?
jmakowski1123 commentedon Feb 7, 2024
Yes please!
bradenmacdonald commentedon Feb 8, 2024
@jmakowski1123 I added a fourth criteria as well - hope it makes sense. Let me know if you want any changes.
10 remaining items
[-][Tagging] Discovery: Copying tags when using content from a V2 Library in a Course[/-][+]Copy tags when using content from a V2 Library in a Course[/+]ChrisChV commentedon Nov 18, 2024
@jmakowski1123 @lizc577 @sdaitzman @marcotuts friendly reminder that this is ready for AC testing on the sandbox
jmakowski1123 commentedon Jan 7, 2025
This is working as the AC tests are written. What would it take to either 1) make tags part of the draft-publish cycle 2) autosync tag changes in libraries to any place where the block is being reused. ?
Also, what is the reason the page has to be refreshed in order to see any updated tag counts?
bradenmacdonald commentedon Jan 7, 2025
@jmakowski1123 Within a library, making tags part of the draft-publish cycle would be quite a big project. But if we're talking about using library content in courses, I think they are already kind of done like that, because the tags get synced whenever the content is synced (after publish -> sync into course). However, if you add a tag, publish the library component, then add another tag, when you go into the course you'll see an update is available but if you press sync it will pull in both new tags even though you only published after adding one tag.
Hmm, @ChrisChV now that the unit page is in the MFE, can we avoid the need to refresh? Or is the tag count still using the old UI?
jmakowski1123 commentedon Jan 9, 2025
When I add a new tag to Library content in the library, I don't have the option to re-publish because the tags aren't part of the publish cycle. They are added to the library content immediately. But they will only sync to the course if there have been other changes made to that content that require publishing first. What would it look like to have the tags auto-sync to course content, regardless of whether there are other published changes or not? Or (?) to require a sync workflow when new tags are added.
ChrisChV commentedon Jan 9, 2025
@bradenmacdonald I have tested this using the new unit page in the MFE and there is no need to refresh to show the new count.
bradenmacdonald commentedon Jan 10, 2025
@jmakowski1123
That would be doable once we get the upstream-downstream tracking in place (i.e. Epic 8). There might be a slight delay in some cases but otherwise it could work exactly as you're describing. Just let us know if that's what you'd like instead of the current sync workflow. The other option is that after you change the tags, we "pretend" that you also changed the content so that the publish button is enabled and you can publish the component, and then sync those changes (just updated tags) into your courses manually.
jmakowski1123 commentedon Jan 10, 2025
openedx/frontend-app-authoring#1583
bradenmacdonald commentedon Apr 29, 2025
Since we have openedx/frontend-app-authoring#1583 for that remaining change, can we close this out?
jmakowski1123 commentedon Apr 29, 2025
I added 1583 to the bug list