Multiple Dataset for enumerate
ClosedPublic

Authored by shubhammishra on Jan 16 2020, 5:00 PM.

Details

Summary

added multiple dataset in enumerate activity

Diff Detail

Repository
R2 GCompris
Branch
enumerate2
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 22114
Build 22132: arc lint + arc unit
shubhammishra created this revision.Jan 16 2020, 5:00 PM
Restricted Application added a project: KDE Edu. · View Herald TranscriptJan 16 2020, 5:00 PM
Restricted Application added a subscriber: kde-edu. · View Herald Transcript
shubhammishra requested review of this revision.Jan 16 2020, 5:00 PM
  • multiple Dataset updated
jjazeix added inline comments.Jan 16 2020, 5:30 PM
src/activities/enumerate/Enumerate.qml
210

indentation

src/activities/enumerate/resource/1/Data.qml
22

not needed

27

uppercase C

src/activities/enumerate/resource/2/Data.qml
27

up to

  • removed unnecessary imports, fixed typo and identation
shubhammishra marked 4 inline comments as done.Jan 16 2020, 5:51 PM
  • rebased to latest version
  • added ok button and changed, display sublevel objectives
  • added ok button and changed, display sublevel objectives
  • typo fixed

Code change is good for me. Test shows that it is working properly. Ok button has been well implemented and mulipledataset well added. Great job.
We need just to add an additional feature compare to the initial project.
You need to add multiple question for each sublevel.
At the moment there is only one answer to give to validate a sublevel. We need at least 5 questions per sublevel and the number of questions for each sublevel must be configurable in the qml file.
You need for that to be able to generate randomize questions according to numberOfItemMax.

Almost ok for me :).
We shouldn't be able to click multiple times on "ok" quickly to validate 2 levels at same time.
When a fruit is under the instructions, we can't move it. I think it would be better to have clicks on fruits move them (always), and if click is on the window, show/hide the instruction. Instructions should always be displayed above the fruits.

@echarruau we still have visual feedback (green color on the box) when we put a correct answer. Shouldn't we update it to be an hint instead (to not remove the feature but this way, the child can know which one is good or wrong)?

src/activities/enumerate/enumerate.js
111–112

it should be:

items.bonus.bad("smiley")
return
  • added score and sublevel functionality
  • dynamic z-order for instruction window
  • added 2 sec timer for ok button
  • added 2 sec timer for ok button
shubhammishra added inline comments.Jan 22 2020, 2:19 PM
src/activities/enumerate/enumerate.js
141

i have used the same code here. which previously, activity is using to initialized levels.

  • removed extra space

@johnny

@echarruau we still have visual feedback (green color on the box) when we put a correct answer. Shouldn't we update it to be an hint instead (to not remove the feature but this way, the child can know which one is good or wrong)?

The problem if we keep the hint is that pupils will try all the numbers on the keyboard, then press on ok when it will be green. If we give them some hints they will use them :)
I would remove it completely. Hope I understood well your question.

Code is ok for me.
Several point on usability:

  • when having 5 categories of fruits the 5th category overlaps the menu bar. I can see two solutions: using a grid to have the 5th category placed top right of the 1st one or restrict the activity to 4 categories.
  • It would be useful to fire the ok button using the return key when entering numbers with keyboards.
  • Pupils that are using this activity are young and will not know about backspace key, we need to restrict the input length to 1 digit when the answer is 1 digit long.

Otherwise no problem on my side, well done.

  • removed need of backspace, Pressing Enter or return key also check answer
  • added grid layout for answer Cell

@echarruau i have added grid layout, it is woking fine but i am not much sure that implementation is in good way or not and now 5th cell is overriding the instruction window :(. what do you say to let it be like this or remove 5th type fruit?

src/activities/enumerate/Enumerate.qml
158

Gridview doesn't have any attribute for spacing. so i have set cellWidth and cellHeight to provide some callSpacing,

  • solved focus issue on answer Area

the grid shouldn't be draggable.
there is still the tick and color changed to green when we put a good answer.
you should directly use the enabled property of the ok button instead of using a timer to disable clicks (in initSubLevel when everything is initialized).

echarruau added a comment.EditedJan 25 2020, 3:06 PM

To complete Johnny's comments.
We should only have the green color in the input are once the child clicked ok. Otherwise they are clever enough to try all the possibilities and be successful even without having a clue how to enumerate :)
After discussion with Johnny we decided that there is no additional pedagogical value of having 5 groups instead of 4. Since it is creating overlapping can you please remove the 5th group and the grid you implemented.
For me once this will be implemented it will be ready. Good job!

@jjazeix @echarruau enabling green color in input when child click ok, doesn't giving any visual feedback because at the same time (or just after this) nextSubLevel() function gets call. now either i can remove it completely or make some delay in calling nextSublevel. can you suggest anything better?

Hi,
It gives feedback when you make an error and give some correct answers.
This is what we are aiming here.

Le dim. 26 janv. 2020 à 14:38, Shubham Mishra <noreply@phabricator.kde.org>
a écrit :

shubhammishra added a comment. View Revision
https://phabricator.kde.org/D26712

@jjazeix https://phabricator.kde.org/p/jjazeix/ @echarruau
https://phabricator.kde.org/p/echarruau/ enabling green color in input
when child click ok, doesn't giving any visual feedback because at the same
time (or just after this) nextSubLevel() function gets call. now either i
can remove it completely or make some delay in calling nextSublevel. can
you suggest anything better?

*REPOSITORY*
R2 GCompris

*REVISION DETAIL*
https://phabricator.kde.org/D26712

*To: *shubhammishra, GCompris: Improvements, jjazeix, echarruau
*Cc: *johnny, kde-edu, narvaez, apol

@jjazeix @echarruau enabling green color in input when child click ok, doesn't giving any visual feedback because at the same time (or just after this) nextSubLevel() function gets call. now either i can remove it completely or make some delay in calling nextSublevel. can you suggest anything better?

@shubhammishra I would let in green from the moment the child types on the OK button until he selects a box or types another number (all the green boxes should be removed at same time). Delay is not great at children may not need the same time to memorise which ones are good or not

  • all requested changes done
  • removed extra space
jjazeix added inline comments.Jan 30 2020, 7:41 AM
src/activities/enumerate/enumerate.js
114

why is it in the for loop and not outside, at the start of the function directly?
This should not be used for both disabling the button and check if the answer is correct, there should be another variable for the latter.

Test not correct, see comment.

src/activities/enumerate/enumerate.js
114

items.okButton.enabled= false will not allow the ok button (based on element image) to receive any keyboard or mouse event.
You do not need to use this peoperty in our case. You could create a boolean variable to tell the program if the check is succesfull for all cases.

  • added boolean variable instead of using mouse propert

@jjazeix we need to disable ok button only when Bonus appears and it is appearing either when user enters good answer on final sublevel or bad answer, not for rest of the times checkAnswers() get called.

@jjazeix we need to disable ok button only when Bonus appears and it is appearing either when user enters good answer on final sublevel or bad answer, not for rest of the times checkAnswers() get called.

ok, I see the point. It's not great to have it handled in 2 separate functions but let's keep it that way

  • Ok button enables after all input
  • Ok will enable in initSublevel for good answer or after editing previous bad answer
jjazeix added inline comments.Feb 3 2020, 7:35 PM
src/activities/enumerate/enumerate.js
113–116

instead of changing the color directly, can you use a state in the AnswerArea and handle the different colors directly in it?

115

put the else on the other line

173

remove space before )

The code works fine for me, just a bit of possible improvement :)

  • added states

Hi,
Could you add a delay between the moment pupil answers correctly and the moment the activity goes to the next sublevel.
This is to let pupil the time to realise that he has the good answer and see why.
You should use the end signal of the score animation to wait for thel the next sublevel to be loaded.
Thanks.

  • subLevel will change after score animation completion, added stop signal in Score.qml
jjazeix accepted this revision.Feb 8 2020, 10:23 AM
This revision is now accepted and ready to land.Feb 8 2020, 10:23 AM