diff --git a/event_routing_backends/processors/tests/fixtures/current/edx.completion.block_completion.changed.json b/event_routing_backends/processors/tests/fixtures/current/edx.completion.block_completion.changed.json index 38524a7b..ea994689 100644 --- a/event_routing_backends/processors/tests/fixtures/current/edx.completion.block_completion.changed.json +++ b/event_routing_backends/processors/tests/fixtures/current/edx.completion.block_completion.changed.json @@ -5,7 +5,7 @@ "user_id": 4, "course_id": "course-v1:edX+DemoX+Demo_Course", "context_key": "course-v1:edX+DemoX+Demo_Course", - "block_key": "block-v1:edX+DemoX+Demo_Course+type@problem+block@7c54b16c8ed34f9f8772015178c7a175", + "block_id": "block-v1:edX+DemoX+Demo_Course+type@problem+block@7c54b16c8ed34f9f8772015178c7a175", "block_type": "problem", "completion": 1.0, "is_new": false diff --git a/event_routing_backends/processors/xapi/event_transformers/completion_events.py b/event_routing_backends/processors/xapi/event_transformers/completion_events.py index ad08c931..6e2945fe 100644 --- a/event_routing_backends/processors/xapi/event_transformers/completion_events.py +++ b/event_routing_backends/processors/xapi/event_transformers/completion_events.py @@ -1,23 +1,26 @@ """ Transformers for forum related events. """ -from tincan import Activity, ActivityDefinition, Extensions, LanguageMap, Verb +from tincan import Activity, ActivityDefinition, Extensions, LanguageMap, Result, Verb from event_routing_backends.processors.xapi import constants from event_routing_backends.processors.xapi.registry import XApiTransformersRegistry from event_routing_backends.processors.xapi.transformer import XApiTransformer -@XApiTransformersRegistry.register('edx.completion.block_completion.changed') +@XApiTransformersRegistry.register("edx.completion.block_completion.changed") class CompletionCreatedTransformer(XApiTransformer): """ Transformers for event generated when an student completion is created or updated. """ + verb = Verb( id=constants.XAPI_VERB_PROGRESSED, display=LanguageMap({constants.EN: constants.PROGRESSED}), ) + additional_fields = ('result', ) + def get_object(self): """ Get object for xAPI transformed event related to a thread. @@ -25,12 +28,24 @@ def get_object(self): Returns: `Activity` """ + print(f'\n\n\n BLOCK ID: {self.get_object_iri("xblock", self.get_data("data.block_id"))}\n\n\n') return Activity( - id=self.get_object_iri('xblock', self.get_data('data.block_key')), + id=self.get_object_iri("xblock", self.get_data("data.block_id")), definition=ActivityDefinition( type=constants.XAPI_ACTIVITY_RESOURCE, - extensions=Extensions({ - constants.XAPI_ACTIVITY_PROGRESS: self.get_data('data.completion')*100 - }) + ), + ) + + def get_result(self): + """ + Get result for xAPI transformed event related to a thread. + + Returns: + `Result` + """ + return Result( + completion=self.get_data("data.completion") == 1.0, + extensions=Extensions( + {constants.XAPI_ACTIVITY_PROGRESS: self.get_data("data.completion")*100} ), ) diff --git a/event_routing_backends/processors/xapi/tests/fixtures/expected/edx.completion.block_completion.changed.json b/event_routing_backends/processors/xapi/tests/fixtures/expected/edx.completion.block_completion.changed.json index c0bb72d4..4ea719af 100644 --- a/event_routing_backends/processors/xapi/tests/fixtures/expected/edx.completion.block_completion.changed.json +++ b/event_routing_backends/processors/xapi/tests/fixtures/expected/edx.completion.block_completion.changed.json @@ -1,17 +1,26 @@ { "id": "32e08e30-f8ae-4ce2-94a8-c2bfe38a70cb", + "result": { + "completion": true, + "extensions": { "https://w3id.org/xapi/cmi5/result/extensions/progress": 100.0 } + }, "version": "1.0.3", "actor": { "objectType": "Agent", - "account": { "name": "32e08e30-f8ae-4ce2-94a8-c2bfe38a70cb", "homePage": "http://localhost:18000" } + "account": { + "name": "32e08e30-f8ae-4ce2-94a8-c2bfe38a70cb", + "homePage": "http://localhost:18000" + } }, - "verb": { "id": "http://adlnet.gov/expapi/verbs/progressed", "display": { "en": "progressed" } }, + "verb": { + "id": "http://adlnet.gov/expapi/verbs/progressed", + "display": { "en": "progressed" } +}, "object": { "id": "http://localhost:18000/xblock/block-v1:edX+DemoX+Demo_Course+type@problem+block@7c54b16c8ed34f9f8772015178c7a175", "objectType": "Activity", "definition": { - "type": "http://id.tincanapi.com/activitytype/resource", - "extensions": { "https://w3id.org/xapi/cmi5/result/extensions/progress": 100.0 } + "type": "http://id.tincanapi.com/activitytype/resource" } }, "timestamp": "2023-08-22T20:16:25.500832+00:00",