Multiple Dataset Design
Open, NormalPublic

Description

Multiple Dataset Design Document

RULES TO FOLLOW:

-Keep it simple
-Follow the main design principles of GCompris (see "Core values" in https://gcompris.net/wiki/Ideas_for_activities )
-Integrate nicely with current interface design and features (we have the star difficulty system and in-Activity levels, it should take in account those and not replace them)

DESCRIPTION:

*An Activity can have its content split into several dataset if needed.

*The selection of dataset for common users should be accessible from the Activity settings
(it is part of its configuration, so it belongs there. We don't want to spread activity settings in different places)

*For teachers, we should provide in the future Admin interface a way to launch an Activity with a selection of dataset (one or several selected).

*Each dataset can have a corresponding "star difficulty level", if they are actually corresponding to different difficulty levels.
If this is the case:

     -Display on the Activity icon the star level of the highest dataset level activated

     -When selecting a star level range on the main global settings, activate only the corresponding dataset on Activities 

(and grey the others on the Activity settings, with a message to indicate the global setting range).

USECASES:

*For common users, the global star difficulty level system is a flexible way to enable/disable Activity/Content dataset depending on their skills.

*For teachers, the stars can be a relative indication but it should still be part of their work to decide which Activity/Content dataset to use for their students.
We should not pre-define this as curriculum is very different depending on countries.

NOTE ABOUT STAR DIFFICULTY SYSTEM:

*Considering we target children from 2 to 10, basically we have 6 levels for a range of 9 years.
We can on average make that kind of table:

1 star  : 2 to 3,5 years old
2stars : 3,5 to 5 years old
3stars : 5 to 6,5 years old
4stars : 6,5 to 8 years old
5stars : 8 to 9,5 years old
6stars : 9,5 to 11 years old

This table can be convenient to evaluate the star level to use for each Activity/Dataset,
but remember that it's still very arbitrary as children skills can vary a lot (depending on environment, time spent studying and other things...)

timotheegiet triaged this task as Normal priority.

Copy of the pad I started there: https://semestriel.framapad.org/p/multipledatasetgc

Better add comments here if possible rather than on the pad.

For me the selection of Dataset should be accessible from the icon located top left of every activity with multidataset, like it is implemented at the moment in multidataset branch, this is very convenient!
The windows that opens should display all the multidataset levels corresponding to the nb of stars chosen.

In this windows we should have an icon allowing to modify the number of stars wished.

Like it does at the moment, it should display the objectives aimed but also the recommended age of each multidataset level.

Multidataset developpers should not have to choose a difficulty level (a number of stars) when creating their data but enter a recommended age for each multidataset level. This would allow to display the recommended age in the this window, but also allow easily to change the correspondance nb_of_stars vs age..

The problem with using the activity corner as a button is that it is really too small area for a button on small/phone screen. It is already a problem with the sun icon to set as favorite that is a little too small also in this case. I'd rather find a way to fix this than extend the issue...

The idea is to can access the Activity dataset settings from the menu, before launching the activity.
In this idea, it can be useful to access other activity settings at the same time.
So, I would propose to:
-put dataset setting as a section of activities settings
-add a touch-input-friendly method to access an activity settings from the main menu. Possibly, something like a new "Activity settings" button in the main menu bar...

I did not think about this, as I only run multidataset branch on computer, but you are right! No way to have favorite + multidataset on my small phone :(

After discussion with @echarruau on irc we agreed on a few points. We can make dataset settings a section of the Activity settings page we already have; we can probably put it even on top of other activity settings.
I will probably update the Activity setting button look to be more obvious (like a big wheel or something...).
It may not be really necessary to have access to activities settings from the main menu, it's enough for main users to do it from the in-activity button.

About age indication on the datasets, I'm still not convinced we should... but if we do, it should at least be "translatable" to allow to adapt to different locale variations...

A few notes (pros/cons) on programming side:

  • Using the in-menu choice:

We only need to update the menu code once, and for each activity, add the datasets, levels in ActivityInfo.qml and update the logic to use the dataset.

  • Using the configuration in activity:

For each activity, we need to add the datasets, levels in ActivityInfo.qml and update the logic to use the dataset.
Plus, adding/updating the configuration dialog, finding a way to not have to duplicate it on all the activities, finding a common generic way to load/store the information. Once it's changed, we need to restart the activity to first level + handling correctly if there are other configuration changes.

It would be preferable to only be able to change it at one place only.

After implementing multipledataset in algebra_by, I have a clearer view about the icons to set the difficulty of each activity.
I would prefer if the multipledataset choice is done from the menu bottom rather than within the activity.

A way to overcome the problem of too small icon to choose the difficulty level would be to increase the size of the icons and place the difficulty icon in bottom left of the activity icon.

I am now also not sure of an other implementation we have in mind.
Should we really have the stars to choose a level of difficulty.

I think that children are clever enough if they do not manage a level because it is too difficult, to go into the menu, click on the activity difficulty icon, choose one level up (easier) and try if they can achieve it.

This way is much more pedagogical (we empower the kid letting him choosing his level). We should still give a recommended age thought for parents :)

The mock-up is here : https://phabricator.kde.org/M146

I tried to integrate all ideas we discussed, tell me if it misses something.