Gibbon: the flexible, open school platform Founded by Ross Parker at ICHK Secondary. Built by Ross Parker, Sandra Kuipers and the Gibbon community (https://gibbonedu.org/about/) Copyright © 2010, Gibbon Foundation Gibbon™, Gibbon Education Ltd. (Hong Kong) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . CHANGELOG ========= v29.0.00 -------- Headlines A new mobile-responsive Timetable UI with layer visibility toggles An improved library borrowing page in Student Profile with tabs and quick lending actions An option to add new recipients to existing messages in Messenger A color-coded Markbook option for easier visual identification A simple Petty Cash system in Finance for tracking small expenses Security System: added nonce and CSRF token handling to all POST forms Tweaks & Additions System: removed Date of Birth field from Public Registration when no minimum registration age is set System: improved the colour picker to add a pre-set colour palette System: added IDD country codes to all countries in the database System: added a log entry for resetting password through 'Forgot Password" System: updated jQuery UI library to v1.14.1 Activities: added form group name next to student name in Activity Attendance list Admissions: added the ability to re-send the submission email from the Process tab in Edit Application Admissions: added the option to display customised success message when student applications are successfully submitted Admissions: added Emergency Contacts for students as an option in the Form Builder Attendance: updated Student History view to display Off Timetable days Behaviour: added an 'Observation' type to track neutral records Behaviour: added the delete action to the behaviour list in the Student Profile for users with manage access Department: added student "Not Reportable" flag to class participant listing Library: improved the Library Borrowing page on student profiles Library: improved the Lending & Activity Log workflow when scanning in IDs from barcodes Library: enabled students to access the Library Borrowing page on their profile Markbook: added an option to color-code markbook columns in the teacher view Markbook: implemented default grade from Manage Grade Scales in Markbook data entry view Markbook: enabled filtering by term even if Group Columns by Term is off Messenger: added the ability to add new recipients to a sent message and enable easier re-sending Messenger: added the feature to warn and remove [confirmLink] tag from the message body if read receipts are not turned on Messenger: added the ability to customise the From address for users with school-wide sending permissions Planner: added an attendance indicator to the Today's Lessons list for teachers Reports: updated Template Builder to select mPDF renderer by default Reports: added the option to archive unused assets and templates intead of deleting them Reports: added search to the Manage Assets page, moved Manage Fonts to a separate page School Admin: updated various template settings to use Rich Text editors Staff: added the ability to override staff availability when manually adding coverage Students: added Name in Characters to the Emergency Data Summary Students: added the option for parents and students to see activities in the view profile page School Admin: added prefilled times when creating timing changes in Add Special Day School Admin: added the option to edit whether a facility is bookable or not System Admin: added autocomplete with available strings to Add String in String Replacement System Admin: adjusted action access for Column Rows import System Admin: added new imports for Columns and Tie Days to Dates in timetable System Admin: added new Units import for Unit Planner System Admin: added columnColor to Markbook Column import, enabled color field checking in ImportType class Timetable: removed the display of declined events from Google Calendar on the timetable Timetable Admin: added an Edit Timetable by Class button to Course Enrolment by Class User Admin: improved the image uploader in Manage Users, detect invalid images User Admin: added Name in Characters to searchable fields User Admin: added the ability to add Custom Fields to Family records Bug Fixes System: fixed issue with search terms containing a : full colon (special character) System: fixed max and min limits to Number values in forms System: improved the input detection in the MultiSelect search box for non-standard input sources System: fixed searching unicode characters within stored JSON data System: fixed access of inactive modules through direct URLs Activities: fixed activity missing from the timetable if it doesn't have a category Activities: fixed missing registration button for parents on View Activities page Activities: fixed new sign-up system to honour the registration Y/N setting per activity Activities: fixed the delete action not allowing duplicate enrolments to be deleted in Manage Enrolments Activities: fixed duplicate term names on Activity Choices By Student report Activities: fixed error on Activities Overview when changing Category filter after Activity filter Activities: fixed max length on search filter in View Activities Admissions: fixed default tab selection after saving a form in Edit Application Attendance: fixed unable to add new partial future absence if a future future absence exists Attendance: removed non-Full teachers from Form Groups Not Registered reports Attendance: fixed duplicate classes in Classes Not Registered report Attendance: fixed invalid date formatting in Attendance Summary by Date Attendance: fixed order of days in Student History when first day of the week is Saturday Finance: fixed missing Ad Hoc fee names in bulk-action Export spreadsheet data Finance: fixed bulk action selection and print action on Manage Expenses table Finance: fixed online payment for invoices with a Paid - Partial status Finance: fixed spreadsheet error when exporting invoices with Pending status Finance: fixed missing budget cycle name from Print page in Manage Expenses Individual Needs: fixed search filters on teacher view of Manage Investigations page Library: fixed Advanced Search not searching items by type in Browse Library Markbook: fixed attainment percentage values now updating from raw attainment values Messenger: fixed required members field when editing a Messenger Group Planner: fixed Visual and HTML tabs not working in newly created Smart Blocks Planner: fixed empty sections displaying below the advanced options in Add Unit Plan Planner: fixed untranslated Role field in lesson planner participant list Reports: fixed missing iframe support for template preview windows Reports: fixed comment character count not updating when writing reports Reports: fixed missing progress bar colour in Proofreading and My Reporting pages Reports: fixed progress bar count for left students in My Reporting page Staff: fixed the horizontal scroll container on the Staff Duty page Students: fixed missing Emergency Contact Number 2 on student profile System Admin: fixed field validation for Student Default Email in Form Builder System Admin: fixed uniqueness check when editing a page in Form Builder System Admin: fixed importer not allowing short-form school year names (eg: 2024-25) System Admin: fixed missing module name for newly created logs in View Log Timetable Admin: fixed support staff not editable in Course Enrolment by Person Timetable Admin: fixed vertical spacing of date names in Tie Days to Dates User Admin: fixed unique username check when values already exist Deprecations Removed sendNotificationsAsBcc method from NotificationSender v28.0.01 -------- Tweaks & Additions System: added Chilean Peso (CLP $) as an available currency System: temporarily disabled MFA toggle in Preferences page Attendance: prevent setting partial future absence if a full-day absence already exists Behaviour: added level and descriptor details to behaviour notification events Messenger: updated the check-all option in Send Report to only select required recipients Staff: updated the Active filter for job openings to include the open date System Admin: added the option to define custom API scopes in Third Party Settings > Edit SSO Settings Bug Fixes System: fixed string format errors in Spanish and Hebrew translation files System: fixed the invalid character check when uploading files Attendance: removed Left teachers from Classes Not Registered report Behaviour: fixed behaviour fields hidden on Edit Behaviour Record screen Behaviour: fixed users with Manage Behaviour Records_my unable to add follow up comments Messenger: fixed Submit button missing from New Message when only posting to message wall Messenger: fixed the PHP 7.4 syntax error in MessageTargets when sending a new message Messenger: fixed the appearance of the Message Wall widget in the sidebar, removed auto scrolling Planner: fixed planner actions to return to Year Overview page if they originated there Planner: fixed the Add action missing for teachers on empty dates in the Year Overview Planner: fixed access to Unit Planner for users who are not part of a department with classes Reports: fixed status message visual glitch on Write Reports page Staff: fixed All Staff setting not persisting on the Substitute Availability weekly view Timetable: fixed Date Unenrolled to be cleared when re-enrolling students in the same class User Admin: fixed email validation on the Student Default Email setting v28.0.00 -------- Headlines An exciting front-end refresh powered by HTMX and Alpine.js Updated icons, menus, alerts and navigation elements Improved forms with a quick-save shortcut and better validation A new Activity registration system with a visual Explore Activities page A Mailing List feature in Messenger to collect external email recipients Changes With Important Notices Additional modules may need updated to v28 compatible versions Security User Admin: applied input and output filtering to all email address fields Tweaks & Additions System: set Greek as an active language System: added Putonghua as a language option in dropdown menus System: added IDD codes for Republic of Korea and Democratic People's Republic of Korea System: added Nicaraguan Córdoba C$ as a currency option System: refactored the Fast Finder using HTMX and Alpine System: updated Core modules to have Gibbon Foundation as author System: updates the timetable navigation to use AJAX reloading rather than page refresh System: moved the login form to the bottom of the page when viewing subpages and not logged in System: added a password strength checker and improved password policy display System: updated all Date fields to use the browser native date picker Attendance: added an index to the attendance log to help speed up attendance pages Attendance: added an indicator to Student Not Present/Onsite when attendance logs conflict Activities: updated Activity Attendance to always count participants for dates in the past Behaviour: added a permission for students to view their own Behaviour Records (off by default) Formal Assessment: allowed users with edit access to edit grouped Internal Assessment columns Markbook: updated markbook columns to grey out students who joined after the Go Live date Messenger: limited the individual message target to a maximum of 50 people Messenger: updated preferences to ensure signatures are displayed on a white background Planner: improved default selected course in Unit Planner sidebar menu Planner: added an Add Block to All option in Deploy Working Copy Reports: added a Progress by Department report for viewing class criteria progress Rubrics: updated Edit Rubric page to allow HTML in rubric cells Staff: updated Manage Staff to override required custom fields when manually editing a staff member Staff: updated family page on Staff Profile to exclude personal details and addresses Staff: added the option to exclude staff from internal coverage or set a coverage priority Staff: updated the weightings in the Daily Coverage Planner to include overall weekly teaching load Students: added a notification event when student notes are edited Students: removed birthday icon from student view of class lists User Admin: added the names of users who made changes to the User Status Log User Admin: updated Manage Users to override required custom fields when manually editing a user User Admin: updated Personal Documents to enable required Residency/Visa dropdown Bug Fixes Admissions: fixed the search results on the Manage Application page to include json data Admissions: fixed missing Previous Schools section in Application Form view and print pages Admissions: fixed custom field validation for second parent in Application Form Behaviour: fixed users notified of behaviour records unable to add follow up Finance: fixed bulk exporting invoice fees for Pending invoices Form Groups: fixed Year Group Summary list when looking at non-current school years Individual Needs: fixed an error on the IN Archive page that prevented access to it Markbook: fixed SQL error in Markbook when using external assessments for a baseline Planner: fixed next lesson plan date not auto populating in Add Lesson Plan Reports: fixed Send Report option to enable sending to students without needing parent details Reports: fixed Scan Asset Directories not working on Windows servers Reports: fixed Scan Asset Directories failing to create template folder if it does not exist Timetable: fixed permission checking before displaying user status info in View Timetables list System Admin: fixed the sanitization rules for application form fields to allow HTML Deprecations System: replaced the legacy Thickbox library with an AJAX-based modal window System: replaced the legacy LiveValidation library with Alpine.js validation System: replaced the legacy jQuery tooltip with Alpine.js v27.0.01 -------- Bug Fixes Admissions: fixed submission emails and acceptance emails not sending as expected Admissions: fixed required field logic checking in Form Builder Admissions: fixed "Do not include a second parent" being accidentally checked by default Admissions: fixed username and password missing from re-sent Acceptance Email Attendance: fixed handling of Count Class as School setting in Students Not Onsite/Students Not Present reports Messenger: fixed error redirect for New Message sending users to a non-existing page v27.0.00 -------- Headlines A fresh UI update for the Library module with customisable shelves Added an auto-save system when creating new lesson plans Changes With Important Notices System: updated Google OAuth Client SSO to handle granular permissions (required by Google for June 17, 2024) System: if you use Gmail SMTP relay, be sure to update your settings to use an App Password (before June 17, 2024) System: updated JQuery(2.2.4 -> 3.7.1) and JQuery Migrate(1.4.1 -> 3.4.0) files to latest versions System: updated date localisation to use the PHP Intl library, removed deprecated strftime Security System: improved the input sanitization and output encoding of URLs Tweaks & Additions System: automatically hyperlink any urls included in Custom Field descriptions System: removed raw exception message output from the interface System: added facilities as one of the searchable options with the fast finder System: added departments as one of the searchable options with the fast finder System: improved randomness of password salt generation System: added an IP address to failed login attempt notifications System: added additional filtering for invalid characters in uploaded files Activities: added notification events for activity enrolment changes Activities: added a Left status to activity enrolment, to retain a history of previous enrolments Activities: added bulk actions to the activity enrolment page Admissions: added a notification event for student form group changes Behaviour: added notifications for positive behaviour records Behaviour: added the ability to view other students involved in multiple behaviour records Behaviour: updated the view so that followups are displayed as conversational logs and stored in a separate table Behaviour: added the ability to able to link a behaviour record to some other existing behaviour record Behaviour: added positive behaviour records to the Daily Behaviour Summary CLI script Behaviour: added a my_permission so that teachers are restricted to only view behaviours created by them Departments: added an Edit Enrolment link to the Department Class page for users with enrolment access Finance: added a fees list and notes column to the Export option in Manage Invoices Library: added ui changes to Library module browsing through library shelves and improved search page Library: added automatic shelf generation by search term, automatic shelf updates, and auto-shuffling Library: added autocomplete to the Vendor and Location Detail fields in Add/Edit under Manage Catalogue Library: updated child records to use the same Vendor field as parent records in Manage Catalogue Markbook: removed non-numeric entries from cumulative totals Messenger: added search form and school year navigator to Manage Groups page for quicker group browsing Messenger: added an index to the Message Target table to speed up the recipients query Messenger: added the ability to post a Wall Message between a start date and an end date Messenger: added the ability to optionally share a Send Report link with other users Messenger: added the ability to detect and remove emojis from the message body Reports: updated report writing to also show left class enrolments with the Show Left Students tool Reports: added uploadable Image as a field type in Manage Criteria Types Reports: added a check for the correct .twig.html extension in Manage Assets School Admin: added the ability to toggle facilities between active and inactive Staff: added anchor links for Job Openings page, enabling easier external linking Staff: added status filter to Staff Absence and Coverage Summaries to display only Full staff by default Staff: added a notification to inform staff of first aid qualification that are expiring soon Staff: added the ability for staff members to cancel an absence before it occurs Students: added an Upcoming Students option to the Students by House report Students: added year group next to form group name in student history details Timetable: added activities to the timetable in View Timetable by Facility Timetable: added basic information table to the View Timetable by Facility report Timetable: added timetable iCal Export buttons to staff and student profiles Timetable: enabled facilities for Off Timetable classes to be re-booked in Manage Facility Bookings User Admin: added an option to disable the display of privacy options, so they can be managed internally User Admin: increased the field length for Departure Reason to 100 characters System Admin: enabled Generic OAuth to specify the scopes and username field requested System Admin: added an option to Upload Photos & Files to not delete existing files System Admin: added an importer for Behaviour Records Bug Fixes System: fixed PHP 8+ compatibility in CustomFieldIDs migration file System: fixed input serialization of form data in Import from File page System: fixed the file uploader to handle exif image rotation from mobile devices System: fixed login access required message to always display the login form System: fixed the bug so that staff and student name are displayed in messages System: fixed bug in FileUploader that did not allow Chinese and Latin characters System: fixed incorrect directory separator character in XAMPP installation System: fixed Ivory Coast name and country code in list of countries Activities: fixed highlight colour for Waiting List activities in View Activities Activities: fixed missing Waiting List option when adding activity enrolment Admissions: fixed Form Group at Entry field when not using it as Office Only Admissions: ensure form submission email goes to the admissions account email address rather than parent1 Admissions: fixed the tense of the notification string when a student withdraws from the school Attendance: fixed handling of double periods in Set Future Absence tool Attendance: fixed timestamp of attendance taken for double periods in Take Attendance by Class Attendance: fixed onsite school absences not showing blue in Attendance by Form Group Attendance: fixed Consecutive Absences report not returning any results Attendance: fixed checklist names for existing absences in Set Future Attendance Attendance: fixed the attendance counts in Attendance Summary by Date when grouping by Form Group Behaviour: fixed descriptor dropdown for Positive types in Find Behaviour Patterns Planner: fixed incorrect To Do list highlight when both teacher and student recorded homework exist Planner: fixed missing homeworkTimeCap field when duplicating a lesson plan Planner: fixed year group filter in View Resources Markbook: fixed the Markbook Entry importer so that it supports username, email or student ID Markbook: fixed the Term Added field in the Markbook Column importer Messenger: fixed blank read receipt text when editing a draft message Messenger: fixed visual bug when messages are wider than the message wall Reports: fixed missing sequenceNumber in duplicated Reporting Cycles Reports: fixed students from non-reporting-cycle year groups displaying in Write Reports School Admin: fixed missing Public Application Form setting in Admissions Settings page Staff: fixed My Coverage page showing coverage from past years Students: fixed the view all option in the Students by Form Group report System Admin: fixed category and module for Student Enrolment importer User Admin: fixed HTML being removed from Language Options blurb in Student Application Form Deprecations System: replaced session call through $gibbon->session to $session. "$gibbon->session" is now deprecated System: removed fetchFromString from View class, added a Sandbox class for rendering template data v26.0.00 -------- Headlines System: transferred copyright from Ross Parker to the Gibbon Foundation Changes With Important Notices System: raised the minimum PHP version requirement to 7.4 System: raised the minimum MySQL version requirement to 5.7 System: added the PHP intl extension to the System Check list Tweaks & Additions System: added Return to top link to bottom right of each page System: added Botswana Pula as currency option System: added IDD country code for Laos System: added .lock and .json files to htaccess denied list System: added additional sanitization to GET variables and alerts System: added module name to notification email subject line System: added a system log when passwords are manually changed in User Admin System: added output sanitization to message wall and planner discussion System: improved consistency of remote CLI execution System: added new Remove Stale Notifications CLI script to remove notifications over 3 months old System: added index to gibbonNotification table to improve performance Attendance: added the name of attendance last taken to Form Groups Not Registered Activities: updated View Activities to highlight waiting list registrations in orange Activities: added a warning message to Activity Registration when a timing conflict would occur Activities: added student date of birth to the Participants by Activity Report Admissions: added a warning to Edit Application when required values are missing Behaviour: added a list of failed email addresses to behaviour letter CLI script Behaviour: added a notification event for receiving behaviour notifications about IN students Data Updater: made email addresses in Family Data Updater copy-and-pasteable Library: added the option to attach copies of library items to a main record Library: added a confirmation step to replace the name of books using Google Book Data Library: enabled the borrowing record page to be used with all users Library: updated the Library Print Record import to enable connecting copies to parent records Library: added an option to search location detail and all fields in Manage Catalog Library: added department and type filters to View Overdue Items report Library: added an On Order status for books that are not yet borrowable Markbook: added Term filter to parent view, when Group Columns by Term enabled Markbook: adjusted Term filter in teacher view to default to current term Messenger: updated message copies sent to sender to include an example confirm link Messenger: added a setting to customise the signature used in messages Messenger: moved message signatures to a checkbox rather than in the message body Messenger: restored SMS credit balance to New Message screen Messenger: made Duplicate With Members the top bulk action in Manage Groups Messenger: moved Read Receipt links to the top of messages by default Messenger: updated Message Wall to show most recent posts first Planner: enabled users with viewAll permission to see the online submissions list Reports: added a filter to view Pending Edits on Proof Read page, pre-selected filter in notifications Reports: added the name of who wrote the comment to CourseCriteria data source Rubrics: updated visualize and historical data views so teachers can see unpublished results Staff: combined absence and coverage requests into the same form Staff: improved handling of Off Timetable days when checking staff availability Staff: added an option to set coverage as Not Required or assign to an unavailable teacher Staff: added First Aid Qualified to the main overview on Staff Profile Staff: improved the coverage time calculation for timetable coverage Students: added First Aid as a sub page on the Student Profile Students: added a Follow Up Contacts section with email addresses under Emergency Contacts Students: added a setting for additional Follow Up Contacts under Student Settings Students: added a separate view-only permission for First Aid records Students: added Term filter to Markbook view in Student Profile, when Group Columns by Term enabled Students: updated First Aid records to be listed by school year System Admin: added settings for notification interval for staff and other users Timetable: made the +1 indicator for timetable clashes a link to Manage Exceptions Timetable: highlighted absent non-covered classes on the timetable in a different colour Timetable: set timetable to preselect in View Available Teachers and View Available Facilities, when only one timetable exists Timetable: updated facility bookings to display even on Off Timetable days Timetable Admin: added Reportable Yes/No option to bulk action in Course Enrolment by Person User Admin: added Single to marital status options in Manage Family User Admin: enabled Student role category access to facility bookings (off by default) Bug Fixes System: fixed date formatting error when Intl extension is not available System: fixed PHP value-type error in sidebar message wall posts System: fixed PHP regex error decoding dates from search filter text System: fixed collapsable comment show/hide bug in nested data tables System: fixed the fix for disabled status in toggle visibility for radios System: fixed missing line breaks in code error alerts System: fixed Language and Country selects to sort based on locale System: fixed checkboxes in Custom Blocks not preloading data correctly Admissions: fixed incorrect parent field names in application submission email Admissions: fixed application form prefill logic Admissions: fixed Second Parent not being created on application acceptance Admissions: fixed Second Parent checkbox showing the wrong state in Edit Application Admissions: fixed Required Documents not displaying in Documents view of Edit Application Admissions: fixed orphaned Required Documents when document name is changed Attendance: fixed incorrect class count in the Daily Incomplete Attendance by Class admin summary email Admissions: fixed phone number in application form causing validation error when required Behaviour: fixed error from missing function in behaviour letter CLI script Behaviour: fixed Add Multiple form submittable without selecting students Crowd Assessment: fixed profile access checking for student name link Data Updater: fixed medical updates creating a notification when no data has changed Form Groups: fixed Left staff showing in View Form Groups list Finance: fixed edge case causing receipts to be sent along with reminders Library: fixed empty timestamp field in gibbonLibraryItem that caused errors on update Markbook: increased Name field length to 40 characters in Add Multiple Markbook: fixed class average row height when there is no data Markbook: adjusted student view to ensure that cummulative average honours term filter Markbook: fixed term-related PHP exception in teacher view Markbook: fixed the Term Added field to connect to the correct term in the Markbook Column importer Markbook: fixed no columns showing up when using the All Term selector Markbook: fixed weighted column average errors when adding non string values Messenger: fixed invalid input error when editing a wall message that also contains an email receipt Messenger: fixed Applicants target bug impacting parents not already in gibbonUser Messenger: fixed Individual Naming option not adding student names to new messages Messenger: fixed signature removal from SMS messages Planner: fixed duplicate lessons in Year Overview for multiple timetables Planner: fixed input sanitization of resource quick-add values Planner: fixed students with timetable exceptions showing up in submission list Planner: fixed Parent Weekly Planner CLI sending between school years Planner: removed Left users from lesson plan Guest select Planner: fixed Lesson Details Template populating in the homework description Reports: fixed handling of class vs school attendance in AttendanceByCycle data source Reports: fixed html entity decoding in MpdfRenderer Reports: fixed footers on last page during bulk generation with mPDFRenderer Reports: fixed validation of duplicated template path in Manage Assets Rubrics: fixed input sanitization of visualization images Rubrics: fixed previous years data showing up in Historical data Reports: fixed archive download access for Full parents of Left students Staff: fixed activities outside the current term showing up in New Coverage Request Staff: fixed substitute availability check not including timetable exclusions Staff: fixed error when deleting ad hoc coverage that is not attached to a class Staff: fixed approved absence with user-selected coverage not re-broadcasting substitute requests Staff: fixed requested coverage not actionable by substitute after approval Staff: fixed approved absences with coverage not notifying custom recipients Staff: fixed Add Staff user select to only include Full and Expected users Students: fixed visibility of student status details on View Student Profiles System Admin: fixed line break on long values in Server Info Timetable: fixed period showing absent in classes with multiple teachers when one is absent Timetable: fixed PHP deprecation issue relating to $roleCategory Timetable: fixed staff absence display issue on timetable with multiple teachers in a class Timetable Admin: fixed null coalesce array error when managing enrolment Timetable Admin: fixed Edit Timetable by Class to only include classes in years associated with the timetable User Admin: fixed disallowed permissions not showing as disabled in Manage Permissions User Admin: fixed an error in Rollover when duplicate enrolments exist User Admin: fixed Rollover not pre-selecting correct next year group for existing students v25.0.01 -------- Changes With Important Notices System: domains used in iFrames must now be approved via Security & Privacy Settings Security System: added .lock and .json files to htaccess denied list System: improved the sanitization of URL parameters and alerts System: prevented XSS though GET variables in search forms System: improved illegal address detection for non-php files System: added an iFrame allowlist for filtering safe domains System: added output sanitization to message wall and planner discussion Bug Fixes System: fixed date formatting error when Intl extension is not available System: fixed PHP value-type error in sidebar message wall posts System: fixed PHP regex error decoding dates from search filter text System: fixed collapsible comment show/hide bug in nested data tables System: fixed DOMDocument sanitization loop in Validator class Admissions: fixed incorrect parent field names in application submission email Admissions: fixed application form prefill logic for continuing users Admissions: fixed second parent not being created on application acceptance Admissions: fixed second parent checkbox showing the wrong state in Edit Application Admissions: fixed Required Documents not displaying in Documents view of Edit Application Admissions: fixed orphaned Required Documents when document name is changed Behaviour: fixed error from missing function in behaviour letter CLI script Form Groups: fixed Left staff showing in View Form Groups list Finance: fixed edge case causing receipts to be sent along with reminders Markbook: fixed class average row height when there is no data Messenger: fixed invalid input error when editing a wall message that also contains an email receipt Messenger: fixed Applicants target bug impacting parents without an existing user Planner: fixed display of duplicate lessons in Year Overview for multiple timetables Planner: fixed input sanitization of resource quick-add values Reports: fixed handling of class vs school attendance in AttendanceByCycle data source Reports: fixed html entity decoding in MpdfRenderer Reports: fixed footers on last page during bulk generation with mPDFRenderer Reports: fixed validation of duplicated template path in Manage Assets Rubrics: fixed input sanitization of visualization images Staff: fixed activities outside the current term showing up in New Coverage Request Staff: fixed substitute availability check not including timetable exclusions Staff: fixed error when deleting ad hoc coverage that is not attached to a class Staff: fixed potential division by zero error when adding ad hoc staff coverage Staff: added honeypot field to Staff application form Timetable: fixed period showing absent in classes with multiple teachers when one is absent Timetable: fixed PHP deprecation issue relating to $roleCategory User Admin: fixed disallowed permissions not showing as disabled in Manage Permissions User Admin: fixed an error in Rollover when duplicate enrolments exist v25.0.00 -------- Headlines Messages can now be saved as a draft and previewed before sending Activities, staff duty and coverage now display on the timetable The new admissions system is turned on by default and is no longer in beta Staff coverage can now be requested for timetabled classes, activities or duty New visual tools have been added to help assign and manage coverage internally Significant Changes System: activated the lt_LT Lietuvių Kalba - Lithuanian locale Attendance: added the option to take future attendance for ad hoc groups School Admin: added an Off Timetable option for special days Staff: added a drag-drop interface for creating and managing a duty schedule Changes With Important Notices Timetable Admin: changed Participant counts to Student counts in Course Enrolment by Class, adding minimum and maximum enrolment controls to courses System: added additional sanitization to GET variables and alerts Tweaks & Additions System: improved the access error message for non-logged in users System: updated Parent Weekly Summary CLI to not send if date is outside school year System: improved right-to-left support in Default theme System: added new hooks for Staff Profile and Lesson Planner System: added Malawian Kwacha, Algerian Dinar, Uganda Shilling, Zimbabwean Dollar as currency options Activities: display current school attendance when taking activity attendance Admissions: added custom field support to Student Enrolment Attendance: enabled taking Future attendance on the current date Data Updater: added a search option to all Manage Update pages Data Updater: updated Family Data Updater History to order parents by contact priority Finance: added Outstanding Amount total to payment log for partial paid invoices Form Groups: removed website column from View Form Groups page Individual Needs: add a notification event for New Investigation Messenger: added the ability to send confidential messages which are not viewable by other users Messenger: updated the Transport target to be able to handle comma-separated transport values Messenger: improved the success message for confirmed read receipts Messenger: added form group name to students in Individual target list Messenger: added the option to determine confirmation type in Send Report Markbook: added Term filter to student view, when Group Columns by Term enabled Markbook: increased maxlength of Name field to 40 characters Planner: improved the error message when unable to access classes in Unit Planner Planner: update Add Lesson Plan to suggest dates based on existing lesson sequence Planner: updated Work Summary by Form Group to account for student start date Planner: updated Manage Resources to clean up unused tags after editing a resource Planner: added a message to homework that was assigned before enrolling in the class Planner: enabled custom fields for Lesson Plans Resources: differentiated the upload button from the sticky submit button Reports: improved the UTF8 character set for DroidSansFallback to include wider CJK support Reports: added a school year switcher to the Generate Reports page Reports: updated Attendance template to enable displaying present attendance counts School Admin: added an option to cancel activities in Special Days School Admin: added custom field support to Departments Staff: enabled editing the Cover Required field in Manage Absences Staff: improved the visibility of absences requiring coverage in lists Students: added a permission check for Family Adult comments in Student Profile Students: added the ability to search students by first name System Admin: added filename to Import History in Import From File page System Admin: added the option to configure phone number fields in Form Builder System Admin: removed anonymous sessions from the Active Sessions page System Admin: added the option to set default values for Form Builder fields Timetable: enabled View Available Facilities for non-lesson periods Timetable: enabled booking facilities for other users with Manage Facility Bookings_all permission Timetable: added an option to add a reason when booking facilities Timetable: added an Edit Timetable by Class tool to Manage Timetables Timetable: added class teacher names to timetable hover-over information Timetable: added a simple Print option to student and facility timetables User Admin: added last login timestamp and IP address to password troubleshooting page User Admin: added the ability to search users by first name User Admin: updated Manage Permissions to require filtering by either module or role Bug Fixes System: improved exception handling for transactions in Connection class System: removed unused medical fields from gibbon.sql System: fixed Form Group link under student photos on Parent Dashboard System: fixed missing translations for module strings in dashboard tabs System: fixed incorrect student count with multiple form groups on Staff Dashboard System: fixed broken View All links in Staff Dashboard Enrolment tab System: fixed My Classes list including Left classes in DatabaseFormFactory System: fixed links opening in new tab when using Url object in Format class System: fixed lesson plans not showing up on Staff Dashboard for multiple classes with a TT exception System: fixed dashboard hooks displaying when modules are inactive Activities: fixed activities not viewable from profile after listing end date Activities: fixed activity attendance tables overlapping the page Admissions: fixed application username check to include other applications Admissions: fixed database error when using Add Application to create a blank application form Admissions: fixed missing Introduction and Post Script on application form Attendance: fixed duplicate entries in Students Not Present and Students Not Onsite Attendance: fixed Students Not Onsite reports not displaying student name on mobile Attendance: fixed Attendance Summary by Date to use end-of-day status for school-wide attendance Attendance: removed print option from Attendance Summary by Date until the form is refactored Attendance: fixed numerical indicator on Student History for days with partial attendance Attendance: fixed non-attendance classes showing up for partial absence in Set Future Absence Data Updater: fixed incorrect top links on Edit Request pages Data Updater: removed parent emails from Family Data Updater History when contact email is No Data Updater: fixed unable to remove all privacy settings via data update Data Updater: fixed Family Data Updates not checking student start and end dates Library: fixed the Get Book Data From Google button in Manage Catalog Library: fixed js issue in QR code scanner on Manage Catalogue Markbook: fixed Left teachers showing up in "Class taught by" list Markbook: fixed View Markbook breadcrumb when class name is blank Planner: fixed selected course resetting when navigating between school years Planner: fixed CLI scripts attempting to users who are Left or have no email address Planner: fixed incorrect homework status when both teacher and student recorded homework are used Planner: fixed homework checkboxes not visible on students mobile view Planner: fixed Concepts & Keywords tag counts in Add Unit and Edit Unit Planner: fixed error message after duplicating a lesson into future year Reports: fixed error when milestones are empty in Manage Reporting Cycles Reports: fixed batch report bulk-action missing the two-sided option Reports: fixed HTML being removed from Rich Text template sections Reports: fixed file upload not working in Template Builder Reports: fixed json_decode error for hooks in Write Reports By Student Reports: fixed unable to re-send acceptance email from Edit Application page School Admin: fixed error in Add Attendance Code when no roles specified School Admin: fixed possible duplicate values using Copy All To Next Year in Manage Form Groups Staff: fixed staff absences not showing up if outside school year dates System Admin: fixed Form Builder submission error when subheading is the first item on a page System Admin: fixed calendar feed cleared when saving Third Party Settings System Admin: fixed untranslated fields in Form Builder when viewing a form Timetable Admin: adjusted column uniqueness interface string Timetable Admin: fixed Copy All To Next Year to copy custom fields and prevent duplicate values Timetable: fixed class student counts in Manage Student Enrolment Timetable: fixed display of room number for short periods Timetable: fixed the position of the Add Lesson Plan tooltip Timetable: fixed long-running periods not displaying information on the timetable Timetable: fixed making facility bookings on another person's behalf Tracking: fixed Data Points export MySQL error User Admin: fixed black user photos when using non-jpg image format v24.0.00 -------- Headlines New Admissions module for managing student enrolment and application forms Added Form Builder functionality, for creating flexible application forms Added more Email Templates to enable customizing admissions emails Added optional Multi-Factor Authentication in user preferences Significant Changes Timetable: added an option to export timetables to iCal format System Admin: added an Upload Photos & Files page, replacing the old User Photo Upload Changes With Important Notices System: removed upgrade path for v19.0.00 and earlier System: removed deprecated functions no longer used in core and additional modules - printPagination Tweaks & Additions System: added pagebreak and columnbreak tags to the allowableHTML list System: ensured PayPal payments default to the system locale System: updated the robots.txt to enable index access, for noindex meta tag System: improved display of IDD country codes in phone number entry field System: further refactoring of linkTop divs System: added indexes to the gibbonDiscussion table to improve performance System: added user status log entry on successful public registration System: removed session-duration caching of index_custom.php Behaviour: improved style consistency of View Behaviour Letters filter Finance: improved style consistency of Manage Billing Schedules filter Finance: refactored Manage Billing Schedules table Formal Assessment: improved style consistency of View External Assessment filter Formal Assessment: improved style consistency of View Internal Assessment filter Individual Needs: improved style consistency of Individual Needs filter Markbook: updated the export to include term grades, if available Messenger: updated the Message Wall to order messages chronologically Planner: added Create Markbook Column option when editing a lesson plan Planner: made time cap obvious to teachers in Lesson Planner view Planner: enabled staff with Future Years access to plan lessons for Upcoming years in the Unit Planner Planner: enabled adding teachers with exceptions as guests of their own classes Reports: added filters to the report proof reading view Reports: enabled including Student - Left enrolments in the Course Criteria data source Reports: clarified the My Reporting progress count for left students Staff: added staff house name to Staff Profile if a house has been set Students: added honey-pot fields to applications and public registration to reduce spam Students: adjusted table label in View Student Profiles System Admin: increased the length of string translations to 255 characters System Admin: enabled using custom fields with additional modules System Admin: adjusted "you are up to date" string in System Admin to reduce cutesiness System Admin: added a Code field type to Custom Fields to allow raw HTML System Admin: improved the error reporting of the SMS test feature System Admin: improved field label for IP Address in View Logs Timetable: improved the error message on the timetable when multiple lessons exist Timetable: added a visual indicator of clashes with multiple classes in the same period Timetable Admin: enabled enrolling and syncing classes for Expected students User Admin: added selectFamiliesByAdult method to FamilyGateway Bug Fixes System: fixed user's personal language and theme not set after login System: fixed the logo link on the Oh No! error page System: fixed missing password reset link in plain-text copy of emails Activities: fixed sidebar disappearing when opening View Details window Attendance: fixed the Available to Roles setting in Attendance Codes Attendance: fixed attendance for classes timetabled multiple times on the same day Finance: fixed online payment option not available on invoice print page Finance: fixed reminder emails not handling comma separated company email addresses Library: fixed missing cost field when duplicating library item Library: fixed items showing as overdue on the same date as the expected return Messenger: fixed Applicant target excluding Expected parents of edited application forms Planner: fixed invalid values in homeworkSubmissionDrafts in PHP 8+ Reports: fixed AttendanceByCycle data source mixing up reporting cycle dates Reports: fixed missing dropdown selectors on the Write Reports pages Reports: fixed dates in templates to use i18n system date Reports: fixed reporting cycle count in AttendanceByCycle data source Rubrics: fixed row and column colours missing when duplicating a rubric Reports: fixed second-pass proof reading not updating the person & timestamp Staff: fixed visual display of phone numbers on staff profiles Staff: fixed non-school-day check in New Absence not properly counting days Staff: fixed absence total in Manage Absences to include partial days Students: fixed H4 headings in application forms with custom fields Students: fixed missing data in Personal Document Summary report System Admin: fixed un-unserializable logs not showing up System Admin: fixed missing fields in Custom Fields import Tracking: fixed typo are message type in Graphing User Admin: fixed Force Password Reset not redirecting users User Admin: fixed users able to change roles for Student username format v24.0.01 -------- Security System: fixed character encoding conversion when sanitizing input from rich text fields v23.0.02 -------- Security System: fixed a session-related vulnerability and improved session defaults Bug Fixes System: fixed Google OAuth not correctly handling empty refresh tokens System: fixed SQL errors in the User Status Check & Fix CLI script System: fixed text field autocomplete issue caused by use of " in existing values System: fixed column order of Export to Excel option on Staff Dashboard Attendance: fixed non-attendance classes showing up in Set Future Absence Finance: fixed HTML being removed from notes on invoices Markbook: fixed rubrics not displaying for large classes in Enter Data page Messenger: fixed PHP 8+ error when sending messages to Class target Planner: fixed PHP 8 related error messages when editing units Reports: fixed error loading PDF previews of report templates Reports: fixed issue in Report creation when no reporting cycles exist Reports: fixed reports with only one page not displaying first page header Reports: fixed date handling in Internal Assessments by Course template Timetable: fixed bookings not displaying on timetable when calendars not in use Timetable: fixed TT opacity for short periods causing visual misalignment Tracking: fixed the Chart.js library on the Graphing page System Admin: fixed error message when exec function does not exist System Admin: fixed import error on Step 4 when using Update & Insert option v23.0.01 -------- Significant Changes System: activated the es_DO Español - República Dominicana locale Tweaks & Additions System Admin: added an import for School Year Terms System Admin: improved the reliability of the uploads folder check System Admin: improved login logs to include login method and user id Bug Fixes System: fixed user's personal language and theme not set after login System: fixed string replacements with {} placeholders not working Finance: fixed error when issuing an invoice to a Company invoicee System Admin: fixed HTML being stripped out of the privacy policy System Admin: fixed invalid password field in user imports in Import From File System Admin: fixed custom field headings not working for non-english locales System Admin: fixed blank User column for logins listed in View Logs Students: fixed student ID not working on main page of student profile Reports: fixed error in Scan Asset Directories when asset folder is missing v23.0.00 -------- Headlines Added support for Microsoft SSO and OAuth2-standard SSO Added support for database-driven sessions and encrypted session data Improved payment gateway including Stripe payment support Refactored the installer and improved install error handling Security System: important improvements to sanitization and encoding of input data Significant Changes System: improved session timeout when using multiple tabs or windows System: added ability to run CLI scripts remotely, with secure key System: removed deprecated functions no longer used in core and additional modules - addressFormat - dateConvert - dateConvertBack - dateConvertToTimestamp - formatName - formatPhone - getAge - getGibbonMailer - getModuleEntry - getSettingByScope - getUserPhoto - printUserPhoto - returnProcess - setLog - setNotification - tinymceStyleStripTags - ynExpander Activities: added the ability to configure activity types individually User Admin: added a user status log to track dates and reasons for status changes System Admin: added a Maintenance Mode which restricts login access to admin only System Admin: added an Active Sessions page to see who is currently logged in Changes With Important Notices Running the database updater will log out all users except the current admin user The allowableHTML setting has been updated, schools who have changed this value will want to check it Tweaks & Additions System: updated table actions to enable additional modules to use their own icon paths System: improved the appearance of the fatal error message page System: adjusted new student order in Staff Dashboard Enrolment tab System: in forms, update the current country phone code to always display first System: fixed typo in Public Registration notification System: updated the mobile responsive view to display alerts above the login form System: refactored all $_SESSION calls across the system System: changed force password reset information in Preferences from error to message System: updated the chart.js javascript library to v3.6.0 System: adjusted Excel export to format integers as numbers System: added CSS ID myClasses to sidebar Attendance: added the ability to Take Ad Hoc Attendance Attendance: added birthday icons to Take Attendance pages Behaviour: enabled Find Behaviour Patterns to filter Positive behaviour Departments: updated participant view so it does not require other modules Departments: highlight department coordinator, add hover text Finance: added ability to invoice students by class enrolment Library: added student Form Group to View Overdue Items report Messenger: updated New Message process to send SMS messages before emails Messenger: improved mobile responsive size of inserted images Planner: added facility name to Year Overview and Edit Working Copy pages, if available Planner: added explicit links to daily and weekly summary emails Reports: added default value for Yes/No criteria Rubrics: enabled visualization to use custom colours, if unique row colours are used School Admin: Changing the school year start date now deletes days that are no longer within the school year Staff: added a link to view coverage details on the Open Requests page Students: updated student enrolment dropdown to include students with Expected status System Admin: enabled creating multiple different email templates per type System Admin: added link to Import History at the top of Import from File System Admin: updated the alarm to mute after 10 continuous seconds of sound System Admin: added an uploads folder status check to system overview Timetable: added an option to click for more information in View Available Facilities/Teachers reports Timetable: added timetable day heading colours to View Timetable by Facility Timetable: added an ajax check for availability when making a facility change Timetable: redirect back to View Timetable by Facility when making a space change Timetable Admin: adjusted interface strings in timetable import Bug Fixes System: fixed the Validator class so sanitizeHTML is multibyte safe System: fixed phone number format for numbers 10 digits or greater System: added Markbook and Planner permissions to Parent and Student Dashboard System: fixed space before file extension causing failed file uploads System: fixed comma key clearing fast finder inputs System: fixed internal urls opening new tab in the nameLinked function Activities: fixed duplicate entries in Activity Choices by Student Activities: fixed modal view in Activity Choices by Student Attendance: fixed table header nomenclature in Classes Not Registered report Finance: fixed incorrect column placement in Export Invoices Messenger: fixed duplicate student names when using Individual Naming Messenger: changed New Quick Wall Message information from warning to message Planner: fixed school closure checks when bumping lessons forward and backward Planner: fixed smart block deletion not working in Edit Lesson Plan Planner: fixed planner deadlines page not filtering by class Planner: fixed outcomes dropdown in Lesson Planner when an outcome has no category Reports: fixed Student Info template borders when no image is present Reports: fixed bug when viewing uploaded reports from past years Rubrics: fixed rubric data before the go live date visible in Historical Data School Admin: fixed phone numbers not formatting in Manage Facilities Staff: fixed substitute unavailability showing previous school years Staff: fixed manually adding/editing absences on non-school days Staff: fixed Print action in Edit Application Form not opening in new tab Staff: fixed Edit User link on Manage Substitutes > Edit Substitute page Students: fixed missing Official Name fields for parents in Student Application import Students: fixed pagination in student view of View Student Profiles page System Admin: fixed PHP notice in importer when skipping serialized fields System Admin: fixed numeric field imports failing in MySQL 8.0.17 and above System Admin: fixed alarm system to indicate if staff have been marked absent Timetable: fixed timetable misalignment of times below transparent timetable blocks Timetable: fixed bug in View Available Facilities filter causing some spaces to appear available Timetable: fixed calendar options not persisting when using timetable switcher Timetable Admin: fixed class enrolment sync when courses belong to more than one year group User Admin: fixed return message for image upload failure v22.0.01 -------- Security Messenger: fixed sanitization of text when creating new messages Bug Fixes System: fixed lesson plan content in demo data System: fixed checks for existing fields in database migrations System: fixed cookie consent message to not redirect to the dashboard System: fixed parent dashboard hooks missing access to session object System: removed unused package file from session timeout library Data Updater: fixed data updates with only file uploads in personal documents auto-accepting Data Updater: fixed personal documents date bug Data Updater: fixed personal documents to only use nationality list for passport and ID documents Data Updater: fixed submit button on data updates with no changes Departments: fixed Left student role appearing in class list export Individual Needs: fixed some IN columns not visible on small screens Reports: fixed Left students showing up in the Archive by Student list Reports: fixed missing data in CustomFields template data source Reports: fixed error with empty milestones when creating a Reporting Cycle Reports: fixed issue where re-sending a report will break existing report download links Reports: fixed file uploads not working in Template Builder Students: fixed ID card background image alignment System Admin: fixed importing custom fields failing when existing fields value is null System Admin: fixed importing custom fields that have spaces around the values User Admin: fixed missing document enum data in migrated personal documents Deprecations: System: replaced tinymceStyleStripTags function with Validation::sanitizeRichText v22.0.00 -------- Headlines New core theme for Gibbon's 2021 look and feel Ability to manage and customize personal documents Improved custom fields system with new field types Enabled custom fields in many different areas of the system PHP 8 compatibility Significant Changes System Admin: improved support for custom themes System Admin: added the option to select a theme colour in Display Settings System: added an Enrolment tab to the Staff Dashboard System: added help buttons to the top of pages linking to documentation, when available System: renamed the old theme to Legacy, which is not installed by default Staff: addded a Staff Data Updater to enable requests for updates to staff records Changes With Important Notices System: changed interface strings from Roll Group to Form Group System: changed custom fields to store data as JSON rather than serialized data (as of v21.0.00) System: migrated all personal document data from gibbonPerson into gibbonPersonalDocument System: removed the vendor folder for Cutting Edge Code installations System: renamed the gibbonPersonField table to gibbonCustomField Students: migrated Blood Type and Tetanus fields from Medical Form into Custom Fields Tweaks & Additions System: added the Getting Started info to the post-install page System: added an Update All option to the Manage Languages page System: updated text to use darker colours for printable report pages System: added South Sudan as a country option System: added Mozambique Metical as currency option System: added hyperlinkAll method to Format class System: added Somali as language option in dropdown menus System: updated chart.js to v2.9.4 System: added Zulu as language option in dropdown menus System: adjusted Public Registration to notify even when account is set to Full immediately System: refactored non-function-based session variable calls in all core modules System: replaced all usage of deprecated PHPExcel library with PHPSpreadsheet Students: added logging for partial failures in application form accept Crowd Assessment: improved the view of comments in discussion threads Finance: removed student DOB and Gender from Export Invoices Formal Assessment: added attainment and effort descriptor as title to Internal Assessment view Formal Assessment: expanded name column in Internal Assessment to 30 chars Individual Needs: no longer require cognition field in IN investigations Library: added new Telephone type, with matching import Library: migrated fields to internally use JSON data Library: added new Rack-Mounted Server form factor type under Computer type Messenger: updated the send report to list any emails that failed to send Messenger: updated the send report to use the formatted email template when resending emails Planner: moved class chooser to the top of the sidebar Planner: removed the calendar from the sidebar, which is already available through the date picker Reports: added a help tool with Data Source information to Edit Component page Reports: added an option to delete report files from Generate Reports page Reports: clear report cache when editing template assets in Production Reports: added a download option to the student list of the View by Report page Reports: added a duplicate action in Template Builder Reports: added pagination to the Proof Reading page Reports: updated so Assistance with reportable access can write reports Reports: added names of teachers to the Proof Reading Edits notification Reports: added a Student Name Conflicts tool to check for other student names in report comments Reports: updated report writing overview to clarify class teacher vs editor School Admin: added ability to disable staff, student and parent dashboards Students: added Medical Form custom fields to student profile Students: updated Medical Data Summary to include medical custom fields Students: adjusted student select in Student Enrolment Add to only show unenrolled students Students: automatically add Student Note on form group change Students: added a Personal Document Summary report Students: added departure reason to student status text when Left/Leaving Students: added Next School to Student Withdraw process page System Admin: added option to manually invalidate front end cache for Cutting Edge installs System Admin: added a Reporting Values by Roll Group import option System Admin: updated user-related imports to enable importing by username or email address System Admin: added file uploader for choosing logo and background images in System Settings System Admin: prevent installing or updating a module that requires a newer core version System Admin: added Student Application Form import User Admin: added an option to restrict Public Registration to a list of allowed domains User Admin: added ability to enrol student when adding a new user with student primary role category User Admin: added setting to include Alternate Email in Public Registration form Tests: migrated test suite to GitHub actions, updated testing libraries to recent versions Timetable Admin: added an option to overwrite existing TT dates in Tie Days to Dates Timetable: added green cell background, and day colour highlight, to dates with days tied in Tie Days to Dates Timetable: added This Week button to View Timetable by Facility Timetable: enabled editing timetable spaces and adding facility changes from View Timetable by Facility Timetable: tweaked timetable to highlight the current period in green, even if there is no lesson Bug Fixes System: disabled context menu in TinyMCE which interferes with right clicking System: fixed personal language in Preferences not resetting to system default when blank System: fixed double error message when viewing Notifications page and not logged in System: fixed translation issue in hooked Dashboard tabs System: fixed validation of the username field in Public Registration System: fixed installer not running migrations for cutting edge code System: fixed blank IDs and blank date fields in the database Attendance: fixed non-prefillable logic for Take Attendance by Roll Group Attendance: fixed student attendance history when first weekday is Saturday Formal Assessment: fixed courses with multiple year groups causing duplicate Internal Assessment columns Markbook: fixed visual error in markbook comment expandable row Planner: fixed teachers not showing up in attendance with timetable exceptions in multiple classes on the same day Planner: fixed issue where sidebar calendar showed the wrong dates Planner: fixed suggested date when adding a new lesson plan to exclude school closures Reports: fixed error in mPdfRenderer due to missing getPageNumber method Reports: fixed error causing duplicate values when students move classes Staff: fixed pagination not working on Grid and Card view of Staff Directory Students: fixed pre-existing comments visible on student profile Markbook page after turning off comments Students: fixed emergency contacts not displaying family adults when more than one family exists System Admin: fixed cache not clearing when switching themes System Admin: fixed InnoDB update failing when code already up to date Timetable: fixed error adding class enrolment when one exists already Timetable: fixed View Available Spaces not working when room conflicts exist Deprecations Messenger: removed the pop-up Messenger bubbles Students: removed the extendedBriefProfile setting from student profiles System: deprecated the returnProcess function v21.0.01 -------- Tweaks & Additions System Admin: added post_max_size and upload_max_filesize PHP settings to System Check System Admin: updated Manage Languages to use i18n main branch instead of master Bug Fixes System: fixed import error for non-nullable numeric values Attendance: fixed missing attendance in Not Present and Not Onside reports Attendance: fixed non-prefillable class attendance overwriting First Class as School Attendance logs Planner: fixed smart block summary from replacing existing summary text in Edit Lesson Staff: fixed weekdays incorrect on Sundays in Weekly Absences report System Admin: fixed clear cache button in Cache Manager not using custom cache path v21.0.00 -------- Headlines Visual improvements to forms and menus New Data Retention and Data Privacy functionality New System Overview page showcasing available support options Improved tools and information for System Administrators Afrikaans and Ukrainian are now available as installable languages MySQL 8 compatibility Significant Changes System Admin: added Security & Privacy Settings and optional cookie consent banner System Admin: added a Manage Services page to view gibbonedu.com licenses and services System Admin: added an Email Templates section to customize emails sent by Gibbon Data Updater: data updates with no changes will now be automatically accepted Planner: added a setting to customize what homework is called throughout the planner Reports: added a Send Reports tool to bulk-send templated emails with download links Roll Groups: added new grouped action to restrict parent viewing to their own children's roll groups School Admin: added Email Summary Settings to manage daily and weekly email CLI scripts Students: added an optional application processing fee that can be sent manually by staff Students: added My Student History, offering a visual overview of all students ever taught Students: added Reports subpage to student profile for users with View by Student permissions Timetable Admin: added ability to duplicate Timetable Columns and Days Changes With Important Notices System: the new cookie consent message is enabled by default and will display for all users System: renamed CLI script planner_parentWeeklyEmailSummary.php to schoolAdmin_parentWeeklyEmailSummary.php Staff: removed roles-as-type in Manage Staff, reducing option to Teaching and Support and setting all non-Teaching users to Support Security Updated TinyMCE Editor to version 5.6.2 Tweaks & Additions System: added Romanian Leu as currency option System: updated complete homework to display in green on the Parent Dashboard System: added text labels to Print and Export options on report pages System: removed the unused gibbonPersonMedicalSymptoms table System: improved the error page when the database connection fails System: improved the update process and added a migration system to handle complex updates System: improved consistency in storage of colors in the database System: added ability to set first day of week to Saturday System: lengthened module Category field to 12 characters System: added a fallback to translateN for systems that don't have gettext System: added a server-side hard limit for session durations System: adjusted robots meta tag to dissuade Google from indexing Gibbon installs System: moved Public Registration link into a homepage tile Attendance: added an Offsite - Late option for attendance codes Crowd Assessment: changed error to message in conversation view Departments: improved course/class naming in Class view Data Updater: enabled address fields to be read only or hidden in Data Updater Settings Data Updater: adjusted language in user messages to focus on process not approval Finance: added a setting to customize Payment Type options Finance: added error logging to the email reminder process Finance: improved the layout of invoice emails, reminders and receipts Formal Assessment: added a bulk action for External Assessment Data Individual Needs: removed Notes & Review from parent view of individual needs information Library: added ID column to View Overdue Items report Library: enabled printing and exporting the Manage Catalog table Library: replaced borrowable column with responsible user in Manage Catalog Markbook: added error logging for failed file uploads on Enter Data page Markbook: enabled users with Edit Markbook_multiple and Edit Markbook_everything to edit grouped columns Messenger: tied messages to school year, added gibbonSchoolYearID for existing messages Messenger: added code to convery copy-pasted divs to paragraphs in New Quick Wall Message Messenger: messages sent by role or role category will honour user start and end dates Planner: updated the attendance list to exclude students with a timetable exception Planner: added smart block clarification to the Edit Working Copy page Planner: added a common template for all Upcoming Deadlines sections Planner: refactored the All Homework tables and added row colouring Planner: refactored the Parent Weekly Email Summary to match homework colouring Planner: replaced "Compulsory" with "Required" in relation to homework Planner: removed lessons with timetable exceptions from Today's Lessons on the dashboard Planner: adjusted the display of homework lists to account for class enrolment dates Planner: enabled homework to be submitted for lessons that already exist during a school closure Planner: brought student birthday icon display into line with class and form group view Planner: any staff can take attendance in the planner if they have Attendance by Class permission Planner: added the ability to set a time cap for homework Planner: changed error alert to message alert colour in chat view Reports: updated batch PDFs to display the download link once completed Reports: added full course name to the report writing page Reports: added a bulk delete action in the Edit Reporting Scopes page Reports: enabled plain text and numeric fields in Criteria Types Reports: removed Reports Available notification, replaced by Send Reports action Rubrics: added an option to colour rubric column and row headings School Admin: added Manage Medical Conditions action School Admin: added optional introductory text setting for the Medical Conditions section School Admin: added color picker to Manage Alert Levels page School Admin: updated library background colour selection to use colour picker Staff: removed the display of addresses in the Staff Profile Staff: restricted access to Emergency Contacts to users with Manage Staff_confidential Staff: added first aid information to Personal sub-page of staff profile Staff: added an optional First Aid Qualification field Staff: changed staff application email sender from System Administrator to HR Officer Students: updated application acceptance message to reflect automatically created medical record Students: added uniqueness checks for Student ID field Students: send notifications for student notes to the Head of Year, if available Students: adjusted the font size to scale down for names on Student ID cards Students: removed Student ID from View Student Profile_brief Students: added optional attachments to the medical condition section Students: added notifications for High and Medium medical conditions Students: added notifications for accepted applications with SEN/Medical needs Students: application forms accepted to upcoming years will set students to Expected Students: added Official Name to Left Students and New Students reports Students: improved the layout of Student Application acceptance emails School Admin: added optional descriptions for medical conditions System Admin: added a Cache Manager page to configure and clear template cache System Admin: added a Server Info page to view server configuration values System Admin: adjusted View Log to show only current year's log entries System Admin: added a Purge Logs action to the View Logs page System Admin: added a flag to import types to enable updating non-unique rows System Admin: moved Not Installed modules list before Installed modules Timetable: improved role ordering in class tables Timetable Admin: added a dateEnrolled and dateUnenrolled to class enrollments Timetable Admin: hide teachers listed as non-reportable from teacher lists Timetable Admin: added color picker to Edit Timetable Day section User Admin: added Guardian and Grandmother/Grandfather to emergency relationships User Admin: improved the layout of the Rollover form User Admin: moved Day Type Options from User Settings to Student Settings Bug Fixes System: fixed missing organization name on welcome page System: fixed date picker not using the First Day of the Week setting System: fixed validation not working for paginated bulk action forms System: fixed wrapping of long summaries in Today's Lessons System: fixed public registration failing for non-unique email when uniqueEmailAddress is not active System: fixed theme names with spaces from breaking background image Attendance: fixed sortable Class column in Student Not In Class report Data Updater: fixed passport expiry fields not properly hiding Departments: fixed attendance link not prefilling the current date Finance: fixed invoicee ordering bug in Add Invoice Finance: fixed table width in invoice email formatting Formal Assessment: removed Back link from delete modal Individual Needs: fixed description of Reason field in Manage Investigations Library: fixed broken delete function in Manage Catalog Markbook: fixed rubric data not visible for students set to Left in a class Messenger: fixed SMTP debug settings in New Message process page Messenger: fixed copy-pasted div/paragraph replacement in sender's copy of emails Messenger: fixed issue where read receipts weren't clickable until all messages sent Reports: fixed AttendanceByCycle data source counting school attendance as class attendance Reports: fixed MpdfRenderer not resetting headers when generating batch single files Reports: fixed Reporting Cycle Duplicate copying criteria from year to year Reports: fixed AttendanceByCycle incorrectly calculating with countClassAsSchool turned on Reports: fixed reporting cycle selection missing from Add Report Planner: fixed Outcomes by Course for courses with multiple year groups Planner: fixed alignment of birthday icon in attendance on Lesson page Planner: fixed empty My Class drop down in Deadlines for parents Staff: fixed alternate email address causing an error on Personal subpage Staff: fixed pagination for Grid and Card views of Staff Directory Staff: fixed SQL error submitting application form when logged in Students: fixed parent support link in application acceptance email Students: fixed students able to see other students in class lists Students: fixed issue preventing timetable edit link from working with Left students and allStudent flag Students: fixed missing alert bar in Markbook and Internal Assessment sub-pages in student profile System Admin: fixed PHP deprecation errors in CSV importer System Admin: fixed empty numeric values importing as 0 rather than null Timetable: fixed View Available Facilities not counting bookings on Fridays Timetable: fixed last week/next week links for facilities involved in multiple TTs Tracking: fixed Data Points export when internal or external data points set, but not both Tests: added fallback environment variables if .env is not defining DB details Tests: fixed HTTP to HTTPs, so SSL enabled environments don't fail Tests: fixed install suite admin username and password to be compliant with the default password requirements v20.0.00 -------- Headlines Messenger emails now send faster by using a background process View Logs feature to browse Gibbon event logs Added Español - Mexico as an available locale Compatible with PHP 7.4 Significant Changes Students: added a Withdraw Student page with the option to notify staff Reports: added an option to bulk upload existing report PDFs Tweaks & Additions System: added Argentine Peso and Ukrainian Hryvna as currency options System: updated Tailwind 1.2.0 dependencies via npm System: updated SessionTimeout with translation support and jQuery/jQuery UI dependency removed System: added target option to Alert Bar System: added a DetailsView table for displaying data System: updated the pre-login homepage to use a card layout System: added a comment editor and code editor to the Form library System: improved translation support in forms and tables throughout the system Departments: added drag-drop ordering to Departments in School Admin Finance: added Student ID, where set, to invoices and receipts Finance: applied email template to invoices, receipts, and reminders Messenger: added Parent and Student options to Applicants target in New Message Planner: enhanced Smart Block display in Lesson Planner Planner: removed bold from Chat comment in lesson plan view Reports: added a Proof Read by Form Group option Reports: added an option to select the PDF rendering library in Template Builder Reports: added hooks for custom criteria types in the report writing screen Reports: added the ability to select fonts in Template Builder Reports: added the option to generate single reports for Left students Reports: added alerts to student details in Write Reports Reports: added auto resize to comment text boxes in Write Reports Reports: changed criteria status to Locked/Unlocked for better clarity Reports: added a progress bar to the sidebar in Write Reports Reports: added himself/herself to the pronoun checker Reports: added a live-reload to report generating progress bar School Admin: changed names in Edit Attendance Code to readonly Staff: added an option to edit or delete staff coverage dates Staff: added Family and Activities subpages to Staff Profile Staff: added notificaton events for New and Left staff Students: added an Exclude Left Students checkbox to Student Enrolment Trends, off by default Students: added option allowing the referee email field in the Application Form to be set to option Students: added a grid view of student's teachers to Student Profile Timetable: added Bookings into View Available Facilities report User Admin: added rich text editors to the Application Form Settings User Admin: added an option to enter a departure reason for final year students in Rollover User Admin: added an option to create a linked staff record for new users User Admin: added no record warning to View Role User Admin: switched from warning to message in Edit User Bug Fixes System: fixed module uninstall to also remove notification events System: fixed Quick File Upload trimming filename by first period System: fixed paragraph spacing in copy-pasted Messenger emails System: fixed hourly cache refresh for pinned messages System: fixed the first and last day of the selected school year Activities: fixed Attendance History by Activity table scroll Attendance: fixed Attendance Summary by Date displaying "no results" before form submitted Finance: fixed fee name bug in issued Invoices where fee name changed Finance: fixed invoices not viewable by student Planner: changed spelling of Publically to Publicly Planner: removed debug code from homework submission Planner: removed ability for students and parents to be granted Lesson Planner_viewAllEditMyClasses Staff: fixed Left staff appearing in Weekly Absences report Staff: fixed Staff Directory only exporting first 50 staff members Staff: fixed staff directory export when viewing grid or card view Students: fixed emergency data report not showing parents column Students: fixed Tutors and EAs set to Left showing on Student Profile Students: fixed past enrolments showing up in Students by Form Group Students: adjusted Add Student Enrolment to allow Full and Expected students to be selected and enroled Students: ensure alert bar in Student Profile does not display for Parents or Students Reports: fixed Course scope Per Group criteria not saving per-class Reports: suppressed TCPDF deprecation messages when generating PDFs Reports: fixed pronoun switching not applied globally in some browsers Reports: fixed Student Info template to omit empty student photos Reports: fixed AttendanceByCycle data source and updated it to apply countClassAsSchool setting Reports: fixed grade scale drown-downs for Per Group reporting criteria Reports: fixed bug in Internal Assessment data source Reports: adjusted student lists to honour Reportable flag Reports: applied gibbonCourseClassPerson reportable flag to queries Reports: fixed uniqueness check in Manage Reports to include school year Reports: fixed stylesheet missing when generating batch PDFs Roll Groups: fixed link to print action from Roll Group details page System Admin: fixed File Permission display issue in System Check System Admin: fixed issue causing string replacement preventing update highlighting in Manage Modules Timetable: escaped calendar event names in timetable tooltips Timetable: incremented gibbonTTImport course and class name field lengths Timetable Admin: implemented bulk Tie Days to Dates duplicate checking Timetable Admin: fixed Course Enrolment by Class unable to delete duplicate entries Timetable Admin: fixed missing Back to Search links in course enrolment pages v19.0.00 -------- Headlines Reports module enables users to write reports, proof read comments, generate PDFs, and view report archives Individual Needs Investigations functionality allows data gathering around students with individual needs Messages can now be pinned to the top of the message wall, and optionally displayed above the dashboard Expanded Staff Directory replaces View Staff Profiles Activated German as an available language Changes With Important Notices System: added a redirect to the Update page when database updates are required System: split Daily Attendance CLI into separate form group and class scripts System: upgrade path limited to v14.0.00 and higher Significant Changes System: added Year Switcher to staff homepage sidebar Planner: added "View Only" sub-action to Lesson Planner User Admin: added a View Role page in Manage Roles to display all actions and users per role Tweaks & Additions System: added Maldivian Rufiyaa and Malagasy Ariary as a currency options System: updated DatePicker to use gibboni18n date format System: updated SpreadsheetRenderer to write cell contents as plain text System: updated TinyMCE allowable HTML to include details, summary and code blocks System: improved the display of checkbox and radio list items in forms System: added Malagasy and Maldivian as selectable languages System: added a sticky header to refactored data tables System: refactored the Sound Alarm system System: added a setting to toggle background processing System: added a general-purpose DiscussionGateway class Activities: added a Year Group filter in Manage Activities Attendance: added an option to record the first class attendance in a day as school-wide attendance Attendance: added an option to disable prefilling by attendance code, applied to Present - Late by default Attendance: added Consecutive Absence report to list all students who have been absent for the last N school days Attendance: updated Student History to still display class attendance when countClassAsSchool in N Attendance: added a Students Not In Class report Behaviour: added a Copy To Notes feature Behaviour: added settings to toggle notifications for Tutors and Education Assistants Form Groups: added staff-only summary of Year Groups after Form Group listing Messenger: added a Copy to Next Year bulk-option for Manage Groups Messenger: eliminated non-recipient siblings from Send Report Messenger: addition of student name(s) to emails sent to parents Messenger: adjusted the default sending options for non-staff users Messenger: low SMS credit notification when fewer than 1,000 credits remain Messenger: added ability to pin messages to the top of the message wall Messenger: added a setting to display pinned messages above the dashboard Messenger: allow access to View Message Wall for roles with category Other School Admin: renamed IN Settings to Individual Needs Settings School Admin: removed the prefix Manage from settings pages Staff: added a Weekly View and Daily View to Substitute Availability report Staff: added a Substitute Information setting for displaying text on My Coverage page Staff: added a Staff Coverage Summary report with total days covered per substitute Staff: added template setting for Absence Comment field Students: improved display of Teachers' emails in student profile Students: added extra permission allowing editing and deleting of all Notes Students: adjusted Privacy options to display even if blurb is not set Students: adjusted Application Form to allow showing of Language Selection blurb without fields Students: added template setting for Description field in First Aid Record Students: turned First Aid Record Followup into a non-editable log Timetable Admin: included student reportable flag in student enrolment Timetable Admin: enabled users who can search All Users to also see Left students User Admin: increased Student ID field max length to 15 User Admin: added Citizenship 1 and Citizenship 2 Passport Expiry date fields User Admin: added a Login Troubleshooting section to Reset Password page Bug Fixes System: fixed installer bug where passwords are unnecessarily encoded System: fixed date picker validation error for Polish language System: fixed Notification Events to only send to users who have status Full System: adjusted date formats for German language System: fixed translatability issue of Public Registration text System: fixed pagination setting so it correctly controls table size System: fixed Dashboard error for users with role category Other System: fixed Fast Finder bug on mobile when entering search text Activities: improved interface string advising users of disabled external activity registration Activities: fixed bug preventing viewing activity details in Activity Choices by Student when listing closed Activities: fixed permission error for View action in Activity Choices By Student and Student Profile Attendance: fixed missing data in printable view of Student History Attendance: fixed Set Future Absence to only allow future dates Departments: fixed permission check causing Export to Excel to fail Departments: fixed Export to Excel to work on iOS devices Finance: fixed missing payment info in invoice receipt email for multiple partial payments Finance: fixed missing Other category for installs with no demo data Finance: fixed Manage Invoices bulk actions not refreshing after changing filters Finance: fixed inactive fees showing up in dropdown lists Library: set Bookable to No by default on Add record screen Library: fixed Status field not being set when not borrowable Markbook: implemented unit ordering and date ordering for unit and lesson fields Messenger: fixed bug when sending parent and student SMS for Attendance status Messenger: fixed bug where users could create a message with no available delivery options Planner: fixed non-functional Smart Block Template setting Planner: fixed Unit Planner bug causing actions to appear in Classes table for newly created units Planner: implemented unit ordering field in Lesson Planner Rubrics: fixed bug where non-english locales displayed rubric visualization as gray School Admin: fixed Browse Library BG Image field length bug School Admin: fixed typo to use instead instead of isntead Staff: fixed Cancel Coverage button not available for future coverage Staff: fixed Delete Staff Absence to also delete any related coverage Staff: limited open coverage requests to the type of sub requested Staff: fixed staff coverage date not removed when deleting absence date Staff: fixed multi-day coverage only showing one day on the timetable Staff: fixed View Absences to only show the current year by default Staff: fixed Left staff not accessible from View Staff Profiles page Students: adjusted official name size in ID card for long-named students Students: fixed timetable chooser not working on student profile pages Deprecations System: removed Smart Workflow Help feature v18.0.01 -------- Bug Fixes System: fixed installer bug causing 'A database connection couldn't be established' error v18.0.00 -------- Headlines Mobile responsive layouts and improved navigation on all screen sizes Responsive HTML email templates for outgoing notifications and messages New staff absence tracking feature, including approval and reports New tools for booking substitute coverage and notifying users Activated Urdu and Croatian as available languages Added Burmese as a development language Changes With Important Notices System: removed Likes/Stars feature Messenger: messages targeted to Applicants now only go to Accepted Significant Changes System: added Tailwind CSS and a webpack-based build process Attendance: replaced the attendance pre-fill settings with Count Class Attendance as School Attendance Attendance: updated the Student History page to be responsive, added tooltip information Data Updater: allow fields to be required, read-only or hidden based on role in Data Updater Settings Rubrics: added ability to export Visualise chart to PNG Tweaks & Additions System: added an option to select SMTP encryption in Third Party Settings System: added Omani Rial, Albanian Lek & Zambian Kwacha as a currency option System: added a nicer Arabic font, improved RTL layouts System: improved the form validation highlighting of invalid fields System: improved translation of data table columns and date/time values System: made disabled checkboxes more visible System: refactored all breadcrumb navigation links System: updated Google login scopes to remove plus.me, based on Google API changes System: updated the Google login button to be responsive and translatable Attendance: added ability to set future absence for multiple students Attendance: updated Take Attendance by Person logs to separate class and school wide attendance Form Groups: hide student count from non-staff in View Form Groups Individual Needs: added an Individual Needs Overview report with chart Markbook: added a Reset Order button in View Markbook Planner: improved icon consistency to Concept Explorer School Admin: increased field lengths for Roll Group name and nameShort School Admin: updated action categories Assessment to Assess School Admin: updated action categories Teaching & Learning to Learn Students: added link from student profile to Individual Needs edit screen System Admin: added a clear cache option under System Check System Admin: updated importer to add Skip Non-Required Fields option when importing partial data Timetable: updated View Timetable by Person to access Expected users when All Users filter is enabled User Admin: added staff absence and coverage settings to Manage Staff Settings User Admin: moved Manage Student Settings into User Admin module User Admin: updated username validation to allow latin and CJK characters Bug Fixes System: fixed errant HTML issue in Smart Workflow on Deadlines page System: fixed index_custom.php content not loading on first login System: fixed issue leading to no theme on login if a personal theme has been removed from the system System: fixed missing globals in custom index scripts System: fixed non-rendering HTML issue in Welcome text on logged-out index System: fixed PHP fatal error when gettext not installed System: fixed SQL key integer length in database tables to ensure referential integrity System: fixed template cache to automatically disable when upgrading the core System: fixed typos and improved interface string consistency Finance: fixed spelling error in Manage Invoices Library: fixed bug leading to loss of main user/owner field value in item edit Library: removed lending icon for items that are not borrowable Markbook: fixed bug preventing parents and students from viewing the markbook with work submitted to a lesson plan Markbook: fixed column order not persisting when more than 25 columns Markbook: fixed column title showing term's name when the term filter is applied in View Markbook Markbook: fixed column widths when modified assessment is enabled Staff: fixed staff photo not displaying on Facilities sub-page in staff profile Staff: fixed translation of facilities table in Staff profile System Admin: fixed typo in Google integration settings Timetable Admin: fixed Course Enrolment by Class to count students before their start date as Expected Timetable Admin: fixed malformed translatable interface strings Timetable: fixed some staff not showing up in View Timetable by Person User Admin: fixed issue preventing action names from being translated in Manage Permissions Deprecations Planner: removed Unit embed Planner: removed Smart Block to Lesson outcome mapping Planner: removed Unit hook Planner: removed Star Block v17.0.00 -------- Headlines Added data visualisation to Rubrics through the Markbook View Added an improved set of file import options to System Admin Languages can now be installed and updated through Manage Languages in System Admin Activated Hebrew and Turkish as available languages Improved the display of right-to-left languages Added ability to select an SMS gateway: OneWaySMS, Twilio, Nexmo, Clockwork, TextLocal, and Mail to SMS Changes With Important Notices System: increased minimum PHP version to 7.0 System: added the Twig templating engine as part of our ongoing refactoring for the core System: moved PHP elements of /lib to /vendor System: moved files in /assets to /resources/assets Significant Changes System: refactored many of the tables and reports, which now support pagination, sorting and filtering System: removed upgrade path for v11.0.00 and below Tweaks & Additions System: added ability to set background image System: added country code and correct spelling of Vietnam and Russia System: added Eastern Caribbean Dollars and Guatemalan Quetzal as currencies System: added Sinhala to list of languages System: added Sri Lankan Rupee as a currency option System: added the ability to set the current language with an i18n URL parameter System: added the option to display all records in a paginated table System: increased the max email length to 75 chars for all forms System: updated robots.txt to disallow all indexing System: updated vis.js library to v4.21.0 Behaviour: added a notification event for Updated Behaviour Record Data Updater: added a Family Data Updater History report Data Updater: added parent email to Family Data Updater History Data Updater: added school year navigation to Manage Updates Data Updater: implemented cutoff date prefill in Personal Updater History report Departments: added Student ID field to class participants export Finance: added default check to Company email checkbox when editing an invoice Finance: adjusted email checkbox list in Edit Invoice to only show parents with status of Full Finance: adjusted Student filter in Manage Invoices to show Left students Markbook: added a search option to the filters in Markbook View Markbook: added school wide-option allowing teachers to specify "Modified Assessment" for student with individual needs Messenger: added an option in Messenger Settings to bcc all messenger emails to a set of recipients Messenger: added cache refresh on success in New Message and New Quick Wall Message Messenger: added missing Group target information into Manage Messages view Messenger: added row colouring to By Roll Group report, and made it default view Messenger: amended default confirmLink text in New Message Messenger: updated the Year Group target for Staff to only include tutors and teachers of courses in the same year group Planner: added SMTP persistence to weekly summary CLI script Planner: improved accessibility of link from Scope & Sequence to Dump Unit Planner: improved field labelling in Lesson Planner Add and Edit screens Planner: improved link logic in lesson plan participant grid Roll Groups: improved link logic in roll group grid Staff: added a Mark as Left bulk action to Manage Staff Students: added the option to enter a username and student ID in the For Office Use section of the Application Form Students: adjusted Student Enrolment/course enrolment sync logic to mark students as left instead of deleting them Students: updated how the Privacy section is displayed in application and data updater forms Timetable Admin: increase length of Course Short Name and Class Name and Short Name fields Timetable: added a facility booking button to the timetable in View Timetable by Facility User Admin: added a separate permission for Manage Users without the ability to delete user data User Admin: added ability to include custom fields in public registration form User Admin: added an option in Manage Roles to toggle login access for all users of a particular role User Admin: added missing custom field description into OOified forms User Admin: added the ability to change usernames which will check to ensure it's still unique Bug Fixes System: fixed an issue with hidden fields in bulk action forms after pagination System: fixed demo data issue causing FL07 demo unit not to show in Unit Planner System: fixed IE incompatibility with javascript and select inputs System: fixed incorrect return value in Public Registration when user is below the minimum age System: fixed term date issue in gibbon.sql Activities: fixed incorrect count in Registered column in Activity Enrolment Summary Activities: post-OOification fix to include All Users in Staff selection for in Manage Activities Attendance: fixed an error in the parent view of Student History for PHP 7.1+ Attendance: fixed bug which breaks table count in Students Not Onsite and Students Not Present report print view Attendance: fixed date links in View Daily Attendance opening a new tab Attendance: fixed error message text for attendance taken in the future Crowd Assessment: fixed bug preventing student seeing their own work when Submitter is only student option selected Data Updater: fixed comment bug in Medical Updates Data Updater: fixed country-specific field label bug in Manage Personal Data Updates Data Updater: fixed dashboard issue on servers with sql_mode=only_full_group_by Data Updater: fixed gibbonMedicalConditionID as name bug in medical conditions and updates Data Updater: fixed interface string issue in Data Update request screens Data Updater: fixed non-compliance indicator bug in Updater History reports Departments: fixed bug displaying Left classes under My Classes in sidebar Finance: fixed inability to comment on an expense request for users with Write access Finance: fixed Left parents displaying in invoices and receipts Finance: fixed the bug that prevented saving the value of the field "status" in the table "gibbonFinanceBudgetCycle" when the current Gibbon language is other than English Formal Assessment: fixed unclickable link in View Internal Assessments Individual Needs: removed Submit button when viewing and archived IEP Markbook: fixed bug in handling personalised attainment targets when using scales other than class scale Markbook: fixed inconsistent naming of class teachers Markbook: fixed shifted table cells in Markbook View class average when cumulative averages are enabled Messenger: fixed a PHP error in Edit Message related to message targets permissions Messenger: fixed empty target type in gibbonMessengerReceipt when Group target is used Messenger: fixed messages not displaying on Message Wall for Transport and Group targets Messenger: fixed minor post-OOification bug causing unnecssary display of Parent 2 resent checkbox in send report Messenger: removed Body column from Canned Response table Messenger: restricted Manage Groups view to display groups from the current school year only Planner: fixed multibyte string issue when dumping unit resources Planner: fixed no records error message in Parent view of planner Planner: fixed row stripping in Access Control field in Add and Edit Planner: fixed school year name on Edit Unit page Planner: supressed autocomplete in Lesson Planner date fields School Admin: increased School Year name field length to 15 characters Students: fixed displayed name of First Aider in Edit First Aid Record Students: fixed pre-select of Student when adding medical form from Student Profile Students: fixed searching by parent email address in View Student Profile Students: removed non-students from New Students report, when Ignore Status in use System Admin: fixed bug which turned custom alarm into general alarm Timetable Admin: fixed course sync for courses with multiple year groups Timetable: fixed logic to correctly display Back To Search Results for parents in View Timetable by Person Timetable: fixed unable to turn Bookings checkbox off in View Timetable by Person Timetable: removed All Users filter option for non-Staff in View Timetable by Person User Admin: fixed bug preventing correct display of existing Privacy and Student Agreement options in user edit User Admin: fixed name display bug in Enrol New Students (Status Full) section of Rollover Deprecations System: deprecated getGibbonMailer function, replaced with Mailer wrapper Markbook: removed WordPress Comment Push functionality v16.0.01 -------- Tweaks & Bug Fixes System: fix PHP5.5 incompatibility in FormatResolver class v16.0.00 -------- Headlines Activated Simplified Chinese and Polish as available languages Added Croatian and Estonian as development languages Added a My Data Updates overview and settings to redirect users to Data Updater on login New Messenger Groups action for custom mailing lists Added new object-oriented table API, and implemented across 30% of the system Changes With Important Notices System: added tool for InnoDB database table storage engine migration: if you are already running InnoDB remove lines 906 and 907 from CHANGEDB.php before upgrading System: fixed Cutting Edge detect/set issue in installer, impacting Cutting Edge installs from v15-16 (which may need to be reinstalled) Tweaks & Bug Fixes System: improved IP address handling in setLog function System: added United Arab Emirates Dirham, Colombian Peso, Fijian Dollar and West African Francs as currencies System: adjusted notifications icon so it is clickable even when there are no notifications System: fixed error with deleting a record when multiple tabs are open for the same session System: moved Russian Ruble from PayPal to Other section in currency listing System: added Afaan Oromo as development language System: made translation credits in footer fairer System: simplified UI text in Parent Dashboard System: fixed a user photo upload issue involving usernames with a dot in them System: fixed issue preventing timezone string field description from being translated System: added timezones strings to translatable string list System: improved timezone selection process by using select instead of text field System: moved footer logo style into theme CSS System: restored Cutting Edge status message to installer System: added setting of HELO value when sending mail with SMTP System: improved selection mechanism in Module Menu when sidebar is hidden Activities: added notifications when students are bumped up into an activity on self unenrolment Activities: added logging of student activity changes in order to track sign up history Activities: added Activity Choices by Roll Group for ease of looking up student's activity times Activities: added Media bar to Description field in add and edit screens Activities: fixed bug causing non-students enroled in activities to go missing from Manage Enrolment view Attendance: added option for redirect to message wall after self registration has been taken Attendance: added year group selectors to reports for not present and not onsite Attendance: added ability for students to view their own attendance data for the current year Attendance: added ability to delete attendance with Manage Attendance Logs permission in Attendance by Person Attendance: fixed date format for links in View Daily Attendance Data Updater: added links to Manage Update pages to easily find and edit the associated records Finance: added logging for failed bulk email sends Finance: add a Mark as Paid bulk action in Manage Invoices Finance: add Credit Card payment type to gibbonPayment table Finance: added ability to issue reminders (individually and in bulk) for invocies with status Paid - Partial Form Groups: added link to print listing of students in form group detail view Form Groups: fixed bug offering non-permissioned users the opportunity to print Formal Assessment: fixed PHP Notice and interface string issues Library: simplified interface for Duplicate in Manage Catalog Library: fixed PHP warning in Library's type-specific fields AJAX script Markbook: fixed multi-byte string length issue causing automatic comment expansion in Markbook view Markbook: fixed parent/student access issues when viewing markbook columns Messenger: added the ability to resend in By Roll Group view in View Send Report Messenger: added ability for uses with Manage Messages_all to resend on behalf of others Messenger: fixed bug causing non-Accepted applicant names to display with an error in Send Report Messenger: added SMS send logging to allow missing messages to be tracked Messenger: improvement to protection against big/slow email sends Messenger: removed caching for messanger count on homepage, so count is always accurate Messenger: added email send failure logging to allow missing emails to be tracked Messenger: added connection persistence to SMTP sending Planner: added "Notify" feature to lesson creating and editing Planner: fixed module name substitution in links in Lesson Planner Planner: added Smart Blocks tab to Unit Overview in Lesson Planner Planner: added indexes to gibbonLike database table to improve performance Planner: fixed translatable string error in Lesson Planner Staff: fixed bug in parameter passing in Add in Manage Staff Students: added sibling and family information to Letters Home by Roll Group Students: added Comment field to medical form, linked to student application form. Students: added View option to Students by Form Group report, allowing Basic or Extended view Students: changed School Attendance sub page to Attendance to improve UI consistency Students: adjusted logic in student enrolment visualisation to include students who are not 'Full' Students: adjusted layout of Uploaded Response link in Markbook in Student Profile view School Admin: updated Finance Settings email to default to organisation email if blank School Admin: extend length of name field in Manage Houses to 30 chars School Admin: added Head of Year to Manage Year Groups and integrated into Students School Admin: fixed breadcrumb text issue in Manage Finance Settings System Admin: fixed bug causing theme names with spaces to break the theme installer System Admin: fixed spelling error in Department settings System Admin: fixed typo in Third Party Settings Timetable: added This Week link to timetable date navigation in Timetable by Person Timetable: added highlight to the current day column in Timetable by Person and Facility Timetable: fixed error is specification of gibbonTT database table Timetable: added index on gibbonPersonID for table gibbonCourseClassPerson Timetable: added the special day name to the timetable for school closures Timetable Admin: added school year selector to Sync Course Enrolment Timetable Admin: made search persistent on return from course delete User Admin: fixed Child's Name list in Edit Family to include all students User Admin: fixed bug preventing some family links from showing up in Manage Users User Admin: removed Back link from child and adult delete modals in Manage Families User Admin: tweaked user CLI to better handle parents in multiple families User Admin: added staff import feature User Admin: added an alphanumeric requirement for usernames in Add User User Admin: added fix to prevent the logged in user from deleting themselves. User Admin: fixed typo in description for Day-Type Text setting User Admin: fixed gibbonPersonID int length in gibbonFamilyAdult and gibbonFamilyChild v15.0.01 -------- Security Fixed privacy-related issue in Student Profile permissions v15.0.00 -------- Headlines Code base refactoring of all interface forms Timetable Admin: added ability to map classes to Roll Group, sync enrolments, and auto-enrol new students Activated Brazilian Portuguese as complete languages Changes With Important Notices Planner: integrated Resources into the Planner module (/modules/Resources needs to be manually removed) Security System: fixed security vulnerability in the installer System: added validation and output escaping to Personal Background URL in Preferences Tweaks & Bug Fixes System: fixed erroneous Georgian language code System: added Greek and Amharic as development languages System: added South African Rand, Trinidad & Tobago Dollar, Swedish Krona, Chinese Renminbi and Russian Ruble as currencies System: fixed missing form validation for dropdowns created with User Custom Fields System: updated Google OAuth library to latest version (v2.2.0) System: fixed Sign In With Google to fix missing token refresh issue System: fixed timezone not being set in CLI scripts System: fixed bug preventing activity day from being correctly shown in Parent Dashboard System: added login options to Login with Google button System: added mbstring extension to the system requirements list System: fixed text alginment in module menu System: fixed long-string and large image issue causing content to bleed under sidebar System: fixed bug causing two entries in a module menu to be highlighted as active in some cases System: added Enable Smart Workflow Help option to Preferences System: removed personal settings form from Preferences when force reset in effect System: adjusted Today's Classes in Student and Parent dashboard to show on non-school days System: shortened abbreviation of core system roles Activities: added new payment fields to activities (cost type and cost status) Activities: fixed database field length issue in gibbonActivityStaff Activities: fixed minor display issue in Terms column in View Activities Activities: fixed term display bug in Manage Activities Attendance: fixed GROUP BY issue in moduleFunctions.php when MySQL is using only_full_group_by Attendance: adjusted attendance checking CLI script to only include lessons whose start time has already passed Attendance: show staff dashboard link to attendance only if user has access to Form Group attendance Attendance: added count column to Students Not Present and Students Not Onsite reports Attendance: granted like to those students who successfully self register Attendance: added selective auto-redirect to move students to self-registration page under certain conditions Attendance: added a warning to Attendance by Class when not currently timetabled for the selected date Behaviour: fixed typo in three settings Behaviour: fixed broken link to Edit in Step 2 of adding a behaviour record in Manage Behaviour Departments: fixed bug preventing students from seeing other students in a class Departments: fixed sidebar heading size issue Finance: set name of outgoing email to school name, not user's name Finance: fixed missing email address issue in Company invoices and receipts Individual Needs: added ability to record educational assistants for a student Library: added Optical Media as item type Library: added replacement fields to import Markbook: fixed multibyte character error in comment summary Messenger: fixed multibyte substring issue in homepage widget Messenger: added username to Individual select, to distinguish people with the same name Planner: updated attendance to only hide the reason and comment fields if Present is the default attendance Planner: added optional Markbook section (off by default) to weekly planner summary email Planner: fixed bug preventing Add icon from appearing for teachers under date view in Lesson Planner Roll Groups: fixed bug preventing alerts from showing Rubrics: reduced wait time on rubric load for schools with lots of rubric data School Admin: updated Manage School Years to prevent removing or unsetting the current School Year School Admin: added an Assign Houses tool to bulk assign students to houses by Year Group Staff: fixed entryURL for full version of View Staff Students: fixed School History section in Student Profile to exclude upcoming years Students: fixed Application Form for logged in users not selecting a family by default (if one exists) Students: fixed interface string issue in student details screen Students: fixed display of Other Fields heading for parents in Application Form Students: added a notification event for Application Form Accepted Students: added an option for logged-in users to link new Application Forms to an existing user or family Students: added ability to delete files and upload multiple files in Edit Application Form Students: amended Academic alert to account only for data in the last 60 days Students: when Timetable is disabled, View Student Details now displays list of classes in Overview Students: adjusted Application Form acceptance emails to students and parents to come from admissions administrator, not system administrator System Admin: increased length of Absolute URL and Absolute Path to 100 characters System Admin: updated version check to handle semantic version numbers Timetable: added ability to set and display text and background colour for timetable day headers Timetable: adjusted font size for shorter lessons to allow display or facility name Timetable: adjusted timetable on homepage to show next week if today is a Sunday with no school Timetable: fixed rendering issue when week starts Sunday but Sunday is not a school day (and similar cases) Timetable Admin: added link from course view in Manage Courses & Classes to edit class enrolment Timetable Admin: updated Course Enrolment Rollover to prevent duplicates and not copy users set to Left Timetable Admin: fixed Course Enrolment by Person to allow staff category without All Users checked Timetable Admin: removed Left users from class participant count in edit view in Manage Courses User Admin: improved usability of feedback in Step 3 of the rollover User Admin: made Pending Approval option in Status in edit User appear only if Public Registration is enabled User Admin: updated Add User and Edit User to allow PDF files for ID documents User Admin: added ability to set username formats by role in User Settings User Admin: added a button to generate usernames in Add User User Admin: added an Available Years of Entry setting to select which years are available in the student application User Admin: added a setting to require a user's primary email address to be unique User Admin: added a settings to adjust the formatting of staff names in Manage Staff Settings v14.0.01 -------- Security Fixed role switcher privilege escalation issue v14.0.00 -------- Headlines Object oriented form API Added the ability to manage system notifications and send specific notices to different users Activated Albanian, Thai and Vietnamese as complete languages Changes With Important Notices Attendance: fixed default reason from Pending to blank, reset all reasons for existing Present, Pending logs Attendance: dropped legacy tables gibbonPlannerEntryAttendance, gibbonPlannerEntryAttendanceLog Significant Changes System: added unit and acceptance testing environments for Gibbon developers Security System: fixed PHP code execution vulnerability System: fixed infinite nested index reload bug System: tightened rules for valid elements in TinyMCE text fields System: removed Allowable HTML from System Settings interface System: updated PHPMailer to latest version System: removed all code samples from /lib libraries System: fixed SVG code execution vulnerability System: added input sanitization to public forms Tweaks & Bug Fixes System: improved Fast Finder student search permissions System: added Albanian and Thai as development languages System: added Moroccan dirham as a currency option System: upgraded jQuery to v2.2.4 and jQuery Migrate to v1.4.1 System: fixed bug preventing jQuery Chained from working properly System: allow user login with either username or email, if email is unique System: added Myanmar, Burmese, Filipino to list of languages, fixed Croatian, Ukrainian, Swedish spelling System: added logging to Google OAuth login System: fixed broken Credits link in footer System: removed Media plugin from tinyMCE System: added timestamp update when incrementing notification count System: fixed error messages and failed login redirect on Google login page System: added ability to set mysql port through config.php System: moved registration link from main panel to sidebar System: fixed issue preventing Excel export from root level files System: fixed PHP notice for undefined default staff dashboard tab System: fixed string issue in Behaviour section of Staff Dashboard Activities: added optional permission for activity organisers to manage their activities enrolment Activities: fixed PHP Notice error (repeated many times) in activity add and edit interfaces Activities: added optional permission for activity organisers to take attendance only within their activities Activities: added term filter to manage view Activities: fixed PHP warnings in Edit Activity Enrolment when access via My Activities. Activities: added upper limit to number of columns in Printable Attendance Sheet Activities: fixed total attendance counts to exclude left students Activities: fixed PHP notice in Manage Enrolment Activities: fixed PHP notice on status field in Activity Spread by Roll Group Attendance: added ability (off by default) for students to register themselves as Present, when within a set of IP addresses Attendance: added explicitly stored context recording where attendance was taken Attendance: added settings to determine pre-filling of attendance in different contexts Attendance: added settings to determine default type in different contexts Attendance: added dynamic legend for Student History report Attendance: added extra role to allow form group attendance to be restricted to own form group Attendance: updated Take Attendance by Class to exclude students with timetable exceptions Attendance: fixed pre-filled attendance to always display the most recent attendance log Attendance: updated pre-filled class attendance to not pre-fill for another class Crowd Assessment: fixed parent role determination error Data Updater: made various fields optional when user has _any privileges Data Updater: fixed PHP notice for empty array in Student Data Updater History Data Updater: fixed PHP notice for address country fields in Personal Data Updater Finance: added ability to bulk issue invoices without sending email Finance: tweaked interface for display of payment log to make it more usable Finance: added ability to view and print receipts for refunded invoices Finance: fixed bug preventing reminder emails from being sent Finance: fixed bug leading to invoice values changing (in print view only) after issue Finance: added reminder number to Email Reminder section header in overdue invoice edit view Finance: removed incorrectly applied currency label from expense export Finance: fixed PHP notices for unset IDs in Manage Expenses and My Expense Requests Formal Assessment: improved layout of Internal Assessment view Formal Assessment: fixed incorrect string wrapping for translation in Internal Assessment import Formal Assessment: fixed visual issue in column header of Write view in Internal Assessment Library: added new type to store Audio/Visual equipment Library: fixed button label in Edit view in Lending & Activity Log Library: fixed empty Link field when in Edit view in Manage Catalog Markbook: added a class average row to the bottom of markbook views (when Weighting is enabled) Markbook: fixed order for first markbook column not saving properly Markbook: allow decimal values for markbook column attainment raw max Markbook: fixed custom Attainment label for Total Mark field Markbook: added a markbook setting to enable display of cumulative marks on View Markbook and Student Profile pages Markbook: added a permission for teachers to only view their own markbook information Messenger: fixed issue leaking custom Messenger bubble background onto screen Messenger: fixed duplicate course names for message target Messenger: removed call to isSMTP in message process when not using SMTP Planner: adjusted permissions to allow teachers with Planner_viewAllEditMyClasses rights to view Unit Overview for classes they don't teach Planner: fixed bug causing incorrect Satisfactory count in Work Summary by Form Group report Planner: fixed PHP notice issue when listing lessons with unit that no longer exists Planner: added resources from unit outline to the resources tab in Unit Dump Planner: fixed PHP notice on completion checkbox in Planner Deadlines School Admin: fixed timezone issue in display of dates in Special Days view School Admin: fixed bug in Manage School Days involving active days not having timings set Staff: fixed PHP notice in Application Form edit Status field Students: added ability to store internal documents against student application forms Students: fixed bug preventing upload of application form documents when cookies disabled Students: fixed bug preventing some application form language/citizenship fields from not being saved Students: added settable thresholds for issuing academic alerts Students: added settable thresholds for issuing behaviour alerts Students: added extra action to allow deleting of application forms to be disabled Students: added optional permission for students to only view their profile Students: added data visualisation for student enrolment over time Students: fixed auto-assign houses potentially failing on Application Form acceptance if houses are empty Students: fixed PHP notice for gibbonPersonID in Add Medical Form Students: fixed link to Add Medical Form in Student Profile Students: updated Edit Application Form to handle spaces in privacy options csv Timetable: fixed TT not being navigable if user is not involved in any timetable Timetable Admin: fix bulk checking bug in Tie Days to Dates Timetable Admin: widened listing of staff in Course Enrolment by Person to include all staff (not just Teaching staff) Timetable: added option to display either Day Of The Week or Timetable Day Short Name in column header of timetables Timetable: added name of person making a facility booking to timetable view by Person Timetable: added optional permission for users to only view their own timetable Timetable: added optional permission for parents to only view their children's timetables Timetable: increased list of students in Manage Student Enrolment to include all current students Timetable: fixed PHP notice in renderTTDay module function Tracking: fixed bugs leading to repeated and mixed display of columns User Admin: fixed bug preventing some custom fields appearing when individual had multiple categories in multiple roles User Admin: fixed PHP Notice error caused when no additional roles chosen in user edit User Admin: added ability to restrict which roles can be assigned in Manage Users User Admin: reduced Transport auto suggest to students enroled in the current year User Admin: added settings to enable/disable scholarships, payment and SEN sections in Application Form User Admin: fixed issue preventing inactive students from showing up when family link is clicked User Admin: added row highlighting in Manage Permissions v13.0.02 and earlier -------- Removed to reduce file size