forma.lms 4.0.19
---------------------------------------------------------------------------------------
Release date: 2025 July

- #     - fix check if set HTTP_X_FORWARDED_FOR  before use
- #     - add div and css class to course-box__title for course name into course box
- #     - fix course block rendering  if "use_course_label" is on
- #     - fix download if file not exists
- #     - Upgrade legacy to version 3.3.26 + SQL_MODE from NO_AUTO_CREATE_USER to NO_ENGINE_SUBSTITUTION
- #     - Fix Test with feedback: error 500
- #     - Include column filters in search query during global search.
- #     - Prevent column search event during global search.
- #     - added search timeout and enabled search on submit button
- #     - fix column in import subscription
- #     - update german translate
- #     - fix exception in HomepageAdmController.php 
- #     - fix base url management in Get::site_url function 
- #     - fix base url management in getCurrentDomain function
- #     - fix catalogue subscription email
- #     - fix and refactor course userCanUnsubscribe function 
- #     - fix dashboard block calendar
- #     - fix group query
- #     - fix exception BaseCache::__wakeup()
- #     - add lang cache to config
- #     - fix lang translate month
- #     - fix CourseLms
- #     - implement API for multiple users
- #     - improve course date begin and date end management
- #     - fix date translate
- #     - add clear lang cache
- #     - fix lang load when new lang is installed
- #     - Implement Abstract BaseCache to extends cache for generic use
- #     - complete lang cache implementation
- #     - wip implementation
- #     - Fix dashboard exception
- #     - add show_custom_fields to usersList API to return custom fields data in users list
- #     - fix in API userDetails to show custom fields that user cannot view.
- #     - add getCategories API
- #     - Change SQL_MODE from NO_AUTO_CREATE_USER to NO_ENGINE_SUBSTITUTION for mysql 8.0 compatibility
- #     - fix field_access_list in  lib.user_profile
- #     - Add event "core.users.changestatus" in suspend/unsuspend user/users
- #     - Fix myMetaCertificate function that does not return correct rows when i've two meta certificate that use the same idCertificate
- #     - preg_match does not fall in catch branch in case of time format different from PT time; managed with if instruction.
- #     - fix DbConn::getInstance to solve automatically the connection and not using external connection link
- #     - Implement db factory interface 
- #     - activate Plugin namespace
- #     - fix coursereport
- #     - replace old require with forma::include
- #     - fix getDateSubscribed to get correct user for teacher
- #     - fix(dateTimeLocal): empty values
- #     - Fix actual space in CourseLmsController
- #     - fix(bonusScore): put all statuses in scores query
- #     - fix access to courses and lo objs
- #     - fix data_end in courseAlms
- #     - fix session save on org chart
- #     - fix migration namespace
- #     - fix api getAnswerQuest 
- #     - fix gift import order
- #     - fix create course date_begin, date_end to set NULL when parameters are blank
- #     - fix create and update course hour_begin, hour_end when parameters are blank
- #     - add Migration to update wrong hour_begin, hour_end setted to ':'
- #     - replace migration to update single column
- #     - fix classroom update on API
- #     - fix accessSelection in UserselectorAdmController
- #     - fix update classroom to manage textfield update
- #     - fix location api
- #     - fix dashboard block
- #     - fix error in dashboard when permissions are not set.
- #     - fix day custom field api
- #     - fix duplicate answer in class choices
- #     - fix api getAnswerTest to get one only couple idAnswer , idQuest
- #     - fix(catalogue): complete access for superadmin in any condition
- #     - chore(admins): delete from admin tree reference if admin changed level or is deleted
- #     - fix send mail to moderators during import into course
- #     - fix waiting approval entering courses
- #     - fix can enter course in catalogue by date interval

forma.lms 4.0.11
---------------------------------------------------------------------------------------
Release date: 2024 October

- #     - add translate and fix keys form cron.report
- #     - fix absolute path calculate
- #     - fix right join coursereports for not test items
- #     - fix insertparams
- #     - fix unjoinead course reports on learning course reports
- #     - update certificate generation
- #     - update composer packages
- #     - fix clean selection from empy values in userselector
- #     - fixed mail sender
- #     - fix org nodelist dropdown query
- #     - fix null values in courselist
- #     - fix getAllselection from UserDataSelector.php
- #     - fix admin courselist data
- #     - fix api
- #     - mycourses - filter closed couse in "all course" mycourses
- #     - fix sequence questions test on delete
- #     - fix exception stats when user is tutor - fix division by zero when turo does not have any student
- #     - fix get pdf constructor
- #     - fix api authentication not neded for explicit route
- #     - Fix autoplay object
- #     - fix Man_course in certificate.php

forma.lms 3.3.25
---------------------------------------------------------------------------------------
Release date: 2024 october


- #      - Update changelog
- #      - fix query and update lms.sql
- #      - Update version to 3.3.25
- #      - fix api authentication not neded for explicit route
- #      - fix org chart report
- #      - Update 30323_db.sql
- #      - Fix dashboard courses margin/padding
- #      - Validate start/time and interval hours
- #      - Validate if pause time is between start/end hour
- #      - Proper fix for wrong date
- #      - Fix date add and use YUI2 dialog
- #      - Fix translation and button alignment on classroom dates
- #      - Make course image and title clickable
- #      - Order course categories dropdown by name
- #      - Make label for checkbox and radio clickable
- #      - Add toggle support for "I accept the privacy terms"
- #      - Fix userid error message on 'use_email_as_userid'
- #      - Padding alignment of "I accept the privacy terms" and toggle on click
- #      - Align "I accept the privacy terms" text on registration page
- #      - Add form dirty support for course edition edit
- #      - Add title property for PDFObject embed
- #      - Add form dirty check for course add
- #      - Limit scope of form dirty on settings page only
- #      - Update translations
- #      - Fix buttons alignment on plugin manager
- #      - Add support for form dirty on plugin settings
- #      - Add "form dirty" check for settings/plugin settings
- #      - Fixes warnings during "npm install"
- #      - Fix warning about node-sass duplicate on package.json
- #      - Fix MySQL_VERS translation variable on settings
- #      - Revert "Fix MySQL_VERS translation variable on settings"
- #      - Fix MySQL_VERS translation variable on settings
- #      - Back to previous tab when Cleaning Twig Cache
- #      - Add title to icon sprites on Translation page
- #      - Add option "Use email as userid"
- #      - Add margin-top to "Back to login" link on Register page
- #      - Always show scrollbar on privacy terms
- #      - Generate certificate on download (optimize logic)
- #      - Use real mimetype instead of pseudo one
- #      - Translate error message (download file not exists)
- #      - Translate "You don't have permissions" message
- #      - Embed PDFs instead of downloading them
- #      - Upgrade node-sass for TinyMCE5
- #      - Generate certificate on download
- #      - Update lang[english].xml
- #      - Update lang[portuguese].xml
- #      - Translate certificate release columns and error message
- #      - Force regenerate certificate
- #      - Translate "Error generating certificate: " error message
- #      - Revert "Translate "Error generating certificate" error message"
- #      - Translate "Error generating certificate" error message
- #      - Normalize UTF-8 strings on certificates
- #      - Enable border on tables
- #      - Fix translation of "Certificate" batch generation
- #      - Update lang[portuguese].xml
- #      - Fix language editing click
- #      - Fix attendance date and dialog images
- #      - Upgrade to 3.3.25
- #      - Update 30323_db.sql
- #      - Update Get.php
- #      - Update Portuguese translation
- #      - Update Portuguese translation
- #      - Update English translation
- #      - Update Portuguese translation
- #      - Update translation of "Last access" header
- #      - Update Portuguese translation
- #      - Update Reservation "Category" menu to plural
- #      - Replace legacy PNG icon by sprite on course editions
- #      - Update Portuguese translation
- #      - Update English translation
- #      - Fix PHP warning error during phase 5 of FormaLMS installation
- #      - Allows the SQL upgrade script to run multiple times
- #      - Convert URLManager getInstance() to static
- #      - Revert "Convert URLManager getInstance() to static"
- #      - Convert URLManager getInstance() to static
- #      - Fix PHP Warnings on Get.php
- #      - Update Installation translation for Portuguese
- #      - Handle special chars on translation
- #      - Fix PHP Warnings during FormaLMS upgrade
- #      - Convert Learning_Cart to static
- #      - Standardize "Language" title on Language management page
- #      - Allows to use Ctrl + A to select all text from translation field and als…
- #      - Revert "Allows to use Ctrl + A to select all text from translation field and also do not save it's state"
- #      - Allows to use Ctrl + A to select all text from translation field and also do not save it's state
- #      - Translation fixes
- #      - fix api authentication not neded for explicit route
- #      - fix org chart report
- #      - upgrade version

forma.lms 3.3.24
---------------------------------------------------------------------------------------
Release date: 2024 july

- #      - fix coursereport
- #      - fix warning in coursereport
- #      - Coursereport improve performance
- #      - Fix select data order by translation
- #      - remove auth
- #      - fix get-idstudent not only studentscd
- #      - fix coursereport gradebook views
- #      - fix not-checked test showing in coursereport
- #      - fix subscribe include
- #      - fix coursereport
- #      - fix upgrader
- #      - fix certificate and test data
- #      - fix test track score load
- #      - fix generate token in API lib
- #      - fix import from file csv and replace while instead foreach
- #      - fix edit classroom in showclassroom file
- #      - fix tracking object