Code Monkey home page Code Monkey logo

moodle-mod_ivs's Introduction

About

moodle-mod_ivs is a Moodle activity plugin to allow Social Video Learning. Enrich your videos by the powerful features of the social video player. Create pinpointed video comments for real discussions, add drawings or mark important situations directly in your videos by using just one tool.

Requirements

  • Requires a IVS-License to setup and use
  • Tested with Moodle 3.5+

Installation

  • Install plugin to mod/ivs
    Please see Installing_a_plugin for detailed installation instructions
  • Get your Instance-Identification at /mod/ivs/admin/admin_settings_license.php
  • Buy your IVS-License using your Instance-Identification
  • Create Interactive Video Suite activities

Recommendations

Features

  • Interactive Video Suite activity
  • Reports
  • Backup & Restore
  • Supports test environment

Changelog

v1.25

  • picture in picture disabled in exam mode
  • video feedback restricted to HTML5 video player
  • ep5 version 2.10

v1.24

  • fixed bug concerning activity completion 'on view'
  • fixed bug associated with display of correct answers in exam mode
  • ep5 version 2.9

v1.23

  • Improved compatibility for Moodle 3.9 - Moodle 4.2.3 and PHP 8.0 - 8.2
  • ep5 version 2.9

v1.22

  • bug fixes
    • scrolling fix in quiz mode
  • further improvements
    • unlink videos in IVS activities
  • ep5 version 2.9

v1.21

  • bug fixes
    • disabled comments in exam mode
    • changed db column settings in “ivs-matchtake”
  • further improvements
    • timing-mode: cool down function
    • timing-mode: ui improvements
  • ep5 version 2.9

v1.20

  • Vimp integration
  • Panopto player api
  • Kaltura improvements
  • ep5 version 2.8

v1.19

  • ui improvements and bug fixes

v1.18

  • fixed notification bug

v1.17

  • fixed upgrade bug

v1.16

  • added Timing Mode
  • bug fixes
  • ep5 version 2.6

v1.15

  • added Gradebook integration
  • added Multiple-choice questions to Quiz-mode
  • added exam mode
  • minor bug fixes
  • ep5 version 2.5

v1.14

  • added Kaltura support

v1.13

  • fixed upgrade issue

v1.12

  • added Youtube, Vimeo and external source support
  • improved ivs setting pages
  • ep5 version 2.4

v1.11

  • annotation preview
  • export video comments
  • ep5 version 2.3

v1.10

  • share comments
  • improved player UX
  • ep5 version 2.1, ep5 version 2.2

v1.10

  • share comments
  • improved player UX
  • ep5 version 2.1, ep5 version 2.2

v1.9

  • audiomessages
  • fixed multiple issues and bugs
  • ep5 version 2.0

v1.8

  • panopto integration
  • fix moodle proxy configuration
  • ep5 version 1.4

v1.7

  • annotation export
  • visibility lock (needed ep5 version 1.4)
  • setting to enable/disable comments

v1.6

  • Fixed license issues
  • Added Bulk operations settings for comments and match
  • Videoplayer: autorending of clickable links in comments and match
  • Videoplayer: jump to active context and comment initially
  • Videoplayer: added MathJax support
  • Videoplayer: added Markdown support
  • Fixed switchcast interface
  • ep5 version 1.3

v1.5

  • Refactoring and fixes for Moodle Directory listing
  • Fix 4:3 thumbnail preview image layout
  • Fix report edit, delete and start date
  • ep5 version 1.2

v1.4

  • Fixed cron report
  • ep5 version 1.2

v1.3

  • Fixed language selection
  • ep5 version 1.2

v1.2

  • Added setting to enable video playback rate for MATCH videos
  • ep5 version 1.2

v1.1

  • Updated constants

v1.0

  • Initial public release
  • ep5 version 1.0

moodle-mod_ivs's People

Contributors

n-multimedia avatar ghostthinker avatar melanietreitinger avatar joe-baudisch avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar Team TUM-Moodle avatar

moodle-mod_ivs's Issues

Exception - Class "mod_ivs\UpdateService" not found

image

$plugin->component = 'mod_ivs';
$plugin->release = 'v1.13.809';
$plugin->version = 2022092000;
$plugin->requires = 2014051200;
$plugin->maturity = MATURITY_BETA;
$plugin->cron = 0;
$plugin->dependencies = array();

Fragile use of isteacher, reliance on role archetypes

I see a lot references to isteacher type calls that use role-based checks - also what appears to be some reliance on role archetypes instead of correctly implementing the use of Moodle capabilities - this should really be revisited and rewritten to rely on moodle's capabilities correctly.

mod_ivs plugin update to v1.16.899 fails.

DB: Postgresql14
Moodle Version: 4.1.3
PHP: 8.0

== Moodle von 4.1.3 (Build: 20230424) (2022112803) auf 4.1.3 (Build: 20230424) (2022112803) aktualisieren ==

Die Moodle-Dateien wurden auf Ihrem Server verändert. Moodle wird
automatisch auf die Version 4.1.3 (BUILD: 20230424) (2022112803)
aktualisiert. Danach können Sie nicht mehr zur alten Version
zurückkehren. Beachten Sie, dass der Vorgang sehr lange dauern könnte!

Möchten Sie die Aktualisierung des Servers wirklich starten?

y (yes=ja) oder n (no=nein) eingeben
: y
-->mod_ivs
Default exception handler: Datensatz kann nicht in der Datenbank gefunden werden Debug: SELECT cm.*, m.name, md.name AS modname 
              FROM {course_modules} cm
                   JOIN {modules} md ON md.id = cm.module
                   JOIN {ivs} m ON m.id = cm.instance
                   
             WHERE m.id = :instance AND md.name = :modulename
                   
[array (
  'instance' => NULL,
  'modulename' => 'ivs',
)]
Error code: invalidrecordunknown
* line 1682 of /lib/dml/moodle_database.php: dml_missing_record_exception thrown
* line 1317 of /lib/datalib.php: call to moodle_database->get_record_sql()
* line 137 of /mod/ivs/classes/annotation.php: call to get_coursemodule_from_instance()
* line 86 of /mod/ivs/classes/UpdateService.php: call to mod_ivs\annotation->load_audio_annotation()
* line 111 of /mod/ivs/db/upgrade.php: call to mod_ivs\UpdateService->alterVideocommentTableForCommentType()
* line 934 of /lib/upgradelib.php: call to xmldb_ivs_upgrade()
* line 677 of /lib/upgradelib.php: call to upgrade_plugins_modules()
* line 1953 of /lib/upgradelib.php: call to upgrade_plugins()
* line 202 of /admin/cli/upgrade.php: call to upgrade_noncore()

!!! Datensatz kann nicht in der Datenbank gefunden werden !!!
!! SELECT cm.*, m.name, md.name AS modname 
              FROM {course_modules} cm
                   JOIN {modules} md ON md.id = cm.module
                   JOIN {ivs} m ON m.id = cm.instance
                   
             WHERE m.id = :instance AND md.name = :modulename
                   
[array (
  'instance' => NULL,
  'modulename' => 'ivs',
)]
Error code: invalidrecordunknown !!
!! Stack trace: * line 1682 of /lib/dml/moodle_database.php: dml_missing_record_exception thrown
* line 1317 of /lib/datalib.php: call to moodle_database->get_record_sql()
* line 137 of /mod/ivs/classes/annotation.php: call to get_coursemodule_from_instance()
* line 86 of /mod/ivs/classes/UpdateService.php: call to mod_ivs\annotation->load_audio_annotation()
* line 111 of /mod/ivs/db/upgrade.php: call to mod_ivs\UpdateService->alterVideocommentTableForCommentType()
* line 934 of /lib/upgradelib.php: call to xmldb_ivs_upgrade()
* line 677 of /lib/upgradelib.php: call to upgrade_plugins_modules()
* line 1953 of /lib/upgradelib.php: call to upgrade_plugins()
* line 202 of /admin/cli/upgrade.php: call to upgrade_noncore()
 !!

missing privacy api

Moodle uses a privacy API for GDPR compliance to allow plugins to specify how they deal with user data. Your plugin stores user data in a number of tables which will need to be included in the privaci api classes.

Sites that use continuous integration processes will not be able to use your plugin because Moodle runs unit tests which check to see if all extra plugins include the privacy class.

More information on the privacy class is here:
https://docs.moodle.org/dev/Privacy_API

License page Instance Identification

The instance identification shows "0" and the player version list ist empty.
This issue is on Moodle 3.9.11 (Build: 20211108) with PHP Version 7.4.26.
Screen Shot 11-25-21 at 09 03 PM

incorrect location for settings

settings should be defined within the ivs or mod_ivs space eg this is correct:

$settings->add(new admin_setting_heading('mod_ivs/ivssettings'

This one is incorrect

$settings->add(new admin_setting_configcheckbox('ivs_panopto_external_files_enabled'

consider implementing github action support

I know you implmented travis a while back, but we've all moved to github actions (which is free) now that travis is not free anymore.

Some of the tests run by the Moodle.org plugins db can be run via github actions on each commit in your github repo. Enabling this helps you to make sure future changes to your plugin will continue to follow the guidelines.

the short version - grab this file:
https://github.com/moodlehq/moodle-plugin-ci/blob/master/gha.dist.yml
rename it as ci.yml and put into the directory .github/workflows within tyour project eg:
https://github.com/danmarsden/moodle-mod_attendance/blob/MOODLE_311_STABLE/.github/workflows/ci.yml

then on every commit you make to github it will fire off a request to run the tests and will give you traffic lights beside each commit and generate a report.

install.xml has been manually modified by hand.

The install.xml is no longer valid and was either created for an old version of Moodle or has been handwritten.

This needs to be fixed using the Moodle xmldb editor (under admin > development > XMLDB.)

Please hit the "load" link for your plugin install.xml file in the moodle xmldb editor, and then make Moodle think there is an update to the file (easiest way to do this is to change the description of a table - add a full stop or something similar.) Then get XMLDB to "Save" the updated file which will remove all the old invalid xml from your file.

Error installing mod_ivs on Moodle 4.0.3 via cli

Dear devs

When installing Moodle with the mod_ivs plugin included using the cli scripts (install.php and install-database.php), the installation is aborted and I get the following error message:

Default exception handler: Unsupported redirect detected, script execution terminated Debug: 
Error code: redirecterrordetected
* line 2838 of /lib/weblib.php: moodle_exception thrown
* line 2842 of /lib/moodlelib.php: call to redirect()
* line 31 of /mod/ivs/settings.php: call to require_login()
* line 140 of /lib/classes/plugininfo/mod.php: call to include()
* line 47 of /admin/settings/plugins.php: call to core\plugininfo\mod->load_settings()
* line 8927 of /lib/adminlib.php: call to require()
* line 8953 of /lib/adminlib.php: call to admin_get_root()
* line 522 of /lib/installlib.php: call to admin_apply_default_settings()
* line 186 of /admin/cli/install_database.php: call to install_cli_database()

!!! Unsupported redirect detected, script execution terminated !!!
!! 
Error code: redirecterrordetected !!
!! Stack trace: * line 2838 of /lib/weblib.php: moodle_exception thrown
* line 2842 of /lib/moodlelib.php: call to redirect()
* line 31 of /mod/ivs/settings.php: call to require_login()
* line 140 of /lib/classes/plugininfo/mod.php: call to include()
* line 47 of /admin/settings/plugins.php: call to core\plugininfo\mod->load_settings()
* line 8927 of /lib/adminlib.php: call to require()
* line 8953 of /lib/adminlib.php: call to admin_get_root()
* line 522 of /lib/installlib.php: call to admin_apply_default_settings()
* line 186 of /admin/cli/install_database.php: call to install_cli_database()

Best regards

peta

styles.css not specific enough.

in your styles.css you define a number of generic styles that could clash with core moodle code or other locations where simliar names are used.

Moodle helpfully adds a number of classes to the body tag based on the path that you can use such as:
eg if you are have a file in mod/assign you would see the following class added to the body tag
path-mod-assign
so if you have an item with the class "filething" on the page you would target it like:

.path-mod-assign .filething {
   color: red;
}

Please make sure your css classes in styles.css are specific enough so they cannot clash with other core code.

eg "span.adminsettingsflags" in your styles.css could clash with other things - please use something like ".path-mod-ivs . span.adminsettingsflags" or similar.

hard-coded role names/ids

moodle-mod_ivs/view.php

Lines 74 to 100 in 9ae11a4

$is_admin = false;
$is_teacher = false;
$is_student = false;
// admin
$admins = get_admins();
$isadmin = false;
foreach($admins as $admin) {
if ($USER->id == $admin->id) {
$is_admin = true;
break;
}
}
// student
if (user_has_role_assignment($USER->id, 5)) {
$is_student = true;
}
// at least teacher > editingteacher/manager
if (user_has_role_assignment($USER->id, 4)
|| user_has_role_assignment($USER->id, 3)
|| user_has_role_assignment($USER->id, 2)
|| user_has_role_assignment($USER->id, 1)
) {
$is_teacher = true;

Many organisations will customise their roles and you cannot guaruntee the id numbers you are using there will actually match with the correct student/teacher roles - this is not the right way to determine user access - please use capabilities rather than roles.

The best method is to create new capabilities in your plugin that are assigned to the relevant roles by default, and then check if the current user has that capability in this context.

FYI - This is a blocker for approval in the plugins db.

NOT is not a boolean

$DB->execute("UPDATE {ivs_settings} SET value = NOT value WHERE name = 'default_random_question' OR name = 'list_item_buttons_hover_enabled' OR name = 'hide_when_inactive' OR name = 'annotation_realm_default_enabled'");
and line L106

What is NOT? Regardless, it need to be used as CHAR - with single quote (as per install.xml table ivs_settings definition).

Please improve plugins db description

the plugins db description really needs to "sell" your plugin a lot better - what features does it have, what can users do with it - maybe add a few more screenshots - mention panopto support etc etc.

This one is definitely a blocker for approval

MoodleLicenseController.php displays error messages on licence page

  • Moodle: 3.9.19
  • IVS: 2022110200
  • Page: /mod/ivs/admin/admin_settings_license.php

After I clicked on "Licence" in the Admin UI, I got messages of the same two lines of code over and over:

Notice: Trying to get property 'instance_id' of non-object in /var/www/moodle_3.9.19/mod/ivs/classes/license/MoodleLicenseController.php on line 72

Notice: Trying to get property 'instance_id' of non-object in /var/www/moodle_3.9.19/mod/ivs/classes/license/MoodleLicenseController.php on line 74

please add travis ci support

Some of the tests run by the Moodle.org plugins db can be run via travis-ci on each commit in your github repo. Enabling Travis integration helps you to make sure future changes to your plugin will continue to follow the guidelines.

More information on this is here:
https://moodle.org/mod/forum/discuss.php?d=323384

but the short version:
grab this file:
https://github.com/moodlehq/moodle-plugin-ci/blob/main/.travis.dist.yml
rename it as .travis.yml and put in the root of your github directory.
Go to:
https://travis-ci.org/profile/YOUR_GITHUB_USERNAME
Flick the switch for this repo.

then on every commit you make to github it will fire off a request to travis to run the tests in .travis.yml and will give you traffic lights beside each commit and generate a report.

something else you might want to change:
in .travis.yml the default file has this line:

env:
global:

MOODLE_BRANCH=MOODLE_38_STABLE
you might want to add other branches to that list - so you might want to change it something like:

env:
global:
MOODLE_BRANCH=MOODLE_35_STABLE
MOODLE_BRANCH=MOODLE_36_STABLE
MOODLE_BRANCH=MOODLE_37_STABLE

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.