diff --git a/.gitignore b/.gitignore index a26e73e25994deb8ca53008bdf30dd74635b2306..c3d4faa62fe47f777ab03e9e1d93936efd15a649 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,11 @@ .DS_STORE -*.sublime-project -*.sublime-workspace -vendor -classes/log/error_log.txt -composer.phar -.idea/ +/.idea +/*.sublime-project +/*.sublime-workspace +/classes/log/error_log.txt +/composer.phar +/node_modules +/package-lock.json +/vendor +/xapi +/xapi.zip diff --git a/.travis.yml b/.travis.yml index d1aa3a456600edab6f682f42709bf75df94e1ea0..2cc02c48451b1246103e51cf1dcedecb511a0878 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,47 +1,72 @@ language: php - sudo: false cache: - directories: - - $HOME/.composer/cache + directories: + - $HOME/.composer/cache php: - - 5.6 - - 7.0 - - 7.1 + - 7.1 + - 7.0 + - 5.6 env: - global: - - MOODLE_BRANCH=MOODLE_32_STABLE - matrix: - - DB=pgsql -# - DB=mysqli + global: + - MOODLE_BRANCH=MOODLE_32_STABLE + matrix: + - DB=pgsql +# - DB=mysqli before_install: - - composer install --no-interaction - - phpenv config-rm xdebug.ini - - nvm install node - - cd ../.. - - composer selfupdate - - composer create-project -n --no-dev --prefer-dist moodlerooms/moodle-plugin-ci ci ^2 - - export PATH="$(cd ci/bin; pwd):$(cd ci/vendor/bin; pwd):$PATH" + - echo $TRAVIS_PHP_VERSION + - echo "Travis tag $TRAVIS_TAG" + - echo "Travis branch $TRAVIS_BRANCH" + - composer install --no-interaction + - phpenv config-rm xdebug.ini + - nvm install 8 + - cd ../.. + - composer selfupdate + - composer create-project -n --no-dev --prefer-dist moodlerooms/moodle-plugin-ci ci ^2 + - export PATH="$(cd ci/bin; pwd):$(cd ci/vendor/bin; pwd):$PATH" install: - - moodle-plugin-ci install + - moodle-plugin-ci install script: -# - moodle-plugin-ci phplint -# - moodle-plugin-ci phpcpd -# - moodle-plugin-ci phpmd -# - moodle-plugin-ci codechecker - - moodle-plugin-ci validate - - moodle-plugin-ci savepoints -# - moodle-plugin-ci mustache -# - moodle-plugin-ci grunt - - moodle-plugin-ci phpunit -# - moodle-plugin-ci behat - - # run codechecker without the vendor/ directory - - rm -rf "$(find -type d -name xapi)/vendor" - - moodle-plugin-ci codechecker +# - moodle-plugin-ci phplint +# - moodle-plugin-ci phpcpd +# - moodle-plugin-ci phpmd +# - moodle-plugin-ci codechecker + - moodle-plugin-ci validate + - moodle-plugin-ci savepoints +# - moodle-plugin-ci mustache +# - moodle-plugin-ci grunt + - moodle-plugin-ci phpunit +# - moodle-plugin-ci behat + + # run codechecker without the vendor/ directory + - rm -rf "$(find -type d -name xapi)/vendor" + - moodle-plugin-ci codechecker + - cd $TRAVIS_BUILD_DIR + +after_success: + - if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_PHP_VERSION" == "7.1" ]; then + git fetch --tags; + npm i semantic-release; + npm i last-release-git; + export BUILD_LEADER_ID=1; + ./node_modules/.bin/semantic-release pre && ./node_modules/.bin/semantic-release post; + fi + +before_deploy: + - sh ./scripts/generateVersionFile.sh + - sh ./scripts/generateZipFile.sh + +deploy: + provider: releases + api_key: $GH_TOKEN + file: xapi.zip + skip_cleanup: true + on: + tags: true + php: 7.1 diff --git a/build.sh b/build.sh deleted file mode 100755 index 36e004155e108ab7a59b0075acc9343fb1b91a34..0000000000000000000000000000000000000000 --- a/build.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env sh - -# Creates a folder to zip. -rm -f xapi.zip -php -r "readfile('https://getcomposer.org/installer');" | php -php composer.phar install --no-interaction --no-dev -cp -r . ../moodle_logstore_build - -# Removes unused files and folders. -find ../moodle_logstore_build -type d -name 'tests' | xargs rm -rf -find ../moodle_logstore_build -type d -name 'docs' | xargs rm -rf -find ../moodle_logstore_build -type d -name '.git' | xargs rm -rf -find ../moodle_logstore_build -type f -name '.gitignore' | xargs rm -rf -find ../moodle_logstore_build -type f -name 'composer.*' | xargs rm -rf -find ../moodle_logstore_build -type f -name 'phpunit.*' | xargs rm -rf -find ../moodle_logstore_build -type f -name '*.md' | xargs rm -rf - -# Creates the zip file. -mv ../moodle_logstore_build xapi -zip -r xapi.zip xapi -x "xapi/.git/**/*" -rm -rf xapi - -# Updates Github. -git add xapi.zip -git commit -m "Builds zip file." -git push diff --git a/classes/log/store.php b/classes/log/store.php index 23da02e6489cb8d061d84c7fcdefb0abecc62672..e803580072014f077387478d67d117ddcf245453 100755 --- a/classes/log/store.php +++ b/classes/log/store.php @@ -65,10 +65,14 @@ class store extends php_obj implements log_writer { * @param log_manager $manager */ public function __construct(log_manager $manager) { + global $CFG; $this->helper_setup($manager); $this->logguests = $this->get_config('logguests', 1); $routes = $this->get_config('routes', ''); $this->routes = $routes === '' ? [] : explode(',', $routes); + if (!empty($CFG->debug) and $CFG->debug >= DEBUG_DEVELOPER) { + $this->loggingenabled = true; + } } /** diff --git a/lib/emitter/src/Events/AssignmentGraded.php b/lib/emitter/src/Events/AssignmentGraded.php index fccdfe51f0934b1e3b435817f1d53c25f44d19cf..94aa695423e1e68722fe1645cf77dd9ce41bd49f 100644 --- a/lib/emitter/src/Events/AssignmentGraded.php +++ b/lib/emitter/src/Events/AssignmentGraded.php @@ -58,14 +58,7 @@ class AssignmentGraded extends Event { ]); // Excluded from array merge to make sure that the actor is overwritten e.g. if a different IFI is used. - $statement['actor'] = [ - 'objectType' => 'Agent', - 'name' => $opts['graded_user_name'], - 'account' => [ - 'homePage' => $opts['graded_user_url'], - 'name' => $opts['graded_user_id'], - ], - ]; + $statement['actor'] = $this->read_user($opts, "graded_user"); if (!is_null($opts['grade_success'])) { $statement['result']['success'] = $opts['grade_success']; diff --git a/lib/translator/src/Events/AssignmentGraded.php b/lib/translator/src/Events/AssignmentGraded.php index 053b85e89d1b02981fead41a9075fb65607a8ea3..4324e26dff25b1764029f9e684fdcb460103cff7 100644 --- a/lib/translator/src/Events/AssignmentGraded.php +++ b/lib/translator/src/Events/AssignmentGraded.php @@ -51,6 +51,7 @@ class AssignmentGraded extends ModuleViewed { 'graded_user_id' => $opts['graded_user']->id, 'graded_user_url' => $opts['graded_user']->url, 'graded_user_name' => $opts['graded_user']->fullname, + 'graded_user_email' => $opts['graded_user']->email, 'grade_score_raw' => $scoreraw, 'grade_score_min' => $scoremin, 'grade_score_max' => $scoremax, diff --git a/lib/translator/src/Events/CourseCompleted.php b/lib/translator/src/Events/CourseCompleted.php index b572e0a7064ce0fde033ad02dd9d68e1418b3f01..277eab82f8da187cc8774f58b3d42048d594c18c 100644 --- a/lib/translator/src/Events/CourseCompleted.php +++ b/lib/translator/src/Events/CourseCompleted.php @@ -34,6 +34,7 @@ class CourseCompleted extends CourseViewed { 'user_id' => $opts['relateduser']->id, 'user_url' => $opts['relateduser']->url, 'user_name' => $opts['relateduser']->fullname, + 'user_email' => $opts['relateduser']->email, ])]; } } diff --git a/package.json b/package.json new file mode 100644 index 0000000000000000000000000000000000000000..4ab8460c6c5fd65f333c6eaebe1f8c0d1b4ee888 --- /dev/null +++ b/package.json @@ -0,0 +1,10 @@ +{ + "name": "moodle-logstore_xapi", + "repository": { + "type": "git", + "url": "https://github.com/xAPI-vle/moodle-logstore_xapi.git" + }, + "release": { + "getLastRelease": "last-release-git" + } +} diff --git a/scripts/generateVersionFile.sh b/scripts/generateVersionFile.sh new file mode 100755 index 0000000000000000000000000000000000000000..e57105cc3c3b52b1d44b1a670dc177f2eef71d4d --- /dev/null +++ b/scripts/generateVersionFile.sh @@ -0,0 +1,13 @@ +release="$TRAVIS_TAG" + +year=$(date +"%Y") + +today=$(date +"%Y-%m-%d") +todaysReleases=$(git log --tags --simplify-by-decoration --pretty="format:%ai %d" | sort -r | grep "$today" | wc -l | tr -d '[:space:]') + +versionPrefix=$(date +"%Y%m%d") +versionSuffix=$(printf %02d $todaysReleases) +version="$versionPrefix$versionSuffix" + +template=$(cat ./scripts/templateVersionFile) +eval "echo \"$template\"" > version.php diff --git a/scripts/generateZipFile.sh b/scripts/generateZipFile.sh new file mode 100755 index 0000000000000000000000000000000000000000..686097c3ef4a2de57d8f1d3cdfadcfddcd66bd9a --- /dev/null +++ b/scripts/generateZipFile.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env sh + +# Installs composer production dependencies. +rm -rf vendor +composer install --no-interaction --no-dev + +# Creates folder to zip. +rm -rf xapi +mkdir -p ./xapi/classes && cp -r ./classes ./xapi +mkdir -p ./xapi/db && cp -r ./db ./xapi +mkdir -p ./xapi/lang && cp -r ./lang ./xapi +mkdir -p ./xapi/lib && cp -r ./lib ./xapi +mkdir -p ./xapi/vendor && cp -r ./vendor ./xapi +cp ./LICENSE ./xapi +cp ./README.md ./xapi +cp ./settings.php ./xapi +cp ./version.php ./xapi + +# Creates the zip file. +zip -r xapi.zip xapi diff --git a/scripts/templateVersionFile b/scripts/templateVersionFile new file mode 100644 index 0000000000000000000000000000000000000000..c99de7516ae9049fbfd2b241bdb4eb0d8c58f4c1 --- /dev/null +++ b/scripts/templateVersionFile @@ -0,0 +1,30 @@ +<?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/>. +/** + * External xapi log store plugin + * + * @package logstore_xapi + * @copyright $year Jerrett Fowler <jfowler@charitylearning.org> + * Ryan Smith <ryan.smith@ht2.co.uk> + * David Pesce <david.pesce@exputo.com> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +defined('MOODLE_INTERNAL') || die(); +\$plugin->component = 'logstore_xapi'; +\$plugin->version = $version; +\$plugin->release = '$release'; +\$plugin->requires = 2014111000; +\$plugin->maturity = MATURITY_STABLE; diff --git a/version.php b/version.php index 4e17b0c1a2fa5dc189897bf6a905c7f7afeda7ce..13f248d981ad9f1dc846aa9d5e14140d5ed9cb15 100644 --- a/version.php +++ b/version.php @@ -28,6 +28,6 @@ defined('MOODLE_INTERNAL') || die(); $plugin->component = 'logstore_xapi'; $plugin->version = 2017061100; -$plugin->release = '2.0.0'; +$plugin->release = '0.0.0-development'; $plugin->requires = 2014111000; -$plugin->maturity = MATURITY_STABLE; +$plugin->maturity = MATURITY_ALPHA; diff --git a/xapi.zip b/xapi.zip deleted file mode 100644 index aa563fc53f804551d3f52edbf60726f53f06c437..0000000000000000000000000000000000000000 Binary files a/xapi.zip and /dev/null differ