Summary
This release adds the ability to quickly edit titles, descriptions, and other metadata through a new quick edit modal, with options for both single and bulk edits. Additionally, it also includes numerous UI/UX improvements and bug fixes that enhance the overall user experience.
Enhancements
- A quick edit modal has been introduced to simplify editing titles, descriptions, and other metadata, through single or bulk edit options.
- A user is now prompted when moving content from one location to another if the metadata doesn't match.
- Pagination has been added to make browsing topics easier.
- Alphabetic sorting is now available in the topic tree.
- H5P resources can now be uploaded.
- The login password policy has been strengthened for better security.
- The channel import and publish processes have been enhanced.
- Channel imports now prevent incomplete resources from being added.
- Numerous UI/UX improvements have been made to enhance the overall experience, including:
- Admin users can now only see their channel collections.
- Multi-click submissions when creating a collection have also been restricted.
- Error reporting in the edit modal has been enhanced.
- The checkboxes, icon buttons, and icons have been improved.
- External links now have a clearer, more consistent appearance.
- Additional storage requests have been enhanced to include a subject.
- The language dropdown has been improved for better accessibility.
- Page and list scrolling have been optimized for a smoother experience.
Bug fixes
- A user can now delete an account with shared channels.
- A user can now undo the deletion of the last remaining folder or resource in a channel.
- Checkboxes are now fully accessible and display outlines when selected.
- A user is now presented with the correct folder/resource counts when moving items using the clipboard.
- A user can now save their search.
- Uploaded resources now correctly reflect their completeness state.
- The default sidebar now displays with the correct width.
- All file type strings, including the less common ones, are now translated.
- A user can now select all trash items and delete them in bulk.
- A user now sees the correct completion value for a practice quiz.
What's Changed
- Welcome AI by @vkWeb in #4283
- AppNexus - The API Layer for contentcuration by @akash5100 in #4282
- Move appnexus to automation by @akolson in #4300
- Add recommendations backend boilerplate by @akolson in #4301
- Implement Recommendations Adapter by @akolson in #4303
- Adds whisper backend by @akash5100 in #4305
- Changed the router-link tag to KrouterLink by @ShivangRawat30 in #4293
- Add CloudStorage backend boilerplate by @ozer550 in #4309
- Implements Automation Manager Class by @ozer550 in #4306
- Bump @babel/traverse from 7.18.2 to 7.23.2 by @dependabot in #4312
- Bump tibdex/github-app-token from 1 to 2 by @dependabot in #4274
- Bump tornado from 6.0.4 to 6.3.3 by @dependabot in #4254
- Bump ajv from 8.11.0 to 8.12.0 by @dependabot in #4240
- Bump django-registration from 3.3 to 3.4 by @dependabot in #4226
- Bump @adobe/css-tools from 4.2.0 to 4.3.1 by @dependabot in #4269
- Bump gevent from 21.12.0 to 23.9.1 by @dependabot in #4291
- Bump pygments from 2.7.4 to 2.15.0 by @dependabot in #4237
- Resolve Celery TaskObject Race Condition by @ozer550 in #4268
- Remove extra whitespace between icons and text in channel card menu. by @KshitijThareja in #4320
- Bump django from 3.2.19 to 3.2.23 by @dependabot in #4324
- Fix the incorrect retrieval query in return_tasks function by @ozer550 in #4333
- Fix timeout caused by nginx by @aronasorman in #4336
- Add contributing guidelines and organize developer documentation by @MisRob in #4345
- Bump @adobe/css-tools from 4.3.1 to 4.3.2 by @dependabot in #4346
- Bump axios from 1.4.0 to 1.6.2 by @dependabot in #4340
- Bump actions/setup-node from 3 to 4 by @dependabot in #4317
- Bump i18n-iso-countries from 7.6.0 to 7.7.0 by @dependabot in #4315
- Bump actions/setup-python from 4 to 5 by @dependabot in #4348
- Quick edit modal for content title and description by @AlexVelezLl in #4354
- Add GH workflow for building postgres image by @bjester in #4362
- Disable skip after success, b/c push skip on PR by @bjester in #4363
- Fix issue with image in wrong place by @bjester in #4364
- Fixes Checkbox issue 4352 on Create Account page by @cerdo03 in #4358
- Add new kebab menu items and refactor structure for quick edit modals by @AlexVelezLl in #4368
- Fix wrong computed prop name by @vkWeb in #4371
- Merge down hotfixes by @bjester in #4379
- Bump kolibri-constants from 0.1.42 to 0.2.0 by @dependabot in #4380
- Bump fonttools from 4.40.0 to 4.43.0 by @dependabot in #4388
- Bump follow-redirects from 1.15.2 to 1.15.4 by @dependabot in #4390
- Quick edit modal for content language by @AlexVelezLl in #4355
- Bump urllib3 from 1.26.14 to 1.26.18 by @dependabot in #4391
- Hotfixes --> Unstable by @vkWeb in #4393
- issue number 2074 resolved by @cerdo03 in #4350
- Update descentants changes by @AlexVelezLl in #4372
- Changed IconButton to KRouterLink by @BabyElias in #4374
- Quick edit modal to edit "what you will need" by @AlexVelezLl in #4394
- fix:scroller by @nick2432 in #4400
- Upgrade to python 3.10 by @Jovian-Dsouza in #4384
- Fix node availability when propagating import copy by @vkWeb in #4377
- Make ContentNode Menus Keyboard accessible by @AlexVelezLl in #4402
- Bump the github group with 1 update by @dependabot in #4407
- Bump core-js from 3.25.1 to 3.35.0 by @dependabot in #4396
- Bump pillow from 9.4.0 to 10.2.0 by @dependabot in #4383
- Changed components to KComponents by @BabyElias in #4398
- Improve errors reporting in edit modal by @FidalMathew in #4404
- Add quick edit modals for Boolean Maps Properties by @AlexVelezLl in #4386
- Remove unused prod dependencies by @rtibbles in #4410
- Updated Components to KComponents by @BabyElias in #4413
- double submit issue resolved by @GarvitSinghal47 in #4414
- Addressing Incorrect Topic Empty State Issue in Staging Preview by @GarvitSinghal47 in #4422
- Fix issue created by download_sigil.sh by @aronasorman in #4343
- Upgrade the unstable branch to KDS v3.0.0 by @MisRob in #4412
- update django_bulk_update with inbuilt bulk_update by @FidalMathew in #4417
- admin-panel collection error resolved by @GarvitSinghal47 in #4401
- Bump django from 3.2.23 to 3.2.24 by @dependabot in #4429
- Bump grpcio from 1.53.0 to 1.53.2 by @dependabot in #4435
- Quick edit modal to edit audience by @AlexVelezLl in #4405
- Quick edit modal to edit Source by @AlexVelezLl in #4424
- Track input modality in studio frontend apps by @AlexVelezLl in #4443
- Replace studio usability enhancements icons by @AlexVelezLl in #4442
- Bump stylus from 0.59.0 to 0.62.0 by @dependabot in #4452
- Bump ip from 1.1.8 to 1.1.9 by @dependabot in #4445
- Fix Docker-Compose Branch Isolation for Valid Branch Names by @GarvitSinghal47 in #4427
- Install npm KDS package by @MisRob in #4441
- New command palette arrangement, and responsive design by @AlexVelezLl in #4446
- Upgrade KDS to v3.0.1 and configure dependabot to run on Wednesday by @MisRob in #4460
- Add action to notify us on Slack about GH issues comments from contributors community by @MisRob in #4449
- Bump dexie from 3.2.4 to 3.2.6 by @dependabot in #4465
- Patch navbarwidth by @Abhishekzod007 in #4436
- Add automatic alphabetic sort option to topic tree by @GarvitSinghal47 in #4423
- Fix two parallel content nodes editing logic by @AlexVelezLl in #4464
- Bump es5-ext from 0.10.61 to 0.10.63 by @dependabot in #4457
- Bump follow-redirects from 1.15.4 to 1.15.6 by @dependabot in #4474
- Bump autoprefixer from 9.8.8 to 10.4.18 by @dependabot in #4476
- Bump broadcast-channel from 5.1.0 to 7.0.0 by @dependabot in #4473
- Bump webpack-dev-middleware from 5.3.3 to 5.3.4 by @dependabot in #4483
- upgrade le-utils by @jredrejo in #4444
- Bump express from 4.18.1 to 4.19.2 by @dependabot in #4484
- refac: change
Checkbox
to be a wrapper aroundKCheckbox
instead ofVCheckbox
by @EshaanAgg in #4472 - Fix #4470: Add version in name by @poju3185 in #4475
- Bump web-streams-polyfill from 3.2.1 to 4.0.0 by @dependabot in #4488
- Removed newrelic by @Wck-iipi in #4489
- Bump @sentry/vue from 7.19.0 to 7.109.0 by @dependabot in #4495
- Bump store2 from 2.14.2 to 2.14.3 by @dependabot in #4496
- Bump pillow from 10.2.0 to 10.3.0 by @dependabot in #4498
- Bump pytest-cov from 2.12.0 to 5.0.0 by @dependabot in #4497
- Fix unsetting language by @AlexVelezLl in #4501
- Migrate
Create.vue
fromVCheckbox
toCheckbox
by @EshaanAgg in #4503 - Bump eslint-import-resolver-webpack from 0.13.2 to 0.13.8 by @dependabot in #4506
- Bump tar from 6.1.11 to 6.2.1 by @dependabot in #4507
- Bump django-filter from 22.1 to 23.5 by @dependabot in #4504
- Replaced BottomBar with BottomToolBar by @Wck-iipi in #4491
- Implement feedback models by @ozer550 in #4490
- Bump uuid from 9.0.0 to 9.0.1 by @dependabot in #4513
- Bump i18n-iso-countries from 7.7.0 to 7.11.0 by @dependabot in #4514
- Refactored Icon to use KIcon by @BabyElias in #4502
- Added missing checkbox label by @BabyElias in #4512
- Upgrade KDS from v3.0.1 to v3.2.0 by @MisRob in #4528
- Implement the RecommendedResourceCard to test KCard by @AllanOXDi in #4480
- Bump autoprefixer from 10.4.18 to 10.4.19 by @dependabot in #4534
- Bump core-js from 3.35.0 to 3.37.0 by @dependabot in #4535
- Bump slackapi/slack-github-action from 1.25.0 to 1.26.0 by @dependabot in #4536
- Modified the text content and the image in the Related Resources Help Modal by @shivansh-bhatnagar18 in #4524
- Clean up unused read the docs configuration and dependencies. by @rtibbles in #4440
- Bump werkzeug from 2.2.3 to 2.3.8 by @dependabot in #4538
- Bump django-redis from 5.2.0 to 5.4.0 by @dependabot in #4541
- Bump python-postmark from 0.5.8 to 0.6.0 by @dependabot in #4542
- Bump @sentry/vue from 7.109.0 to 7.112.2 by @dependabot in #4543
- Bump stylus from 0.62.0 to 0.63.0 by @dependabot in #4544
- Implement feedback object hierarchy by @ozer550 in #4373
- Bump jinja2 from 3.0.3 to 3.1.4 by @dependabot in #4550
- Bump werkzeug from 2.3.8 to 3.0.3 by @dependabot in #4551
- Bump ejs from 3.1.8 to 3.1.10 by @dependabot in #4548
- Bump nodeenv from 1.6.0 to 1.8.0 by @dependabot in #4552
- Bump axios from 1.6.2 to 1.6.8 by @dependabot in #4553
- Bump django-model-utils from 4.3.1 to 4.5.1 by @dependabot in #4554
- Bump django-prometheus from 2.2.0 to 2.3.1 by @dependabot in #4555
- Bump flask-cors from 3.0.10 to 4.0.1 by @dependabot in #4556
- Bump i18n-iso-countries from 7.11.0 to 7.11.2 by @dependabot in #4559
- Bump djangorestframework from 3.12.4 to 3.15.1 by @dependabot in #4563
- Bump requests from 2.25.1 to 2.32.2 by @dependabot in #4573
- Bump axios from 1.6.8 to 1.7.2 by @dependabot in #4572
- Resolves KCheckbox issues selecting all items in trash modal by @joeysantia in #4526
- Bump less from 3.13.1 to 4.2.0 by @dependabot in #4575
- Fix errors due to older version of drf_yasg by @ozer550 in #4582
- Bump django-cte from 1.2.1 to 1.3.2 by @dependabot in #4576
- Bump workbox-precaching from 7.0.0 to 7.1.0 by @dependabot in #4585
- Release v2024.06.04 by @akolson in #4518
- Merge pull request #4518 from learningequality/hotfixes by @akolson in #4593
- Update publish logic with edge case by @akolson in #4580
- Hotfixes to unstable by @akolson in #4595
- Bump ws from 7.5.8 to 7.5.10 by @dependabot in #4592
- Fix dual scrollbars when using FullscreenModal by @Abhishekzod007 in #4482
- Fix regression with publish task by @ozer550 in #4602
- Fix saved search by @LianaHarris360 in #4612
- Bump jest-each from 29.0.3 to 29.7.0 by @dependabot in #4598
- Fix mis-rendered external links on downloaded PDFs by @marcellamaki in #4608
- Add test for StorageSettingsView by @bmortella in #4613
- Update account deletion string by @marcellamaki in #4607
- Fix incomplete resource importable by @AlexVelezLl in #4618
- Bump i18n-iso-countries from 7.11.2 to 7.11.3 by @dependabot in #4620
- Add zim string. by @rtibbles in #4587
- Bump zipp from 3.4.1 to 3.19.1 by @dependabot in #4603
- Bump pip-tools from 6.8.0 to 7.4.1 by @dependabot in #4586
- Set commit hash during docker build. by @rtibbles in #4628
- Creates a regression test for and fixes duplicate node assessments returning a 500. by @rtibbles in #4614
- Always require an actor_id to identify the user who caused a specific event in a channel's history. by @rtibbles in #4615
- Reduce impact on caching of arg env var setting by @rtibbles in #4630
- Fix to issue #4606 : Links leading outside Studio need to have a pop out icon by @shivam-daksh in #4622
- Fix checkbox issues by @AlexVelezLl in #4629
- Ensure that complete is not incorrectly set via the API by @rtibbles in #4627
- Fix undo remove last child by @AlexVelezLl in #4619
- Implement minimum length for passwords in account creation by @cerdo03 in #4353
- Bump sentry-sdk from 1.16.0 to 2.12.0 by @dependabot in #4625
- Studio usability enhancements by @AlexVelezLl in #4461
- Implements backend core to incorporate Flagging Mechanism by @ozer550 in #4537
- Before entering Main, check for showPolicy query param to show policy by @nucleogenesis in #4609
- Bump tabulate from 0.8.2 to 0.9.0 by @dependabot in #4637
- Fix duplicate nodes by @AlexVelezLl in #4661
- Tweak feedback tests to ensure feature flags are set. by @rtibbles in #4662
- Fix save edit completion modal on exercise resources by @AlexVelezLl in #4660
- Paginate topics by @rtibbles in #4616
- Add validation for threshold none invalid cases by @ozer550 in #4642
- When only one resource is individually selected, do not write '1 resource selected' because it's confusing by @marcellamaki in #4672
- Update snackbar by @marcellamaki in #4671
- Policy modals send policy to accept when accept is emitted by @nucleogenesis in #4670
- Fix the undo selection issue in the snackbar after resource deletion by @LianaHarris360 in #4667
- Update backend change event generation to mark some changes as unpublishable by @rtibbles in #4632
- Fix clipboard moveModal incorrect resource count by @LianaHarris360 in #4631
- Prevent errors when extra_fields are null. by @rtibbles in #4663
- Fixes the breadcrumb wrap for long folder names by @akolson in #4677
- Fixes UI glitch on cards in collections by @akolson in #4675
- Implements check to prevent channel having different language from its content by @akolson in #4666
- (Change|Reset)Password components apply length validation by @nucleogenesis in #4668
- Fixes frontend to properly call invitation accept endpoint. by @rtibbles in #4673
- Consolidate selection text formatting. by @rtibbles in #4676
- Update strings following UX writing review by @marcellamaki in #4682
- Add a string for helper text by @marcellamaki in #4689
- Add MVP modal for applying inheritable metadata by @marcellamaki in #4664
- Fix UI glitch with KSelect in Publish modal by @akolson in #4686
- Standardize capitalization and wording by @marcellamaki in #4694
- Correct topic count when node kind is not found in clipboardNodesMap by @LianaHarris360 in #4690
- Limit duplicate search creation by @rtibbles in #4687
- Fix saved search endpoint and add regression tests. by @rtibbles in #4704
- Update webpack.config.js to make sure we transpile production assets by @rtibbles in #4500
- Analytics for quick edit modals, relative to legacy edit modal by @bjester in #4696
- Remove KCard prototype files by @AllanOXDi in #4712
- small grammar/wording consistency fix by @marcellamaki in #4713
- Move pagination into NodePanel where the contents of the topic are actually loaded and displayed. by @rtibbles in #4674
- Add edit permission check on edit title and description icon button by @akolson in #4710
- Fix mis-matched string that was not updated properly by @marcellamaki in #4717
- Fix multi select filters by @AlexVelezLl in #4718
- Bump KDS to 4.5.0 by @nucleogenesis in #4705
- Fixes the disabled save search link by @akolson in #4719
- Add crowdin-completed translations for bulk editing feature by @marcellamaki in #4725
- Fix default sidebar width by @ozer550 in #4726
- Proper colors on selected-indeterminate and non-selected in clipboard by @nucleogenesis in #4691
- Update how About License information is displayed in EditSourceModal by @LianaHarris360 in #4716
- Revert "Update how About License information is displayed in EditSourceModal" by @LianaHarris360 in #4730
- Fixed field is required' validation by @AllanOXDi in #4714
- About Licenses display changes + revise license URL return method to improve security by @LianaHarris360 in #4731
- Revert "Fixed field is required' validation" by @AllanOXDi in #4732
- Ensure
contentnode.mark_complete()
happens when File updated by @nucleogenesis in #4697 - Bump slackapi/slack-github-action from 1.26.0 to 1.27.0 by @dependabot in #4708
- Undo the reverted changes in #4714 by @AllanOXDi in #4737
- Add regression test and fix for invitation not being marked as accepted. by @rtibbles in #4740
- Incorrect view only channel by @LianaHarris360 in #4733
- Reset scroll on blur for multiselects and language filter by @AlexVelezLl in #4738
- Fix RTL in Language filter by @AlexVelezLl in #4735
- Upload bloom format files in studio by @nikkuAg in #4590
- Fix save quick edit modals by @AlexVelezLl in #4742
- Fix selection on inherit metadata by @AlexVelezLl in #4746
- Update translations by @rtibbles in #4749
- Move helpText to LicenseDropdown component by @LianaHarris360 in #4739
- Pagination follow ups by @akolson in #4741
- Fixes decline invitation by @akolson in #4750
- Follow up inheritable modal fixes by @marcellamaki in #4745
- Fixes topic tree not showing by @akolson in #4759
- Inheritance modal release blocking fixes by @rtibbles in #4758
- Fix incorrectly marked "incomplete" exercises on exercise copy by @marcellamaki in #4761
- Run migrations to fix incorrect source fields of contentnodes by @ozer550 in #4720
- Fixes count of resources/questions on copy by @akolson in #4768
- Fix bulk descendants boolean maps by @AlexVelezLl in #4751
- Properly handle metadata inheritance for non uploaded nodes in edit modal by @rtibbles in #4769
- Make user_id required false for migration by @ozer550 in #4773
- Fix undo on copy by @akolson in #4774
- Bulk Edit Release by @akolson in #4635
New Contributors
- @ShivangRawat30 made their first contribution in #4293
- @cerdo03 made their first contribution in #4358
- @BabyElias made their first contribution in #4374
- @nick2432 made their first contribution in #4400
- @Jovian-Dsouza made their first contribution in #4384
- @GarvitSinghal47 made their first contribution in #4414
- @Abhishekzod007 made their first contribution in #4436
- @EshaanAgg made their first contribution in #4472
- @poju3185 made their first contribution in #4475
- @Wck-iipi made their first contribution in #4489
- @shivansh-bhatnagar18 made their first contribution in #4524
- @joeysantia made their first contribution in #4526
- @bmortella made their first contribution in #4613
- @shivam-daksh made their first contribution in #4622
- @nikkuAg made their first contribution in #4590
Full Changelog: v2024.06.04...v2024.10.02