v2022.10.03
bjester
released this
09 Nov 17:58
·
1729 commits
to hotfixes
since this release
Summary
- Support for adding and editing metadata on resources and folders
- New architecture facilitating processing of changes and syncing them between frontend, backend, and other editors
- Upgrades to task processing and reduction of associated tech debt
- Numerous bug fixes for user facing and infrastructural issues
Added
- Change event infrastructure by @rtibbles in #3134
- Adding the new Studio Gherkin scenarios by @pcenov in #3243
- Channel history tracking and prober endpoint for publishing status alerts by @bjester in #3278
- Extract media duration on upload by @bjester in #3317
- Support adding Completion criteria and validating its structure by @bjester in #3318
- Add metadata labels support to the backend by @rtibbles in #3328
- Apply resource duration as completion criteria threshold by @vkWeb in #3337
- Cache search filter field values by @vkWeb in #3343
- Update resource preview to include new metadata by @marcellamaki in #3344
- Add suggested duration field for resources by @rtibbles in #3346
- Support for addition/deletion of metadata labels by @rtibbles in #3354
- Add suggested_duration field by @marcellamaki in #3358
- Publish handling for mastery models and completion criteria by @AtKristijan in #3362
- Support adding Accessibility metadata by @sairina in #3366
- Support adding Learning activities, Levels and Learner needs metadata by @sairina in #3370
- Support adding Category to resources by @sairina in #3376
- Support for nested field updates and metadata label updates by @rtibbles in #3377
- Support for partial updating of completion criteria by @rtibbles in #3383
- Completion criteria validation in serializer by @rtibbles in #3390
- New studio gherkin scenarios and updates by @pcenov in #3391
- Added welcome new user email feature added by @vishalpandeyvip and @bjester in #3405
- Add support to ricecooker endpoint for metadata labels by @rtibbles in #3407
- Migrate mastery criteria to completion criteria by @ozer550 in #3426
- Add support for file duration and node suggested duration for ricecooker by @rtibbles in #3430
- Add threshold field validation and properly handle updates to mastery models by @rtibbles in #3436
- Update completion criteria validator with separate mastery schema by @bjester in #3347
- Support adding Completion/duration criteria and mastery fields by @sairina in #3455
- Format duration of uploaded resource by @vkWeb in #3470
- Add reset and cleanup of dataLayer to prevent memory leaks by @bjester in #3475
- Ensure file duration is an integer by @bjester in #3477
- Add support for copying metadata fields when copying a resource by @rtibbles in #3569
- Apply topic/folder's metadata to descendants on publish by @rtibbles in #3578
- Allow reference selection for duration of audio/video resources by @marcellamaki in #3583
- Enable SSL for Postmark API by @bjester in #3606
- Default ‘has captions...’ label when uploading subtitles by @LianaHarris360 in #3608
- Default learning activities on upload for some content kinds by @bjester in #3612
- Add new models for full text search and migration commands by @vkWeb in #3651
- Support bulk editing of new metadata fields by @bjester in #3670
- Apply topic/folder's metadata to descendants excluding other folders by @rtibbles in #3671
- Handle complex selection of Categories metadata by @bjester in #3674
- Display all select dropdowns next to associated field by @bjester in #3679
- Publish mastery criteria using completion criteria by @rtibbles in #3684
- Round file duration down to nearest integer to ensure completion handling in Kolibri by @rtibbles in #3685
- Formatting of new welcome email by @LianaHarris360 in #3696
- Update user interface strings by @rtibbles in #3697
- Alter ordering of channels in the import modal by @rtibbles in #3702
- Display of levels metadata by @marcellamaki in #3704
- Completion criteria for reference only by @marcellamaki in #3705
- Hide published status while channel is syncing by @bjester in #3717
- Translations for user interface strings by @nucleogenesis in #3742
Fixed
- Failures to import resources with tags greater than 30 chars by @vkWeb in #3310
- Incorrect status code on insufficient storage by @vkWeb in #3312
- Error when clicking the Finish or Close button when adding previous/next steps by @d0sadata in #3316
- Clipboard item's draggable handle area @d0sadata in #3330
- Error handling to reduce constant logging of 403s by @marcellamaki in #3331
- Use the jspdf https url instead of git:// by @aronasorman in #3349
- Editing an exercise after adding a thumbnail by @d0sadata in #3353
- Fix storage usage percentage by @d0sadata in #3355
- Custom admin permission class by @vkWeb in #3360
- Attach menus to their parents by @sairina in #3379
- Two previously unreported bugs in nested updates to extra_fields by @rtibbles in #3382
- Strip out any remaining HTML as Kolibri will only render pure markdown by @rtibbles in #3397
- Issue with localizing numbers in JSON by @rtibbles in #3406
- Mark nodes created by ricecooker as complete by @rtibbles in #3410
- Add a conditional check for if user is an admin for channel sharing by @marcellamaki in #3450
- Clean up frontend change tracker and snackbars related to undoing operations by @bjester in #3480
- Always use the channel title for the first breadcrumb by @bjester in #3486
- Raise FileNotFoundError when file cannot be found on GCS by @rtibbles in #3509
- Cleanup stale orphaned files by @LianaHarris360 in #3584
- Incorrect sorting of channels on 'My channels' by @rtibbles in #3592
- Properly handle partial update changes from IndexedDB in Vuex by @bjester in #3600
- Removes untranslated string for files with no name by @akolson in #3602
- Removes untranslated guest string by @akolson in #3609
- Admins' display of channel editors by @AllanOXDi in #3611
- Fixes width of content library channel cards with no description by @LianaHarris360 in #3639
- Relaying of copy/move changes to other editors by @bjester in #3640
- Default file format as the default extension for files without extensions by @rtibbles in #3646
- Resource shown as incomplete when using channel defaults by @marcellamaki in #3647
- Failures to copy items to the user's clipboard by @rtibbles in #3698
- Failures caused by duplicate tags when syncing a channel by @rtibbles in #3701
- Missing resource edit fields after editing channel details by @ozer550 and @bjester in #3707
- Replaces data URI image of LE's logo in transactional emails by @bjester in #3714
- Missing link to Kolibri demo servers in public catalog by @bjester in #3762
- Cross-origin issues with uploaded files by @rtibbles in #3768
- Failures to generate a thumbnail by @rtibbles in #3780
Changed
- Cleaned up unused code by @rtibbles in #3227
- Make sure our JS dependencies reflect what we actually depend on by @rtibbles in #3260
- Move minio to dev requirements, update urllib3 by @bjester in #3271
- Update KDS and dev env fixes by @bjester in #3272
- Topic to folder by @d0sadata in #3307
- Don't use git:// protocol for unauthenticated github access by @rtibbles in #3311
- Upgrade celery and use database backend for task results by @bjester in #3332
- Introduce postgres 12 by @vkWeb in #3333
- Use EXISTS strategy for better performance by @bjester in #3334
- Update kds version to latest release v1.3.0 by @marcellamaki in #3336
- Log to sentry when publishing takes too long by @ozer550 in #3340
- Import constants from le-utils and add metadata translation mixin by @marcellamaki in #3342
- Consolidated StudioTestCase and BaseTestCase by @ozer550 in #3352
- Update README.md celery cmd changed i.e. 'yarn run celery' by @dbhattkenpath in #3361
- Actually use diffTracker values for display to the user. by @rtibbles in #3375
- Upgrade to Node 16 by @rtibbles in #3403
- Fix import command by @bjester in #3404
- Fix files on localhost when services are run via Docker by @MisRob in #3429
- Utilize tree_id filtering to prune table partitions by @vkWeb in #3438
- Edit modal - add completion/duration dropdowns and mastery fields tests by @sairina in #3464
- Add missing coach icon to resource item, consolidate color of coach icon by @bjester in #3476
- Small documentation updates by @bjester in #3481
- Adjust the reset interval, and logic to prevent excess resets by @bjester in #3482
- Use Vuetify's lazy attribute to delay mounting of DOM nodes by @bjester in #3483
- Use individual lodash imports as lodash does not allow tree shaking. by @rtibbles in #3484
- Resolve remaining issues with dropdown positioning and broken help tooltips by @bjester in #3485
- Remove vuetify-loader by @rtibbles in #3487
- Update browserslist to exclude IE and other low usage browsers by @rtibbles in #3488
- Misc fixes to channel editing experience by @bjester in #3489
- Attempt to do automated dependency upgrades by @rtibbles in #3491
- Migrate to using the Sentry browser/vue library, Stop relying on Raven. by @rtibbles in #3498
- Update duration to check for second value in files array by @marcellamaki in #3500
- Upgrade to python 3.9 by @bjester in #3522
- Limit push builds to unstable, hotfixes, and master. by @rtibbles in #3523
- Fix for
grpcio
dependencies for Apple M1 computers inreadme
by @sairina in #3532 - Add 'new' to Intl.ListFormat by @marcellamaki in #3549
- Updates to studio documentation by @bjester in #3561
- Remove unneeded dependency for dead code by @bjester in #3562
- Ignore any imports of vuetify src style files to defer to our vendored css by @rtibbles in #3570
- Ensure channel ID is set on move change to trash tree by @bjester in #3590
- Ensure swift syncing of non-Dexie observable changes by @rtibbles in #3591
- Data migration updates by @rtibbles in #3593
- Don't use variables for string keys by @bjester in #3613
- Fix regression with reactivity issues after signing in by @bjester in #3634
- Save traceback string for fake tasks by @bjester in #3636
- Refactor frontend-only fields and add defensiveness against syncing by @bjester in #3641
- Hide tooltip for certain accessibility options and reorder them by @bjester in #3649
- Prevent syncing of frontend only fields by @bjester in #3641
- Properly trigger Vue observers in mutations triggered by IndexedDB by @rtibbles in #3687
- Generate a reverse move when undoing an operation by @bjester in #3700
- Remove hidden 'channel quiz' feature by @marcellamaki in #3722
- Capture logging around task fetching and enqueuing by @bjester in #3724
- Reset all publishing status fields on the frontend after publishing by @bjester in #3732
- Removed extraneous files related to string translations by @bjester in #3743
- Properly display icons for new metadata by @rtibbles in #3749
- Properly handle dropdown position with RTL languages by @bjester in #3756
- Support for 'determined by resource' completion criteria by @rtibbles in #3767
- Disable editing of metadata when bulk editing by @rtibbles in #3779
- Better defensive handling when editing completion criteria by @marcellamaki in #3781
Dependency changes
Click here to expand
- Bump codemirror from 5.56.0 to 5.58.2 by @dependabot in #3270
- Bump pillow from 8.2.0 to 8.3.2 by @dependabot in #3277
- Bump tmpl from 1.0.4 to 1.0.5 by @dependabot in #3284
- Bump django from 3.2.4 to 3.2.5 by @dependabot in #3286
- Bump babel from 2.8.0 to 2.9.1 by @dependabot in #3292
- Bump url-parse from 1.5.7 to 1.5.10 by @dependabot in #3329
- Upgrade minio 3.0.3 -> 7.1.1 by @vkWeb in #3300
- Bump axios from 0.21.1 to 0.21.2 by @dependabot in #3302
- Bump ws from 5.2.2 to 5.2.3 by @dependabot in #3303
- Bump epubjs from 0.3.88 to 0.3.89 by @dependabot in #3315
- Bump node-fetch from 2.6.0 to 2.6.7 by @dependabot in #3319
- Bump ajv from 6.12.2 to 6.12.6 by @dependabot in #3323
- Bump url-parse from 1.4.7 to 1.5.7 by @dependabot in #3327
- Bump django from 3.2.5 to 3.2.13 by @dependabot in #3388
- Bump dexie from 3.0.2 to 3.2.2 by @dependabot in #3393
- Bump eventsource from 1.0.7 to 1.1.1 by @dependabot in #3398
- Bump django from 3.2.13 to 3.2.14 by @dependabot in #3441
- Bump terser from 4.7.0 to 4.8.1 by @dependabot in #3461
- Bump terser from 5.14.0 to 5.14.2 by @dependabot in #3478
- Bump @sentry/browser from 5.30.0 to 7.9.0 by @dependabot in #3492
- Bump store2 from 2.13.2 to 2.14.2 by @dependabot in #3493
- Bump pdfjs-dist from 2.14.305 to 2.15.349 by @dependabot in #3494
- Bump workbox-precaching from 6.5.3 to 6.5.4 by @dependabot in #3496
- Bump fake-indexeddb from 3.1.7 to 4.0.0 by @dependabot in #3502
- Bump qs from 6.10.3 to 6.11.0 by @dependabot in #3503
- Bump kolibri-constants from 0.1.40 to 0.1.41 by @dependabot in #3504
- Bump dexie-observable from 3.0.0-beta.9 to 3.0.0-beta.11 by @dependabot in #3505
- Bump stylus from 0.54.8 to 0.58.1 by @dependabot in #3513
- Bump workbox-webpack-plugin from 6.5.3 to 6.5.4 by @dependabot in #3514
- Bump vue-router from 3.4.9 to 3.5.4 by @dependabot in #3517
- Bump i18n-iso-countries from 5.5.0 to 7.5.0 by @dependabot in #3521
- Bump google-cloud-storage from 1.38.0 to 1.41.1 by @dependabot in #3528
- Bump progressbar2 from 3.38.0 to 3.55.0 by @dependabot in #3531
- Bump le-utils from 0.1.40 to 0.1.41 by @dependabot in #3530
- Bump uuid from 3.4.0 to 8.3.2 by @dependabot in #3535
- Bump broadcast-channel from 3.7.0 to 4.14.0 by @dependabot in #3544
- Bump core-js from 3.22.8 to 3.24.1 by @dependabot in #3545
- Bump google-cloud-kms from 0.2.1 to 1.1.0 by @dependabot in #3546
- Bump workbox-window from 6.5.3 to 6.5.4 by @dependabot in #3552
- Bump django-prometheus from 2.1.0 to 2.2.0 by @dependabot in #3553
- Bump google-cloud-core from 1.6.0 to 1.7.3 by @dependabot in #3554
- Bump google-cloud-error-reporting from 1.1.2 to 1.4.0 by @dependabot in #3563
- Bump backoff from 1.10.0 to 2.1.2 by @dependabot in #3564
- Bump django-model-utils from 4.0.0 to 4.2.0 by @dependabot in #3565
- Bump django-mptt from 0.11.0 to 0.13.4 by @dependabot in #3566
- Bump redis from 3.5.3 to 4.3.4 by @dependabot in #3567
- Bump axios from 0.21.4 to 0.27.2 by @dependabot in #3571
- Bump pycountry from 17.5.14 to 22.3.5 by @dependabot in #3573
- Bump showdown from 1.9.1 to 2.1.0 by @dependabot in #3579
- Remove unused pycountry dependency. by @rtibbles in #3580
- Remove deprecated Raven pip dependency. by @rtibbles in #3581
- Bump django-s3-storage from 0.13.4 to 0.13.9 by @dependabot in #3589
- Bump core-js from 3.24.1 to 3.25.0 by @dependabot in #3597
- Bump stylus from 0.58.1 to 0.59.0 by @dependabot in #3598
- Remove unused dev dependencies. by @rtibbles in #3604
- Bump django-celery-results from 2.2.0 to 2.4.0 by @dependabot in #3605
- Bump jsonschema from 3.2.0 to 4.15.0 by @dependabot in #3614
- Bump uuid from 8.3.2 to 9.0.0 by @dependabot in #3615
- Bump django-filter from 2.4.0 to 22.1 by @dependabot in #3616
- Bump sentry-sdk from 1.1.0 to 1.9.0 by @dependabot in #3617
- Bump python-postmark from 0.5.0 to 0.5.8 by @dependabot in #3618
- Removes use of the clipboard-polyfill and just uses the native API instead by @rtibbles in #3620
- Bump jsonschema from 4.15.0 to 4.16.0 by @dependabot in #3628
- Bump core-js from 3.25.0 to 3.25.1 by @dependabot in #3633
- Bump jest-each from 28.1.3 to 29.0.3 by @dependabot in #3645
- Bump broadcast-channel from 4.14.0 to 4.17.0 by @dependabot in #3648
- Bump pdfjs-dist from 2.15.349 to 2.16.105 by @dependabot in #3653
New Contributors
- @vkWeb made their first contribution in #3300
- @d0sadata made their first contribution in #3307
- @ozer550 made their first contribution in #3340
- @dbhattkenpath made their first contribution in #3361
- @AtKristijan made their first contribution in #3362
- @vishalpandeyvip made their first contribution in #3405
- @LianaHarris360 made their first contribution in #3584
- @akolson made their first contribution in #3602
- @AllanOXDi made their first contribution in #3611
Full Changelog: v2022.07.07...v2022.10.03