Skip to content

v2022.10.03

Compare
Choose a tag to compare
@bjester bjester released this 09 Nov 17:58
· 1729 commits to hotfixes since this release
f47e6ab

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 in readme 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

New Contributors

Full Changelog: v2022.07.07...v2022.10.03