Commit Graph

11178 Commits

Author SHA1 Message Date
Eric Adams b2e4471709 add sis_course_id to sections api attributes
fixes SIS-277

Change-Id: I06bfef5c18427b8db311ab433d5370fdb8c14bc5
Reviewed-on: https://gerrit.instructure.com/34955
Reviewed-by: Duane Johnson <duane@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Eric Adams <eadams@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
2014-05-22 23:49:05 +00:00
Jason Madsen c66ab5ce78 fix quiz moderate refresh with no submissions
closes CNVS-13241

fix error where quiz moderate refresh button fails when no existing quiz
submissions listed.

test plan:
  - create and publish a quiz
  - don't have any submissions on it
  - visit quiz moderate as instructor
  - hit the refresh icon in top right of moderate table
    - no errors should happen
  - as student, take and submit quiz
  - as instructor hit the refresh icon once quiz is submitted
    - student row in table should be updated

Change-Id: Ifeb97a4b4094ea50ec38c529c721aa5f7467b693
Reviewed-on: https://gerrit.instructure.com/35342
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
2014-05-22 22:47:53 +00:00
Ahmad Amireh 96a1b0cd2d Ember Quiz Stats - DIndex Help Dialog
Adds a tiny ? icon next to discrimination index charts that, when
clicked, pops up a message dialog that reads a friendly helpful message
about the chart.

Closes CNVS-13200

TEST PLAN
---- ----

  - create a quiz with MC/TF questions
  - take it by enough students to render the discrimination index chart
  - visit the ember stats page
  - verify that you see a ? icon next to the DI chart, click it:
    - you should see a dialog
    - dialog should read the message specified in the JIRA ticket
    - dialog should contain a link that takes you to the support article
    - dialog should be accessible and closable just like the others

Change-Id: I95db931e65444d90c67a2dfb5d4fe29fdb026bed
Reviewed-on: https://gerrit.instructure.com/35321
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
2014-05-22 22:07:03 +00:00
Stanley Stuart 5712fbe5cb add a preview quiz button to ember quizzes page
Test plan:
  - As a teacher, you should be able to preview a quiz on fabulous
    quizzes.

closes CNVS-12442

Change-Id: Iec3aa3735b47e4b71d3a92d7f0b479bc3bd3c475
Reviewed-on: https://gerrit.instructure.com/35206
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
2014-05-22 22:05:25 +00:00
Sterling Cobb 8eaa70f8d9 accessiblity touch ups when copying a course
fixes CNVS-12188

When you are migrating a course and using voice over in safari it was
really confusing because when you selected 'copy course' and did a
course search or a course select, the results would be read we everything else on the
page. This fixes that.

Test Plan
As a teacher or someone who can run a migration
Given you are using safari with voice over
When you import content into a course
And you select the content type of 'Copy a Canvas Course'
And you search for a course by its name by using the field
Then voice over should tell you there are results
And when you use the arrow keys to select one of those results
Then only the selected result should be read by voice over
And the all of the form items should not be read
----------------------------------------------------
As a teacher or someone who can run a migration
Given you are using safari with voice over
When you import content into a course
And you select the content type of 'Copy a Canvas Course'
And you select a course in the course select dropdown
And when you use the arrow keys to select one of those results
Then only the selected result should be read by voice over
And the all of the form items should not be read

Change-Id: Id2c265d900ee9676094e221fa9dd38e8a61a843a
Reviewed-on: https://gerrit.instructure.com/35240
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
2014-05-22 21:43:25 +00:00
Eric Adams 28eb7d9e60 swagger-ui redesign
fixes SIS-273

Change-Id: Ia19b08580f83002c90ebdce22ba55775c35a69a5
Reviewed-on: https://gerrit.instructure.com/34683
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Duane Johnson <duane@instructure.com>
Product-Review: Duane Johnson <duane@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
2014-05-22 21:41:13 +00:00
Jake Sorce 86febffff4 add user note flag to conversations create
refs PS-1497

test plan:
  1. valdate api documentation is updated with user_note
     flag
  2. create a new conversation with a single user adding
     the user_note flag and make sure a faculty journal
     entry is created for that user when the conversation
     is created
  3. create a new conversation with multiple student users
     with the user_note flag and validate that faculty journal
     entries were created for those student users
  4. create a new conversation with non student users and
     the user_note flag and validate faculty journal entries
     were not created for those users

Change-Id: I177402c24bee15c8bc9cc56538d6769b8730b4ad
Reviewed-on: https://gerrit.instructure.com/35218
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Adam Phillipps <adam@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
2014-05-22 21:23:35 +00:00
Sterling Cobb f68cf38126 capitalize words when editing a module
fixes CNVS-13179

As a teacher or admin
Given you have a module
And are on the modules page
Edit a module
Then you should see 'Lock module until a given date' is capitalized
And you should see 'Students must move through ...' is capitalized

Change-Id: Icfab7c67418baa65dd0b8b4b20fb28bc5fb8b3a4
Reviewed-on: https://gerrit.instructure.com/35246
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
2014-05-22 21:01:18 +00:00
Jon Jensen 0a9a954a5d extract User.enrollment_conditions from user.rb, refs CAT-147
they're not relevant to *a* User, and they're needed by things other than
User.reflections.

test plan:
n/a, just refactoring to a (hopefully) better spot. existing and new specs
should cover all of this

Change-Id: I66ab5314582113ac549af5662bcf08a8ca5df580
Reviewed-on: https://gerrit.instructure.com/35082
Reviewed-by: Dave Donahue <ddonahue@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2014-05-22 20:54:03 +00:00
Rob Orton b080df653a use add extra text helper in reports
refs CNVS-3134

test plan 
 - report extra text should be translated and work

Change-Id: Id4489f386c35f4df999e993306d64a7563573773
Reviewed-on: https://gerrit.instructure.com/34685
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Dave Jungst <dave@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
2014-05-22 20:51:40 +00:00
Josh Simpson 5fb5464891 add polling session and submission apis
fixes CNVS-12474, CNVS-12477, CNVS-12478
this commit fleshes out the API endpoints for polling sessions and
submissions, and solidifies the other polling endpoints.

Test plan
- Full tests on the following endpoints:
  - Polls are the basic data model of the polling app.  They can take a
    question attribute and a description attribute. They are only
    creatable and modifiable by teachers.

    - GET /api/v1/polls (index action)
    - POST /api/v1/polls (create action)
    - GET /api/v1/polls/:id (show action)
    - PUT /api/v1/polls/:id (update action)
    - DELETE /api/v1/polls/:id (destroy action)

  - Poll choices belong to polls. They consist of the particular answers
    a submitter can choose when participating in a poll session.  They
    have attributes of text (the answer text), their associated poll,
    and an 'is_correct' boolean attribute.  The 'is_correct' attribute
    show not be accessible by students.  Poll choices are only creatable
    and modifiable by the creator of the poll.

    - GET /api/v1/polls/:poll_id/poll_choices (index action)
    - POST /api/v1/polls/:poll_id/poll_choices (create action)
    - GET /api/v1/polls/:poll_id/poll_choices/:id (show action)
    - PUT /api/v1/polls/:poll_id/poll_choices/:id (update action)
    - DELETE /api/v1/polls/:poll_id/poll_choices/:id (destroy action)

  - Poll sessions are for publishing a poll so that it can accept
    submissions.  They should only be createable / modifiable by
    teachers. Only students that are enrolled in the associated course
    of the poll session should be allowed to view them.
    The show action of a poll session acts differently for a teacher.
    They are able to see the results of the voting that has taken place
    by students since the session was published.

    - GET /api/v1/polls/:poll_id/poll_sessions (index action)
    - POST /api/v1/polls/:poll_id/poll_sessions (create action)
    - GET /api/v1/polls/:poll_id/poll_sessions/:id (show action)
    - PUT /api/v1/polls/:poll_id/poll_sessions/:id (update action)
    - DELETE /api/v1/polls/:poll_id/poll_sessions/:id (destroy action)
    - GET /api/v1/polls/:poll_id/poll_sessions/:id/publish (publish action)
    - GET /api/v1/polls/:poll_id/poll_sessions/:id/close (close action)

  - Poll submissions are for submitting an answer for a particular poll
    session.  A student should only be allowed to submit a poll choice
    for a session they're able to view, and they can only submit one
    poll choice per poll session.

    - GET /api/v1/polls/:poll_id/poll_sessions/:poll_session_id/poll_submissions/:id (show action)
    - POST /api/v1/polls/:poll_id/poll_sessions/:poll_session_id/poll_submissions (create action)

Change-Id: Ifcfd72ec30597e37fc54c687fb7d61a644d7348c
Reviewed-on: https://gerrit.instructure.com/34605
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
2014-05-22 20:49:40 +00:00
Rob Orton a069fb9772 fix api doc typo and make optional consistent
fixes CNVS-13259

test plan
 - api docs should generate

Change-Id: I9d0a4cc5da86ef279ca4a4e30abbf43a70031788
Reviewed-on: https://gerrit.instructure.com/35349
Reviewed-by: Nick Cloward <ncloward@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2014-05-22 20:30:36 +00:00
Sterling Cobb 420cc32bf0 fix unlocked_at field when editing a module
fixes CNVS-13180

When you edit a module item and click to add an unlocked_at date it was
acting a little weird. It would "persist" after you added an
unlocked_at date when editing another unlocked_at date in a different
module as well as it would loose the previously selected unlocked_at
date when checking/unchecking the checkbox. This fixes all of that.

Test Plan
-------------------
As a teacher
Given you have 2 modules that don't have a unlocked_at due date set
And you are on the modules page
When you click the gear icon and edit a module
And you check the 'lock module until a given date' checkbox
And you select an unlocked_at date
And you uncheck the 'lock module until a given date' checkbox
And you check 'lock module until a given date' again
Then you should see the unlocked_at date field should have the
previously selected due date. It should not be 'lost'
---------------------------------
Given you have 2 modules that don't have a unlocked_at due date set
And you are on the modules page
When you click the gear icon and edit a module
And you check the 'lock module until a given date' checkbox
And you close the module edit dialog window
And you edit a different module with no unlocked_at due date set
Then you should see that module's 'lock module until a given date'
checkbox is unchecked
And you don't see the 'unlocked_at' field.
---------------------------------------------------
Given you have a module with a due date
And you are on the modules page
When you click the gear icon and edit that module
Then you should see the 'lock module until a given date' checkbox
checked
And there should be a unlocked_at date set in the field

Change-Id: Ic70ebefaa2cadb684266cdd442b98751a6739cf7
Reviewed-on: https://gerrit.instructure.com/35278
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2014-05-22 19:52:08 +00:00
Derek DeVries efa361db59 add student extension dialogs on new ember quiz moderate page
fixes CNVS-12449

test plan:
  - as a teacher
  - enable fabulous quizzes
  - enroll a few students in the course

  - there is a new quizzes api attribute called 'quiz_extensions_url'
  - check out the jsonapi quizzes api to make sure this attribute only shows
    up for teachers (and not students)

  - create a quiz with no time limit and unlimited attempts
    - visit the quiz moderate page
    - click the "edit" icon for a student
    - the modal dialog should only allow you to "manually unlock"

  - create a quiz with a time limit
    - visit the quiz moderate page
    - click the "edit" icon for a student
    - the modal dialog should only allow you to "manually unlock"
    - the modal dialog should only allow you to add "extra time"

  - create a quiz with a limited number of attempts (1 or more)
    - visit the quiz moderate page
    - click the "edit" icon for a student
    - the modal dialog should only allow you to "manually unlock"
    - the modal dialog should only allow you to add "extra attempts"

  - create a quiz with both a time limit and a limited number of attempts
    - visit the quiz moderate page
    - click the "edit" icon for a student
    - the modal dialog should only allow you to "manually unlock"
    - the modal dialog should only allow you to add "extra attempts"
    - the modal dialog should only allow you to add "extra time"
    - change the settings for extra attempts, extra time, and manually unlock
    - hit submit
    - it should save these new settings if you reopen the dialog
    - it should show the extra minutes allowed on the attempt under the username
    - it should add the extra attempts to the 'attempts left' column value

Change-Id: I0e10942ff7a3a80cec200468216ba0641decee2c
Reviewed-on: https://gerrit.instructure.com/35089
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
2014-05-22 19:45:34 +00:00
Nick Cloward 78edb671b3 add course reset event to api docs
refs: CNVS-12590

This just adds the reset event types to the documentation
for the api endpoint.

Test Plan:  None, documentation change.

Change-Id: I119850466c58b61f785a74542de4bad02a743654
Reviewed-on: https://gerrit.instructure.com/35327
QA-Review: August Thornton <august@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Nick Cloward <ncloward@instructure.com>
2014-05-22 19:34:23 +00:00
Sterling Cobb 62c552b264 add proper aria label to unlock_at date
fixes CNVS-13178

There was no aria label on the text field. There is now

Test Plan
---------------
As a teacher
Given your course has a module
And you are editing that module from the modules page
And you are using a screen reader
When you check the 'lock module until a given date'
And you tab to the 'unlock_at' text field
Then it should read you the label for that text field

Change-Id: I4cce9b038d68917192205b908c1dee0ce6041e3c
Reviewed-on: https://gerrit.instructure.com/35282
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
2014-05-22 18:05:55 +00:00
Jake Sorce 1bef256676 fix null location bug
fixes PS-1560
fixes CNVS-13221

test plan:
  1. create a calendar event from the ui dialog
     without a location
  2. vaidate once the event is created and you click
     on it that the location is not shown as null

Change-Id: Ib2946f62fd570d4f8f9bd097e04630fce26e154c
Reviewed-on: https://gerrit.instructure.com/35261
Reviewed-by: Dave Jungst <dave@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jake Sorce <jake@instructure.com>
2014-05-22 17:31:49 +00:00
Ahmad Amireh 076e541cdb Ember Quiz Stats - File Upload & Formula
Render question statistics for those question types similar to Essay.
File Upload should include a link to download all submissions too.

QuizSerializer was updated to include the submission ZIP download URL.

Closes CNVS-12988

TEST PLAN
---- ----

  - using your data set from https://gerrit.instructure.com/#/c/35112/
    - verify that the score chart renders with the student scores
    - verify that you get a link to Download All Files for FUpload
      questions
    - verify that the "Attempts: x out of Y" reads correctly based on
      the "responses" field and the total participant count,
      respectively
    - tooltips and chart interactivity like that for Essay

Change-Id: I4a77631491b169106e2eb677b21c1f30f3ca9440
Reviewed-on: https://gerrit.instructure.com/35113
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2014-05-22 15:56:45 +00:00
Ahmad Amireh ddcffe00ef Quiz Stats - File Upload & Formula
Add support for generating stats for File Upload and Formula questions.
Similar to Essay metrics but adjusted to calculate properly.

Closes CNVS-13169

TEST PLAN
---- ----

  - create a quiz with those question types
  - take the quiz:
    - answer both question types by at least one student, but leave it
      unanswered by another so we can test the "responses" metric
  - test the stats:
    GET /api/v1/courses/:course_id/quizzes/:quiz_id/statistics
    - the "responses" metric should count the number of students who
      provided an answer
    - the "graded" metric should read the number of students whose
      answers you've graded so far
    - the "full_credit" one should read 0 until you grade it and give
      them a score higher than, or equal to, the maximum points possible
    - "point_distribution" is similar to that of Essays; it is an array
      of objects that track every score you gave the students and the
      number of students who received those scores
  - grade the scores and re-test to verify the metrics update correctly
  - verify that the API documentation is updated to include those
    question types

PS: the "responses" field will read "the number of students who uploaded
a file" for File Upload, and "the number of students who wrote any
answer" for Formula.

Change-Id: I890eafe018e000eef88de782bd7e86b5259df5d5
Reviewed-on: https://gerrit.instructure.com/35112
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2014-05-22 15:56:29 +00:00
Nick Cloward 3958a5cf44 add reset content event
fixes: CNVS-12590

Adds a course content event type to the course audit logs.

Test Case:

  - Create a course.
  - Reset its content.
  - The event and its data should be reflected for both
    the source course and new course from resetting the
    course data.

Change-Id: I473d2e237491d890c20aace57f9c7675d70d22c7
Reviewed-on: https://gerrit.instructure.com/33726
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Nick Cloward <ncloward@instructure.com>
2014-05-22 14:53:34 +00:00
Simon Williams dd30e31a6f remove outcome alignment shim
test plan:
- tests pass

Change-Id: I56c1c7dfa3703d4f04c0b758d7723e85dbf9ad7e
Reviewed-on: https://gerrit.instructure.com/34910
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
2014-05-22 14:53:03 +00:00
Simon Williams 3980a8c637 don't keep generated locales in git
closes CNVS-12609

test plan:
- make sure rake i18n:generate still works
- basic regression of i18n in canvas

Change-Id: I882c7b6f197d65aa673a22225ae6a87ee4431aa0
Reviewed-on: https://gerrit.instructure.com/33760
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2014-05-22 14:52:48 +00:00
Transifreq 39233469b0 Updated ja translation 2014-05-22 05:20:49 -06:00
Transifreq c273a04183 Updated ru translation 2014-05-22 05:14:01 -06:00
Transifreq af95b3639f Updated de translation 2014-05-22 05:09:38 -06:00
Kulgar eda3a59d0b Proposing a fix for big tooltips in modules page footer for previous/next buttons 2014-05-22 11:41:14 +02:00
Derek DeVries 093b6c76f4 fix documentation issues for quiz extensions api
fixes CNVS-13237

test plan:
  - generate the documentation for the api
    - the description for the endpoint to set extensions has been corrected
    - the copyright block is no longer in the docs
    - user_id is now correctly described as 'Required' instead of 'Optional'
    - The attributes of the QuizExtension object description have been changed
      to not show the extend_from_now and extend_from_end_at, and instead
      reflect the actual object returned when you make updates - which instead
      includes the end_at date
    - fixed description of extra_attempts to be more clear
    - The example response should now correctly show quiz_extensions and not
      quiz_submissions
    - updated the description of extra_time in quiz submissions api to correctly
      describe it in 'minutes' instead of 'seconds'

  - I have updated the behavior of the manually_locked attribute.
    - Sending 1, '1', true, or 'true' will result in the attribute being
      set to true. Every other value will set the value to false.

Change-Id: Id6071632a8eb9d01d61cf21287955fb5e44c2f3f
Reviewed-on: https://gerrit.instructure.com/35305
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
2014-05-22 00:53:43 +00:00
Jason Madsen 7946aa0ad2 ember quiz moderate display/update unfinished time
closes CNVS-12915

display estimated running time, or countdown for timed quizzes, and
clock icon within quiz moderate display when a quiz submission has
been started, but not finished. also auto refreshes the moderate data
after 1 minute, and then again every 3 minutes after that.

 test plan:
  - enable ember quizzes

  - scenario 1
    - as a student start, but do not complete a non-timed quiz
    - as instructor navigate to ember quiz moderate for the quiz
      - time column should display clock icon and estimated time
      - estimated time should update, displaying time student has been
        taking the quiz
    - as student complete and submit the quiz
    - as instructor refresh the page, or click refresh icon
      - student row in moderate page should update, remove icon

  - scenario 2
    - repeat scenario 1, but for a timed quiz
      - in moderate table, time should update
        - time should be counting down with students remaining time
        - if time reaches 0, it should:
          - stop displaying clock icon
          - stop counting down
          - display amount of time taken on the timed quiz

  - for due_at and locked_at quizzes, behavior should mimic
    scenario 1. clock stopping for due at, lock at will be addressed
    in CNVS-13151

Change-Id: If4b50f74a895f29ba89a56cecb04dca44ecc6c6f
Reviewed-on: https://gerrit.instructure.com/34845
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Jason Madsen <jmadsen@instructure.com>
2014-05-21 22:29:56 +00:00
Duane Johnson 61b0858aa3 remove duplicate argument in content migration API
settings[file_url] was duplicated, as was source_course_id

Fixes SIS-279

Change-Id: Ied36085cfdb311c666a0d8c792ab475aa0452630
Reviewed-on: https://gerrit.instructure.com/34981
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Eric Adams <eadams@instructure.com>
Product-Review: Eric Adams <eadams@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
2014-05-21 21:55:22 +00:00
Derek DeVries 1343e2379c add api for quiz submission extensions
quiz submissions can have their time limit or number of attempts extended.
we can extend both existing quiz submissions, and also those that don't exist
yet. adding this functionality to the existing quiz submissions api would
muddle up responsibilities. So instead we post all extensions to a the
quiz extensions api which is specifically meant for adding extensions to a
submission whether it has been started yet or not.

Also add 'manually_unlocked' to the quiz submissions api. this field lets us
know if a student can take a quiz after it has been locked for everyone else.

fixes CNVS-13165

test plan
  - There is a new attribute added to quiz_submissions objects in the api
    called 'manually_unlocked'. This attribute will now show up when returning
    results back from
    - GET /api/v1/courses/:course_id/quizzes/:quiz_id/submissions (index)
    - GET /api/v1/courses/:course_id/quizzes/:quiz_id/submissions/:id (show)

  - There is a new endpoint to create quiz extensions. This should work to
    create quiz extensions for users that both have existing quiz submissions
    started, and users who have not yet started a quiz:
    - POST /api/v1/courses/:course_id/quizzes/:quiz_id/extensions (create)
  - Check Permissions on the new quiz extension endpoint. Only teachers should
    be able to extend the quizzes.
  - Check that all the documentation looks okay for quiz extensions.

Change-Id: Ie23113c1f30e139a1e376475fb35a2cf3ce0212c
Reviewed-on: https://gerrit.instructure.com/35111
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
2014-05-21 21:30:15 +00:00
Cameron Matheson f97ae1a6ac stop offering to preview unsupported filetypes
fixes CNVS-13191

Test plan:
  * Edit a wiki page in a course with some files that are supported by
    scribd or canvadocs, and some files that aren't
  * add those files to the page
  * the previewable file types should have a working preview icon, the
    unsupported file types shouldn't disappoint you with a non-working
    preview icon

Change-Id: I8d7cce475a33b1b71c1d60f1e20ff256c54a7869
Reviewed-on: https://gerrit.instructure.com/35209
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
2014-05-21 21:09:22 +00:00
Rob Orton 296af05c8b add a service parameter to our CAS logout
fixes CNVS-12161

test plan
 - regression test CAS login and logout
 - logout should now include service parameter

Change-Id: Ieab7d53021eaf8697bf1636a438a6da4556df905
Reviewed-on: https://gerrit.instructure.com/33498
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2014-05-21 21:02:50 +00:00
Tyler Pickett 4e979a3a45 extract GB2 keyboard nav and allow it to be i18nd
fixes CNVS-13044

Previously we were comparing to a specific character code that wasn’t
subject to i18n so when the translators got into the translations the
shortcuts would have been all messed up. Now we’re comparing strings
instead so when the key changes so does what we’re looking for. To make
this a bit easier in the future I’ve started extracting some of the
key checking logic so we can easily apply this elsewhere.

Test Plan:
- As a teacher navigate to GB2
- Use the keyboard shortcuts
  - They should still work

Change-Id: If23046c568d7a09b386c7ac8e1176192d2d96061
Reviewed-on: https://gerrit.instructure.com/35002
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2014-05-21 20:45:13 +00:00
Ryan Shaw afc1150b7b A feature flag to toggle html5/flash first video playback
this is a simple feature flag that will let us
toggle between:
a. trying html5 first then falling back to flash
   if not enabled or trying flash first.
b. trying flash first, then falling back to html5
   if unavailable.

test plan:
1. with feature flag not turned on, watch a video.
it should use flash to play it.
2. turn on the feature flag for domain_root_account
3. watch a video, it should use html5

Change-Id: I08aab043f89d049863dcbbd49aa1c4fcd8dc2895
Reviewed-on: https://gerrit.instructure.com/34248
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: David Julia <djulia@pivotallabs.com>
Reviewed-by: Paul Hinze <paulh@instructure.com>
Product-Review: Ben Hutchings <benh@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
2014-05-21 19:48:23 +00:00
Ryan Shaw 2b718dbd05 Use HTML5 for videos by default so subtitles work in fullscreen
also,make subtitle text bigger when in fullscreen

fixes: CNVS-12293

videos should play back like they used to but this commit
switches back to using html5 by default instead of flash
because that is the only way that subtitles will show up in
fullscreen mode

test plan:
in all the browsers we support (in particular: ie10, android
and mobile safari):
* try playing a video that you have uploaded a subtitle track for.
* the playback should work
* the subtitles should show up when in normal-sized mode
* press the fullscreen button, the video should go into
  fullscreen correctly and still show the subtitles
  (and the subtitles should be bigger in fullscreen mode)

Change-Id: I5b77f58133fb9081909771d50bb8f0a91db23d63
Reviewed-on: https://gerrit.instructure.com/34016
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Reviewed-by: Paul Hinze <paulh@instructure.com>
Product-Review: Ben Hutchings <benh@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2014-05-21 19:48:18 +00:00
James Williams e2fe9ab601 retain attachment content_type on cross shard user merge
test plan:
* create a user
* create another user on another shard
* upload a previewable file (such as an image) for a user
* merge the user with the file into the other user
* after jobs have run, the file should show up in the
 final user's folder, and should still be previewable

fixes #CNVS-13059

Change-Id: I20eec5d8b9dac06a72dd3f7a7018cb5034426080
Reviewed-on: https://gerrit.instructure.com/35230
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
2014-05-21 19:29:35 +00:00
Sterling Cobb 021c1f6d2a update module item title after ajax request
fixes #CNVS-12636

If you go to the modules page with draft state enabled and update the
title of a module item, when you hover over that text the title doesn't
update. It should.

Test Plan
As a user that can edit a module item
Given draft state is enabled
Given you have a module with module items in it
When you go to the modules page
And you edit a module items title
And you hover over the module item's title with your mouse
Then you should see the title correctly updates without having to
refresh the page.
And you should feel happy inside.

Change-Id: Ic3a90f09d8af430cbb3c751aa4770f6018b0d169
Reviewed-on: https://gerrit.instructure.com/34747
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Hilary Scharton <hilary@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
2014-05-21 19:15:31 +00:00
Braden Anderson 3ead3ce097 individual gradebook: require LMGB flag for outcomes
fixes CNVS-13113

test plan:
  * enable Individual Gradebook View
  * enable Learning Mastery Gradebook
  * open SRGB within a course
  * verify that you have an Outcomes tab presented
  * disable Learning Mastery Gradebook
  * open your browser's traffic log
  * refresh SRGB
  * verify that the tabs are hidden
  * verify that no outcome-related API requests are made

Change-Id: Id432dec32c5f508ed10c6ae1beab84bd4da61588
Reviewed-on: https://gerrit.instructure.com/35163
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
2014-05-21 19:05:39 +00:00
Mark Severson 041c9b81af fix module progression migrations
test plan:
 - migrations should run successfully, specifically
   - 20140418210000
   - 20140418211204
 - migrations should run predeploy

Change-Id: I764f996be7d7da350a3e88e702d1578979d7523d
Reviewed-on: https://gerrit.instructure.com/35245
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2014-05-21 18:46:56 +00:00
Cody Cutrer 8178266194 split yaml file loading out of Setting
refs CNVS-13024

Setting wasn't properly being initialized as unsharded because
it was loading before Switchman. The reason we need Setting before
switchman is just for yaml loading, so split that into its own
class.

Change-Id: I5456e103cb216dba2d5af4e9c20a697b468c923b
Reviewed-on: https://gerrit.instructure.com/35043
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2014-05-21 18:27:06 +00:00
Simon Williams 195c335aa4 fix facebook iframe layout css
also clarify some facebook plugin config steps

fixes CNVS-13203

test plan:
- go to <canvas>/facebook/ and make sure the page renders

Change-Id: I5efdcbd16c497533e5aeee8b29ee59b57c8deb98
Reviewed-on: https://gerrit.instructure.com/35174
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2014-05-21 17:32:54 +00:00
Ahmad Amireh a9b4ab3090 Ember Quiz Stats - FIMB & MDropdowns - "No Answer"
Add support to display the "No Answer" and "Other Answers" (FIMB-only)
in the answer bar chart for those question types, and make the bars
visible for answers with 0% responses.

Totally unrelated change: now using the icons Blake made for us.

Closes CNVS-13033, CNVS-13071, CNVS-12961

TEST PLAN
---- ----

  - create a quiz with FIMB and MDropdowns questions
  - take the quiz by a number of students and type in different answers
  - make an API request to stats:
    GET /api/v1/courses/:course_id/quizzes/:quiz_id/statistics
    - verify you get the documented metrics and they have the proper
      values
  - visit the ember quizzes page and verify that:
    - the charts are still working
    - the bar chart now displays a bar for "No Answer" responses and
      another bar for "Other answers" if your students provided any
      (only applies to FIMB questions)
  - new bar/tooltip improvement: answers that have 0% now take up at
    least 5 pixels of the chart so that you can hover over them and get
    the tooltip to show, earlier it was really difficult because they
    were too tiny

Change-Id: Ie9a7ea6bb539fa9d120679997d4a20737f8ad03c
Reviewed-on: https://gerrit.instructure.com/34953
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2014-05-21 16:37:24 +00:00
Ahmad Amireh 32801bd45d Quiz Stats - Multiple Dropdowns
Closes CNVS-13161

TEST PLAN
---- ----
  - create a quiz with multiple-dropdown questions
  - take the quiz by a number of students and type in different answers
  - make an API request to stats:
    GET /api/v1/courses/:course_id/quizzes/:quiz_id/statistics
    - verify you get the documented metrics and they have the proper
      values
  - visit the ember quizzes page and verify that:
    - the charts are still working

Change-Id: I37ef48f22c3c16170034b6dd887b40ff20da4af5
Reviewed-on: https://gerrit.instructure.com/35104
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2014-05-21 16:37:11 +00:00
Ahmad Amireh 2e00d94732 Quiz Stats - FIMB
Support for FIMB question statistics in the CanvasQuizStatistics gem.

Closes CNVS-13160

TEST PLAN
---- ----

  - create a quiz with FIMB questions
  - take the quiz by a number of students and type in different answers
  - make an API request to stats:
    GET /api/v1/courses/:course_id/quizzes/:quiz_id/statistics
    - verify you get the documented metrics and they have the proper
      values
  - visit the ember quizzes page and verify that:
    - the charts are still working

Change-Id: I2d82c708614c41e222aa24d65de64555d8056a9a
Reviewed-on: https://gerrit.instructure.com/35101
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2014-05-21 16:36:58 +00:00
Ahmad Amireh 4b552c0022 Quiz Stats - Convert Essay to new DSL
Closes CNVS-13159

TEST PLAN
---- ----

Only code changes. Test plan would be the same as
https://gerrit.instructure.com/#/c/35096/

Change-Id: I0f26a3df1278d555237c803cebbe80cde1559065
Reviewed-on: https://gerrit.instructure.com/35097
Reviewed-by: Jason Madsen <jmadsen@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2014-05-21 16:36:45 +00:00
Ahmad Amireh 82b1e74f16 Quiz Stats - Maintain ERB compatibility
This patch makes it so that if you want to get the new stats from the
back-end, you'll have to explicitly pass a "legacy=false" parameter to
the report generator routine. Old code will use the old output, new code
will use the CanvasQuizStatistics gem for stats.

Closes CNVS-13198

TEST PLAN
---- ----

  - create a quiz with a bunch of questions and take it by multiple
    students
  - visit the ERB stats page at
    /courses/:course_id/quizzes/:quiz_id/statistics
    - verify that the page renders and looks just like how it was before
      the work on its ember counterpart
  - visit the ember stats page at
    /courses/:course_id/quizzes/fabulous_quizzes#:quiz_id/statistics
    - verify the ember page is still functional

Change-Id: I0a9e8d69eacc64a8727f238fc0c2e2acd44c0451
Reviewed-on: https://gerrit.instructure.com/35167
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2014-05-21 16:36:30 +00:00
Cameron Sutter ab6f85b024 srgb curve grades dialog
fixes CNVS-12784

test plan:
 * in srgb
 * on an assignment with no submissions
 - open the curve grades dialog
 - click 'Curve Grades'
 > a little error box should show up
 > the page should not blow up

 * in gb2
 * do the same thing as above
 > it should show the error box and not blow up

Change-Id: I8a60d37bcc424746497313f766a381be3a6b175a
Reviewed-on: https://gerrit.instructure.com/34803
Reviewed-by: Liz Abinante <labinante@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
2014-05-21 16:24:20 +00:00
Bracken Mosbacker 12ec269bba qti 2 conformance
test plan:
* qti migration regressions

Change-Id: I53587880a591d9ea70e7039d4216770cb1772880
Reviewed-on: https://gerrit.instructure.com/34407
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2014-05-21 15:57:02 +00:00
Cameron Sutter 463407ee65 speedgrader icons
fixes CNVS-12087

test plan:
 - open speedgrader with some submissions
 - in the student selector dropdown box:
   > students without submissions should have no icon and be grayed out
   > students with ungraded submissions should have an orange dot
 - grade and ungrade a few submissions
   > graded students should have a green check mark
   > ungraded students should have an orange dot
 > students with resubmissions should be the same
   as students with ungraded submissions

Change-Id: Iaf60465c48e657c9154860561389d00c0f51eaa4
Reviewed-on: https://gerrit.instructure.com/34499
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2014-05-21 15:39:01 +00:00
Nathan Mills 5010cdef69 refactor variable substitution out of the models
also adds some new substitutions

fixes PLAT-497 PLAT-496

test-plan:
all current variable substitutions should work
new substitition: '$Canvas.account.name'  should work as well

Change-Id: I9b4e71f816d777e17d3369bb907c7b72209da770
Reviewed-on: https://gerrit.instructure.com/34546
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
2014-05-21 14:58:01 +00:00