This call is for a timetabling system to publish a date-based timetable to an SIS. The date-based timetable is the data covering:
- the cyclical timetable,
- excursions & other events,
- once-off room swaps and
- staff absences/covers.
The SIS may choose to not implement this function, e.g. because it manages the daily data itself.
In many cases, this function can be used as a complete replacement for
liss.publishTimetable(), because the cyclical timetable is roughly speaking a subset of the data sent by this function. The date-based data, which is sometimes also called “daily variations”, consists of both additions to and subtractions from the cyclical timetable. If we did not include the cyclical timetable in this function, then SIS implementors would need to implement a lot of complex logic to determine
- what calendar dates correspond with which cyclical dates, and
- what changes take precedence.
Therefore the cyclical timetable is included in
liss.publishDailyData(auth, startDate, endDate, timetable)
auth: See authentication
startDate: See get students
endDate: See get students
timetable: An array of structs, where each struct represents a single lesson or event. Each struct has the following members:
|timestamp mandatory||The date.|
|string||The shortname of the period. Eg |
|string recommended||If you provide a |
|string recommended||If you provide a |
|string mandatory||The class code. If it’s an event, then some suitable identifier for the event. Event names must be unique within a date but not necessarily across dates. Maximum 20 chars.|
|string||A description of the class. This will often be the |
|string||This field is provided to distinguish between teaching lessons, yard duties, study periods, staff meetings, excursions, incursions, exams, and so on. The allowable values here form a superset of the |
One of the following strings:
A SIS/TTS pair may negotiate between themselves to support additional values for this field.
|string||A comma-separated list of teacher id's. There's usually just one teacher per class but can be more, especially with e.g. excursions. If this field is absent then it means there are no teachers associated with this lesson.|
|string discouraged||Usually, the TS will send |
|string||The room code, or a comma-separated list of codes. If this field is absent then it means there is no room associated with this lesson.|
|string mandatory||A comma-separated list of student codes. If this field is omitted, then the class-list will be taken from the class object’s permanent class-list. Otherwise it is repeated here. |
This field is useful for:
a. excursions and events, where there is no class object in the server to provide it with a class list,
b. study classes, where the class-list can be different each period and even within a period the class-list can change frequently as class membership of other classes changes,
c. for attendance systems to communicate pre-arranged absences to the server.
It would be more conventional to encode this field as an array. However, since many early users of LISS uses XmlRpc, and XmlRpc is an inefficient encoding and these fields could constitute the bulk of this message, we have chosen to use a comma-separated list instead.
|32 char hexadecimal string||A "globally unique identifier" aka UUID. These are generated by the Timetabling software. These allow users of the timetabling software to change class codes and have the SIS still maintain a continuity of identity of the class.GUID's should be sent free of punctuation, i.e. the plain hexadecimal characters without any dashes.|
|string||A free-text string.|
|string||Usually this will be blank. If the teacher is different to the usual teacher for this lesson, then you'll see here the TeacherId of the regular teacher who can't make this lesson.|
|string||This string has either 1 or 2 parts. The first element is a |
The next element is optional – if it exists, then a space is used to separate it from the
Maximum 20 chars.
Nothing - an empty string
"". If anything other than an error is returned it should be ignored. For error reporting see fault codes.
- Double-periods will require 2 rows to be sent, one for each of the 2 periods. This is because of the possibility that the 2nd half of the lesson will be in a different room or with a different teacher.
- For once-off events which span more than one period, TS's may send this as one object or multiple objects, broken down by period. Breaking it down by period will be the only way to send information about different teachers taking different portions of the event, which is common with exam supervision and supervision of kids not going on excursions. SIS's which wish to view the event as a single object will need to group the relevant rows together, e.g. matching on
ClassCode. A future version of LISS will likely follow the SIF
ScheduledActivitypattern, whereby the teacher cover objects are sub-objects of the event.
- Data outside the given date-range is obviously retained; data within the date-range is overwritten. In other words, you can delete a lesson by doing an upload which omits the lesson.
- In each row, you must give either
EndTime). It is recommended you give both, where possible. An example of where
Periodis missing is where an excursion or exam starts halfway through another period. An example of where
EndTimemight be missing is where a TTS does not have a feature to define bell times (a rare occurrence).
- There is some debate about whether On-call periods should be included in
liss.publishDailyData()or not. The argument to exclude them is: "An on-call period is really just an instruction to the TTS to be more likely to assign this teacher a cover on this particular period. If a cover was assigned, then this information will appear, and if a cover was not assigned then it’s irrelevant whether the period was an on-call or not." The argument to include them is: "Teachers need to know ahead of time that they may be required in those slots at short notice". For now, the SIS and TS should negotiate on whether to include them or not.
"ClassCode": "7MAT 1",
"Details": "Students need to bring sun-block.",