From 35ae5f78cba80c16814a7cb1fc05ee4c663a1690 Mon Sep 17 00:00:00 2001 From: Ryan Smith <3045513+ryansmith94@users.noreply.github.com> Date: Thu, 2 Aug 2018 10:35:04 +0100 Subject: [PATCH] fix: Improves assignment activity for #186. (#206) --- .../events/mod_assign/assignment_graded.php | 5 +-- .../mod_assign/assignment_submitted.php | 4 ++- .../utils/get_activity/course_assignment.php | 32 +++++++++++++++++++ .../existing_assignment_graded/data.json | 8 +++++ .../existing_assignment_graded/event.json | 1 + .../statements.json | 13 +------- .../existing_assignment_submitted/data.json | 16 +++++++++- .../existing_assignment_submitted/event.json | 1 + .../statements.json | 4 +-- 9 files changed, 64 insertions(+), 20 deletions(-) create mode 100644 src/transformer/utils/get_activity/course_assignment.php diff --git a/src/transformer/events/mod_assign/assignment_graded.php b/src/transformer/events/mod_assign/assignment_graded.php index ae0284e..b0b449c 100644 --- a/src/transformer/events/mod_assign/assignment_graded.php +++ b/src/transformer/events/mod_assign/assignment_graded.php @@ -64,7 +64,7 @@ function assignment_graded(array $config, \stdClass $event) { $lang => 'attained grade for' ], ], - 'object' => utils\get_activity\module($config, 'assign', $assignment, $lang), + 'object' => utils\get_activity\course_assignment($config, $event->contextinstanceid, $assignment->name, $lang), 'result' => [ 'score' => [ 'raw' => $scoreraw, @@ -84,9 +84,6 @@ function assignment_graded(array $config, \stdClass $event) { utils\INFO_EXTENSION => utils\get_info($config, $event), ], 'contextActivities' => [ - 'other' => [ - utils\get_activity\event_module($config, $event, $lang) - ], 'grouping' => [ utils\get_activity\site($config), utils\get_activity\course($config, $course) diff --git a/src/transformer/events/mod_assign/assignment_submitted.php b/src/transformer/events/mod_assign/assignment_submitted.php index 1d09c84..f404d72 100644 --- a/src/transformer/events/mod_assign/assignment_submitted.php +++ b/src/transformer/events/mod_assign/assignment_submitted.php @@ -24,6 +24,8 @@ function assignment_submitted(array $config, \stdClass $event) { $repo = $config['repo']; $user = $repo->read_record_by_id('user', $event->userid); $course = $repo->read_record_by_id('course', $event->courseid); + $assignmentsubmission = $repo->read_record_by_id('assign_submission', $event->objectid); + $assignment = $repo->read_record_by_id('assign', $assignmentsubmission->assignment); $lang = utils\get_course_lang($course); return [[ @@ -34,7 +36,7 @@ function assignment_submitted(array $config, \stdClass $event) { $lang => 'submitted' ], ], - 'object' => utils\get_activity\event_module($config, $event, $lang), + 'object' => utils\get_activity\course_assignment($config, $event->contextinstanceid, $assignment->name, $lang), 'timestamp' => utils\get_event_timestamp($event), 'context' => [ 'platform' => $config['source_name'], diff --git a/src/transformer/utils/get_activity/course_assignment.php b/src/transformer/utils/get_activity/course_assignment.php new file mode 100644 index 0000000..ef5afcb --- /dev/null +++ b/src/transformer/utils/get_activity/course_assignment.php @@ -0,0 +1,32 @@ +<?php +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see <http://www.gnu.org/licenses/>. + +namespace src\transformer\utils\get_activity; +defined('MOODLE_INTERNAL') || die(); + +use src\transformer\utils as utils; + +function course_assignment(array $config, $cmid, $name, $lang) { + return [ + 'id' => $config['app_url'].'/mod/assign/view.php?id='.$cmid, + 'definition' => [ + 'type' => 'http://adlnet.gov/expapi/activities/assessment', + 'name' => [ + $lang => $name, + ], + ], + ]; +} diff --git a/tests/mod_assign/assignment_graded/existing_assignment_graded/data.json b/tests/mod_assign/assignment_graded/existing_assignment_graded/data.json index aec10aa..4c285fc 100644 --- a/tests/mod_assign/assignment_graded/existing_assignment_graded/data.json +++ b/tests/mod_assign/assignment_graded/existing_assignment_graded/data.json @@ -18,6 +18,14 @@ "lang": "en" } ], + "course_modules": [ + { + "id": 1, + "course": 1, + "module": 1, + "instance": 1 + } + ], "assign": [ { "id": 1, diff --git a/tests/mod_assign/assignment_graded/existing_assignment_graded/event.json b/tests/mod_assign/assignment_graded/existing_assignment_graded/event.json index d1d4841..bce74db 100644 --- a/tests/mod_assign/assignment_graded/existing_assignment_graded/event.json +++ b/tests/mod_assign/assignment_graded/existing_assignment_graded/event.json @@ -5,5 +5,6 @@ "timecreated": 1433946701, "objecttable": "grade", "objectid": 1, + "contextinstanceid": 1, "eventname": "\\mod_assign\\event\\submission_graded" } \ No newline at end of file diff --git a/tests/mod_assign/assignment_graded/existing_assignment_graded/statements.json b/tests/mod_assign/assignment_graded/existing_assignment_graded/statements.json index a1c609f..af77aa6 100644 --- a/tests/mod_assign/assignment_graded/existing_assignment_graded/statements.json +++ b/tests/mod_assign/assignment_graded/existing_assignment_graded/statements.json @@ -16,7 +16,7 @@ "object": { "id": "http:\/\/www.example.org\/mod\/assign\/view.php?id=1", "definition": { - "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/module", + "type": "http:\/\/adlnet.gov\/expapi\/activities\/assessment", "name": { "en": "test_name" } @@ -52,17 +52,6 @@ } }, "contextActivities": { - "other": [ - { - "id": "http:\/\/www.example.org\/mod\/grade\/view.php?id=1", - "definition": { - "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/module", - "name": { - "en": "grade" - } - } - } - ], "grouping": [ { "id": "http:\/\/www.example.org", diff --git a/tests/mod_assign/assignment_submitted/existing_assignment_submitted/data.json b/tests/mod_assign/assignment_submitted/existing_assignment_submitted/data.json index 9972817..d64a6e5 100644 --- a/tests/mod_assign/assignment_submitted/existing_assignment_submitted/data.json +++ b/tests/mod_assign/assignment_submitted/existing_assignment_submitted/data.json @@ -13,7 +13,21 @@ "lang": "en" } ], - "assignment_submissions": [ + "course_modules": [ + { + "id": 1, + "course": 1, + "module": 1, + "instance": 1 + } + ], + "assign_submission": [ + { + "id": 1, + "assignment": 1 + } + ], + "assign": [ { "id": 1, "name": "test_name" diff --git a/tests/mod_assign/assignment_submitted/existing_assignment_submitted/event.json b/tests/mod_assign/assignment_submitted/existing_assignment_submitted/event.json index bfcfbb9..59ba355 100644 --- a/tests/mod_assign/assignment_submitted/existing_assignment_submitted/event.json +++ b/tests/mod_assign/assignment_submitted/existing_assignment_submitted/event.json @@ -5,5 +5,6 @@ "timecreated": 1433946701, "objecttable": "assignment_submissions", "objectid": 1, + "contextinstanceid": 1, "eventname": "\\mod_assign\\event\\assessable_submitted" } \ No newline at end of file diff --git a/tests/mod_assign/assignment_submitted/existing_assignment_submitted/statements.json b/tests/mod_assign/assignment_submitted/existing_assignment_submitted/statements.json index b07cb6c..a3dba30 100644 --- a/tests/mod_assign/assignment_submitted/existing_assignment_submitted/statements.json +++ b/tests/mod_assign/assignment_submitted/existing_assignment_submitted/statements.json @@ -14,9 +14,9 @@ } }, "object": { - "id": "http:\/\/www.example.org\/mod\/assignment_submissions\/view.php?id=1", + "id": "http:\/\/www.example.org\/mod\/assign\/view.php?id=1", "definition": { - "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/module", + "type": "http:\/\/adlnet.gov\/expapi\/activities\/assessment", "name": { "en": "test_name" } -- GitLab