Clicking on a free slot will reserve this slot. Clicking again on one of this teachers reservations will delete it. When your finished, click save and everything is written to db.
The schedule for courses is assumed to repeat each week. Any free slots for a room can now be reserved by a teacher. This is per day. Reservations can also be made for equipment.
In the setup of items, the admin can decide who can make reservations. Admin, teacher or student.
I'm planning to add options for setting rights to view reservations (teach, users, guest). Exclusive reservations (the whole room) vs Partial reservation ( a seat in a room). This might be a number property for a room, while number of reservations on a slot is less than total number of seats, then you can make a reservation.
I expect to have a working side-block (demo version) within a few weeks.
Are you considering eventually including your scheduling code into "MoodleEnterprise"? See the following thread:
The benefits are: user logon and verification (the new roles will be nice), a single site for doing tasks that are related (for the teacher). My teachers use moodle for the typical moodle-tasks, but also for checking for number of test pr week for students, making half-year plans (based on week format), reserving rooms and finding timeplans for students/teachers. These add-ons are perhaps best thought of as a kind of secondary ecology under the main canopy of the moodle-modules. They will only be integrated if they show sufficient fitness, we need to let them fight it out on their own down here in the underbrush
Unzip and install as a block (blocks/timetable).
There is a config page, but the values there aren't used yet. Add the block to a course (or to the site page). Create a timetable entry for a teacher or two, add the block to this teachers course and log in as this teacher. You should now see the timetable you created. The teacher can also edit the timetable.
Reservations can also be made for rooms and equipment. A demo room called exam_room can take multiple reservations for each slot. Teachers and admins can edit/create rooms/equipment.
Some properties for rooms/equipment are special (they are recognized by the scripts).
childtype - add child will create a new item of this type
edit_group - teacher or student (who can make reservations)
edit_list - a list of usernames who can make reservations
scheduled - must be set for items that can be reserved
multiple - if set then this is limit for multiple reservations
days - list of days used for reservations
slots - slots available for each day
I'll write some helpfiles later on, this is just a demo so that anyone interested can test the scripts and perhaps suggest changes ...
From this script you can reach reservations.php.
(add a resource with address your/moodle/blocks/timetable/room_editor.php ).
Im pretty savvy Auden but not a programmer, as we are going to do a new installation at our school (having not done so before) and want it functional and stable, I will be installing the 1.4 release.
Not sure what you mean by -
if you can explain this for me i would be very happy . The other question I have is regarding whether you implemented the option to limit booking ahead by n number of weeks ???
p.s. you are an absolute legend for develloping such a useful mod, it was something really important that was missing from moodle!
Unfortunatelly when i set up the room_editor.php as a resource and tried running the script i get a blank page. Any suggestions?
- Is the script installed in the blocks directory? The script assumes it has been installed as a block in blocks/timetable. If you've placed it somewhere else you'll have to edit the file.
- Remove the test for isteacherinanycourse (doesn't work in 1.4.3). On line 21, remove these 3 lines.
mysql < mysql.sql
This will run the file mysql.sql thru mysql. Any commands in the file will be executed (thus creating tables etc).
Booking ahead can be limited in latest version. I've been a bit busy lately (got a new family member ) so I haven't had time to follow up with new code.
do you have a link to an actual version? I need it for the 1.5 dev to try
Is there any way to link these timetables to Moodle course calendars, so, eg my Year 6 Maths class calendar is populated automatically with the times and locations of each lesson from the timetable? Then lesson plans could be added as teachers choose.
At the moment I enter a week's timetable by hand and set it to repeat for a whole term. This isn't too bad for one course but if one were to set up each year/subject as a seperate course it wouldn't be much fun. The other plus would be that all pupils and staff would see their daily schedule when they log in to Moodle.
The sideblock will show a timetable specific for each student. The teacher will see his/her own timetable.
This is a snapshot of a students view:
The links will take the student to the course for this subject. This sideblock doesn't show times (to save space). A bigger version can be popped up to show more details (room, teacher, times).
At present I use the calendar block to create a series of upcoming events for each timetable slot, and then subsequently type my lesson plan into the event description. This isn't too bad. It would be dreadful though for the admin to have to set up every lesson on the whole school timetable the same way, although I guess something clever could be done by talking to the MySQL tables directly (the table is mdl_event).
My earlier query was about using your brilliant scheduling block to create these event entries automatically. I'm thinking of some code that looks through the schedule table and says, eg, Year 5 have maths every Monday from 11.20 to 12.20, and then creates the corresponding entries in the mdl_event table. I can then come in and edit these entries using the standard event interface to add my lesson notes, links to Moodle resources, text book references and so on, so that my pupils and colleagues can find out what's happening/happened in that lesson.
We do somthing partly similar with an other script that shows a half year plan for each course. This is a table with fields for
Task, Assement, LearningTarget, Comments
for each week (this is a standard form that teachers are supposed to deliver). The main advantage is that I can show my teachers an edit-view where all hollidays and other events are blocked out. Also the teacher gets to see where her students have tests with other teachers. Also it's easy to shift the plan down one week if you fall behind for some reason. All such plans are summarized for each student in a weekly view. This view shows tasks for each course and any tests for the current week.
I'm thinking of integrating this with the weekly summary, but this is some time in the future.
Your suggestion is enticing, but how should such a script behave with respect to hollidays and other events that mean the normal schedule will not be followed? The easiest would be to just fill in events no matter what ...
I'll have a look at adding an option for autofilling events, I assume I can use the start and stop date for the course.
By the way, with a 'upcoming events' solution, won't the students have to visit every course to see their events?
- We do somthing partly similar with an other script that shows a half year plan for each course. This is a table with fields for
Task, Assement, LearningTarget, Comments...
Interesting! Any chance that you might make this public too? I see great potential to use Moodle as the basis for an open source schools management information system, or managed learning environment (MLE). I wonder if anyone else is working on this.
- how should such a script behave with respect to hollidays and other events that mean the normal schedule will not be followed?
At the moment, I delete these lessons by hand. It wouldn't be too bad to remove these from the MySQL table directly, but a better solution would be to have a 'not these dates' option in the appropriate form, or to set up subsequent override events in the calendar for 'half term', 'life skills week', 'exam week', whatever.
- with a 'upcoming events' solution, won't the students have to visit every course to see their events?
No - on the Moodle homepage they automatically see the upcoming events for all the courses in which they're enrolled. One can also change the maximum number of events and days displayed in [site]/moodle/calendar/preferences.php?
Interesting stuff re: scheduling. I'm going to give these a try.
I also agree with Miles, the idea of looking at your script for Task, Assessment, Learningtarget, and Comments would be great to see, if available.
My school uses Curriculum Mapping Software that essentially breaks down Essential Questions, Content, Skills, Assessments, and Resources each month for each course. The maps allow us to view these in interesting cross-school tables (all of the 7th grade Skills in October; vertical assessments in math from 3rd-12th grade; etc.).
What you describe sounds like the mapping software (albeit without the reporting). If we had these simple tables built into Moodle, it would make our double-entry less clumsy, I think.
with an clean installed 1.5 moodle it works. Only the dates and events are wrong. I see year 4714. And there are no events shown on the user site.
In a few days the reservations will show up in the calendar (if you choose this option).
The error you get for the year seems strange, I get
Week 9 28.2 - 6.3 2005
for the current week.
I have a suspicion that it might be because I've got the pararameter order mixed-up in the gregorian <--> julday functions.
You seem to have gregorian built in, my site doesn't so the error got by me
I'll put out a fixed version shortly.
(just checked ... I've switched month and day in my definition of gregorianTojd ... )
I think what he means is that is there method to import timetable data from elsewhere. In my case all our schools timetable is generated by a program called first class. It would be nice to know how to export this data in a format that could plug straight into your timetable mod. Considering that all students and staff would already be users of moodle, I'm not sure how practical this would be.
However, in my case I have little intention of doing this as it would be better to just put a link on the front page to the 'first class' software so that teachers and students can look at their timetables from the native application.
What I do want to bdo with the timetable mod is to simply book computer rooms, digital cameras and the like.
I would like to implement a table version as you have done - is it possible to get the latest version?
I think for moodle to be fully integrated into a school is needs to be able to create all classes and students with an easy import from a database and then show each students their daily/weekly timetable with links to all classes - this work looks great.
sounds great, thats what i am looking for.
But error occurs:
Module timetable: c:\xxxxxxxxxxxxxxx\moodle3/mod/timetable/version.php was not readable
i installed your version under w3k, iis6, php51dev, mysql4.1.9, moodle 1.5dev from today.
thx for any help
Also this is work in progress, but I'd apreciate some feedback about layout & design. Nice if you'll give it a try.
now i am getting an error while creating new tables entering the admin page.
(mysql): ALTER TABLE mdl_block_instance CHANGE pagetype pagetype VARCHAR(20) DEFAULT '0' not null
(mysql): ALTER TABLE mdl_block_instance CHANGE position position VARCHAR(10) DEFAULT 'DEFAULT '0'' not null
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0'' not null' at line 1
Upgrade failed! See blocks/version.php
thx for help
The errors you are getting seem very strange,
ALTER TABLE mdl_block_instance CHANGE position position VARCHAR(10) DEFAULT 'DEFAULT '0'' not null
the default should be default '0'
not default 'default '0''
these errors are a result of a failed attempt to upgrade the table block_instance, the error has no direct link to the timetable block.
I would suggest a clean install (remove all tables and the moodle dir).
i try it tomorrow
I've installed timetable-block as you told here. When I go to admin-page I get blanck screen !!!! ( It tells me that block installation try to do something ... )
I've looked moodle database and noticed that automatic block insertion does not work. No mdl_item, mdl_calendar etc. database tables are inserted.
Also I can't find any marks in mdl_block or mdl_block_instance.
I modified your mysql.sql file and installed required datatables into moodle database with mysql command.
Now I can go into room_editor and and it works well .... everything seems to work.... but....
Why automatic block installing does not work with your timetable-block.
Any ideas ???
I tested on a fresh 1.5 dev before posting the .zip file. It installed without any complaints from moodle. I'll download a fresh 1.5 and do some more tests, things change fast in 1.5 ...
Is this the most recent code for 1.5? I am going to play with it tomorrow if I get time.
what results did you get, is this module functional in 1.5, how well is it working and where did you find it ?
Audun said he has more recent code but he is just tidying it up at the moment.
I'm now turning it into a mod that follows the style of new assignment. That is, I'm setting up for different types of reservations as submodules. Thus you can choose a reservation with a weekly view or a reservation with a year-view (reserving whole weeks) and reservations that lean more towards an appointment. So far only weekly and year view are working.
It should be easy to drop in new types of reservation/appointment/schedule.
The basic code only gives a name to the reservation and lets you set up a timespan for when reservations can be made. If you choose weekly/yearly then you will have to choose an item (think room) to make reservations for. If you choose appointment then you need not choose an item (the item is assumed to be a slice of your time).
From then on each submodule diverges and has specific features like multiple booking, timeslots ... etc.
Can this block be used with MOODLE 1.6?