Go to file
Brian Park 54b9ec859b apply deductions for missing submissions periodically
closes CNVS-36153

Test Plan

NOTE: If you don't feel like waiting 5 minutes for the missing
deductions job to run open config/initializers/period_jobs.rb
and change */5 * * * * to */1 * * * * on line 183. This will
make the job run once per minute. This change will need to be
made prior to starting the rails server.

1. Create a course with some students in it
2. Create some quiz and non-quiz assignments
  a. Mix grading types and submission types
  b. Make sure at least one of the assignments is complete/incomplete
     and has some kind of online submission type
  c. Set the due dates for some of the assignments/quizzes to be in
     the past within the last 24 hours, some further in the past,
     some in the future. Make sure at least one complete/incomplete
     assignment has a due date within the last 24 hours and one
     other grading type within the last 24 hours.
  d. Create at least one assignment due within the last 24 hours and
  	 manually grade one of the students in your course, but not the
  	 others.
  d. Create at least one assignment due within the last 24 hours and:
     1. Mark one of its submissions as missing via the rails
     	console with:
     	Assignment.find(4).submissions.first.update(
     		late_policy_status: 'missing'
     	)
     2. Mark one if its submissions as late via the rails console:
       Assignment.find(4).submissions.second.update(
     		late_policy_status: 'late'
     	)
  f. Wait for the missing deductions job to run in the console you'll
     see output that starts with:
  	"periodic: MissingPolicyApplicator.apply_missing_deductions...."
  g. Visit Gradezilla.
  h. Verify that none of the assignments were automatically graded.
3. Create a LatePolicy for your course via the rails console like so:
   LatePolicy.create(
   	course_id: <COURSE_ID>,
   	missing_submission_deduction_enabled: true,
   	missing_submission_deduction: 90
   )
4. Wait for the job to run again.
5. Visit Gradezilla
6. Verify that grades have been correctly assigned based on missing
   policy. If you created the LatePolicy with the command given in
   step 3 you should see each assignment/quiz given a score of 10%
   of total points. Complete / Incomplete assignments should always
   be given a score of zero and grade of Incomplete. Verify that
   the Total score for the course has been updated.
7. The submission where you set late_policy_status to late should
   not have been graded but the other submissions for that
   assignment should have been.
8. Verify that the manually graded assignment did not have its score
   overridden by the missing policy.
9. Grading periods
  a. Create an assignment in an open grading period that is due
     within the last 24 hours.
  b. Verify that it gets automatically graded when the job runs.
  c. Create an assignment in a closed grading period due within
     the last 24 hours.
  d. Verify that it is not automatically graded when the job runs.
10. Due date overrides
  a. Create assignments with overrides for individual students.
  b. Verify that if the override is due within the last 24 hours
     the submission gets automatically graded.
  c. Verify that if the override is not due within the last 24 hours
     it is not automatically graded.
11. Create a couple more courses and run through some of the above
    scenarios to verify that all courses with a missing policy have
    their missing policy applied correctly.

Change-Id: I39fd9e4c641df83a3bb222fc4b4f48d1c35a767b
Reviewed-on: https://gerrit.instructure.com/109727
Reviewed-by: Neil Gupta <ngupta@instructure.com>
Tested-by: Jenkins
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
QA-Review: Shahbaz Javeed <sjaveed@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2017-05-31 19:21:22 +00:00
Gemfile.d bump after_transaction_commit 2017-05-30 19:35:16 +00:00
app apply deductions for missing submissions periodically 2017-05-31 19:21:22 +00:00
bin copyright linter auto correct, refs SD-2295 2017-05-11 20:06:08 +00:00
build docker enhancements/fixes, fixes SD-2499, refs gh-1043 2017-05-26 20:57:24 +00:00
client_apps get jquery and jquery.cookie from npm, not vendor 2017-05-08 20:47:23 +00:00
config apply deductions for missing submissions periodically 2017-05-31 19:21:22 +00:00
db/migrate teacher-side index, show, and details APIs 2017-05-31 15:08:01 +00:00
doc teacher-side index, show, and details APIs 2017-05-31 15:08:01 +00:00
docker-compose docker enhancements/fixes, fixes SD-2499, refs gh-1043 2017-05-26 20:57:24 +00:00
frontend_build [ci coverage] convert public/js w/ no ‘export’s to ‘import’ 2017-05-19 19:11:12 +00:00
gems spec: fix selinimum capture finalization, refs SD-2561 2017-05-31 05:05:49 +00:00
lib apply deductions for missing submissions periodically 2017-05-31 19:21:22 +00:00
public upgrade mediaelement.js to instructure/mediaelement#1a177ed2cc frd 2017-05-31 15:39:58 +00:00
script upgrade to aws-sdk v3 2017-05-26 15:30:08 +00:00
spec apply deductions for missing submissions periodically 2017-05-31 19:21:22 +00:00
.babelrc Strip out react propTypes in prod webpack build 2017-03-13 23:04:17 +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
.dockerignore docker enhancements/fixes, fixes SD-2499, refs gh-1043 2017-05-26 20:57:24 +00:00
.editorconfig Add EditorConfig configuration file to help maintain code style 2016-11-15 20:08:55 +00:00
.eslintignore Don’t eslintignore public/js/vendor because we modified code in there 2017-04-11 16:31:48 +00:00
.eslintrc.js eslint proposal: ignore ‘padded-blocks’ 2017-05-22 18:50:09 +00:00
.gitignore Remove RequireJS support 2017-03-13 22:10:23 +00:00
.i18nignore bump rails 3 to github branch for ruby 2.2 compatibility 2015-02-18 22:55:20 +00:00
.i18nrc upgrade to node 6 2016-08-09 23:37:07 +00:00
.jshintrc make jslint settings more sane 2012-08-17 11:04:40 -06:00
.npmrc fix brand config previewing and skipping 2015-10-27 16:16:15 +00:00
.nvmrc bump node version to v6.9.5 (latest LTS) 2017-02-09 22:31:33 +00:00
.rubocop.yml spec: de-dup spec descriptions, fixes SD-2181 2017-03-03 22:52:02 +00:00
.selinimumignore Revert and bring InstIcons into Canvas 2016-11-29 20:52:54 +00:00
.stylelintrc stylelint, refs SD-1603 2016-10-25 00:21:16 +00:00
.travis.yml more travis builds 2014-02-10 16:23:19 +00:00
CONTRIBUTING.md update CONTRIBUTING wording for CLAHub 2017-05-19 19:26:14 +00:00
COPYRIGHT Initial commit. 2011-01-31 18:57:29 -07:00
Dockerfile docker enhancements/fixes, fixes SD-2499, refs gh-1043 2017-05-26 20:57:24 +00:00
Dockerfile-production docker enhancements/fixes, fixes SD-2499, refs gh-1043 2017-05-26 20:57:24 +00:00
Gemfile remove rails 4.0 support 2016-10-25 17:17:22 +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 remove dead parallelized specs task 2016-11-10 21:41:08 +00:00
bower.json use node_modules wherever possible 2016-11-01 15:14:52 +00:00
code_of_conduct.md contributor code of conduct 2014-12-23 18:13:59 +00:00
config.ru start adding rails 3.0 support 2013-03-22 19:08:40 +00:00
docker-compose.jenkins.yml Rename docker-compose.test.yml 2017-05-17 18:51:53 +00:00
docker-compose.override.yml Replace guard with webpack in docker-compose file 2017-03-13 16:02:19 +00:00
docker-compose.yml add i18n sorting dependencies to docker 2017-02-21 18:24:56 +00:00
gulpfile.js add es6.map to the ie11-polyfill 2017-05-26 15:32:55 +00:00
issue_template.md Add issue_template.md for GitHub issues 2016-02-17 21:00:48 +00:00
karma.conf.js Remove RequireJS support 2017-03-13 22:10:23 +00:00
package.json upgrade instructure-ui to 2.2.2 2017-05-26 21:51:48 +00:00
webpack.config.js don't pass frontend build files through babel 2016-11-08 20:29:29 +00:00
webpack.production.config.js parallelize the uglify step of webpack prod build 2017-02-06 16:10:37 +00:00
webpack.test.config.js revert es6 modules in public/javascripts to amd 2017-04-06 15:43:15 +00:00
yarn.lock upgrade instructure-ui to 2.2.2 2017-05-26 21:51:48 +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.