Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement common Moodle activity events #69

Open
nadavkav opened this issue May 17, 2016 · 15 comments

Comments

Projects
None yet
5 participants
@nadavkav
Copy link
Contributor

commented May 17, 2016

  • Activity viewed
  • Activity index viewed (when implemented)
  • For Interactive Video: Video player events (Play, stop, seek, pause, interaction?, finished)
  • Grade updated
  • xAPI statement fired (maybe? instead or in parallel of sending it to an external LRS)
@icc

This comment has been minimized.

Copy link
Member

commented May 18, 2016

Sounds like a valid suggestion, however, I'm not very familiar with what is common activity events so I have some questions:

  • Activity viewed, is that the course_module_viewed event?
  • I saw the activity index, but I cannot really figure out where it is used?
  • I believe this would have to be some sort of xAPI event since each event type must have a separate class, and we can't create the classes on the fly. That said I'm a bit unsure who/which module would benefit from these events. Today, all event are accessible if the module adds a custom JavaScript that listen for events on the External Event Dispatcher.
  • I could be wrong but doesn't Moodle trigger the graded event automatically when grade_update() is used?
@nadavkav

This comment has been minimized.

Copy link
Contributor Author

commented May 18, 2016

Great. I am already on it (As we need it in our campus, Israeli Open University)

  • Activity viewed, is that the course_module_viewed event (Yes)
  • Activity index is a page where you will get a list of all the H5P activities in the course, divided into course topics. with links to those activities.
  • We already added a JS event listener (see some old code here: #45 . I have some updates on that one too. I will send a PR soon) and I already implemented a some code that send the xAPI statements back into Moodle as n H5P xAPI event.
  • You are right about the grades.
@icc

This comment has been minimized.

Copy link
Member

commented May 18, 2016

Good, do you know where the link to the activity index is? I'm unable to locate it

@nadavkav

This comment has been minimized.

Copy link
Contributor Author

commented May 18, 2016

One easy way to see it is by adding a block called "Activities" to a course. The block display a list of all Index.php pages from the activities that are included in a course.

You can also, manually, pass id=courseid to hvp/index.php (https://github.com/h5p/h5p-moodle-plugin/blob/master/index.php)

Here is a general demo for the Assignment activity:
https://qa.moodle.net/mod/assign/index.php?id=2 (user: teacher, password: test)

@icc

This comment has been minimized.

Copy link
Member

commented May 18, 2016

Ah, thank you. I added a separate issue for fixing the index page #70.

@falcon-git

This comment has been minimized.

Copy link
Member

commented Jun 16, 2016

Making any progress here @nadavkav? Hoping to release the Moodle plugin soon and would be great to have this in place!

@nadavkav

This comment has been minimized.

Copy link
Contributor Author

commented Jun 16, 2016

I will upload a patch over the weekend.

Regarding the xAPI events, I am a little bit undecided (also my fellow colleagues are not sure what will be best for the long run)
I have two solution, I am not sure which one we should go forward with.
(1) Have a single hvp xAPI event - class xapi_action , which gets splitted to xapi & action in the mdl_logstore_standard_log table (which seem easy and useful for creating SQL custom reports)
(2) Have an event for each xAPI action, like class xapi_attempted, class xapi_started ...
(Seem like more coding, but might be more elegant?)

What do you think?

@falcon-git

This comment has been minimized.

Copy link
Member

commented Jun 17, 2016

I don't know much about Moodle, but there is no limit to how many different verbs you can have in xAPI statements so #2 will be a very problematic solution in the future.

@nadavkav

This comment has been minimized.

Copy link
Contributor Author

commented Jun 17, 2016

I have tried both scenarios, and although using explicit event for each current known (implemented by h5p) xAPI event which looks very elegant and useful in the mdl_logstore_standard_log when considering future SQL reports... I think it would be more generic to use a single xAPI event and have all the Actor, Verb & Object data send as "other" parameters with the event (which are stored as a JSON in the "other" field of the mdl_logstore_standard_log table)

@falcon-git

This comment has been minimized.

Copy link
Member

commented Jun 17, 2016

Makes sense

@nadavkav

This comment has been minimized.

Copy link
Contributor Author

commented Jun 17, 2016

@garemoko , I would LOVE your input on this issue.

@garemoko

This comment has been minimized.

Copy link

commented Jun 17, 2016

I think there's two types of events here:

  1. Standard Moodle events that are logged for all plugins. These probably don't have h5p xAPI statements and should be treated like any other Moodle events from a logstore perspective.
  2. h5P events which there is already a partial xAPI statement for which just needs some elements adding.

In the 2nd case, since what's added to the statements should be the same each time for an H5P event, i think it makes sense to have a generic H5P event. The three different parts of the Moodle logstore plugin would then do the following:

Log expander - catch the event and fetch the base statement from an H5P plugin table referenced in the event. Collect other data needed to populate the agent and context properties needed.

Translator - wouldn't do that much in this case; possibly some reformatting of the additional properties.

Emitter - build and send the final statement.

Having an event for each action seems to me unscalable and hopefully unnecessary.

@nadavkav

This comment has been minimized.

Copy link
Contributor Author

commented Jun 17, 2016

Thank you Andrew (@garemoko) for you advice!
Looks perfectly logical and sensible to me.

If I can pick your brain a little bit longer...
Can you give some advice about issues #45 too

@nadavkav

This comment has been minimized.

Copy link
Contributor Author

commented Jun 25, 2016

@falcon-git have you had a chance to look over the patch?

@clementpr

This comment has been minimized.

Copy link

commented Sep 2, 2016

Hi,

I'm not sure to understand all of this discussions post.
In Moodle we have differents possibilities for "activity completion". Depending on the activity (forum, test, glossary, lesson, etc.) or resources (page, link, etc.), we have that https://docs.moodle.org/31/en/Activity_completion_settings#Activity_settings

I think with h5P, it will be better to propose one more completion activity.

We have already

  • Require grade =student must receive a grade to complete this activity (already awailable in the plugin today). This level is particulary usefull for games, questions.
  • Students can mannualy mark the activity as completed. This level is usefull to leave control to students.

We could need too

  • Require view : student must view this activity to complete it.
    In my view, this level is required when we just deliver simple content as "course presentation", "interactive video", etc.
    With this activity completion "require view", we can offer to automatically validate an activity when student launch / see a H5P content.

When I test the Moodle Plugin, I don't see the possibility to set "require view". Can we imagine to add this ?

2016-09-02_14-02-19

Regards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.