copy lesson plans

The smart block concept is truly smart and assigning smart blocks to a class is straight forward.
My question: Is there a way to copy the lesson plans (derived from smart blocks in the unit planner) from one class to another class without the need to define every lesson anew from smart blocks?
My actual problem: I teach three classes in parallel. If all runs well, they follow pretty much the same plan and therefore I would appreciate being able to copy 1:1 the entries for one class to the other classes.
Maybe I haven’t seen the corresponding command or is this functionality not (yet)t available?


Thanks for the positive feedback, and the excellent question.

Gibbon does have a duplicate function, as shown in the image below:

If you duplicate a lesson plan to another class in the same course, the smart blocks should be duplicated. However, if you are copying to something outside of that course, then the blocks are rolled up and copied into the description field.

You can copy a unit to another course, if you want to maintain the smart blocks.

Gibbon bypasses this all within a course in a slightly different way. If your blocks have times, and the times add up to the length of your classes, Gibbon will, when you deploy your unit to a class, place the blocks into lesson plans, in order, based on the time field. This approach is quicker than duplicating lessons, and you can create a bunch of lesson plans in one go. Hope this makes sense! If not, I can provide a mini video demo for your.



This is an addon to my first post. I no more able to deploy smart blocks to new classes, getting the following error (attached):

It might be due to non-successful imports using the data-admin module.
I’ve saved my gibbondb in (linux) /var/lib/mysql/ but nothing else. Copying back the original db didn’t help.
Any suggestions how to solve these troubles?

Hi Kaspar,

May I ask, what kind of non-successful imports? The data admin module doesn’t support planner imports at this time, was it class or course related? Generally the dry-run of the import step should identify any potential errors before importing. There’s also a new release of the data admin module (as of today) with a Manage Records page that can help identify duplicate or orphaned records, which could be a result of a failed import:

Hope this helps!

Kaspar, any chance you can upload a short video screen capture, showing what is going on? Ross.

@ admin and @ skuipers
Thanks for the very quick reply!
There seems to be a database error somehow or other. The duplication tab produces just nothing - I can’t choose a class, neither the year:

Are there any routines to check/repair the database?
About my attempts with data-admin: I imported user data. At the first attempts, I had some mistakes which I could overcome (wrong class names or misspelled users). In the end the data-admin prompted “success”, however, no additional users were added to the user database.
Is there a way to undo this data-admin activities?

Kaspar, no problem! The Target Year should show all years with a sequence number equal to or greater than the current year. Only once a value is selected in this field will the class field be unlocked. Are you by any chance using Chrome? We just discovered a Chrome error in the library file that manages this relationship between two select boxes, which has been fixed in v13. If you are using Chrome, try Firefox, and let us know the result.

If you are not using Chrome, can you view source code, save it to a file, and share it here?



I’ve used Chrome indeed. I’d like to check alternatives, but last night my localhost stopped working. The status analysis of data-Admin-1.1 tool told me about < linux Extension php_gd disabled > and up I went, installed < sudo apt-get install php5-gd >. After a restart I got HTTP ERROR 500 (“unable to connect to local host”).
I’ve undone php5-gd ( < sudo apt-get purge php5-gd >) and a apache restart (sudo /etc/init.d/apache2 restart). The < apachectl check > fails (Action ‘check’ failed) what might be linked the error message from the apache restart command “Could not reliably determine the server’s fully qualified domain name”.
You see - I’m a newbie both to gibbon an php. If you have a piece of advice to bring my localhost back to working condition - fine, otherwise I may have to solve the trouble myself and come back to this discussion later.

… back on track: I’ve messed up with user rights (must be mysql under /var/lib/mysql and www-data under var/www/html/gibbon … possibly I introduced this problem when backing up and renaming my database files using the sudo-version of SpaceFM filemanager (Kubuntu 14.04)

Now, the command “copy a lesson” works in Firefox like a charm and with Chrome too.

… back on track: I’ve messed up with user rights (must be mysql under /var/lib/mysql and www-data under var/www/html/gibbon … possibly I introduced this problem when backing up and renaming my database files using the sudo-version of SpaceFM filemanager (Kubuntu 14.04)

Now, the command “copy a lesson” works in Firefox like a charm and with Chrome too.

I’ve now installed version 1.1 of dataAdmin and I’ve solved all the problems above.
Data Admin System test runs fine - just green ticks.
But my import of student enrolments to a class fails - see my screenshots below.
Any suggestion? Or a fool proof example or a manual available?

Hi Kaspar,

Check to ensure the “Use database ID field?” setting at the top is set to No. It should be defaulting to No, but it’s possible this isn’t the case (I can look into that). With the setting off your data looks good and should import fine. There’s also a snapshot feature built in to the data admin. It can help to take a snapshot before an import and should it fail you have a copy of the database to fallback on (it can load the snapshot back in too, but this should only be used in development/non-live systems).

The sync setting (which is meant to be off by default) is only useful if you have the exact gibbon IDs, such as from a previous export.

Hope this helps!

Hi Skuipers

Bad luck there: “Use database ID field?” has been set to “yes” by default. After changing this to “no”, class enrolment via data Admin works now fine. Thanks for assistance and this great tool which indeed circumvents the cumbersome student-picking-to-class!
The snapshot feature works fine. Thanks for the hint about the sync concept - this makes perfectly sense.

still no participants:

  • users imported using the gibbon upload routine
  • Students assigned to classes using DataAdmin tool
  • Students assigned to roll groups using DataAtmin tool
  • the list under /people/rollgroups remains empty (see scren shot)
  • the list of participants (time table overview) remains empty (screen shot)
Where's the knot to be untied?

Hi Kaspar,

There can be a few different reasons students don’t show up. Check your People>Students list. Do they show up there? For a student to show up they need to be set to Full, have passed their Start Date (or no start date) and not exceeded an End Date (or no end date). Then the enrollment should be for the current year and include a year group and roll group. Open up a few student records and student enrollment to verify thsir status, dates and enrollments.

If the students don’t show up in the Students list, check the All Students option and submit. This should help verify they are there. If they still don’t show up then it’s possible their role hasn’t been set to Student in the User Admin.

Hope this helps.

Hi skuipers

It’s a challenging world: it was about date formats! I checked the date prior to the import (23.08.16) and didn’t recognize the database having transformed it into 2023-08-16, waiting another 7 years to let them enter the assigned classes. Another point the system is very narrow-minded on is “Student” versus “student” - a problem I stumbled over a few days ago.

Yes, your hints helped indeed.

However, there’s still another prolem, about student photos: I’ve included the path to thumbnails in the uploaded .csv file. The size of these pictures is slightly smaller than 240 x 360, it’s 240x320 - might this be a reason for not showing up in gibbon? Any other help on this issue?

Yes, date formats can be tricky, Data Admin uses PHPs strtotime function which has some specific notes about how it parses dates:

Note: Dates in the m/d/y or d-m-y formats are disambiguated by looking at the separator between the various components: if the separator is a slash (/), then the American m/d/y is assumed; whereas if the separator is a dash (-) or a dot (.), then the European d-m-y format is assumed. If, however, the year is given in a two digit format and the separator is a dash (-, the date string is parsed as y-m-d.

For photos the size could be a reason, also check the file permission of the photos themselves especially if you uploaded them via FTP. Even if the folder was set chmod 755 sometimes after uploading you also need to run chmod -R 755 on the photos.

Otherwise to test the size open a single user and upload the photo manually, it will give an error if it has problems which can help narrow it down.

Also the path itself can sometimes be the problem if it isn’t the right format, or relative to the root. After uploading one photo manually check the path and compare it to the path format you used for other users.

Photo size errors should only occur on upload through the interface: there is no checking on display.

There is also a photo import function in Admin > User Admin.


I’m going to use the photo upload tool in user admin - thanks for the hint. Just one trick I had to learn: telling “ark” (linux zipper) to zip some files together, by default it produces and extra subfolder, ending up in a refusal of gibbon to upload any picture.

If ever you’re interested in the file paths: The original path (quite long) as included in the csv and displayed >Manage Users > Edit User is /share/SB_Unterricht/SchuelerFotos-KZU/HS16-3te/gibbon/240x360-paste-9985798963202.jpg. I trashed this link (clicked on the waste bin) and directed the upload to the original path. This produced the path /http://localhost/Gibbon/uploads/2016/12/StudentName-3h_240.jpg and the foto got displayed