First commit
This commit is contained in:
commit
ade6af288c
123
adapter.js
Normal file
123
adapter.js
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
// Taka musi być struktura pliku adapter.js - nie zmieniamy nazw funkcji i tablicy customCalculatedTags!
|
||||||
|
|
||||||
|
var customCalculatedTags = ["tagNiestandardowy1", "nowyTag", "firstJumpTo"] // lista tagów niestandardowych
|
||||||
|
|
||||||
|
var cfr = null;
|
||||||
|
|
||||||
|
function getCustomCalculatedTagCurrentValue(tag) {
|
||||||
|
if (document.getElementById('page-content-frame') != null) {
|
||||||
|
cfr = document.getElementById('page-content-frame').contentWindow;
|
||||||
|
} else {
|
||||||
|
cfr = window;
|
||||||
|
}
|
||||||
|
|
||||||
|
let suspendDataTags = cfr.SuspendDataHandler.getValue('eduexe.1.tag.result'); // efekty uczenia liczone niestandardowo warto sobie zapisać w pierwszym komponencie typu Learning object - u nas w kursie jest on na pierwszej pozycji (zatem eduexe.1.tag.result)
|
||||||
|
switch(tag) {
|
||||||
|
case "tagNiestandardowy1":
|
||||||
|
var numberOfVisitedSCOs = getVisitedSCOsNumber([1]); // funkcja z biblioteki students.js
|
||||||
|
var scosNumber = getSCOsNumber(); // funkcja z biblioteki students.js
|
||||||
|
var scoreScaledInTest1 = getScoreScaledForSCO(3); // funkcja z biblioteki students.js
|
||||||
|
|
||||||
|
var result = (numberOfVisitedSCOs + scoreScaledInTest1) / (scosNumber + 1);
|
||||||
|
|
||||||
|
console.log("tagNiestandardowy1: " + result);
|
||||||
|
|
||||||
|
if (suspendDataTags == null || suspendDataTags == undefined || suspendDataTags == '') { // linie 25-41 zapisują wartość efektu uczenia do eduexe.1.tag.result - przy innych efektach uczenia - skopiować i zmienić nazwę efektu uczenia
|
||||||
|
suspendDataTags = btoa(JSON.stringify({}));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (suspendDataTags != null && suspendDataTags != '') {
|
||||||
|
let parsedTagsObj = JSON.parse(atob(suspendDataTags));
|
||||||
|
if (parsedTagsObj == undefined || parsedTagsObj == null) {
|
||||||
|
parsedTagsObj = {};
|
||||||
|
}
|
||||||
|
if ('tagNiestandardowy1' in parsedTagsObj) {
|
||||||
|
if (parsedTagsObj['tagNiestandardowy1'] == result) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parsedTagsObj['tagNiestandardowy1'] = result;
|
||||||
|
cfr.SuspendDataHandler.setValue('eduexe.1.tag.result', btoa(JSON.stringify(parsedTagsObj)));
|
||||||
|
cfr.SuspendDataHandler.saveAndCommit();
|
||||||
|
}
|
||||||
|
case "nowyTag":
|
||||||
|
var scoreScaledInTest1 = getScoreScaledForSCO(3); // funkcja z biblioteki students.js
|
||||||
|
var scoreScaledInTest3 = getScoreScaledForSCO(5);
|
||||||
|
|
||||||
|
var result = (scoreScaledInTest1 + scoreScaledInTest3) / 2;
|
||||||
|
|
||||||
|
console.log("nowyTag: " + result);
|
||||||
|
|
||||||
|
if (suspendDataTags == null || suspendDataTags == undefined || suspendDataTags == '') { // linie 25-41 zapisują wartość efektu uczenia do eduexe.1.tag.result - przy innych efektach uczenia - skopiować i zmienić nazwę efektu uczenia
|
||||||
|
suspendDataTags = btoa(JSON.stringify({}));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (suspendDataTags != null && suspendDataTags != '') {
|
||||||
|
let parsedTagsObj = JSON.parse(atob(suspendDataTags));
|
||||||
|
if (parsedTagsObj == undefined || parsedTagsObj == null) {
|
||||||
|
parsedTagsObj = {};
|
||||||
|
}
|
||||||
|
if ('nowyTag' in parsedTagsObj) {
|
||||||
|
if (parsedTagsObj['nowyTag'] == result) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parsedTagsObj['nowyTag'] = result;
|
||||||
|
cfr.SuspendDataHandler.setValue('eduexe.1.tag.result', btoa(JSON.stringify(parsedTagsObj)));
|
||||||
|
cfr.SuspendDataHandler.saveAndCommit();
|
||||||
|
}
|
||||||
|
case "firstJumpTo":
|
||||||
|
var testsIds = getAllSCOIdsByTypeInCourse('test');
|
||||||
|
var max_score_test_count = 0;
|
||||||
|
var result = 0;
|
||||||
|
var index = 0;
|
||||||
|
|
||||||
|
for (var index = 0; index < testsIds.length; index++)
|
||||||
|
{
|
||||||
|
if (getScoreScaledForSCO(testsIds[index]) == 1) {
|
||||||
|
max_score_test_count += 1;
|
||||||
|
}
|
||||||
|
if (max_score_test_count == 3) {
|
||||||
|
result = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("firstJumpTo: " + result);
|
||||||
|
|
||||||
|
if (suspendDataTags == null || suspendDataTags == undefined || suspendDataTags == '') { // linie 25-41 zapisują wartość efektu uczenia do eduexe.1.tag.result - przy innych efektach uczenia - skopiować i zmienić nazwę efektu uczenia
|
||||||
|
suspendDataTags = btoa(JSON.stringify({}));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (suspendDataTags != null && suspendDataTags != '') {
|
||||||
|
let parsedTagsObj = JSON.parse(atob(suspendDataTags));
|
||||||
|
if (parsedTagsObj == undefined || parsedTagsObj == null) {
|
||||||
|
parsedTagsObj = {};
|
||||||
|
}
|
||||||
|
if ('firstJumpTo' in parsedTagsObj) {
|
||||||
|
if (parsedTagsObj['firstJumpTo'] == result) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parsedTagsObj['firstJumpTo'] = result;
|
||||||
|
cfr.SuspendDataHandler.setValue('eduexe.1.tag.result', btoa(JSON.stringify(parsedTagsObj)));
|
||||||
|
cfr.SuspendDataHandler.saveAndCommit();
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getCustomCalculatedTagMaxValue(tag) { // tu określamy jaką maksymalną wartość może uzyskać dany efekt uczenia
|
||||||
|
switch(tag) {
|
||||||
|
case "tagNiestandardowy1":
|
||||||
|
return 1;
|
||||||
|
case "nowyTag":
|
||||||
|
return 1;
|
||||||
|
default:
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user