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

[Tagging] Discovery: Copying tags when using content from a V2 Library in a Course #177

Open
yusuf-musleh opened this issue Jan 16, 2024 · 8 comments
Labels
discovery Pre-work to determine if an idea is feasible

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discovery Pre-work to determine if an idea is feasible
Projects
Development

No branches or pull requests

4 participants