Go to file
Pablo Marti-Gomez 4c65f3f583 Add cache to Outcomes::LearningOutcomeGroupChildren
Updates Outcomes::LearningOutcomeGroupChildren by adding cache
at the queries for getting the total subgroups and outcomes.

closes OUT-4148
flag=improved_outcomes_management

Test plan:
- Create nested learning outcome groups
- For each nested learning outcome group create learning outcomes
> With FF improved_outcomes_management: OFF
- On Rails console: calls to Outcomes::LearningOutcomeGroupChildren
methods should return a default value
- On web: when generating actions over ContentTag, LearningOutcome
and LearningOutcomeGroup it should not lead to clear any cache
> With FF improved_outcomes_management: ON
- On Rails console: call Outcomes::LearningOutcomeGroupChildren
methods for getting total subgroups and outcomes, queries to the
DB should be made (it will need the root context)
- Call again the same methods, it should return the values from
cache
- Create a new instance of the class and call the same methods,
it should return the values from cache
- Clear the cache with `Rails.cache.clear`
- On web (or through GraphiQL) get the total subgroups and total
outcomes multiple times; it should cache the data and should not
run additional queries
- On web: clear the cache by executing the following actions:
  - Add a Learning Outcome Group
  - Adopt a Learning Outcome Group
  - Copy a Learning Outcome Group from global
  - Remove a Learning Outcome Group
  - Add an Outcome
  - Remove an Outcome
- Get the total subgroups and total outcomes, it should run new
queries
- Run the same tests for global context, it should generate and
clear the cache in the same way

Change-Id: I9b0bfc68b84b3e36869d69a926ef84d9989ea96d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/257257
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
QA-Review: Chrystal Langston <chrystal.langston@instructure.com>
Product-Review: Michael Brewer-Davis <mbd@instructure.com>
2021-03-17 16:49:37 +00:00
.github update github pr auto-assignees 2020-09-24 20:00:41 +00:00
.storybook Add lolcalize toggle to storybook 2021-02-12 16:13:41 +00:00
Gemfile.d Show a maintenance window 2021-03-11 19:04:36 +00:00
app Add cache to Outcomes::LearningOutcomeGroupChildren 2021-03-17 16:49:37 +00:00
bin use spring for rspec loading 2021-03-10 20:32:49 +00:00
build add skip-eslint flag 2021-03-16 18:02:37 +00:00
config update nn translation 2021-03-17 05:55:10 +00:00
db/migrate Set up replica identity index for EnrollmentDatesOverride 2021-03-16 20:19:36 +00:00
doc update sis documentation don't recommend bad stuff 2021-03-15 20:09:16 +00:00
docker-compose Fix ignore path typo 2021-02-25 18:50:58 +00:00
engines auditors extraction: stage 2 2021-03-10 17:25:32 +00:00
frontend_build Upgrade InstUI to latest minor / patch versions 2021-03-15 17:39:32 +00:00
gems Initial work on getting zeitwerk loader running 2021-03-16 19:55:12 +00:00
hooks fix pre-commit hook with unfixable eslint error 2018-11-27 23:28:12 +00:00
jest Make K-5 Dashboard tabs sticky 2021-02-16 16:07:01 +00:00
lib Add cache to Outcomes::LearningOutcomeGroupChildren 2021-03-17 16:49:37 +00:00
log Update parallel_runtime_rspec.log from build 176 2021-03-09 19:28:25 +00:00
packages Omit download button for external links 2021-03-16 14:13:07 +00:00
public Omit download button for external links 2021-03-16 14:13:07 +00:00
script add skip-eslint flag 2021-03-16 18:02:37 +00:00
spec Add cache to Outcomes::LearningOutcomeGroupChildren 2021-03-17 16:49:37 +00:00
tmp Alpine canvas-lms based image 2020-07-15 17:21:56 +00:00
.bowerrc introduced bower to manage js dependencies 2013-12-13 17:45:57 +00:00
.codeclimate.yml disable ESLint in code climate 2017-02-14 17:47:39 +00:00
.dive-ci Spec: Add dive build 2020-03-26 14:52:06 +00:00
.dockerignore modernize canvas_quizzes 2021-01-14 22:45:10 +00:00
.editorconfig Add EditorConfig configuration file to help maintain code style 2016-11-15 20:08:55 +00:00
.eslintignore modernize canvas_quizzes 2021-01-14 22:45:10 +00:00
.eslintrc.js no longer require trailing comma 2021-02-04 21:48:38 +00:00
.gitignore don't exclude /gems/plugins/ and implicitly everything under it 2021-02-24 23:39:40 +00:00
.gitmessage prepend some blank lines to .gitmessage 2019-08-09 16:12:53 +00:00
.i18nignore (re) decentralize i18nliner configuration 2021-03-10 18:52:49 +00:00
.i18nrc (re) decentralize i18nliner configuration 2021-03-10 18:52:49 +00:00
.lintstagedrc.js Remove prettier whitelist 2019-10-11 19:29:31 +00:00
.npmrc fix brand config previewing and skipping 2015-10-27 16:16:15 +00:00
.nvmrc upgrade to node14 2021-01-27 15:33:52 +00:00
.prettierrc restore prettier rules to match pre-2.0 defaults 2021-02-09 17:03:14 +00:00
.rubocop.yml just disable rubocop metrics 2021-03-11 23:18:54 +00:00
.stylelintrc modernize canvas_quizzes 2021-01-14 22:45:10 +00:00
.travis.yml more travis builds 2014-02-10 16:23:19 +00:00
CONTRIBUTING.md Add CLA FAQ from legal 2018-01-22 16:41:44 -05:00
COPYRIGHT Initial commit. 2011-01-31 18:57:29 -07:00
Dockerfile say PLEASE to npx when running yarn-deduplicate 2021-03-02 21:58:31 +00:00
Dockerfile.githook Add precommit hook for auto fixing files 2018-11-27 21:07:31 +00:00
Dockerfile.jenkins say PLEASE to npx when running yarn-deduplicate 2021-03-02 21:58:31 +00:00
Dockerfile.jenkins-cache mirror busybox to starlord 2021-03-15 18:26:04 +00:00
Dockerfile.jenkins.final simplify Dockerfile template generation 2020-12-10 17:28:58 +00:00
Dockerfile.jenkins.karma-builder cache JS runner image 2021-02-03 19:30:30 +00:00
Dockerfile.jenkins.karma-runner disable translations for Jenkins build 2021-02-08 16:03:06 +00:00
Dockerfile.jenkins.webpack-builder split yarn from webpack-builder into yarn-runner 2020-12-14 18:49:51 +00:00
Dockerfile.jenkins.webpack-cache disable translations for Jenkins build 2021-02-08 16:03:06 +00:00
Dockerfile.jenkins.yarn-runner remove "exports" from all @instructure/ packages 2021-01-15 19:39:02 +00:00
Dockerfile.package-translations say PLEASE to npx when running yarn-deduplicate 2021-03-02 21:58:31 +00:00
Gemfile drop rails 5.1 2019-08-01 14:09:31 +00:00
Jenkinsfile better approach to allow-stages directive 2021-03-16 22:18:24 +00:00
Jenkinsfile.cassandra move helper images into own build 2020-09-15 21:47:15 +00:00
Jenkinsfile.contract-tests Remove public contract tests 2021-03-10 19:41:39 +00:00
Jenkinsfile.dive move execute function under libraryScript 2021-01-12 00:32:08 +00:00
Jenkinsfile.docker-smoke remove common_build_steps 2021-03-11 15:15:39 +00:00
Jenkinsfile.docker-sync mirror busybox to starlord 2021-03-15 18:26:04 +00:00
Jenkinsfile.dynamodb move helper images into own build 2020-09-15 21:47:15 +00:00
Jenkinsfile.js disable translations for Jenkins build 2021-02-08 16:03:06 +00:00
Jenkinsfile.master-bouncer-check-all move execute function under libraryScript 2021-01-12 00:32:08 +00:00
Jenkinsfile.package-translations move execute function under libraryScript 2021-01-12 00:32:08 +00:00
Jenkinsfile.parallel_logs improve failure report 2021-03-09 18:51:01 +00:00
Jenkinsfile.postgres move helper images into own build 2020-09-15 21:47:15 +00:00
Jenkinsfile.redis move helper images into own build 2020-09-15 21:47:15 +00:00
Jenkinsfile.selenium-chrome move selenium-chrome build to helper job 2020-12-08 14:41:39 +00:00
Jenkinsfile.selenium.flakey_spec_catcher ignore engines in FSC 2021-03-04 18:41:26 +00:00
Jenkinsfile.selenium.performance.chrome move execute function under libraryScript 2021-01-12 00:32:08 +00:00
Jenkinsfile.test-subbuild remove print-env-excluding-secrets 2020-08-12 20:49:03 +00:00
Jenkinsfile.vendored-gems stage 1: audits engine extract 2021-03-04 20:27:06 +00:00
Jenkinsfile.xbrowser move execute function under libraryScript 2021-01-12 00:32:08 +00:00
LICENSE Initial commit. 2011-01-31 18:57:29 -07:00
README.md Update README.md since Canvas is still modern 2016-12-15 03:18:28 +00:00
Rakefile use parallel_tests for more parallelization 2020-03-30 21:38:47 +00:00
babel.config.js Fix the build 2019-09-17 21:26:07 +00:00
bower.json Move k5uplodaer to /packages 2019-05-10 18:30:51 +00:00
code_of_conduct.md contributor code of conduct 2014-12-23 18:13:59 +00:00
config.ru remove extra logging to debug Passenger connection orphan issue 2017-07-14 16:27:03 +00:00
docker-compose.new-jenkins-contract-tests.yml remove unnecessary directory creation for webpack-cache 2020-12-10 18:49:55 +00:00
docker-compose.new-jenkins-flakey-spec-catcher.yml update fsc to go into the plugin directory to do tests 2020-06-17 14:58:09 +00:00
docker-compose.new-jenkins-js.yml disable translations for Jenkins build 2021-02-08 16:03:06 +00:00
docker-compose.new-jenkins-package-translations.yml Create shared translation infrastructure for packages 2019-11-06 22:42:03 +00:00
docker-compose.new-jenkins-selenium.yml update jenkins for canvas-rce-api image 2020-12-07 16:40:09 +00:00
docker-compose.new-jenkins.canvas.yml Spec: add `init: true` to jenkins builds 2020-06-16 14:09:58 +00:00
docker-compose.new-jenkins.consumer.yml skip uglify js / source maps on pre-merge builds v2 2020-08-11 21:05:54 +00:00
docker-compose.new-jenkins.vendored-gems.yml extract canvas::redis to canvas_cache 2021-03-02 14:38:55 +00:00
docker-compose.new-jenkins.yml enable rails 6 for testing 2020-10-23 14:49:00 +00:00
docker-compose.spring.yml modernize canvas_quizzes 2021-01-14 22:45:10 +00:00
docker-compose.yml build ruby image in docker_dev_setup 2020-07-28 18:23:47 +00:00
gulpfile.js [node12] upgrade gulp 2020-11-20 23:52:44 +00:00
issue_template.md Update community urls to reflect platform move 2020-08-12 20:17:02 +00:00
jest.config.js hide the file drop zone unless the user can manage files 2021-02-08 22:19:55 +00:00
karma.conf.js fix JS job sanity around COVERAGE var 2021-01-27 16:24:14 +00:00
package.json Upgrade InstUI to latest minor / patch versions 2021-03-15 17:39:32 +00:00
ubuntu.development.Dockerfile say PLEASE to npx when running yarn-deduplicate 2021-03-02 21:58:31 +00:00
ubuntu.production.Dockerfile say PLEASE to npx when running yarn-deduplicate 2021-03-02 21:58:31 +00:00
webpack.config.js Opt our js build tooling dirs into prettier 2018-11-07 22:46:16 +00:00
webpack.test.config.js spec: split coffeescript job 2020-07-17 17:39:35 +00:00
yarn.lock Upgrade InstUI to latest minor / patch versions 2021-03-15 17:39:32 +00:00

README.md

Canvas LMS

Canvas is a modern, open-source LMS developed and maintained by Instructure Inc. It is released under the AGPLv3 license for use by anyone interested in learning more about or using learning management systems.

Please see our main wiki page for more information

Installation

Detailed instructions for installation and configuration of Canvas are provided on our wiki.