Changes in 12.4.1
-----------------
- Fix PHP warning: fatal error when end date < start date in AddDropBreakdownTime.php & CategoryBreakdownTime.php
- Fix search discipline numeric field for "0" value in Widget.php
- SQL case-insensitive username uniqueness check in Student.php, User.php & ImportUsers.fnc.php
- Deprecate `$extra['second_col']` & `$extra['extra_search']`, use `$extra['search']` instead in ReferralLog.php, ClassSearchWidget.fnc.php, Search.inc.php & Export.php
- Fix MySQL error fsti.TRANSACTION_ID isn't in GROUP BY in MenuReports.php
- Fix & simplify form & tabs URL, use GET method & `PreparePHP_SELF()` in MenuReports.php
- Fix SQL syntax error in Food_Service/Users/ActivityReport.php
- Remove useless Find a Student/User search in ActivityReport.php
- Allow list export in ActivityReport.php
- SQL INSERT STUDENT_ID INTO food_service_transactions in Food_Service/Students/Transactions.php
- Fix display value text when associative $options array in Inputs.php
- CSS add .valign-middle class to ≥ & ≤ signs for date fields in Widget.php & Search.fnc.php
- Security #358 Add full timestamp to file name in StudentAssignments.fnc.php

Changes in 12.4
---------------
- HTML use header4 instead of nested fieldset in Registration.fnc.php
- New "Add / Drop Breakdown over Time" program in AddDropBreakdownTime.php
- Hide "Include Parents of Inactive Students" checkbox if profile is not parent in Users/Search.inc.php
- Add AllowEditTemporary() & AllowEditTeacher() functions in AllowEdit.fnc.php
- Use AllowEditTemporary() & AllowEditTeacher() functions, program wide
- Security: Security: allow everyone to use Portal, allow admin only to use popups in AllowEdit.fnc.php
- Remove unused `$extra['staff_fields']['view']` & `$extra['student_fields']['view']` vars in GetStaffList.fnc.php, GetStuList.fnc.php & Search.inc.php
- Use vertically align list data option 'valign-middle' in StudentSummary.php
- Fix PHP warning Undefined array key 1 in CategoryBreakdown.php, CategoryBreakdownTime.php, StudentFieldBreakdown.php & StudentBreakdown.php
- Select Incomplete code when N/A grade in EnterEligibility.php
- Security fix: default to none when selected profile does not exist in User.php
- Fix PHP warning undefined variable $date_select when no calendars in Eligibility/TeacherCompletion.php
- Update French & Spanish translations in rosariosis.po
- Security: add `.htaccess` file to block direct access to potentially sensitive files in .htaccess
- CSS WPadmin theme fix password strength bars in stylesheet.css
- Move the "Use Grade Scale Comments" checkbox down to the next header in InputFinalGrades.php
- Hide totals if user has no access to the Daily Transactions program in Accounting/includes/Dashboard.fnc.php & Student_Billing/includes/Dashboard.fnc.php

Changes in 12.3.2
-----------------
- Multilingual course title: use ParseMLField() in TeacherCompletion.php, Grades/Configuration.php, FinalGrades.php, MassCreateAssignments.php, ReportCardComments.php, StudentAssignments.fnc.php, StudentGrades.php, Portal.php, Scheduling/functions.inc.php & Calendar.php

Changes in 12.3.1
-----------------
- CSS fix themes for RTL (Arabic): submenu on mouseover, arrows, password input, calendar days in rtl.css
- CSS themes remove deprecated .toggle class & small adjustments in stylesheet.css & zresponsive.css
- Default School Year: 2025 (2025-2026) in config.inc.sample.php, rosariosis.sql & rosariosis_mysql.sql

Changes in 12.3
---------------
- Multilingual course title: use ParseMLField(), program wide
- Multilingual course title: SQL change title column type from varchar(100) to text in Update.fnc.php, rosariosis.sql & rosariosis_mysql.sql
- Multilingual course title: use MLTextInput() in Courses.php
- MLTextInput() fix use of 'required' in $extra in Fields.fnc.php, Inputs.php & Courses.php
- Fix PHP8.4 Constant CURLOPT_BINARYTRANSFER is deprecated in curl.php
- Fix PHP8.4 deprecated passing E_USER_ERROR to trigger_error() in curl.php & Markdownify/Converter.php
- Fix PHP8.4 Implicitly marking parameter as nullable is deprecated in Parsedown.php
- Security: Cache killer: use file last modified time hash instead of RosarioSIS version in Warehouse.php
- Include PHP ctype extension emulation by Symfony in Ctype.php, PHPCompatibility.php & ctype.php
- Themes: Remove unused font files, 427KB gain in FlatSIS/fonts/Lato/ & WPadmin/fonts/opensans/
- WPadmin theme: convert ttf to woff2 font files, 105KB gain in WPadmin/fonts/opensans/
- CSS WPadmin: Fix Dashboard tip message row too tall in stylesheet.css
- Move SQL translation file to locale/[locale_code]/ folder
- Fix Rollover order: move Grading Scales before Courses in Rollover.php
- Allow object methods (callable) in $functions param in DBGet.fnc.php
- Use DBInsert() & DBUpdate() functions, program wide
- Fix potential SQL error SELECT DISTINCT, ORDER BY expressions must appear in select list in ReportCards.fnc.php
- CSS use .legend-gray.size-1 for details label in StudentAssignments.fnc.php
- Fix regression since 12.2.3 Save null percent: N/A final grade in FinalGrades.inc.php
- Save null percent: N/A for all children Marking Periods case in FinalGrades.inc.php

Changes in 12.2.3

Fix return empty array when no "Course-specific Comments" in ReportCards.fnc.php
Fix PHP fatal error Unknown format specifier "," in Greek translation in locale/el_GR.utf8/rosariosis.po
Fix SQL error when percent grade > 999.9 in FinalGrades.inc.php
Revert CSS FlatSIS theme adjust tooltip position in stylesheet.css

Changes in 12.2.2

Fix PHP warning undefined offset: 7 when day is Sunday in EnterEligibility.php
CSS WPadmin theme fix .underline-dots wrapping in stylesheet.css
Fix regression since 12.2 PostgreSQL error function sum(text) does not exist in StudentGrades.php
Fix anonymous statistics bar graph for individual assignments: average & Excused * in StudentGrades.php

Changes in 12.2.1

PostgreSQL on cPanel fix ERROR: must be owner of language plpgsql in rosariosis.sql & Update.fnc.php
PostgreSQL create plpgsql extension if not exists in rosariosis.sql