diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 82dae104..795268d6 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -13,6 +13,9 @@ Change Log Unreleased ---------- +Added +~~~~~ +* Added new ``CONTENT_OBJECT_TAGGED`` events in content_authoring. [9.5.2] - 2024-02-13 -------------------- diff --git a/openedx_events/__init__.py b/openedx_events/__init__.py index 51393c30..33f541c4 100644 --- a/openedx_events/__init__.py +++ b/openedx_events/__init__.py @@ -5,4 +5,4 @@ more information about the project. """ -__version__ = "9.5.2" +__version__ = "9.6.0" diff --git a/openedx_events/content_authoring/data.py b/openedx_events/content_authoring/data.py index bf6d603e..e76559bf 100644 --- a/openedx_events/content_authoring/data.py +++ b/openedx_events/content_authoring/data.py @@ -180,3 +180,17 @@ class LibraryBlockData: library_key = attr.ib(type=LibraryLocatorV2) usage_key = attr.ib(type=LibraryUsageLocatorV2) + + +@attr.s(frozen=True) +class ContentObjectData: + """ + Data about changed content object + + Arguments: + object_id (str): identifier of the Content object. This represents the id of the course or library block + as a string. For example: + block-v1:SampleTaxonomyOrg2+STC1+2023_1+type@vertical+block@f8de78f0897049ce997777a3a31b6ea0 + """ + + object_id = attr.ib(type=str) diff --git a/openedx_events/content_authoring/signals.py b/openedx_events/content_authoring/signals.py index a10770b1..495d14d9 100644 --- a/openedx_events/content_authoring/signals.py +++ b/openedx_events/content_authoring/signals.py @@ -10,6 +10,7 @@ from openedx_events.content_authoring.data import ( CertificateConfigData, ContentLibraryData, + ContentObjectData, CourseCatalogData, CourseData, DuplicatedXBlockData, @@ -198,3 +199,14 @@ "library_block": LibraryBlockData, } ) + +# .. event_type: org.openedx.content_authoring.content.object.tags.changed.v1 +# .. event_name: CONTENT_OBJECT_TAGS_CHANGED +# .. event_description: emitted when an object's tags are changed +# .. event_data: ContentObjectData +CONTENT_OBJECT_TAGS_CHANGED = OpenEdxPublicSignal( + event_type="org.openedx.content_authoring.content.object.tags.changed.v1", + data={ + "content_object": ContentObjectData + } +) diff --git a/openedx_events/event_bus/avro/tests/schemas/org+openedx+content_authoring+content+object+tags+changed+v1_schema.avsc b/openedx_events/event_bus/avro/tests/schemas/org+openedx+content_authoring+content+object+tags+changed+v1_schema.avsc new file mode 100644 index 00000000..e7e3c156 --- /dev/null +++ b/openedx_events/event_bus/avro/tests/schemas/org+openedx+content_authoring+content+object+tags+changed+v1_schema.avsc @@ -0,0 +1,21 @@ +{ + "name": "CloudEvent", + "type": "record", + "doc": "Avro Event Format for CloudEvents created with openedx_events/schema", + "fields": [ + { + "name": "content_object", + "type": { + "name": "ContentObjectData", + "type": "record", + "fields": [ + { + "name": "object_id", + "type": "string" + } + ] + } + } + ], + "namespace": "org.openedx.content_authoring.content.object.tags.changed.v1" +} \ No newline at end of file