Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-68853

Create web service to trigger report_viewed event for H5P activities

    XMLWordPrintable

    Details

    • Testing Instructions:
      Hide
      1. Enable webservices in site advanced features
      2. create external webservice and enable it
      3. add mod_h5pactivity_log_report_viewed function to it
      4. create webservice user
      5. create a token at http://YOURMOODLE/admin/settings.php?section=webservicetokens and remember it as WSTOKEN
      6. create a course
      7. add h5pactivity to a course (you can use attached package)
      8. Go to your 5pactivity page - smth like http://YOURMOODLE/mod/h5pactivity/view.php?id=INSTANCEID and remember INSTANCEID
      9. Run this query to get H5PACTIVITYID:

        select instance from mdl_course_modules where id = INSTANCEID;
        

      10. enroll user
      11. Call a webservice:

        curl 'http://YOURMOODLE/webservice/rest/server.php?wsfunction=mod_h5pactivity_log_report_viewed&moodlewsrestformat=json&wstoken=WSTOKEN&h5pactivityid=H5PACTIVITYID&userid=USERID' | python -m "json.tool"
        

      12. Ensure you can see a log entry in course log page with name 'Report viewed' http://YOURMOODLE/report/log/index.php?id=COURSEID
      13. Ensure there is new log entry in mdl_logstore_standard_log

        SELECT * FROM mdl_logstore_standard_log where courseid = COURSEID and eventname = '\mod_h5pactivity\event\report_viewed';
        

        id                | 3161
        eventname         | \mod_h5pactivity\event\report_viewed
        component         | mod_h5pactivity
        action            | viewed
        target            | report
        objecttable       | h5pactivity
        objectid          | 4
        crud              | r
        edulevel          | 2
        contextid         | 308
        contextlevel      | 70
        contextinstanceid | 120
        userid            | 2
        courseid          | 12
        relateduserid     | 
        anonymous         | 0
        other             | {"instanceid":"4","userid":2,"attemptid":null}
        timecreated       | 1610371183
        origin            | ws
        ip                | 0:0:0:0:0:0:0:1
        realuserid        | 
        }

      Show
      Enable webservices in site advanced features create external webservice and enable it add mod_h5pactivity_log_report_viewed function to it create webservice user create a token at http://YOURMOODLE/admin/settings.php?section=webservicetokens and remember it as WSTOKEN create a course add h5pactivity to a course (you can use attached package) Go to your 5pactivity page - smth like http://YOURMOODLE/mod/h5pactivity/view.php?id=INSTANCEID and remember INSTANCEID Run this query to get H5PACTIVITYID: select instance from mdl_course_modules where id = INSTANCEID; enroll user Call a webservice: curl 'http://YOURMOODLE/webservice/rest/server.php?wsfunction=mod_h5pactivity_log_report_viewed&moodlewsrestformat=json&wstoken=WSTOKEN&h5pactivityid=H5PACTIVITYID&userid=USERID' | python -m "json.tool" Ensure you can see a log entry in course log page with name 'Report viewed' http://YOURMOODLE/report/log/index.php?id=COURSEID Ensure there is new log entry in mdl_logstore_standard_log SELECT * FROM mdl_logstore_standard_log where courseid = COURSEID and eventname = '\mod_h5pactivity\event\report_viewed' ; id | 3161 eventname | \mod_h5pactivity\event\report_viewed component | mod_h5pactivity action | viewed target | report objecttable | h5pactivity objectid | 4 crud | r edulevel | 2 contextid | 308 contextlevel | 70 contextinstanceid | 120 userid | 2 courseid | 12 relateduserid | anonymous | 0 other | { "instanceid" : "4" , "userid" : 2 , "attemptid" : null } timecreated | 1610371183 origin | ws ip | 0 : 0 : 0 : 0 : 0 : 0 : 0 : 1 realuserid | }
    • Affected Branches:
      MOODLE_38_STABLE
    • Fixed Branches:
      MOODLE_311_STABLE
    • Pull 3.11 Branch:
      MDL-68853-311
    • Pull Master Branch:
      MDL-68853-master
    • Sprint:
      Moppies Kanban

      Description

      When a user views his attempts or a single attempt in web, a report_viewed event is triggered. We need a WebSevice to be able to trigger that event when the reports are viewed in the mobile app too.

        Attachments

          Activity

            People

            Assignee:
            ilyatregubov Ilya Tregubov
            Reporter:
            dpalou Dani Palou
            Peer reviewer:
            Carlos Escobedo Carlos Escobedo
            Integrator:
            Andrew Lyons Andrew Lyons
            Tester:
            Anna Carissa Sadia Anna Carissa Sadia
            Participants:
            Component watchers:
            Amaia Anabitarte, Carlos Escobedo, Ferran Recio, Ilya Tregubov, Sara Arjona (@sarjona)
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:
              Fix Release Date:
              17/May/21

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 1 day, 31 minutes
                1d 31m