v2.0.0 Alpha 5
Pre-releaseThis is an alpha release, not meant for production use, only for testing and contributing to the development of Chamilo 2.
Visual design is not final.
Database structure should be frozen until Chamilo 2.0 stable 🤞, so external developers are welcome to start contributing extensions to current feature set while using the existing database structure or adding to it through plugins.
The following is an automatically-generated changelog. For a slightly better human-readable changelog, please check public/documentation/changelog.html inside the package, or load "/documentation/changelog.html" in your browser once you have configured it.
Please refer to the install process in README.md (Chamilo's main project page on Github) for installing. This version requires Redis (or similar) for sessions management.
What's Changed
- User: Enable roles combination - refs #5648 by @christianbeeznest in #6206
- Plugins: BBB: Normalize settings to array before in_array() to prevent TypeError - refs BT#22912 by @christianbeeznest in #6711
- Learnpath: Prevent PHP8 TypeError by passing bool to api_is_allowed_to_edit() by @christianbeeznest in #6712
- Tracking: List all course quizzes from myStudents - refs #22912 by @christianbeeznest in #6713
- Admin: Fix course link from list by @christianbeeznest in #6714
- Plugin: EmbedRegistry: replace Doctrine aliases with FQCN; fix deletes with IDENTITY(); correct entity vs id comparisons by @christianbeeznest in #6715
- Internal: Treat setting "name" as fullname , renders firstname+lastname for account edit by @christianbeeznest in #6716
- Admin: Add admin star icon when user has admin roles from user list by @christianbeeznest in #6717
- Admin: Fix settings save from search results by @christianbeeznest in #6718
- Message: Derive FROM from host & validate emails to avoid 500 on invalid recipient by @christianbeeznest in #6720
- Exercice: Fix annotation preview; use AnnotationQuestion and normalize image path - refs #3471 by @christianbeeznest in #6723
- User: Fix missing affectedIds; log creator reassignment on delete - refs #4283 by @christianbeeznest in #6724
- Assignment: Correct deadline/end-date columns - refs #6721 by @christianbeeznest in #6727
- Assignment: Remove “Sent date” (teacher) and hide “End date” (student) - refs #6721 by @christianbeeznest in #6728
- Assignment: Allow student submissions until end date by @christianbeeznest in #6729
- Assignment: Resolve child-entity error on delete - refs #6134 by @christianbeeznest in #6730
- Course: Include optional tracking of users of a course who are not subscribed - refs #5958 by @christianbeeznest in #6734
- Catalog: Improve list of extrafields in course catalog by @christianbeeznest in #6736
- Course: Add toggle to show/hide “(free)” non-enrolled users in tracking table - refs #5958 by @christianbeeznest in #6737
- Course: Fixed and improve filter by extra fields from catalog - refs #6235 by @christianbeeznest in #6740
- Course: Improve optional tracking of users of a course who are not subscribed - refs #5958 by @christianbeeznest in #6741
- Messages: Mark as read on open and update list state by @christianbeeznest in #6744
- Settings: Preserve form values when saving from the search page by @christianbeeznest in #6746
- Notebook: Restore list & CRUD via Doctrine; filter by owner; sort; C2 UI - refs #6743 by @christianbeeznest in #6751
- Ticket: Rename status title 'Close' to 'Closed' - refs #6752 by @christianbeeznest in #6754
- TicketStatus: Close → Closed via data migration - refs #6752 by @christianbeeznest in #6755
- Course: Fix messaging and daily log aggregation in chat tool - refs #5712 by @christianbeeznest in #6756
- Internal: Minor: Avoid undefined index for LDAP enabled by @christianbeeznest in #6760
- Internal: Respect BaseTable row settings; default 0 to 20; fix pagination by @christianbeeznest in #6747
- Wiki: Restore wiki tool - refs #6742 by @christianbeeznest in #6763
- Internal: Update theme assets and mail header - refs BT#22946 by @christianbeeznest in #6765
- Social: Improve personal files: modal upload, i18n, correct folder, auto-refresh, Uppy meta - refs BT#22939 by @christianbeeznest in #6767
- Social: Widen T&C dialog on Personal Data; make personal-data serialization null-safe to avoid 500s - refs BT#22938 by @christianbeeznest in #6768
- Internal: Fix install error on ticket_priority.code - refs #6770 by @christianbeeznest in #6771
- Settings: Update mailer_from_* titles - refs #6758 by @christianbeeznest in #6772
- Internal: Add Burmese language to languages list - refs #6759 by @christianbeeznest in #6773
- Internal: Improve dynamic Vue i18n locale resolution & enable instant switch on login - refs BT#22940 by @christianbeeznest in #6766
- Internal: Localize primeVue confirmDialog Yes/No - refs BT#22940 by @christianbeeznest in #6775
- Internal: Mail fix: show email logo from theme - refs BT#11946 by @christianbeeznest in #6777
- Learnpath: Add auto-launch (rocket) toggle to Vue list when enable_lp_auto_launch is active - refs BT#22947 by @christianbeeznest in #6779
- Course: Unify course cards & image loading across /courses, /admin-dashboard, /favorites; responsive resizing - refs BT#22935 by @christianbeeznest in #6780
- Internal: Centralize TinyMCE config via tiny-settings.js (Vue + legacy) - refs BT#22906 by @christianbeeznest in #6769
- Message: Fix email FROM builder; drop invalid setting fallback by @christianbeeznest in #6781
- Internal: Localize SweetAlert confirm buttons via data-* - refs BT#22937 by @christianbeeznest in #6783
- Exercise: Make exact combination comments optional; TinyMCE plugin hardening - refs BT#22936 by @christianbeeznest in #6784
- Survey: Fix editing after end date and duplicate reporting table - refs BT#22901 by @christianbeeznest in #6785
- Social: Disable social UI when social.allow_social_tool is false (menu + home) - refs BT#22918 by @christianbeeznest in #6786
- User: Remove default DoB=now; make registration emails mirror visible form fields - refs #22823 by @christianbeeznest in #6764
- Internal: Apply THEME_FALLBACK for multi-URL portals without theme - refs BT#22944 by @christianbeeznest in #6782
- Internal: Fix i18n-driven remounts that hid legacy exercise list by @christianbeeznest in #6789
- Internal: Locale: resolve course from cid/cidReq when not in session by @christianbeeznest in #6790
- User: Adjust settings logic in profile edit - refs BT#22823 by @christianbeeznest in #6791
- Exercise: Fix expired attempt no longer stuck as incomplete - refs BT#22933 by @christianbeeznest in #6787
- Internal: Normalize roles (ROLE_*), derive status from roles; fix teacher picker & admin menu by @christianbeeznest in #6792
- Internal: Remove ADMIN vs SUPERADMIN redundancy - refs #6762 by @christianbeeznest in #6774
- Internal: SelectLanguage: include platform default even when unavailable by @christianbeeznest in #6793
- Internal: Fix role preselection in user_edit: normalize option keys and POST checks by @christianbeeznest in #6794
- Learnpath: Count SCORM space: ZIP under course Documents - refs #1970 by @christianbeeznest in #6750
- Migration: Fix "ROLE_" inconsistencies in the database - refs #6797 by @christianbeeznest in #6799
- Security: add security.2fa_enable; hide 2FA UI & skip MFA when disabled by @christianbeeznest in #6800
- Admin: Fix AJAX toggles and sort language selects by english_name - refs #6796 by @christianbeeznest in #6802
- Admin: Load latest news & support with fallback by @christianbeeznest in #6804
- Admin: Proper MDI toggle (on/off) without disabled class in languages list - refs #6796 by @christianbeeznest in #6809
- Exercise: Fix 'Previous question' navigation when exercise is incomplete - refs BT#22933 by @christianbeeznest in #6808
- User: purge extra fields on delete + orphan cleanup migration - refs #22987 by @christianbeeznest in #6811
- User: Restore global chat - refs #6761 by @christianbeeznest in #6805
- Dropbox: Restore dropbox tool #6757 - refs #6757 by @christianbeeznest in #6795
- Plugin: feat(bbb): add default callback to report meeting activity - refs #6145 by @christianbeeznest in #6810
- Admin: Languages: unify toggle icon dimensions - refs #6796 by @christianbeeznest in #6816
- Dropbox: Fix migration: use getReference for Tool seeding - refs #6757 by @christianbeeznest in #6818
- Dropbox: fix self-receive, recipients display, sender label, icon alignment, and default “Sent” redirect - refs #6757 by @christianbeeznest in #6820
- Dropbox: Stabilize migrations and tool seeding by @christianbeeznest in #6821
- Dropbox: Minor, fix error typo in query by @christianbeeznest in #6822
- Install: Fix language selection flow, i18n sync, and labels by @christianbeeznest in #6817
- Admin: Improve settings categorization - refs #6819 by @christianbeeznest in #6824
- Internal: Update extrafield flags for 'my_terms','terms_ville','terms_villedustage' not included in migration by @christianbeeznest in #6840
- Dropbox: Re-enable blogs tool - refs #6823 by @christianbeeznest in #6838
- Internal: Fix undefined-url to respect ThemeHelper fallback - refs BT#22944 by @christianbeeznest in #6844
- Portfolio: Restoring tool by @AngelFQC in #6835
- Internal: Unified 403 handling: same access-restriction message across vue & twig - refs BT#22993 by @christianbeeznest in #6842
- BuyCourses: use IllustrationRepository/AssetRepository for course and session images (drop SYS_COURSE_PATH/WEB_UPLOAD_PATH checks) by @christianbeeznest in #6856
- Migrate LTI tables from plugin to core by @AngelFQC in #6859
- Internal: Tracking: Fix empty quizzes for session tutor - refs BT#23011 by @christianbeeznest in #6861
- Adding responsive style to the Learning Path - refs #6609 by @Coussecousse in #6813
- Fix learning path date in categories by @Coussecousse in #6864
- Survey: add “Pending surveys” menu - refs #4316 by @christianbeeznest in #6866
- Course: Implement and enhance Course Backup/Restore by @christianbeeznest in #6867
- Internal: Minor: fix chat ajax url from chat tool by @christianbeeznest in #6871
- Internal: Minor: Fix validations settingsmanager class by @christianbeeznest in #6872
- Internal: Make c_blog_task.description nullable and drop invalid default on TEXT/LONGTEXT by @christianbeeznest in #6874
- Internal: general fixes and cleanup by @christianbeeznest in #6875
- Internal: general fixes and cleanup by @christianbeeznest in #6876
- Documents: HTML inline preview + Uppy upload fix by @christianbeeznest in #6877
- Glossary: Fix import and save of glossary terms - refs #6722 by @Ilyassbennanii in #6878
- Internal: ExtraField: deduplicate organisationemail/azure_id (USER), fix display_text, and add unique index on (variable, item_type) - refs #6883 by @christianbeeznest in #6884
- Glossary: Fix importing to include the first row - refs #6722 by @Ilyassbennanii in #6885
New Contributors
- @Ilyassbennanii made their first contribution in #6878
Full Changelog: v2.0.0-alpha.4...v2.0.0-alpha.5