====== Calendar Development ====== ===== Integrate Custom Modules ===== For a custom module to be correctly supported in the Calendar module it must register itself by creating a few records in two tables. ==== Module Fields Definitions ==== This table indicates the base start and end date fields and a comma separated list of fields to show in the popup summary box. The table is //its4you_calendar_modulefields// and you can see an example looking at the code we use to fill in this table for the default modules (build/changeSets/ModulesOnCalendar.php). ==== Module Status Definitions ==== This table indicates the search conditions to be used when filtering records on the calendar. You can give search conditions for three status: * **Planned** * **Held** * **Not Held** The table is //its4you_calendar_modulestatus// and you can see an example looking at the code we use to fill in this table for the default modules (build/changeSets/ModulesOnCalendar.php). ===== Timezone tests ===== In order to verify timezone on the calendar with DST changes I did this test. With the computer unconnected to the internet and set to mid-October, I create 18 calendar events, 6 for each of 3 users. The 6 events are 3 before DST change and 3 after the change. The 3 users are on UTC-3, UTC+1 (DST) and UTC. The database is set to UTC which is how it should be always. This looks like this: | | testtz-3 | testtz | testymd | | | UTC-3 | UTC+1 | UTC | |15/10/17 10:00| | | |15/10/17 23:30| | | |16/10/17 00:30| | | |04/11/17 10:00| | | |04/11/17 23:30| | | |05/11/17 00:30| | | I visually verify that all users see the events where they should appear. I enter as an admin user and see all events of all 3 users correctly situated by the timezone of the admin user. Now I reboot the computer and set the date to the second of November in the BIOS. I access coreBOS and visually verify that all users see the events where they should appear. I enter as an admin user and see all events of all 3 users correctly situated by the timezone of the admin user. I create a Report on the events and verify that all three users see the events correctly and that the admin user also sees them all correctly. I verify that the detail view is also correct. I create an event with repeat over the DST weekend and verify that all events are created correctly. I also verify that all the date information saved in the database is correct.