...
Calendar Generation
Calendar generation Generation is the process of generating all necessary sessions Sessions that will be associated with each of the cohorts Cohorts for which we are generating the calendar. This means we are creating the individual classes for each of the class periods for each of the class groups. According , according to the timetable and calendar schedule that has been defined.
Calendar Generation for a Single Cohort
...
Bulk Generation
...
There are different structures that are used depending on whether a cohort Cohort has its timetable managed externally or not.
...
Timetable
...
Managed Externally equals
...
True
In the case where timetable is managed externally for a cohort, then a process such as the LISS Publish daily data and publish daily delta will Daily Data and Publish Daily Deltas will generally be executed from a platform such as EdVal Edval Daily. This exchange of data instructs Posi Ed PosiEd to create individual session records for each class period.
The data relationship looks like this:
...
For each cohort Cohort we create a session Session and cohort session Cohort Session record for each class period that is being created. You may note specified by the external system. Note that the relationship between cohort Cohort and session Session is a many-to-many architecture through the cohort session relationship through the Cohort Session object. This is because each cohort Cohort will likely have multiple sessions but Sessions and each session Session might (if it is a joint Joint session) also have an interaction association with multiple cohorts in the case of vertical or composite classesCohorts.
Timetable
...
Managed Externally equals
...
False
In the case where the timetable is managed by Posi EdPosiEd; either because the school is using a timetable product such as Edval and its publish timetable Publish Timetable feature via LISS; or because the cohort schedules Cohort Schedules have been set up manually, the following architecture is applied instead.
...
In this case, the relationship between cohort Cohort and cohort session Cohort Session can be ignored because it is not used. Instead cohort Cohort has one or more cohort schedule Cohort Schedule records and it is the schedule these Cohort Schedule records that have the relationships relationship to the cohort sessions and sessionsCohort Session and Session objects. The various generate calendar process processes will generate these cohort session Cohort Session and session Session records as per the process we'll get into in a minute.
Note that once again cohort session Cohort Session is the centrepiece centerpiece of a many-to-many relationship in order to accommodate joint classes. The calendar generation process as it pertains to Posi Ed PosiEd generating the calendar is only used when timetable managed externally is false. works when Timetable Managed Externally is False.
This process can be either a process run specifically for a single cohort by pressing the generate calendar Generate Calendar button on the cohort window or it can Cohort window.
...
It can also be executed for a group of cohorts in a process called bulk generate calendar Bulk Generate Calendar execution. This is done through the cohort Cohort tab of the timetable structure objectTimetable Structure page. By opening this page you can select one or more or all cohorts and then before clicking on the generate calendar Generate Calendar button.
...
This performs the same process, but it executes it across all selected cohorts.
How
...
Sessions are
...
Generated
Regardless of the method of calendar generations generation you use the process of generating the calendar for a particular cohort is the same.
Step one
From the cohort Cohort record get the educational institution timetable structure, timetable term and a list of cohort schedule records to generate. The timetable term Cohort Schedule records, the Timetable Structure, Timetable Term and Primary Grade Level.
The Timetable Term will be used to define such characteristics as whether the timetable structure Timetable Structure is active, the weeks Weeks in the cycle, days per week, etc. The term is used to define the start and end date of the cohort although this should be updated on the cohort itself. After this point, it is the cohort records that are most important.The primary grade level value is also important Cycle, Days Per Week and Date Map.
The Primary Grade Level value is required because this will provide a reference into the date mapthe Date Map. On any given day in the Date Map there might be different Day Types depending on the Grade Level - for example, grades 7-10 might have Day Type=1 but grades 11-12 might be on Holiday. If a cohort Cohort is combining multiple grade levels , then it is vital that all classes defined for that cohort have exactly the same date map and period Date Map and Bell Time details for all year grade levels included in that cohort.
The system now cycles through each of the cohort schedule Cohort Schedule records. In each case it identifies the start Start and end End date range of the cohort schedule Cohort Schedule which may in rare some situations differ from the term start Start and end End dates of the cohortCohort.
From If the Bell time Time value is populated on the cohort schedule Cohort Schedule we can identify the day, number, start time, end time period and other details of the cohort scheduleDay Number, Week Number, Period, Start and End Time from this record.
...
If the Bell Time value is not populated on the Cohort Schedule we get the Day Number, Week Number, Period, Start and End Time values from the Cohort Schedule record.
Using the start Start and end End date, the primary Primary grade level, the day Day and week Week numbers we then query the date map the Date Map is queried to find all date map Date Map entries with values of this combination. For example we will find all date map Date Map entries for grade level Grade Level 7 with a day type Day Type of 1 and a week Week Type of A.
A and a period of 2 combination that it has identified and linked them to the cohort schedule record.
It will then duplicate any cohort schedule connection records for each session through session connection records. It will also create various event record entries for each cohort schedule connection record for each session. For example if there are two teachers, two classrooms and a resource booking listed in the cohort schedule connections, then it will create two session staff, two session location and a session resource event record for each session record that it creates.
Joint sessions
Joint sessions, whether they are created via Posi Ed or through external timetable management utilise the same object Session and Cohort Session record combination is then created for each of these dates and these are linked to the Cohort Schedule.
Joint sessions
Whether or not a cohort’s timetable is managed externally or not, we manage Joint classes using the same objects and relationships as described previously but with a an extra degree of extra complexity.
Both joint Composite and vertical Vertical class architectures require each session Session to be associated with two or more cohorts Cohort or cohort Cohort schedule records. Examples of the record creation are described below:
- Insert screenshots from my ERD's from vertical and composite classes from the PosiEd 1 programme (Mike to review which diagrams are best: refer Lucidchart)
Base Calendar
The Base Calendar object requires an entry for each day of the year for each grade level.
Where all Grade Levels have the same rules i.e. a normal school day or a holiday, etc., then a single Base Calendar record can satisfy the requirements of all grade levels.
If, for example, Year 7-10 have one type of activity on the day e.g. a normal school day; and say Year 11-12 have an exam day, then 2 separate records will be created. The first pertaining to Year 7-10 and the 2nd pertaining to Year 11-12 each with the respective Day Type coding.
To create a calendar for a single Course Offering, we need the following:
The Course Offering must be allocated against a Term. This term will specify the Start Date and End Date range
The Course Offering must include one or more Course Offering Schedule records. This may have been populated from EDVAL, each will designate a specific Day Number e.g. 1 for the 1st day and Period which will be linked to the Time Block i.e. Start and End Time
A fully populated Base Calendar, this defines the grade level assigned to the particular Course Offering which days have each respective timetable
Once all of these have been defined, we can generate calendar events for the course offering through the following process:
...
Retrieve the Start and End Date through the Term associated with the Course Offering
...
Retrieve the Year Level from the Course Offering
...
For each Course Offering Schedule record, retrieve the Day Number and Time Block i.e. Start and End Time
...
Retrieve from the Base Calendar object all records that are between the Start Date and End Date and of the same Grade Level and with the same Day Number
...
Create Session and Cohort Session entries for each Day and Time Block range linking it to the Course Offering
...