Skip to content

[Tagging] Automatically add system tags for Language (to courses and course content) #79

Description

@pomegranited

Story

"As a content author, I want the system to maintain automatic tags on my content so that I don't have to perform these tasks manually when creating/updating content."

Full description

Follow up to

Implement automatic tagging for the system taxonomies defined in the MVP. These tags should be created/updated automatically from the content itself, triggered by the create/update events for courses and course blocks provided by #78

Acceptance criteria

Language system taxonomy:

  • When the user creates a new course or component ("XBlock") within a course:
    • a new ObjectTag for that object is created against the Language Taxonomy, with its Tag set to the content author's preferred language or browser language.
  • When the user updates an existing course, block, library, or library block:
    • if the object already has a Language ObjectTag, no change is made to that tag. (A future ticket will make this language tag editable by content authors, and so their changes must be preserved.)
    • if the object does not have an Language ObjectTag, one is created, using the editing content author's preferred language or browser language.
  • When the user deletes a course or course xblock:
    • any existing tags for this object are deleted (this should already be handled by our tagging system).
  • When an operator runs the "update tags" management command with a given "content author user ID" and a list of course, or course block IDs, a new Language ObjectTag is created if one does not already exist.

Future work

#97 will implement the same thing for library blocks.

Documentation updates & improvements criteria

  • Ensure that the management command and its options are fully documented.

Relevant repositories

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions