v2.0.0 Alpha 3
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 still requires Redis (or similar) for sessions management.
What's Changed
- Catalogue: Restore visual catalogue of courses and sessions in grid mode - refs #6200 by @christianbeeznest in #6203
- Course: Add email setting to notify students on manual course subscription - refs #3398 by @christianbeeznest in #6209
- Course: Apply natural sort to user course list display - refs #1655 by @christianbeeznest in #6210
- Documents: Fix file upload behavior - refs #4735 by @christianbeeznest in #6212
- Gradebook: Add support for min_score in Evaluation forms - refs #6049 by @christianbeeznest in #6213
- Survey: Merge copy_survey() and copySurveySession() #3278 - refs #3278 by @christianbeeznest in #6215
- Link: Fix link form category selection and ensure HTTPS default in URL - refs #4767 by @christianbeeznest in #6219
- Exercise: Add email sending for reviewed attempts - refs #3264 by @christianbeeznest in #6221
- Course: Fix empty list error in course description tool by @christianbeeznest in #6226
- Gradebook: Fix session handling for surveys and student publications - refs BT#22564 by @christianbeeznest in #6229
- Catalogue: Improve course visibility filtering and image consistency by @christianbeeznest in #6230
- Learnpath: Display localized short date format in list - refs #6135 by @christianbeeznest in #6231
- Catalogue: Add natural courses order and proper filtering by @christianbeeznest in #6232
- Course: Add improvements and fixes in category management - refs #5985 by @christianbeeznest in #6233
- Gradebook: Fix user entity casting when saving category - refs BT#22564 by @christianbeeznest in #6234
- Statistics: Add report for subscriptions/unsubscriptions by day - refs #7683 by @christianbeeznest in #6236
- Statistics: Include tracking of users of a course who are not subscribed - refs #5958 by @christianbeeznest in #6237
- Calendar: Add a color of your choice in the agenda - refs #4206 by @christianbeeznest in #6240
- Pages: Add slug edition, return to list and pagination memory - refs #5454 by @christianbeeznest in #6242
- Admin: Add content type items report - refs #5731 by @christianbeeznest in #6243
- Course: Show course link after course creation - refs #6227 by @christianbeeznest in #6246
- Catalogue: Add "Catalogue access" tab to restrict visibility by usergroup - refs #6163 by @christianbeeznest in #6204
- Course: Improve course description readability - refs BT#22572 by @christianbeeznest in #6248
- Course: Add "login as" and reporting actions in user tool - refs #BT22573 by @christianbeeznest in #6250
- Bump http-proxy-middleware from 2.0.7 to 2.0.9 by @dependabot[bot] in #6249
- Gradebook: Fix error gradebook display for student - refs #BT22574 by @christianbeeznest in #6251
- Announcement: Add support to send announcement to a class - refs #4814 by @christianbeeznest in #6214
- User: Allow admin to access intro page creation even if registration is disabled - refs BT#22529 by @christianbeeznest in #6252
- Document: Update document templates - refs #3698 by @christianbeeznest in #6241
- Attendance: Fix session reference handling - refs BT#22571 by @christianbeeznest in #6253
- Upgrade api-platform by @AngelFQC in #6211
- Assignment: Implement assignment tool with vue and symfony style - refs BT#22568 by @christianbeeznest in #6257
- Assignments: Migrate student publications (works), corrections, and comments - refs BT#22568 by @christianbeeznest in #6263
- Exercise: Show question usage across courses/sessions in edition view - refs BT#22575 by @christianbeeznest in #6266
- User: Prevent multiple submissions in registration form - refs BT#22605 by @christianbeeznest in #6269
- Plugin: Fix 500 error on course homepage and config form for Positioning tool - refs BT#22587 by @christianbeeznest in #6270
- Migration: Migrate SCORM packages into asset system - refs BT#22590 by @christianbeeznest in #6259
- Admin: Fix resource sequencing, course tab + selection/save behavior - refs BT#22586 by @christianbeeznest in #6271
- Course: Apply user language if course allows it - refs BT#22598 by @christianbeeznest in #6264
- Plugin: Fix BuyCoursesPlugin::isEnabled() signature to match parent - refs BT#22587 by @christianbeeznest in #6273
- Internal: Fix tool handler lookup to be case-insensitive by @christianbeeznest in #6274
- Attendance: Limit attendance calendar serialization depth - refs BT#22571 by @christianbeeznest in #6275
- Assigment: Fix corrections, rating, comment replies and submission deadline check - refs BT#22568 by @christianbeeznest in #6277
- Exercise: Fix plugin activation and positioning test selection flow - refs BT#22587 by @christianbeeznest in #6278
- Attendance: Various improvements in student view, export, and signatures - refs BT#22571 by @christianbeeznest in #6281
- Internal: Fix missing EntityManager injection in AttendanceCalendarRepository by @christianbeeznest in #6282
- Attendance: Fix PDF export crash when no teacher is assigned to course or session - refs BT#22571 by @christianbeeznest in #6288
- Course: Hide tools if initial test not completed with Positioning plugin - refs BT#22587 by @christianbeeznest in #6287
- Assigment: Fix score input, max grade validation, feedback display, and PDF export in assignment corrections - refs BT#22568 by @christianbeeznest in #6291
- Exercise: Set exercise as active when copying - refs BT#22587 by @christianbeeznest in #6294
- Catalogue: Continued restoration of catalogue features - refs #6235 by @christianbeeznest in #6301
- Course: Fix breadcrumb in Vue tools, show tool name and folder hierarchy - refs BT#20950 by @christianbeeznest in #6303
- Exercise: Allow access to hotspot question images in quizzes - refs BT#22633 by @christianbeeznest in #6304
- Pages: Support public view by slug and admin preview by ID - refs #5454 by @christianbeeznest in #6308
- CI: Use browser-actions to install chrome for behat test by @AngelFQC in #6309
- Course: Improve breadcrumb logic and resource navigation levels - refs BT#20950 by @christianbeeznest in #6315
- User: Fix early loop exit that prevented showing all user extra fields on /account/edit - refs BT#22662 by @christianbeeznest in #6319
- Course: Improve hierarchy and navigation consistency across tools - refs BT#20950 by @christianbeeznest in #6320
- Exercise: Add parent_media_id field to CQuizQuestion - refs #2676 by @christianbeeznest in #6321
- User: Prevent type error in hasAuthSourceByAuthentication() - refs BT#22651 by @christianbeeznest in #6322
- Assignment: Fix student submission visibility restriction - refs BT#22659 by @christianbeeznest in #6323
- Gradebook: Fix graph generation outside cache folder - refs BT#22658 by @christianbeeznest in #6324
- Internal: Add command to deactivate users without active sessions - refs BT#22642 by @christianbeeznest in #6325
- Session: Show remaining days instead of dates - refs BT#22640 by @christianbeeznest in #6326
- Internal: Send event reminder emails in addition to internal messages - refs BT#22151 by @christianbeeznest in #6328
- Internal: Refactor catalogue access logic based on user roles and settings by @christianbeeznest in #6329
- Gradebook: Add publish flag to GradebookCertificate - refs #3536 by @christianbeeznest in #6337
- Admin: Add support for third-party data exchanges in GDPR section - refs #2612 by @christianbeeznest in #6338
- Admin: Add reminder for GDPR article 19 on terms edit - refs #2567 by @christianbeeznest in #6339
- Admin: Fix user import extra fields and update CSV format - refs BT#22672 by @christianbeeznest in #6340
- Upgrade primevue to v4 by @AngelFQC in #6276
- Session - Fix error duplicating session with assigned course coach - refs BT#22685 by @christianbeeznest in #6341
- Admin: Optimize user assignment page performance for usergroups - refs BT#22686 by @christianbeeznest in #6342
- Catalogue: Improve UI, filters, and access logic for sessions and courses - refs #6235 by @christianbeeznest in #6347
- Link: Improve link icon upload and homepage display experience - refs #2863 by @christianbeeznest in #6348
- CI: Fix actionInstall feature in Behat tests by @ywarnier in #6349
- Internal:Deactivate students with no active sessions - refs BT#22642 by @christianbeeznest in #6353
- Social: Refactor legal terms logic to use versionId instead of legalId by @christianbeeznest in #6350
- Link: Fix rounded icon preview style after Uppy crop - refs #2863 by @christianbeeznest in #6354
- Course: Replace legacy links with hashed public URLs and enforce 'publish' check for certificates - refs #3536 by @christianbeeznest in #6343
- Session: Improve CSV/XML session import with datetime support and code cleanup - refs #3554 by @christianbeeznest in #6220
- Internal: Fix post display error when userReceiver is missing in social network - refs BT#22699 by @christianbeeznest in #6365
- Internal: Fix undefined variable and null access issues in SocialController by @christianbeeznest in #6366
- Survey: Fix error when submitting Doodle survey without selecting options - refs BT#22700 by @christianbeeznest in #6368
- Internal: Fix caret position on first keystroke in empty TinyMCE editor - refs BT#22712 by @christianbeeznest in #6369
- Internal: Unify timezone handling and remove obsolete extra field - refs BT#22706 by @christianbeeznest in #6359
- Admin: Implement advanced MultiURL management for courses - refs BT#22643 by @christianbeeznest in #6352
- Internal: Improve custom error handling for NotAllowedException with styled feedback - refs BT#22701 by @christianbeeznest in #6367
- Internal: Implement course creation automation from file tree structure - refs BT#22644 by @christianbeeznest in #6351
- Internal: Split multiple classes from scorm_classes.php into separated files - refs #1179 by @christianbeeznest in #6375
- Internal: Add certificate_validity_period to gradebook_category - refs #6371 by @christianbeeznest in #6374
- Internal: Add "validation" server type to configuration settings - refs #3819 by @christianbeeznest in #6376
- Internal: Add tracking to all resource event - refs #6134 by @christianbeeznest in #6245
- Link: Improve link to course in agenda events - refs #3452 by @christianbeeznest in #6378
- Message: Fix translate Yes/No buttons in message delete confirmation popup - refs BT#22730 by @christianbeeznest in #6387
- Internal: Improve course code generation with filename-based logic for command script - refs BT#22644 by @christianbeeznest in #6395
- User: Fix user profile language on inscription page when logged in - refs BT#22732 by @christianbeeznest in #6386
- Calendar: Fix deletion of student-created calendar events by admin - refs BT#22733 by @christianbeeznest in #6383
- Internal: Rename Utils directory to Helpers by @AngelFQC in #6396
- Exercise: Fix misaligned bullets on match-by-drag after zoom or resize - refs BT#22761 by @christianbeeznest in #6422
- Agenda: Set default event times to 00:00 and 23:59 when selecting multiple days - refs BT#22731 by @christianbeeznest in #6423
- Admin: Add session admin custom home page - refs BT#22641 by @christianbeeznest in #6357
- Admin: Fix register user popup to include extra field and ensure proper course sending - refs #22641 by @christianbeeznest in #6440
- User: Use push functionality in webbrowsers - refs #3255 by @christianbeeznest in #6421
- Plugin: Cleanup BBB recordings on course/session deletion - refs #3143 by @christianbeeznest in #6377
- Internal: Migrate permission_rel_role to use role_id and create role table - refs #6426 by @christianbeeznest in #6444
- Internal: Add fixtures for initial roles and permission dependencies by @christianbeeznest in #6447
- Gradebook: Fix certificate visibility logic for owner and privileged users - refs #3536 by @christianbeeznest in #6452
- Internal: Add Query Caching Support and Demo Endpoint - refs #2672 by @christianbeeznest in #6449
- Internal: Implement Flysystem FileHelper - refs #6254 by @christianbeeznest in #6451
- Settings: Add JSON template system and migration - refs #6427 by @christianbeeznest in #6448
- Plugin: Add config-based control for global conference roles visibility in BBB - refs #3498 by @christianbeeznest in #6336
- Settings: Add settings for Chamilo latest news and support block by @christianbeeznest in #6454
- Internal: Add migration for Chamilo news/support settings by @christianbeeznest in #6455
- Learnpath: Add export_allowed field to c_lp_item for selective PDF export - refs #2969 by @christianbeeznest in #6456
- Internal: Rename settings_value_template.name to variable for consistency by @christianbeeznest in #6457
- Settings: Add global setting hosting_limit_users_per_course - refs #5114 by @christianbeeznest in #6453
- Learnpath: Add automatic switch to next step in learning path, only if video - refs #2512 by @christianbeeznest in #6419
- Internal: Remove SMTP_UNIQUE_SENDER setting and migrate mail config to .env - refs #6428 by @christianbeeznest in #6445
- Internal: Decode HTML entities in language.original_name during migration - refs #6356 by @christianbeeznest in #6380
- Internal: Add setting to limit number of same e-mails - refs #5112 by @christianbeeznest in #6381
- Internal: Add loading indicator to SMTP test button in installer by @christianbeeznest in #6459
- Learnpath: Add support for selective LP item PDF export - refs #2969 by @christianbeeznest in #6222
- Extrafield: Support duration extra field (hh:mm:ss) - refs #5634 by @christianbeeznest in #6238
- Document: Add LP usage warning when deleting documents - refs #4454 by @christianbeeznest in #6239
- User: Control changes in roles - refs #5840 by @christianbeeznest in #6244
- User: Add improvements to 2FA - refs #6162 by @christianbeeznest in #6217
- Learnpath: Improve iframe error handling and login redirection fallback - refs #1765 by @christianbeeznest in #6305
- Internal: Add default error page for undefined URL in multi-URL - refs #6297 by @christianbeeznest in #6316
- Course: Add support for resource sequencing in course and session views - refs rna-22586 by @christianbeeznest in #6330
- Fix bug #5952 Course button "Hide all" do not hide by @chamilo-uga in #6373
- Internal: Add migration for user_session_display_mode and course_sequence_valid_only_in_same_session settings - refs BT#22586 by @christianbeeznest in #6465
- Admin: Add page layout templates initial implementation - refs #6404 by @christianbeeznest in #6443
- User: Add password rotation feature - refs #6460 by @christianbeeznest in #6463
- Internal: Add default color theme on install/migrate - refs #3793 #6458 by @christianbeeznest in #6466
- Internal: Ensure persisted AccessUrl used during installation to avoid ORM errors by @christianbeeznest in #6467
- Internal: Terms and Conditions improvements and fixes - refs BT#22774 by @christianbeeznest in #6468
- Internal: Improve terms acceptance flow and registration page behavior - refs BT#22774 by @christianbeeznest in #6470
- Admin: Enhance session admin user search, URL access handling, and certificate permissions - refs BT#22641 by @christianbeeznest in #6471
- Bump browser-actions/setup-chrome from 1 to 2 by @dependabot[bot] in #6442
- Admin: Improve user creation and email notifications from dashboard - refs BT#22641 by @christianbeeznest in #6472
- Bump brace-expansion from 1.1.11 to 1.1.12 by @dependabot[bot] in #6399
- Filesystem adapters by @AngelFQC in #5725
- User: Set default visibility to false for mail_notify_* and GDPR fields by @christianbeeznest in #6480
- Internal: Remove RSS-related features and extra field by @christianbeeznest in #6481
- Link: Fix homepage course links, icon and target support - refs BT#22771 by @christianbeeznest in #6479
- Admin: Fix user creation issues in admin dashboard - refs BT#22641 by @christianbeeznest in #6490
- Link: Fix shortcut icon fallback - refs BT#22771 by @christianbeeznest in #6493
- User: Fix session subscription lock when no requirements exist - refs BT#22586 by @christianbeeznest in #6496
- Admin: Improve registration email subject and absolute URL - refs BT#22641 by @christianbeeznest in #6498
- Course: Fix catalogue shows private courses and fallback radios - refs BT#22255 by @christianbeeznest in #6504
- Course: Enforce course access restrictions based on prerequisites - refs BT#22586 by @christianbeeznest in #6502
- Admin: Add bulk user assignment and removal from URLs via CSV import - refs BT#22793 by @christianbeeznest in #6503
- Mail: Use mailer DSN as setting by @AngelFQC in #6495
- Internal: Fix migration priority by @AngelFQC in #6506
- Course: Improve course catalogue settings and filters - refs BT#22255 by @christianbeeznest in #6509
- Admin: Add CSV user import/removal with breadcrumbs for access URLs - refs BT#22793 by @christianbeeznest in #6511
- Internal: Fix registration redirect setting by @christianbeeznest in #6513
- Internal: Remove show_conditions_to_user and gdpr/my_terms extra fields by @christianbeeznest in #6515
- Internal: Fix GradebookLink initialization creating a course by @christianbeeznest in #6516
- Internal: Improve access URL management - refs #6297 by @christianbeeznest in #6517
- Catalog: Refactor and update catalog settings schema - refs BT#22255 by @christianbeeznest in #6518
- Catalog: Refactor and update catalog settings - refs BT#22255 by @christianbeeznest in #6520
- Settings: Refactor and update catalog settings by @christianbeeznest in #6521
- Removing references to noreply_email_address by @AngelFQC in #6522
- User: Switch CSV delimiter to comma for export, user update & class import - refs #6355 by @christianbeeznest in #6523
New Contributors
- @chamilo-uga made their first contribution in #6373
Full Changelog: v2.0.0-alpha.2...v2.0.0-alpha.3