Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Copy tags when using content from a V2 Library in a Course #177

Open
Tracked by #1095
yusuf-musleh opened this issue Jan 16, 2024 · 13 comments
Open
Tracked by #1095

Copy tags when using content from a V2 Library in a Course #177

yusuf-musleh opened this issue Jan 16, 2024 · 13 comments

Comments

@yusuf-musleh
Copy link

yusuf-musleh commented Jan 16, 2024

"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:

  1. Tags that are added to a piece of content in a library stay with the content when it's imported to a course.
  2. Tags that were added from a library cannot be deleted from the course.
  3. 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.
  4. 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.:

  1. Do the tags of the library in the course need to be kept in sync with the changes to tags in the library itself.
  2. 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:

  1. Don't bring the tags with the content into the course;
  2. 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;
  3. 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
  4. 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.)
  5. Many other options exist, but they would be more work to implement than these "simple" options. Still a possibility though.
@bradenmacdonald bradenmacdonald changed the title [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 Jan 17, 2024
@bradenmacdonald bradenmacdonald added question ❔ Further information is requested product review PR requires product review before merging labels Jan 17, 2024
@bradenmacdonald
Copy link
Contributor

This is blocked until we get some product input from users.

@bradenmacdonald bradenmacdonald added the discovery Pre-work to determine if an idea is feasible label Jan 17, 2024
@jmakowski1123
Copy link

What would it take to implement:

  1. Tags that are added to a piece of content in a library stay with the content when it's imported to a course.
  2. New tags can be added to Library content from the course. These tags don't automatically sync with the Library version of the content, but library authors are given the option to accept or deny course tags from the Library. [This could be de-scoped if needed for the MVP, I think.]
  3. Tags that were added from a library cannot be deleted from the course.

@bradenmacdonald
Copy link
Contributor

@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
Copy link

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
Copy link
Contributor

@jmakowski1123 Yep, I think that's going to be a lot easier to implement.

@bradenmacdonald
Copy link
Contributor

@jmakowski1123 Let us know if you'd like to proceed with estimating & planning that ?

@jmakowski1123
Copy link

Yes please!

@bradenmacdonald
Copy link
Contributor

@jmakowski1123 I added a fourth criteria as well - hope it makes sense. Let me know if you want any changes.

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).

@ChrisChV
Copy link

ChrisChV commented Oct 8, 2024

@jmakowski1123 @lizc577 @sdaitzman @marcotuts, I have one question here

Tags that were added from a library cannot be deleted from the course

If the tag is copied, then I will hide the delete icon button, but is there a place where the user is informed about this? That these types of tags cannot be deleted?

image

@jmakowski1123
Copy link

I don't think we have a UI solution for this. We need to get there - if this doesn't make the MVP with a message/icon/notification, it's not a blocker.

@bradenmacdonald
Copy link
Contributor

@jmakowski1123 @sdaitzman This hasn't merged yet, but you can preview it on the sandbox. Please test it and let us know if there's any issues.

@ChrisChV
Copy link

@jmakowski1123 @sdaitzman You can follow these steps:

Create a new library with components. Add tags to these components.

  • Copy to Clipboard a component
  • Go to a unit inside a course.
  • Paste the component. Refresh the page to see tags count button.
  • Open the manage tag, verify the copied tags. Edit and verify that you can't delete.
  • Add more tags and verify that you can delete the new added tags.
  • On the library, add more tags to the component. Edit the component and update the title.
  • Return to the course and refresh the page.
  • Click on "Update Available" of the new component.
  • Verify the new tags.
  • On the library add the same tags of the component in the course. Edit the component and update the title.
  • Return to the course and refresh the page. Click on "Update Available" of the new component.
  • Verify the new tags and verify that you cant delete the tags.

Note: Tags aren't part of the draft-publish cycle, so you have to make changes to the block and publish them before the tags will be synced.

@ChrisChV ChrisChV moved this to Ready for AC testing in Libraries Overhaul Oct 31, 2024
@bradenmacdonald bradenmacdonald removed the discovery Pre-work to determine if an idea is feasible label Oct 31, 2024
@bradenmacdonald bradenmacdonald changed the title [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 Oct 31, 2024
@ChrisChV
Copy link

@jmakowski1123 @lizc577 @sdaitzman @marcotuts friendly reminder that this is ready for AC testing on the sandbox

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Ready for AC testing
Development

No branches or pull requests

5 participants