TaskChain testing in Moodle 2.3

TaskChain testing in Moodle 2.3

Glenys Hanson發表於
Number of replies: 9

Hi Gordon,

I've been enjoying myself doing some testing of TaskChain and discovering Moodle 2.3 in the process. I just love them both!

I've created two TaskChains of the same set of exercises (100-900) on your site:

(For understanding how Repositories work I'm very grateful to Mary Cooch making it comprehensible to people like me in the Moodle docs: File system repository) lots of screenshots so I can see. 微笑

On your site they both work pretty well except that one of the audio players don't work. I'm using both what I think is Bernard Dyer's  hbs_mp3_player2_1px_narrow slider.swf (second exercise "Audio") - this doesn't work and Dewplayer (3rd exercise "Ordering") which does work.

There are only 3 exercises (Written, Audio, Ordering) the 4 tasks at the end are tutorials embedded in the exercises. I can easily delete them via Edit tasks but maybe there's a way I could have stopped them appearing. 深思的

On my local Zampp server things are not so good:

  • On the Repository version, at the beginning I get the neat list of exercises: "Please choose one of the following", but in the Private files version it jumps straight to the first exercise.
  • In both versions I see neither the image nor audio files (though I'm sure I did when I first started experimenting) 深思的

In these files I've tried to describe, step-by-step what I did. Hope you can spot, Gordon, where I'm going wrong.

Cheers,

Glenys

----

In Edit chains, when I click on the name of an exercise I see this message: edit field: name(1) (I don't know how to get the correct brackets on a Mac keyboard).

-------

When I clicked on Private files version > Overview, I got this message:
Notice: Trying to get property of non-object in /path/to/Moodle/23/mod/taskchain/report.php on line 76

Invalid get_string() identifier: 'report' or component 'task'. Perhaps you are missing $string['report'] = ''; in mod/task/lang/en/task.php?
  • line 6695 of /lib/moodlelib.php: call to debugging()
  • line 7319 of /lib/moodlelib.php: call to core_string_manager->get_string()
  • line 78 of /mod/taskchain/report.php: call to get_string()

Fatal error: Call to a member function get_report_renderer_subtype() on a non-object in /path/to/Moodle/23/mod/taskchain/report.php on line 85

評比平均分數: -
In reply to Glenys Hanson

Re: TaskChain testing in Moodle 2.3

Gordon Bateson發表於
Core developers的相片 Peer reviewers的相片 Plugin developers的相片

Hi Glenys,
thanks for your feedback on the TaskChain module.

You can prevent them tutorials being selected as "tasks" if you put them in a subfolder.

If the "Private files" veresion on your PC jumps stright to the first one, then I suspect there is only one task in the chain. Either the file was not set as a link/alias when it was added to the TaskChain, or the "Files to be added" was set to "Selected file only".

On the "Edit tasks" page, each value appears a link which when clicked will generate a popup dialog box with a message saying something like "Edit field: name (1)". Eventually, these links will allo you to edit values right on the "Edit tasks" page, but for now you just get a popup alert.

This behavior is slightly different from QuizPort, so I can understand why it is confusing. In QuizPort the "name" field had a link which when clicked would allow you to preview the quiz. But there not (as yet) any way to preview the tasks from the "Edit tasks" page. I will add a "Preview" icon to the "Edit" column, which wouljd be similar to the interface on the on the Moodle question bank.

THe reports on TaskChain are not implemented yet, so for the time-being, I am afraid you will only get errors messages if you try to view any of the reports.

I will investigate the non-appearance of images and audio on the TaskChains you have set up on my server.

many thanks
Gordon

In reply to Gordon Bateson

Re: TaskChain testing in Moodle 2.3 (more)

Philippe Decloitre發表於

Bonjour Gordon,

(more debuggin')

I tried using the "legacy course files" folder (I know it's wrong, but I just couldn't help it 眨眼

My reasons: Moodle 2.3 does not support restore to external sites (ie: from dev. site to prod. site) of aliases calling to "My Private Files". So If I create an activity (HP or TC) via aliases, the whole thing becomes useless outside of my pc (dev. Moodle).

As a workaround, I am trying to do the same thing using The 'legacy course files" folder instead (I know it's wrong).

The bug:

If I try creating a TC activity, I get this on the very first call of a simple .jqz file (which works just fine as an HP activity under the same circumstances _i.e: Legacy course folder):

Can not find data record in database.

More information about this error

Cheers 微笑

Philippe

In reply to Philippe Decloitre

Re: TaskChain testing in Moodle 2.3 (more)

Gordon Bateson發表於
Core developers的相片 Peer reviewers的相片 Plugin developers的相片

Philippe,
my understanding is that if you backup an activity with links to files, then the linked files are converted to copies during the backup process. When you restore the activity, the files remains as a copy, but it is at least restored in such a way that it has all the files it needs.

However, TaskChain backup/restore isn't working yet, so you wouldn't be able to backup and restore anyway.

I have experiemented with legacy files very much, but if the HotPot module can handle them, I would think that the TaskChain module could too, because the two modules handle files in a similar way.

Maybe I can set up legacy files on my public server so we can look at something together.

Gordon

In reply to Gordon Bateson

Re: TaskChain testing in Moodle 2.3 (more)

Gordon Bateson發表於
Core developers的相片 Peer reviewers的相片 Plugin developers的相片

Philippe,
I have added "Legacy course files" to the Moodle 2.3 site on my research server. If you have time, please could you go there and recreate the TaskChain that caused problems on your own server. It will be easier for me to investigate the cause of the error message on my server.

thanks
Gordon

In reply to Gordon Bateson

Re: TaskChain testing in Moodle 2.3 (more)

Philippe Decloitre發表於

Hi Gordon,

Here is the result of my testing:

Copying:

I uploaded a HotPot exercise (and its companion mp3 file) to the "Legacy" Folder
I created a TC acticity selecting only the Jqz file.
When prompted if I wanted to COPY I selected COPY.

Everything worked just fine, the default setting found the mp3 I had not selected (for some reason this works in all my browsers on your site, but only in IE on my PC site..).

Aliasing:

I selected the same uploaded HotPot exercise from the "Legacy" folder
I created a new TC acticity selecting only the Jqz file.
When prompted if I wanted to creazted an ALIAS I selected ALIAS.

Everything screwed up from there, (I did not even try popup window):

Here is what I get:

Can not find data record in database.

More information about this error

Debug info: SELECT cm.*, m.name, md.name AS modname
FROM {course_modules} cm
JOIN {modules} md ON md.id = cm.module
JOIN {taskchain} m ON m.id = cm.instance

WHERE cm.id = :cmid AND md.name = :modulename

[array (
'cmid' => '10',
'modulename' => 'taskchain',
)]
Error code: invalidrecordunknown

Stack trace:

  • line 1363 of /lib/dml/moodle_database.php: dml_missing_record_exception thrown
  • line 1400 of /lib/datalib.php: call to moodle_database->get_record_sql()
  • line 1359 of /lib/accesslib.php: call to get_coursemodule_from_id()
  • line 184 of /repository/coursefiles/lib.php: call to get_context_info_array()
  • line 519 of /repository/lib.php: call to repository_coursefiles->get_name()
  • line 553 of /repository/lib.php: call to repository->__construct()
  • line 351 of /mod/taskchain/source/class.php: call to repository::get_repository_by_id()
  • line 320 of /mod/taskchain/source/class.php: call to taskchain_source::get_sources_from_chainfolder_external()
  • line 248 of /mod/taskchain/source/class.php: call to taskchain_source::get_sources_from_chainfolder()
  • line 420 of /mod/taskchain/lib.php: call to taskchain_source::get_sources()
  • line 289 of /mod/taskchain/lib.php: call to taskchain_add_tasks()
  • line 98 of /mod/taskchain/lib.php: call to taskchain_process_formdata()
  • line 447 of /course/modedit.php: call to taskchain_add_instance()

Then I get thrown out of the course, and no trace of the activity is to be found in the course.

Hope that leads you somewhere...

Restoring:

I tried backing up my course with a view to restoring it on your Moodle.
I backed up a course using pics and exercises from both “Private” and “legacy” folder files.

Alas, When I tried to restore them onto your course I got this:

Error reading from database

More information about this error

Debug info: Unknown column 't.entrytext' in 'field list'
SELECT t.id, t.entrytext, t.exittext
FROM mdl_taskchain t
JOIN mdl_backup_ids_temp b ON b.newitemid = t.id
WHERE b.backupid = ?
AND b.itemname = ?
[array (
0 => '1fd82f4027ccad862653525a5a515797',
1 => 'taskchain',
)]
Error code: dmlreadexception

Stack trace:

  • line 407 of /lib/dml/moodle_database.php: dml_read_exception thrown
  • line 903 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
  • line 103 of /backup/util/helper/restore_decode_content.class.php: call to mysqli_native_moodle_database->get_recordset_sql()
  • line 72 of /backup/util/helper/restore_decode_content.class.php: call to restore_decode_content->get_iterator()
  • line 81 of /backup/util/helper/restore_decode_processor.class.php: call to restore_decode_content->process()
  • line 431 of /backup/moodle2/restore_stepslib.php: call to restore_decode_processor->execute()
  • line 34 of /backup/util/plan/restore_execution_step.class.php: call to restore_decode_interlinks->define_execution()
  • line 153 of /backup/util/plan/base_task.class.php: call to restore_execution_step->execute()
  • line 163 of /backup/util/plan/base_plan.class.php: call to base_task->execute()
  • line 157 of /backup/util/plan/restore_plan.class.php: call to base_plan->execute()
  • line 315 of /backup/controller/restore_controller.class.php: call to restore_plan->execute()
  • line 147 of /backup/util/ui/restore_ui.class.php: call to restore_controller->execute_plan()
  • line 46 of /backup/restore.php: call to restore_ui->execute()

Hope that leads you somewhere also...

Cheers
Philippe

 

評比平均分數:Useful (1)
In reply to Philippe Decloitre

Re: TaskChain testing in Moodle 2.3 (more)

Gordon Bateson發表於
Core developers的相片 Peer reviewers的相片 Plugin developers的相片

Hi Philippe,
thanks for the error report. It was not easy to fix, but I think I have got my head around what is going on, and I believe the linking to files in "Legacy course files" and "Private files" is now working.

You should only need to link to "one" of the Hot Potatoes files in the folder you are interested in, and TaskChain will fetch all the other Hot Potatoes files in the folder (but not in subfolders) and add them as tasks to the chain.

Later, when a "task" is viewed, TaskChain will try to locate the any secondary files by searching in the task's "Source file" area. If it is not there, and the task's source file is an alias to a file in a repository (e.g. "Private files"), then TaskChain will try to locate the secondary file in the repository. If it finds it, it will add a link from the task's "Source file" area to the secondary file in the repository.

If the task's source file is not a link, or if the secondary file cannot be found in the repository where the task file is located, then TaskChain will have a look in the "Course legacy file" repository. For example, on my test server you added a JQuiz file, "numbers_01a.jqz", and an mp3 file to the "Legacy Course Files" repository. Even when the JQuiz file was added as a copy, not an alias, to a TaskChain activity, the mp3 file was still found and added to the task's source file area automatically because it was in the "Legacy Course Files".

That's a bit long-winded, but what I am trying to explain is that TaskChain will try to do as much of the locating, linking and copying of files as it can. You can help TaskChain if your Hot Potatoes files are arranged in descrete folders containing all the Hot Potatoes files and secondary files for a single TaskChain activity. The secondary files can be put into subfolders to help you see the Hot Potatoes files clearly.

best regards
Gordon

In reply to Gordon Bateson

Re: TaskChain testing in Moodle 2.3 (more)

Philippe Decloitre發表於

Hello Gordon,

Great Job! (I was gonna say, "as usual"微笑

This is really a terrific enhancement.
I'm looking forward to when popups & auto-advance will be implemented...

In the meantime, I have a question which is a bit out of place, but I'll just go ahead and chance it:

When you create aliases (which is more than useful with sophisticated HP's), Moodle 2.3x cannot restore those aliases on a different Moodle site, only on the same one.
Do you think this capability is in the works, or do you think it's not practical?

Your thorough understanding of the inner workings of aliases makes me think you can answer this question.
It is not trivial, because the un-portability of a course is to be taken into account well ahead of time.

Thanks again Gordon,
Philippe

 

In reply to Philippe Decloitre

Re: TaskChain testing in Moodle 2.3 (more)

Gordon Bateson發表於
Core developers的相片 Peer reviewers的相片 Plugin developers的相片

Philippe,
it's pretty tough to restore alias's reliably. If there is a repository of the same type and with exactly the same name, then it may be feasable. For individual teachers or small Moodle sites it could be done, and this kind of situation is prbably what you have in mind when you ask your question.

However, Moodle installations can be huge. Mega-huge! Furthermore, "repositories" are not just "File systems", "Private files" and "Legacy Course Files". In fact, in my opinion those seem to be secondary to the main intention of Moodle 2.x files which is online repositories such as DropBox and GoogleDocs and friends. I don't really know what happens when we link to those kinds of repositories, but I imagine it would quickly get complicated if TeacherAAA created an activity lnked to her DropBox account. Later the course was backed up by AdminBBB who wanted to move the course to a new server. When AdminBBB restores the course on the new server, should we let him link to TeacherAAA's DropBox account? Maybe yes, if he is restoring on a school server, but maybe no, if he is attempting some terrible deed on his local server at home. These kinds of problems make it tricky to leave links to any and all repositories.

Perhaps we could just restore links to File Systems, Course files and Private files. I don't know. You could try asking on the tracker. Maybe there is also something in the Moodle "road map" about this.

I will be working more on the TaskChain backup in December, at which time I will have a better idea of whehter TaskChain can attempt to relink files. At the moment though, I fear the links are lost during backup, so it may be hard to recreate them.

regards
Gordon