Commit Graph

5753 Commits

Author SHA1 Message Date
Transifreq 6c54b28254 update da translation
Change-Id: I65867e59516243eaa56f596a839d9ebeba77ada4
2018-06-09 06:03:26 -06:00
Transifreq 87d1c587d3 update es translation
Change-Id: I02af5fb15fd22df083661ad6e315f38d70040117
2018-06-09 05:19:08 -06:00
Steve Kacsmark 490674dd41 Cleanup stale imports, Update UI while importing
refs QUIZ-4583, QUIZ-4626

Must be tested in conjunction with QUIZ-4415

Provides visual indicators in assignment list for the Importing, and
Failed to import states. Allows for the user to remove a failed
assignment import from the list.

Test Plan:
  - Do a Common Cartridge or QTI import, enabling Quizzes.Next importing
  - Monitor state transitions in Canvas Assignment views.
  - Ensure they move from Importing to a finished stated.

Change-Id: I6f07ecae7b5a93dadd5309bb54bf15724f512c16
Reviewed-on: https://gerrit.instructure.com/151026
Reviewed-by: Omar Khan <okhan@instructure.com>
Tested-by: Jenkins
QA-Review: David Tan <dtan@instructure.com>
Product-Review: Kevin Dougherty <jdougherty@instructure.com>
2018-06-07 22:21:59 +00:00
Matt Sessions 7286e89be7 Create alert for assignment_missing
Refs MBL-10482

Test Plan:
 - Create a super observer connected to a student
 - Student should be enrolled in a course
 - Create a threshold for `assignment_missing` for that student
   - POST /api/v1/users/observer_alert_thresholds
   - {
       student_id: :student_id,
       threshold: {
        alert_type: 'assignment_missing'
       }
     }
 - Create an assignment that is due in the course for a minute
   or two in the future
 - Wait at least 5 minutes
 - As the observer hit /api/v1/users/self/observer_alerts/:student_id
 - There should be an alert for that user

Change-Id: If2dea94052ff932c866a7382a2119a3287350c28
Reviewed-on: https://gerrit.instructure.com/152073
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
Tested-by: Jenkins
QA-Review: Taylor Wilson <twilson@instructure.com>
2018-06-07 22:16:26 +00:00
Cameron Sutter b686e897b3 add observer pairing code api endpoint
closes MBL-10643

test plan:
- use the new endpoint to generate a pairing code
  for a student
- use the endpoint as the student, a teacher, or an admin
- if the user is not a student, it should error
- if the one making the api call is not a teacher/admin
  or the same user, it should error

endpoint:
POST /api/v1/:user_id/observer_pairing_codes

Change-Id: I8b6df83bb592b72c169ca9eaaa83278c7b6623c7
Reviewed-on: https://gerrit.instructure.com/152627
Tested-by: Jenkins
Reviewed-by: Matthew Sessions <msessions@instructure.com>
Product-Review: Matthew Sessions <msessions@instructure.com>
QA-Review: Matthew Sessions <msessions@instructure.com>
2018-06-07 16:30:27 +00:00
Neil Gupta ae5b305d5e bump minimum postgres version warning to 9.5
Change-Id: Ib3d5aeaf5e5263fb313909b570e10cab5a012c61
Reviewed-on: https://gerrit.instructure.com/152270
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Product-Review: Neil Gupta <ngupta@instructure.com>
QA-Review: Neil Gupta <ngupta@instructure.com>
2018-06-07 16:05:48 +00:00
Derek Bender 59922920f9 add anonymous submission scoring in speed grader
closes: GRADE-1125

test plan:
- enable the anonymous moderated marking feature flag
- create an anonymously graded assignment
- create a text submission for this assignment
- in speedgrader, score the submission
- the score should update on the page (not revert back!)
- the response object should not contain user_id (including
  in the submission_history)

- toggle off the anonymoud grading for the assignment
- in speedgrader, rescore the submission
- the score should update
- the response object should not contain anonymous_id anywhere

Change-Id: I2911d5e09a25be4a7ab58404eed209002b6cfbce
Reviewed-on: https://gerrit.instructure.com/148896
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: Adrian Packel <apackel@instructure.com>
Tested-by: Jenkins
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
2018-06-06 20:12:13 +00:00
Transifreq e4fe815fe7 update nl translation
Change-Id: Id065e722ded1bddcf43fd5831c1a3db14f64d35d
2018-06-05 05:30:27 -06:00
Transifreq 8e77bfe834 update zh-Hans translation
Change-Id: Ie8a2db29fd3a3db07fe9f6c94a4855d78d623750
2018-06-02 05:34:15 -06:00
Cameron Sutter 080beef78d allow all observers
closes MBL-10561

test plan:
- go through all the observer_alerts & observer_alert_thresholds
  endpoints and use them with a course observer

Change-Id: I64b14746969727b69b047139fdceecb89f4c123a
Reviewed-on: https://gerrit.instructure.com/151107
Reviewed-by: Matthew Sessions <msessions@instructure.com>
Tested-by: Jenkins
QA-Review: Taylor Wilson <twilson@instructure.com>
Product-Review: Taylor Wilson <twilson@instructure.com>
2018-06-02 01:57:34 +00:00
Simon Williams fddf85a7f2 only allow fetching a pandata_token for current user
closes CORE-1475

test plan:
- use the users pandata_token endpoint, but with
`/api/v1/users/self/pandata_token`
- it should still work

Change-Id: I6ef8723d564cab4035821761817809033461c18c
Reviewed-on: https://gerrit.instructure.com/152117
Tested-by: Jenkins
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
2018-06-01 22:02:57 +00:00
Transifreq d4b1934951 update zh-Hans translation
Change-Id: I0ad9f6767c7119f1e10e390dfa8dcc1e19458bf7
2018-05-31 05:32:52 -06:00
Transifreq b56f22b5b0 update pt translation
Change-Id: I7f63e63af3a022e92af9e29fdd357ca253e6e2d0
2018-05-31 05:29:15 -06:00
Transifreq cf3fb43f29 update ja translation
Change-Id: I324a6c666e2a9e12de697e447cc649f2432381a4
2018-05-31 05:24:54 -06:00
Transifreq 074b9d11d4 update da translation
Change-Id: Iab64902871a65f91791ddb39234d48b1e2e87460
2018-05-31 05:14:27 -06:00
Derek Bender b57cb8cbae add anonymous provisional grades controller
When loading or selecting a student in SpeedGrader, an ajax call is made
to obtain the provisional grade status for that student. This provides a
way to perform this request anonymously.

closes GRADE-1128

test plan
- given an anonymously graded and moderated assignment
- given some students assigned to said assignment
- when visiting speed grader
- then the page loads provisional grades endpoint which can be viewed in
  the dev tools on the network tab. The URL looks like:

  /api/v1/courses/1/assignments/1/anonymous_provisional_grades/status

Change-Id: Ib3d3a7b58fc8fa044d240dee0c1bef08b80384d0
Reviewed-on: https://gerrit.instructure.com/151607
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Indira Pai <ipai@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2018-05-30 17:40:14 +00:00
Transifreq 7ca7110deb update ko translation
Change-Id: I6382cfe7bded28417ebbf0b2012ae7bb36768622
2018-05-30 06:08:54 -06:00
Transifreq 71bdfbf9a1 update de translation
Change-Id: Iaa471340848866ea5fb66c68939aebf2a1656155
2018-05-30 05:17:13 -06:00
Augusto Callejas 3e2fdfd225 Outcome proficiency endpoints
closes OUT-1855, OUT-2214

test plan:
  - create an access token, which will be used below
    to perform HTTP requests, see:
    https://canvas.instructure.com/doc/api/file.oauth.html#using-access-tokens
  - using a tool like Postman, set an outcome proficiency
    for an account. perform a POST request at the endpoint
    `http://canvas.docker/api/v1/accounts/1/outcome_proficiency`
    with a `Content-Type` header value `application/json`
    and body with content like:

    {
      "ratings": [
        {
            "description": "great work",
            "points": 10,
            "mastery": true,
            "color": "00ff00"
        }
      ]
    }

  - retrieve the saved proficiency by performing GET request
    at the endpoint
    `http://canvas.docker/api/v1/accounts/1/outcome_proficiency`.
    it should match the proficiency created above.
  - update the proficiency by doing another POST request, but
    with multiple ratings, like:

    {
      "ratings": [
        {
            "description": "great work",
            "points": 10,
            "mastery": true,
            "color": "00ff00"
        },
        {
            "description": "bad work",
            "points": 0,
            "mastery": false,
            "color": "ff0000"
        }
      ]
    }
  - do a GET request to confirm the above changes were saved
  - do several other POST requests with multiple ratings
    that contain either multiple mastery ratings or none.
    these requests should fail with a 422 status code
    and an error message that contains `Only one rating can have mastery`.

Change-Id: Ib301c0394a99dbf55d7d85ceef28a95075faaec2
Reviewed-on: https://gerrit.instructure.com/150095
Reviewed-by: Frank Murphy <fmurphy@instructure.com>
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Reviewed-by: Matt Berns <mberns@instructure.com>
QA-Review: Andrew Porter <hporter-c@instructure.com>
Product-Review: Michael Brewer-Davis <mbd@instructure.com>
2018-05-29 22:20:03 +00:00
Rob Orton 7c9f41312c restore states for sis_imports
fixes CORE-1397
fixes CORE-1398

test plan
 - run sis import that changes workflow_states of objects
 - restore the sis import
 - the states should be restored
 - rake doc:api should work

Change-Id: I4fb401699d53d4d8309c986ae27eefea99e93d53
Reviewed-on: https://gerrit.instructure.com/150113
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Rohan Cheeniyil <rcheeniyil@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2018-05-29 21:38:09 +00:00
Rob Orton 69ef0be0bb create sis_roll_back_data
fixes CORE-931

test plan
 - migrations should run

Change-Id: I0e836bb4db2ab19fd7763864bea02c8c9dcbe552
Reviewed-on: https://gerrit.instructure.com/139665
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
QA-Review: Rohan Cheeniyil <rcheeniyil@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2018-05-29 21:27:11 +00:00
Cody Cutrer 195d2370e2 fix shard settings deserialization during boot
of unexplained circumstances 🤷

Change-Id: I28dfe553c97ad1df916c0b3cefd143a197b15c48
Reviewed-on: https://gerrit.instructure.com/151694
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2018-05-29 17:28:54 +00:00
Cameron Sutter ae3e89536c mark alerts read/dismissed
closes MBL-10124

test plan:
 - create an observer alert (probably in the rails console)
 - use the new endpoint to mark it read
 - create another observer alert
 - use the new endpoint to dismiss it

endpoint:
 /users/:user_id/observer_alerts/:observer_alert_id/:workflow_state

  :workflow_state should be either 'read' or 'dismissed'

Change-Id: I44e06a703e059d8188a841259846b088bb9b1c68
Reviewed-on: https://gerrit.instructure.com/150730
Reviewed-by: Matthew Sessions <msessions@instructure.com>
Product-Review: Matthew Sessions <msessions@instructure.com>
QA-Review: Matthew Sessions <msessions@instructure.com>
Tested-by: Jenkins
2018-05-24 16:47:16 +00:00
Matt Sessions ec024de297 Add endpoint for getting unread alerts count
Refs MBL-10125

Test Plan:
 - From the rails console
 - Create a student and an observer and link them
   with a UserObservationLink record
 - Create an ObserverAlertThreshold pointing to that
   link for any alert_type (ie: assignment_grade_high)
 - Create an ObserverAlert that points to that threshold
   and the link with a workflow_state of 'unread'
 - Create an ObserverAlert that points to that threshold
   and the link with a workflow_state of 'read'
 - Create another UserObservationLink for the same parent
   but pointing to a different student
 - Follow the same instructions of creating a threshold and 2 alerts
   for this link
 - hit /api/v1/users/self/observer_alerts/unread_count as the observer
 - You should have a count of 2
 - hit /api/v1/users/self/observer_alerts/unread_count?student_id=:id
   using the id of one of the students you've created
 - You should have a count of 1

Change-Id: Id13c87f2f59f8058a0aaee4e7f1b8afa542c8c08
Reviewed-on: https://gerrit.instructure.com/150787
Tested-by: Jenkins
Reviewed-by: Cameron Sutter <csutter@instructure.com>
QA-Review: Cameron Sutter <csutter@instructure.com>
Product-Review: Matthew Sessions <msessions@instructure.com>
2018-05-24 16:08:13 +00:00
James Williams e293b2ca65 transform id columns when calling pluck on array
Change-Id: I0c8e8417bcead9d9e1243dabae1444fae3e3634b
Reviewed-on: https://gerrit.instructure.com/150278
Reviewed-by: Mysti Sadler <mysti@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2018-05-24 14:42:23 +00:00
Transifreq 019284e6b6 update zh-Hant translation
Change-Id: I8122478ec71229cec4a30c99ef28de95754bef61
2018-05-24 05:36:02 -06:00
Transifreq 34b6f05b08 update zh-Hans translation
Change-Id: Ifac1fba041fb8420170165cf3319ff298378c3a8
2018-05-24 05:34:57 -06:00
Transifreq 8952e78f22 update sv translation
Change-Id: I1596b28898a2720698fad9dcbf60624b07b785b6
2018-05-24 05:33:51 -06:00
Transifreq 4e687fb2f1 update ru translation
Change-Id: Id5aeb43f7747300d296a29023d2200204c0034cc
2018-05-24 05:32:55 -06:00
Transifreq e501b63a11 update pt-BR translation
Change-Id: I036e8af9136f4d078fb287714867151d34025bab
2018-05-24 05:31:54 -06:00
Transifreq 4ae3b44fd7 update pt translation
Change-Id: I3b50e30e32626e41e4fb33f581c82890e8af229e
2018-05-24 05:30:58 -06:00
Transifreq 54ae71e82f update pl translation
Change-Id: Ifc47f77e3006ae399bc21e975d9f2a8f69403744
2018-05-24 05:29:55 -06:00
Transifreq 009b6b5575 update nl translation
Change-Id: I60f59e87bbbecde83ad2f224872c81c57471248d
2018-05-24 05:28:58 -06:00
Transifreq ebbe50e517 update nb translation
Change-Id: I9341f38fd629a2d06c9e463ee790cf55643d44c8
2018-05-24 05:28:01 -06:00
Transifreq 909fed7bd7 update mi translation
Change-Id: I1f4bf9fd94b3f9715382d463c2fba6113e73b075
2018-05-24 05:27:04 -06:00
Transifreq 659fa37fd5 update ja translation
Change-Id: Ia4a53ca2b2be3863e15ec73fa41b2dd8d5495573
2018-05-24 05:26:08 -06:00
Transifreq fd017d171b update it translation
Change-Id: I31d9a2761298eae6553c8be24b7b1de3558ed5c4
2018-05-24 05:25:03 -06:00
Transifreq 600000f7d3 update is translation
Change-Id: Ifd67cb4246751c0e2463d83da5fb9dee1a474bf0
2018-05-24 05:24:13 -06:00
Transifreq 3fbd683e5c update ht translation
Change-Id: I8c56e6cbe665f5d4f8d0437734a1864121748d2c
2018-05-24 05:23:21 -06:00
Transifreq 6a32a341eb update fr-CA translation
Change-Id: Ie783ca2d3844d40505152e71bf6d43ffff9ab70b
2018-05-24 05:22:24 -06:00
Transifreq a8d711c7e6 update fr translation
Change-Id: I2f77975eeea251cb9ebbc1ce0f90f09ebe89bd5f
2018-05-24 05:21:30 -06:00
Transifreq 86715030d3 update es translation
Change-Id: I828d95e8878f1530cbccc7b9742e587ed922f9e4
2018-05-24 05:20:33 -06:00
Transifreq 7db2cc888e update en-GB translation
Change-Id: I1931bf1cb683dd19d6775b8907fac41b84252b1c
2018-05-24 05:18:04 -06:00
Transifreq 7de54fac87 update en-CA translation
Change-Id: I87e083c5563105c06f7de0a7eeffa7cbc5f0456e
2018-05-24 05:17:09 -06:00
Transifreq 29eb5f252d update en-AU translation
Change-Id: I6197d4c60fb7222594c2e5f02e18572a2d243b94
2018-05-24 05:16:20 -06:00
Transifreq c396534aa6 update da translation
Change-Id: Ie9efb78cd3ff036edbd4dad22538ab51e5ba0f46
2018-05-24 05:14:32 -06:00
Transifreq 65e21a0717 update ar translation
Change-Id: I219037b21912541fe43d3d7817d07065390e337f
2018-05-24 05:13:32 -06:00
Derek Bender d87c836e7e add anonymous submission preview/download to SG
closes: GRADE-894

test plan:
- enable the anonymous moderated marking feature flag
- create an anonymously graded assignment
- create a text submission for a student
- in speedgrader, the submission previews correctly
- toggle anonymously graded off for the assignment
- in speedgrader, the submission previews correctly

- also test for file uploads, images

Change-Id: I030a741668d30b763626e1a247fb355c4ec0a8da
Reviewed-on: https://gerrit.instructure.com/148708
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
Tested-by: Jenkins
QA-Review: Adrian Packel <apackel@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
2018-05-21 21:36:55 +00:00
Transifreq c1e38a0a4c update he translation
Change-Id: If38121f81e9dc22e16aeb42aebdbc3dacd0710b7
2018-05-21 06:00:29 -06:00
Matt Sessions b6f7be8f8c Delete alerts periodically
Refs MBL-10126

Test Plan:
 - In the rails console, create a
   UserObservationLink and an ObserverAlertThreshold
 - Create an alert that links to both
 - Create another alert that links to both but has
   a created_at set to more than 6 months ago
 - Run ObserverAlert.clean_up_old_alerts
 - Run ObserverAlert.all
 - You should only have 1 alert

Change-Id: I23f4723574cde01135ddafb9926c06029266d07d
Reviewed-on: https://gerrit.instructure.com/150324
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
Tested-by: Jenkins
QA-Review: Kausty Saxena <ksaxena@instructure.com>
2018-05-19 01:42:42 +00:00
Cameron Sutter a124defc21 get alerts by student
closes MBL-10123

test plan:
- with a user_observation_link and an observer_alert_threshold
  make observer_alerts in the rails console
- hit the endpoint
  /users/:user_id/observer_alerts/:student_id
- it should return all alerts for that observer/student

Change-Id: I01fe71e3414d63cedc0e02eaed4e0d8822f80fcf
Reviewed-on: https://gerrit.instructure.com/150143
Reviewed-by: Matthew Sessions <msessions@instructure.com>
Tested-by: Jenkins
QA-Review: Taylor Wilson <twilson@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
2018-05-17 21:56:34 +00:00
Simon Williams ebbfde74ef make `wait_for_replication` more robust
we discovered that direct string comparision of xlog locations can give
invalid results in some situations, where second part of the xlog
location value "wraps" from 7 hex characters to 8

Change-Id: I62215e5fcc3f9655643aab9fc99f55ddbb37e8ac
Reviewed-on: https://gerrit.instructure.com/150385
Tested-by: Jenkins
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
2018-05-17 19:02:01 +00:00
Transifreq 09018443c2 update he translation
Change-Id: Ib87a63dc6ee1da5f2d64c22b475b97174f707540
2018-05-16 17:26:52 -06:00
Transifreq 1855427d19 update fa translation
Change-Id: I6ae85859e04ddee8464dcc51cd1bdb1e1da677d9
2018-05-16 17:25:48 -06:00
Transifreq c5a3453465 update nl translation
Change-Id: I214c988621a1614b83d88c1b24f0d379770dacb1
2018-05-16 16:43:55 -06:00
Transifreq 3da9c59615 update fr translation
Change-Id: If8808141e33825e2cfa7d42c0240a45cbb75f40a
2018-05-12 05:21:02 -06:00
Cody Cutrer 8aa20f1066 infer region name, and pre-set instance id for jobs autoscaling
Change-Id: Iac1df05fab63902a12d852d7a55ed728d6e3b113
Reviewed-on: https://gerrit.instructure.com/149709
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2018-05-11 19:22:42 +00:00
Cody Cutrer 7840c26abf allow enabling inst-jobs health checks
Change-Id: Ic7f8106a9f63c585b8a618b052d82f0a1f1a6312
Reviewed-on: https://gerrit.instructure.com/149579
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2018-05-11 19:22:32 +00:00
Mysti Sadler 759d7eda16 Move planner items to its own controller
closes ADMIN-1033

Test plan
- Ensure api/v1/planner/items and
  api/v1/planner/overrides(/:id)
  work as expected
- Specs pass

Change-Id: I4a1d5f8f81bb2bdd2eace8c61bc807d2f0457cdf
Reviewed-on: https://gerrit.instructure.com/149265
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Mysti Sadler <mysti@instructure.com>
2018-05-11 16:18:50 +00:00
Cody Cutrer f741d3a6fa use switchman-inst-jobs, and drop duplicate code
Change-Id: Ieb1ec1c0f04587959c7b13c6ff3ad30960012b33
Reviewed-on: https://gerrit.instructure.com/149502
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2018-05-11 15:53:57 +00:00
Transifreq 6cb4ca5f75 update mi translation
Change-Id: Ib09dcd0ebd1a1264212236c18cc2aae4faac350a
2018-05-11 05:23:34 -06:00
Cameron Sutter a3f3ec6e81 add observer alert threshold CRUD
closes MBL-10122

test plan:
- do CRUD operations on the observer_alert_threshold endpoints
  /users/<id>/observer_alert_threshold[?student_id=<id>]
  and
  /users/<id>/observer_alert_threshold/<id>

Change-Id: I2c5c7700adaedd4a2068a61568217219b763339e
Reviewed-on: https://gerrit.instructure.com/149147
Reviewed-by: Matthew Sessions <msessions@instructure.com>
Product-Review: Matthew Sessions <msessions@instructure.com>
QA-Review: Matthew Sessions <msessions@instructure.com>
Tested-by: Jenkins
2018-05-10 20:25:01 +00:00
Transifreq 1d063f7967 update zh-Hant translation
Change-Id: Ib4f67f6e5459bb8ae793dc2eeeaa328da1f1cc9a
2018-05-10 05:34:19 -06:00
Transifreq fe72a7b7f2 update zh-Hans translation
Change-Id: I2f158f6c719651643327f091e7f3c48d11f86da8
2018-05-10 05:33:13 -06:00
Transifreq d17546ea6c update sv translation
Change-Id: Iac2e96809de31f2bfb4355e1bc600a54297984be
2018-05-10 05:32:09 -06:00
Transifreq d1c8b58595 update ru translation
Change-Id: Ideba73ab6ffc7ae2117473d1fa5cfee04016238b
2018-05-10 05:31:11 -06:00
Transifreq 09dc962459 update pt-BR translation
Change-Id: I5d41df3798a18a010898a9bd7239fac08a992168
2018-05-10 05:30:10 -06:00
Transifreq 40f8a49853 update pt translation
Change-Id: I47a74425c92e03408af92e24c0f00a8bc38d0895
2018-05-10 05:29:13 -06:00
Transifreq 955d6da0c8 update pl translation
Change-Id: If98bd54dcb7aa982138f37b5786cdf1a9b2834e4
2018-05-10 05:28:16 -06:00
Transifreq 0a81343e64 update nl translation
Change-Id: I309891ff75ea9d341d1135bbe11bfc06fbbfbd64
2018-05-10 05:27:19 -06:00
Transifreq 5d6d87ceff update nb translation
Change-Id: Ie3b611cb611dd6302e6ccc5086dac8df2ac3147f
2018-05-10 05:26:23 -06:00
Transifreq d3e97cdea4 update ja translation
Change-Id: I9b1f6b74c9c64f0e9a956fb0a600a7b424a39e64
2018-05-10 05:24:37 -06:00
Transifreq d37a1072e1 update it translation
Change-Id: I972dc69b6b6df3b18f62171d13b7364ecb8f9c02
2018-05-10 05:23:31 -06:00
Transifreq ced8797086 update is translation
Change-Id: I8016a4875841697bf7c9c28546eddd5119cf5f3c
2018-05-10 05:22:39 -06:00
Transifreq f81af06d3e update ht translation
Change-Id: I5eb07fc3051ecedf1b1b145c2818f56a3cd310f9
2018-05-10 05:21:44 -06:00
Transifreq f7ace95d87 update fr-CA translation
Change-Id: I80f20c21f126bbd08b75a667395d9e752d4283c9
2018-05-10 05:20:41 -06:00
Transifreq a073ec3958 update fr translation
Change-Id: Ie5dbbd69ec20c1ce20850044e3974bf11638c477
2018-05-10 05:19:47 -06:00
Transifreq 3215502380 update es translation
Change-Id: Ie2f9cc83b7e0c419f52268440bbb60cc36d1a2eb
2018-05-10 05:18:50 -06:00
Transifreq 77f0286a12 update en-GB translation
Change-Id: I8301820658e10ba66707f6138dd351bf8e9fb06a
2018-05-10 05:16:22 -06:00
Transifreq 3baa3baced update en-CA translation
Change-Id: I076b088358733d6b793b197245686e18ff96a37f
2018-05-10 05:15:25 -06:00
Transifreq d88045018a update en-AU translation
Change-Id: I0634a904759c1db93d546c5fe9bcf203c49feec5
2018-05-10 05:14:36 -06:00
Transifreq 8191a7b2a8 update de translation
Change-Id: I4dd3fbe4909581405a1f9f588d702facba685140
2018-05-10 05:13:40 -06:00
Transifreq 42420ecee5 update da translation
Change-Id: I170569a5e197f281a95b0eeff12dec2439b8796d
2018-05-10 05:12:44 -06:00
Transifreq 9c1169252d update ar translation
Change-Id: Id026ce435519a3e1bf6d4a8e46d9e3def7e4301e
2018-05-10 05:11:45 -06:00
Cody Cutrer 6308090019 properly quote stuff in find_ids_in_ranges
fixes problems when run on relations that are using `from()`

Change-Id: I528dfb7e6885b4ce276900a53d9b2f8adfabafe5
Reviewed-on: https://gerrit.instructure.com/149795
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2018-05-10 02:48:53 +00:00
Transifreq 5283c03bfb update nn translation
Change-Id: Ib7a832ce45397fb13ddd96afc3ce7769f999e3a6
2018-05-07 05:57:18 -06:00
Simon Williams b4fde1f11b used ignored_columns instead of DROPPED_COLUMNS
closes CORE-1245

recent internal changes in rails (released in 5.1.6) make it more
difficult for our module prepend to work, because column information is
no longer referenced lazily when checking on attribute defaults (see
changes to model_schema.rb). this means that we would need to tie in at
a lower level so that _default_attributes excludes the dropped column,
but in looking at that, Rails 5 added support for ignoring columns,
which ties in at the right level and should solve the same use case we
have.

see http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-ignored_columns-3D

Change-Id: I1f76e9d0894551f90232a36f5d48f27f8989c3a1
Reviewed-on: https://gerrit.instructure.com/145723
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2018-05-04 20:53:26 +00:00
Transifreq 206fe775b1 update nb translation
Change-Id: Ie5c650a01ce134a373a16df0f112008ffc6928ac
2018-05-04 05:22:31 -06:00
Mysti Sadler 632a5eee9a Remove remnants of Calendar 1
refs ADMIN-278

Test plan
- Specs pass
- /calendar and /calendar2 route both
  still work and calendar shows up as
  expected

Change-Id: Ic17a203417c354dbeaf7a5c68cc47e845c091850
Reviewed-on: https://gerrit.instructure.com/148061
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Mysti Sadler <mysti@instructure.com>
2018-05-03 16:31:21 +00:00
Transifreq 1d10f9743a update tr translation
Change-Id: Ica282b34b3bd72c976047a8796059bbb4f8a7e53
2018-05-03 05:59:11 -06:00
Keith Garner 10dbd7f01e add support helper to run due date cacher for a course
To help support close out issues, add a support helper that runs the
DueDateCacher and then recalculates grades for a course.

closes GRADE-1120

test plan:
 - access /api/v1/support_helpers/due_date_cache/course?course_id=6
   to make sure it kicks off a new DueDateCacher run. It should send
   you a success email.
 - make sure that endpoint is only accessible when you are logged in as
   a site admin user

Change-Id: Ida5f7db0484cfd4e33e1094244a3b8c00b523c6a
Reviewed-on: https://gerrit.instructure.com/148694
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Shahbaz Javeed <sjaveed@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
2018-05-01 20:25:05 +00:00
Transifreq 658a8eebb9 update pt-BR translation
Change-Id: Ib6ac674e7a8b4bdfb53f70cfe96f7f9b698dd207
2018-04-28 05:24:29 -06:00
Transifreq c8a429ae16 update fa translation
Change-Id: Ie71ccd657fe14b46e41a3d5bb9ddc6ed801d390d
2018-04-27 05:50:28 -06:00
Omar Khan 391585bd9b Mark old duplicating assignments as failed
We're planning to make API calls to Canvas from Quizzes.Next to notify
it that an assignment has finished duplicating. But making API calls to
Canvas is hard, as it requires lots of configuration, an oauth dance,
and a fair amount of luck.

To ensure that assignments don't get stuck in the "duplicating" state if
Quizzes.Next -> Canvas communication breaks down, this commit adds a
periodic job to transition assignments to the "failed_to_duplicate"
state if they have been duplicating for more than 5 minutes.

Refs QUIZ-3764

Test plan:

- Create a Quizzes.Next assignment
- Go to the canvas assignments page
- Click on the kebab menu for the assignment, click "Duplicate"
- Wait 10 minutes
- Refresh the page
- Check that the new assignment displays a "failed to duplicate" message

Change-Id: Ibaf8c16117bc7ab7fc24007944943c3090ba7041
Reviewed-on: https://gerrit.instructure.com/148001
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Michael Hargiss <mhargiss@instructure.com>
Product-Review: Omar Khan <okhan@instructure.com>
2018-04-26 18:46:49 +00:00
Cody Cutrer 41794a9383 rename AccountAuthorizationConfig* to AuthenticationProvider*
I couldn't take it anymore. it was driving me crazy

Change-Id: Ib40addff56e98a6e0a6d80f246c208e0ce0cb762
Reviewed-on: https://gerrit.instructure.com/148026
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2018-04-26 16:03:47 +00:00
Transifreq fcf345fa0e update nn translation
Change-Id: I6dcc0aff0f82d4e31d75e27fc9a0a9f354addac7
2018-04-26 06:00:11 -06:00
Transifreq 40e397fdd8 update pt-BR translation
Change-Id: Ice61b5a8e57f456fc69365bce8d49bfd85d3f8f1
2018-04-26 05:28:42 -06:00
Transifreq 3bcc0be824 update nb translation
Change-Id: I0536fe5c12e0b1a0991a92294d832ddbba87063a
2018-04-26 05:25:24 -06:00
James Williams 7423e4fb94 rails 5.2
closes #CORE-1301 #CORE-1302

Change-Id: I687132b066d12cf35e3c7a593dff9b2a91337f33
Reviewed-on: https://gerrit.instructure.com/147220
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2018-04-25 19:15:20 +00:00
Transifreq 90a902aa34 update nn translation
Change-Id: I3e841e60a5455aa3ced4d33d699d85fdcee158a6
2018-04-25 05:54:08 -06:00
Ryan Shaw 3adfe42e5f Make it so en.yml has ALL strings needed by JS
closes: CORE-1331

We want to make it so our build tasks to do i18 strings for JavaScript
Don’t need to run ruby rake tasks or know anything about rails first.
But the english strings were actually using some rails or i18n gem
defaults that you could only find out about by doing (in ruby):
I18n.backend.send(:translations)

This commit just copies those keys that it would put in the generated
config/locales/generated/en.yml file Into config/locales/en.yml


Test plan:
* date pickers and calendar date display should be the same as it was
  before for English users.

Change-Id: I3cf3ec90621897c57515691825d4cd80481866b8
Reviewed-on: https://gerrit.instructure.com/147887
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
2018-04-24 17:58:29 +00:00
Transifreq ddc93d3703 update nn translation
Change-Id: I1b2b8df132a52eecc75b9d86d2ee26acd7faff7c
2018-04-24 05:56:28 -06:00
Transifreq 1f9f9c3281 update es translation
Change-Id: I532ff711b5d84db53504a1cacbfca5a6c3e2135b
2018-04-21 05:19:51 -06:00
Transifreq bb3b486d47 update zh-Hant translation
Change-Id: Ie29824706390174f51a7a42832eb9ea8031557ea
2018-04-19 05:34:49 -06:00
Transifreq 62ef9a13e9 update zh-Hans translation
Change-Id: If514fc58262481c1575e6729d7352e031fa57753
2018-04-19 05:33:49 -06:00
Transifreq 653a0380d0 update sv translation
Change-Id: Ibbdfeb984b9332918224655139b32d26aca7e569
2018-04-19 05:32:50 -06:00
Transifreq 48a17634b6 update ru translation
Change-Id: I1224137633f74431025261674cb4850b7471e18c
2018-04-19 05:31:57 -06:00
Transifreq 92e7c6fca7 update pt-BR translation
Change-Id: I77e1bd714a58a9afcbf60d138041c06f83a907a4
2018-04-19 05:31:00 -06:00
Transifreq 3e38ae50ea update pt translation
Change-Id: I8a79459c75cf908e0d84710eb93d6f4f080de0d1
2018-04-19 05:30:06 -06:00
Transifreq 90ccb1b133 update pl translation
Change-Id: Ib732f3645de44fa697f825252143b4450fbdc0cc
2018-04-19 05:29:13 -06:00
Transifreq be0ffa4d4d update nl translation
Change-Id: I37af0faa2f7e8bc462dd3db9d5a4b3249b37ccdc
2018-04-19 05:28:19 -06:00
Transifreq f4e140e3d1 update nb translation
Change-Id: Ic1370e6386a198eb653de7dc88f8e2032a310919
2018-04-19 05:27:25 -06:00
Transifreq f7fb9bb2ef update mi translation
Change-Id: I940ec81029a8ce719452529e5225ab1be686d5b4
2018-04-19 05:26:32 -06:00
Transifreq f53c9d2abe update ja translation
Change-Id: Ib20f5c217f3342114f6b8335f12b4f01fa410b54
2018-04-19 05:25:30 -06:00
Transifreq ca55035727 update it translation
Change-Id: I5f3bd4211641ba62824f465f9ccd55b682c9804c
2018-04-19 05:24:30 -06:00
Transifreq 27c18593ba update is translation
Change-Id: I7ec44eac51db1503a44d4de82468d557cb1c19c1
2018-04-19 05:23:42 -06:00
Transifreq 6acf6eab80 update ht translation
Change-Id: I173deb401a6a830bcd28b2ae2c1dd4cab1efe8a7
2018-04-19 05:22:51 -06:00
Transifreq da3348ab12 update fr-CA translation
Change-Id: Ia39daeb29e278df3bd4b1d27d8903ede6cc1c571
2018-04-19 05:22:02 -06:00
Transifreq 1c9d44f5ec update fr translation
Change-Id: Ibe0dbe7dfc15d748f5e265a23c717f94cf27492a
2018-04-19 05:21:11 -06:00
Transifreq eb07830c8e update es translation
Change-Id: I700712552b635e2d6d265836dc5b1aef18e86d6f
2018-04-19 05:20:17 -06:00
Transifreq d1051a8a8e update en-GB translation
Change-Id: If5836a6a446206f6936c4ff3f6f86bf39f0cdee0
2018-04-19 05:17:52 -06:00
Transifreq 1d968c800d update en-CA translation
Change-Id: I58e68586cf8a51608060dcf7de3187cfdb242611
2018-04-19 05:16:52 -06:00
Transifreq 85a53acbde update en-AU translation
Change-Id: Icbbc5e71f5f40a9dbeeb22b4f45cea05c78660ba
2018-04-19 05:16:02 -06:00
Transifreq 89ab3bae2a update de translation
Change-Id: I1947be47553c7b935f026fcff646f0dcc9110566
2018-04-19 05:15:11 -06:00
Transifreq 9d0dd5df8b update da translation
Change-Id: Ie89c7a762208f769d2ef3aac6fadd7b94f7e9420
2018-04-19 05:14:16 -06:00
Transifreq 44482e1d4a update ar translation
Change-Id: I500aa45ac31e6ecb13ba7aecc920ee4330e298b0
2018-04-19 05:13:23 -06:00
Transifreq a85b081b73 update sv translation
Change-Id: I4f94f4f0a009388d444210d79d99c85f5dc06229
2018-04-13 05:31:10 -06:00
Transifreq fb9986c9ea update tr translation
Change-Id: I339f39152e1941d8213cccec9e254c644dee99ea
2018-04-12 05:58:02 -06:00
Transifreq 105dd10fe8 update sv translation
Change-Id: I0d784d3451428144101e1ba792050454f4823114
2018-04-11 05:31:51 -06:00
Simon Williams 6b690371d2 remove `save_without_callbacks`
rails uses callbacks internally to manage dirty state tracking. in
a recent update, skipping these callbacks when saving a new object
breaks any future updates to that object (because id_from_database is
not populated, which is then used as `nil` when trying to do
a subsequent update). see:
6932998fc7 (diff-1a091d0f7eb7b0b2ca95c82f5ba0e1fb)

Because of that I feel like saving without any callbacks is somewhat
dangerous. I think if you have to do it, use one of the built in active
record methods that skips callbacks:
http://guides.rubyonrails.org/active_record_callbacks.html#skipping-callbacks

Or use our active_record-suspension gem to skip specific app-level
callbacks.

test plan: tests pass

Change-Id: I7bfb87e328317430fb2a77edca56cace2cd372b5
Reviewed-on: https://gerrit.instructure.com/146139
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
2018-04-10 19:14:44 +00:00
Cameron Sutter a2b1fe1ee4 endpoint to delete notification_endpoint
closes MBL-8783

test plan:
- send a DELETE request to /api/v1/users/self/communication_channels/push
  with {push_token: <user's device push token>}
- it should return {success: true} and that notification_endpoint should
  be deleted

Change-Id: Iac4d63cb7040acfcde48751dc3f0ead5351d7f0b
Reviewed-on: https://gerrit.instructure.com/143762
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Tested-by: Jenkins
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
2018-04-06 19:40:51 +00:00
Cody Cutrer cb4fb9468e prevent future migrations
Change-Id: I10febc85e0826679da77c8627d3c49d690a68192
Reviewed-on: https://gerrit.instructure.com/145943
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2018-04-05 16:02:36 +00:00
Simon Williams 73e3a30bb6 always use current time for migration version
we never want to just increment the last migration version number by 1,
it's too likely to generate conflicts

Change-Id: If6c95470b9fae257cc40c45a3eac0e1d871fb657
Reviewed-on: https://gerrit.instructure.com/145952
Reviewed-by: Rob Orton <rob@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
2018-04-05 15:56:25 +00:00
Rob Orton e1b9a42062 create parallel report runners
fixes CORE-1240

test plan
 - run account report using parallel runner
 - it should work

Change-Id: Ib0e8480e53d65b7e5b7f4d3c3f2f36c7d283fb52
Reviewed-on: https://gerrit.instructure.com/145605
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
2018-04-04 19:16:44 +00:00
Jeremy Stanley e5c64f4491 add accounts#permissions endpoint
test plan:
 - render API docs
 - view documentation for the "permissions" endpoint in the
   Accounts controller
 - hit api/v1/accounts/<id>/permissions and verify:
   - if permissions[]=read_roster&permissions[]=manage_students
     (for example) are supplied, those permissions are returned as
     JSON keys, with a value of true if the caller has the permission
   - 'self' can be used for the account id to hit the root account
   - a 401 error is returned if:
     - the calling user isn't authenticated
     - the calling user doesn't have an account role
       or an enrollment in the course in the account

refs ADMIN-826

Change-Id: Ia01ea79279bdeb51e9e3bcf7a8c4b0ac0577dd4f
Reviewed-on: https://gerrit.instructure.com/145315
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2018-04-04 17:13:34 +00:00
Dan Minkevitch 17716fdb69 Remove `recent_activity_dashboard`
Also adds some additional dashboard helpers

Closes ADMIN-898

Test Plan:
* Regression test the user dashboard
* User dashboard should work as before

Change-Id: I74405ef88891008c64181d53febb636f4cfe964a
Reviewed-on: https://gerrit.instructure.com/145136
Tested-by: Jenkins
Reviewed-by: Mysti Sadler <mysti@instructure.com>
QA-Review: Mysti Sadler <mysti@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
2018-04-02 15:42:29 +00:00
Transifreq 10c390a2ac update sv translation
Change-Id: I1b3494b47d40da3f09cbbf7df1feefde00ddafe2
2018-03-31 05:29:41 -06:00
wdransfield ed4fec7627 Allow setting developer key binding state
Closes PLAT-3196, PLAT-3210, PLAT-3017

Test Plan:
- Create a developer key in site admin
- Verify in the DB a DeveloperKeyAccountBinding is
  created for that key and associated to the site
  admin account. The workflow state of the binding
  should be 'allow'
- Set the developer key visible to true
- Navigate to a root account.
- Verify the site admin key is visible and set to 'allow'
- In the root account UI change the visiblity to 'on'
- Refresh the page and verify the change persisted
- In the site admin UI turn the developer key to 'off'
- In the root account UI verify the key is now set to 'off'
  and the control is disabled.
- In the site admin account UI set the status to 'allow'
- In the root account verify the key status has been
  changed back to 'on' and is no longer disabled.
- Create a key in the root account and verify you can
  succesfully change its binding status to 'allow', 'off',
  and 'on'
- Try any other combinations of keys and states you can think of.
  The binding state set at the site admin level shoud always override
  the state set in the root account.
- Turn off the dev key rewrite feature flags and verify the old UI
  works as before

Change-Id: I50e92e75447529ece7a27a5b9f4b0009f8d1288e
Reviewed-on: https://gerrit.instructure.com/144248
Tested-by: Jenkins
Reviewed-by: Stewie aka Nicholas Stewart <nstewart@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Karl Lloyd <karl@instructure.com>
2018-03-30 16:13:53 +00:00
Transifreq 245330e9ce update pt translation
Change-Id: I19dde6d8808ce6a1f86dadebd172e6890377f5fc
2018-03-30 05:27:50 -06:00
Transifreq 80149e921e update pl translation
Change-Id: I3143937aebf7b6161f043360bb82c734091f560e
2018-03-30 05:26:57 -06:00
Transifreq 7851a5999a update de translation
Change-Id: Ibab527b3810d054256432e52550b894ca85382b0
2018-03-30 05:14:44 -06:00
Transifreq ec3202c50b update nl translation
Change-Id: I27b5c500b5f2599cae9457dd28c6c355aafdfaf6
2018-03-29 05:26:33 -06:00
Cameron Sutter 940bab380a panda token endpoint
closes MBL-9792

test plan:
- make a request to /api/v1/users/:id/pandata_token
  with param 'app_key' of value 'IOS_pandata_key'
- make the same call with a value of 'ANDROID_pandata_key'
- both should return a 200 code
  and a json object with a 'token' and a 'expires_at'

Change-Id: If993ad3c49b89a61ef8caa91d5f347250998070b
Reviewed-on: https://gerrit.instructure.com/144535
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Cameron Sutter <csutter@instructure.com>
2018-03-28 20:39:17 +00:00
James Williams 22472e9428 don't call current_xlog_location in a transaction
Change-Id: I67b0b7b9baa41d76a34f37e2b33541cb10760dc6
Reviewed-on: https://gerrit.instructure.com/145006
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2018-03-28 19:54:41 +00:00
Transifreq 3981600bfa update zh-Hant translation
Change-Id: I817789c22d9579cc691c664e3914f65c3b8dbf55
2018-03-28 05:34:32 -06:00
Transifreq 99b03c07cd update zh-Hans translation
Change-Id: Id8439e76a59f6bc255ccd18496b7d8f1a7a1ae2f
2018-03-28 05:33:33 -06:00
Transifreq f0a67c032e update sv translation
Change-Id: I34b2baee5637f967487865ac5b57e0eee706d797
2018-03-28 05:32:34 -06:00
Transifreq 2dc4b935dc update ru translation
Change-Id: I4840e8c79f91b02eeb5b9e28412cd13c63d40292
2018-03-28 05:31:42 -06:00
Transifreq 703e42c4af update pt-BR translation
Change-Id: I8dd57f8c4e01fdc5017b9aab5f6a53760c8081c6
2018-03-28 05:30:46 -06:00
Transifreq 53e2f15348 update nl translation
Change-Id: Icc35f310d166004545c75a88d4252d11dc9ffa1c
2018-03-28 05:28:22 -06:00
Transifreq dcc66558c7 update nb translation
Change-Id: Ie4e37400397ffa73106fba8dd34e85d4d826c7ab
2018-03-28 05:27:29 -06:00
Transifreq 16b5e2f730 update mi translation
Change-Id: Ifac74e7242c02ea00b6342e631d976ca10c3eadc
2018-03-28 05:26:37 -06:00
Transifreq e6a1d52cfd update ja translation
Change-Id: Ic4ae69c2cda2de73ceb999c587c972139c29af64
2018-03-28 05:25:46 -06:00
Transifreq 024c422d11 update it translation
Change-Id: Iaa9c1eb1755942f545d199a21bd23aa60086a8dd
2018-03-28 05:24:47 -06:00
Transifreq 679abe51e8 update is translation
Change-Id: I4e2d1c480d73f87d2359b901db8fc6a46e815923
2018-03-28 05:24:00 -06:00
Transifreq de6099c2ea update ht translation
Change-Id: I4b618d9b97c8b2c323e4d380c9e1e87820f4fa82
2018-03-28 05:23:12 -06:00
Transifreq d037c02fd2 update fr-CA translation
Change-Id: Iae3c2100d4d8844e9a340350ebb7ab7d6995d55a
2018-03-28 05:22:23 -06:00
Transifreq 46c2e9e65f update fr translation
Change-Id: If6baa0805467ef9111bb00b176166576382e215c
2018-03-28 05:21:33 -06:00
Transifreq cebd075700 update es translation
Change-Id: I47dc446ea2b12396f8cc6e612af0df6e1ed55a4d
2018-03-28 05:20:41 -06:00
Transifreq 64dd975f90 update en-GB translation
Change-Id: I0df7feafd438563de7cba7e830b9b25b7090fdaa
2018-03-28 05:18:25 -06:00
Transifreq 289af449bf update en-CA translation
Change-Id: I62109a4d5e0b204c6ff58fd3a699dfe447003a27
2018-03-28 05:17:34 -06:00
Transifreq d13f0f53ba update en-AU translation
Change-Id: I54c18d466236dd144a8a3a612ca4d1c8c2d2d184
2018-03-28 05:16:47 -06:00
Transifreq 5bb63e2417 update da translation
Change-Id: I97982612e0021c82b2cd5c3a45105a587e00ff31
2018-03-28 05:15:10 -06:00
Transifreq d75161412f update ar translation
Change-Id: If820b90e1a33a7b865dc0988965bfb867633d8e5
2018-03-28 05:14:17 -06:00
jfederico 95998334cd Implemented individual delete on BigBlueButton conference recordings
closes COMMS-769
closes GH-1079

Test Plan:

1. As an instructor or administrator create a conference and join the
   session. Click on the recording button and after a few seconds
   logout from BBB.
2. The recording has to be processed, so wait for some minutes and
   refresh the page. More recordings can be created in the meanwhile
   following step 1.
3. When the recording is ready, the conference (long lasting running or
   ended) title can be expanded. The recording (or recordings) should
   be shown, one per row. At the left the new button "Delete" should be
   shown.
4. Click on delete and the delete message will be sent to BBB. If successful,
   the row is deleted.

Change-Id: Ib1ce29bcf786eb35805c4df77becc6e4c9c88893
Reviewed-on: https://gerrit.instructure.com/139457
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Product-Review: Matt Goodwin <mattg@instructure.com>
Tested-by: Jenkins
QA-Review: Anju Reddy <areddy@instructure.com>
2018-03-27 18:32:55 +00:00
Transifreq e1bd548d06 update es translation
Change-Id: I17cedfa463403331dde6115b22abb8e12a6f3cf0
2018-03-27 05:20:01 -06:00
Cody Cutrer 3320e306a3 disallow deprecated Dirty methods in Rails 5.1
closes CORE-1196

Change-Id: I9a26a8748a61365248b38b6268a6c8bfb3a783d8
Reviewed-on: https://gerrit.instructure.com/144686
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
2018-03-23 22:03:20 +00:00
Cody Cutrer f49d5c68b0 rails 5.1: fix several deprecation warnings
refs CORE-1196

 * avoid calling saving in an after_save callback. things just get weird
 * enable logging of deprecation warnings in specs (so that you can
   use the log to figure out which spec caused it)

Change-Id: I64804f7b02e4edee0650caa6346cc58bcbe69628
Reviewed-on: https://gerrit.instructure.com/144667
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
2018-03-23 19:19:34 +00:00
Cody Cutrer 610751f33a vacuum stream_items an stream_item_instances after cleaning them up
also do it 4x daily rather than 1x daily

Change-Id: I328091586226e334c48bfe96b57b0a601bb22ef2
Reviewed-on: https://gerrit.instructure.com/143678
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2018-03-22 21:56:36 +00:00
Andrew Butterfield 66844d2366 Add route scope enforcement to application controller
fixes PLAT-3176
fixes PLAT-3179
fixes PLAT-3181
fixes PLAT-3177

Test plan:
* Create a DeveloperKey
* Create an AccessToken
* Ensure that everything can be accessed as normal
* Set require_scopes to true on the DeveloperKey
* Ensure that nothing can be accessed
* Add some scopes to the AccessToken from the list of available scopes
    TokenScopes::SCOPES
* Ensure that the endpoints associated with those requests work but that
  others don't
* Ensure that HEAD requests work for GET endpoints
* Ensure all api endpoints behave normally when scopes are not turned on
  for  developer key

Change-Id: I0e7c1758ae2d51743490f243cfa21714255c8109
Reviewed-on: https://gerrit.instructure.com/143026
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Karl Lloyd <karl@instructure.com>
2018-03-21 23:18:36 +00:00
Ryan Shaw d8014ed53c make feature flags for Right To Left layout
Closes: CORE-1154

There are 2 feature flags here. One a specific user (internal
employees, sales people, contractors, etc) can turn on to see where we
are and what would still need to be done. And the other is for an
account to be able to turn on to let the users in their account that
have their language set to an RTL language (eg: Arabic, Farsi or Hebrew)
see the interface in RTL

This commit is part of a chain of commits. you'll need to apply the ones
that follow-on after this to see most of the actual Right To Left
features, this commit is mainly just to create the feature flag.

Test plan:
* go to your user settings page
* you should see a feature option for Force RTL Layout”
* it should show that it is “in development”
* it should should be hidden: eg: only appears for site admins and not
  For normal users
* turn it on

(if you have this checked out along with the others that follow beind
  this commit)
* navigate around canvas, most things on most pages should be RTL
* you should be able to get an idea of how much more work and what
  Kind of changes we’d still need to make to get it 100%

* now turn off that user feature flag, and go to your account's settings
* turn on the "allow users from RTL languages to see RTL layout"
  account-level feature flag.
* nothing should change for you, it should be LTR like normal
* set your language to either Arabic, Farsi or Hebrew
* now the interface should all be in right to left.
  (again, you'll need to have the follow-on commits to this to see all
  of the RTL changes)

* without either of the feature flags turned on, absolutely nothing
  should be different at all anywhere in the interface.

Change-Id: Ia78d86fa46d2d289b1913c5d1340546d7f6c3a1f
Reviewed-on: https://gerrit.instructure.com/143891
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
2018-03-21 21:09:38 +00:00
Simon Williams c0b7b9ffc3 upgrade to rubyzip 1.2.1
Even though this is a patch level version bump, it made a subtle change
that broke some workflows we had (see https://xkcd.com/1172/).

The second argument to Zip::File.open is a `create` flag, which
determines whether the zip file is created if it does not exist. Prior
to 1.2.1, the expectation was that `Zip::File::CREATE` was passed as the
argument if creation was desired. However, internally the library was
inconsistent about checking the passed flag against `Zip::File::CREATE`
vs just checking truthiness.

In practice, what this meant is that if you passed a different truthy
value, like `Zip::File.open(filename, 'w')` (like we did in several
places), the file would still be created if it did not exist, BUT,
critically, it would not be saved if nothing was put into the archive.

1.2.1 changed this flag to always check "truthiness", meaning empty zip
archives started to be saved. Unfortuantely, our mime type evalutation
rules don't correctly identify an empty zip file as a zip file, but
instead as just a binary file. These two things combined to create
problems.

see https://github.com/rubyzip/rubyzip/compare/v1.2.0...v1.2.1
and particularly fc23f68f77

closes CNVS-41711

test plan:
- test course copy and export/import workflows (both canvas and standard
common cartridge formats), especially in "sparse" cases where, for
example, no associated files would be copied.

Change-Id: If0033f6c0ede7f7a6e8c26031371ae2bd24cd1fb
Reviewed-on: https://gerrit.instructure.com/143744
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2018-03-21 17:09:44 +00:00
wdransfield 5eab294804 Create DeveloperKeyAccountBinding API
Closes PLAT-3208

Test Plan:

- For all new endpoints verify the the user must have the manage
  developer key permission for the requestd account.

CREATE
- In a root account create a developer key.
- Using the new binding create endpoint create a developer key
  account binding:
  POST
  {
    "developer_key_account_binding": {
      "workflow_state": "on"
    }
  }
- Verify a DeveloperKeyAccountBinding was created with a workflow
  state of 'on', an account id pointing to the root account, and
  a develoepr key pointing to the root account developer key.
- Create a developer key in a sub account.
- Repeate the above process but create a binding for the
  sub account and sub account developer key.
- Verify you cannont create a binding using the root
  account id and the sub account develope key id.

UPDATE
PUT
{
  "developer_key_account_binding": {
    "workflow_state": "off"
  }
}
- Verify you can use the update endpoint to modify
  the workflow_state of the DeveloperKeyAccountBinding
  create previously in the root account.
- Do the same for sub accounts.

INDEX
- Verify the endpoint lists all DeveloperKeyAccountBindings
  from the account specified by the account_id param.
- Verify the endpoint lists all DeveloperKeyAccountBindings
  from any parent accounts.
- Verify the endpoint lists all DeveloperKeyAccountBindings
  from the site admin account.

Change-Id: Id81b1d5ef0eb1d6a62ca180b66be6f92a285c3de
Reviewed-on: https://gerrit.instructure.com/143908
Tested-by: Jenkins
Reviewed-by: Stewie aka Nicholas Stewart <nstewart@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
2018-03-21 16:56:11 +00:00
Cody Cutrer 616b2dbb47 drop rails 5.0
Change-Id: Ic374d543a7ba00f660efccb287513c5f80232196
Reviewed-on: https://gerrit.instructure.com/144178
Reviewed-by: James Williams  <jamesw@instructure.com>
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2018-03-20 19:50:23 +00:00
Cody Cutrer a15c9df6a5 default to rails 5.1
Change-Id: I2ef2b486bbb73b250ba53ac939faa608afd1d29f
Reviewed-on: https://gerrit.instructure.com/144166
Reviewed-by: James Williams  <jamesw@instructure.com>
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2018-03-20 18:30:15 +00:00
Stewie (Nicholas Stewart) 5fa6bb57b9 Add copyright message to remaining .rb files
Update: Copyright years now reflect the year that the file was first
committed.

Refs: PLAT-3200

Test Plan: jenkins is still happy and specs pass!!

Change-Id: Ic26463defe41fc52cf4da8020976394c641f51d5
Reviewed-on: https://gerrit.instructure.com/143545
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Stewie aka Nicholas Stewart <nstewart@instructure.com>
2018-03-19 13:38:50 +00:00
Transifreq 32e4fd5f05 update nn translation
Change-Id: Idb6af276156ba43663ec916fcf6f8799e46f6275
2018-03-18 05:50:25 -06:00
Transifreq a670850779 update nn translation
Change-Id: Ia00730b1efd28f130d325ab7ab115ad3f49da742
2018-03-17 05:51:10 -06:00
Transifreq 3d8b0e0102 update hy translation
Change-Id: I55a42101ce137ba22b8feb8d421c678c2e0a80ed
2018-03-16 05:52:13 -06:00
Transifreq 37b2f2d776 update he translation
Change-Id: Idfe04a4d7bf0f073825f408d514bb4bc80dc8c68
2018-03-16 05:51:24 -06:00
Transifreq 381122d7da update it translation
Change-Id: If0949aeb773a99b00f5ebc9ff592212e8181e82c
2018-03-16 05:22:06 -06:00
Transifreq e50a4891d9 update tr translation
Change-Id: I5eb8504571885d43df6554cb7694345b58d66406
2018-03-15 05:52:05 -06:00
Cody Cutrer c988523bbe postgres 9.3 is already required
(Canvas won't even boot with an older version)

so remove conditionals for older features

Change-Id: Ied601ef97f527ac93d386a650a1bd23f198dcf04
Reviewed-on: https://gerrit.instructure.com/143634
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
2018-03-14 22:25:58 +00:00
Cody Cutrer 5e3038b721 codify our sorting cases in a spec
refs gh-1229

also make clear how the collator is configured, vs. the defaults
also also document each of our three uses of ICU to point to each
other if you change anything in the future

Change-Id: Ib911302a96a9d9a667923793ebb2be095b62d8ab
Reviewed-on: https://gerrit.instructure.com/142772
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
2018-03-14 21:05:57 +00:00
Cody Cutrer 4ab57d6217 use correct syntax for renaming a constraint in postgres
Change-Id: Iee92ce11c4840c7443fc619356141930dcc8f36e
Reviewed-on: https://gerrit.instructure.com/143609
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2018-03-14 20:15:31 +00:00
Rob Orton 52ced9231d don’t delete submissions on user merge
fixes CORE-1069
refs CORE-1026

test plan
 - have 2 users with conflicting submissions
   one with grade one with submission
 - merge them
 - split them and it should be restored

Change-Id: Id645ddcc0c5182a825e513de7e7d05e6fa50f254
Reviewed-on: https://gerrit.instructure.com/142004
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2018-03-14 16:49:52 +00:00
Simon Williams 38c673b7f0 don't send Turnitin::Errors::SubmissionNotScoredError to sentry
this is just used to fail the delayed job, so it retries. if it fails
it's max retries, the error details are logged on the submission

Change-Id: If1f7da5dd5331ad153d78c323526eac22afd01c5
Reviewed-on: https://gerrit.instructure.com/143174
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
2018-03-12 20:48:57 +00:00
Transifreq c570001bcc update tr translation
Change-Id: I5e65b54cd32bb50a61085f7b37927d3502e066db
2018-03-12 05:51:56 -06:00
Jacob Fugal ab535a0eac fix supported contexts in files#api_capture
fixes RECNVS-352

the list of context types in `VALID_CONTEXT_TYPES` corresponds to
possible contexts at all calls to api_attachment_preflight

test-plan:
- have inst-fs enabled and set up
- upload a file as a submission comment
- upload works

Change-Id: Iaa3371a1c9c5cf55196f2b43b134ae863e804017
Reviewed-on: https://gerrit.instructure.com/142890
Tested-by: Jenkins
Reviewed-by: Andrew Huff <ahuff@instructure.com>
QA-Review: Collin Parrish <cparrish@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
2018-03-11 18:56:01 +00:00
Jacob Fugal cfc4e74055 use api_attachment_preflight with /files/pending
fixes RECNVS-237

simplify FilesController#create_pending (which corresponds to the
POST /files/pending route) to do its preflight setup through
api_attachment_preflight. this makes it consistent with other preflight
endpoints, particularly so inst-fs gets used when enabled.

cascaded implications:
* FilesController#create for local uploads is removed in favor of
  FilesController#api_create + FilesController#api_create_success
* FilesController#s3_success for s3 uploads is removed in favor of
  FilesController#api_create_success
* FilesController#render_attachment_json is removed (was only used by
  the previous two removed methods) in favor of the attachment_json
  returned by #api_create_success
* JavaScript performing uploads through /files/pending now expects an
  {<attachment fields>} shaped response in line with
  attachment_json
* JavaScript performing uploads through /files/pending now expects a
  'content-type' field in the response instead of 'content_type', in
  line with attachment_json

as part of the cleanup, the duplicate_handling parameter was renamed to
on_duplicate to match other preflight endpoints, and the size parameter
was added to the request for quota checking

test-plan:
- generally, uploads that go through /files/pending:
  - still work
  - work with instfs
- specifically, the uploads that go through /files/pending are:
  - uploading an image as an avatar in the user profile
  - submitting an assignment via file upload
  - conversation messages with attached files
  - uploading a file to an eportfolio
  - upload image from wiki sidebar (w/o RCE enabled)
  - upload files from wiki sidebar (w/o RCE enabled)
- of particular interest to confirm beyond just "appears to work" are:
  - attachment(s) are associated with conversation message correctly
    after upload
  - attachment(s) are associated with submission correctly after upload
  - images uploaded to eportfolio are recognized as images
  - video files uploaded via wiki sidebar are recognized as video
  - image files uploaded via wiki sidebar are recognized as images

Change-Id: I463b3746e8e99a5e503df302664122bf364771c1
Reviewed-on: https://gerrit.instructure.com/141859
Tested-by: Jenkins
QA-Review: Collin Parrish <cparrish@instructure.com>
Reviewed-by: Jonathan Featherstone <jfeatherstone@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
2018-03-09 23:16:14 +00:00
Rob Orton e68b92b2c2 Revert "fix footer logo in footer of emails"
This reverts commit 2b9853c82d

but replaces the googlusercontent url that doesn't exist on the 
internet with one that will continue to exist:

aka: https://du11hjcvx0uqb.cloudfront.net/dist/images/email_signature-ea0b2cda73.png

Change-Id: I82ba0bb3cc5ae3ef4749f1fcaabe783775dcfc78
Reviewed-on: https://gerrit.instructure.com/143074
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
2018-03-09 00:16:53 +00:00
Jacob Fugal 83fed6665c define account method on delayed jobs correctly
test-plan:
- without any other plugin defining `#account` on delayed jobs,
  `job.account` should still exist and should return Account.default
- with some other plugin already defining `#account` on delayed jobs,
  `job.account` should still use the plugin defined behavior

Change-Id: I5c74febd4525b4196e38c632cfb737a97090f704
Reviewed-on: https://gerrit.instructure.com/143005
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Michael Jasper <mjasper@instructure.com>
QA-Review: Michael Jasper <mjasper@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
2018-03-08 22:07:01 +00:00
Steven Burnett 2b9853c82d fix footer logo in footer of emails
fixes COMMS-939

Test Plan:
- send any email in canvas
- notice the footer image is there
- inspect the html source, and notice that the host is
  your local Canvas install
- enable CDN config, run `node_modules/.bin/gulp rev`,
  and `rake canvas:cdn:upload_to_s3`
- send another enable
- notice the footer image is still there
- inspect the html source, and notice that the host
  is the CDN
Change-Id: Ieaed838dee02168a2aa67f3448d8d68fb6f5b701
Reviewed-on: https://gerrit.instructure.com/142889
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
QA-Review: Gentry Beckmann <gbeckmann@instructure.com>
Product-Review: Gentry Beckmann <gbeckmann@instructure.com>
2018-03-08 17:53:17 +00:00
Transifreq d2fe6282d6 update hy translation
Change-Id: Id21105d463733686cd42d121d6dfceaa8e6de798
2018-03-08 06:02:09 -07:00
Andrew Huff c6783ad4cb update instfs dynamic_settings examples
test plan: none

Change-Id: I34b1c44edbac29118c290c715eb22e12736eaa05
Reviewed-on: https://gerrit.instructure.com/137635
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins
Product-Review: Andrew Huff <ahuff@instructure.com>
QA-Review: Andrew Huff <ahuff@instructure.com>
2018-03-07 20:58:17 +00:00
Jayce Higgins 4121436abc Create quizzes next migration service for cc export
closes: QUIZ-3861, QUIZ-4113

Test-Plan:
  - QA-CR because it's not hooked up yet

Change-Id: I9028c91f485b63bc8ca8d2c70567c78945c2a848
Reviewed-on: https://gerrit.instructure.com/142304
Reviewed-by: James Williams  <jamesw@instructure.com>
Tested-by: Jenkins
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Jayce Higgins <jhiggins@instructure.com>
2018-03-07 18:37:59 +00:00
Jacob Fugal 171ef86f81 set Attachment.current_root_account during jobs
and rename that suite of methods to make more sense

test-plan: N/A

Change-Id: Iffc520ea55141ac47da669663838a4d3c3d8712c
Reviewed-on: https://gerrit.instructure.com/142486
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
2018-03-07 17:18:24 +00:00
Cody Cutrer 1acbe1bc91 make CanvasKaltura.cache aware that Rails.cache is dynamic
Change-Id: I1b1aa95632b4e270d729c69f184e4507899cd3af
Reviewed-on: https://gerrit.instructure.com/142666
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2018-03-06 05:46:59 +00:00
Augusto Callejas 412e49baee Outcome import creation/status endpoints
closes OUT-1534

Scheduling of outcome import jobs will occur in a separate PS,
after this merges and OUT-1997 is merged too.

test plan:
  - start up canvas
  - generate api docs:
    > docker-compose run --rm web bundle exec rake doc:api
  - load api docs in http://canvas.docker/doc/api/index.html
  - read over the "Outcomes CSV Format" and make sure it reads well
  - read over the "Outcomes Import" and make sure it reads well
  - obtain an access token:
    https://community.canvaslms.com/docs/DOC-10806-4214724194
  - request an outcome import, replace "canvas-path" and "token" values:
    curl -F attachment=@<canvas-path>/spec/lib/outcomes/fixtures/demo.csv \
         -F 'import_type=instructure_csv' \
         -H "Authorization: Bearer <token>" \
         http://canvas.docker/api/v1/accounts/1/outcome_imports
  - in a rails console, confirm that the import was accepted:
    > docker-compose run --rm web bin/rails console
    % pp OutcomeImport.last
    # confirm that the import is in the 'created' state, associated with
      your user and associated with an account context
    # note the "id" value for later use
    % pp OutcomeImport.last.attachment
    # confirm that the attachment is in the 'processed' state and has
      the filename "test_outcomes_1.csv" passed in above
  - request the status of the outcome import (should return a message
    saying "The specified resource does not exist"):
    curl -H "Authorization: Bearer <token>" \
         http://canvas.docker/api/v1/accounts/1/outcome_imports/latest
  - back in the rails console created above, manually transition
    the import to "importing":
    % OutcomeImport.last.job_started
  - run the above curl command again, and this time the latest outcome
    import should be returned, in the 'importing' state
  - run the above curl command again, replacing "latest" with the "id"
    value obtained above. it should return the same response as the
    previous step.

Change-Id: Ice7d67b625b443cec70f531f2e673face6d6fbeb
Reviewed-on: https://gerrit.instructure.com/142024
Reviewed-by: Neil Gupta <ngupta@instructure.com>
Reviewed-by: Frank Murphy <fmurphy@instructure.com>
Tested-by: Jenkins
QA-Review: Frank Murphy <fmurphy@instructure.com>
Product-Review: Neil Gupta <ngupta@instructure.com>
2018-03-05 19:22:03 +00:00
James Williams 2142fa4fff master courses: copy assignment group rules selectively
should still copy rules correctly even if the referenced
 assignments are not included in the copy

test plan:
* create a blueprint course
* have an assignment group with assignments and
 a dropping rule that excludes one of the
 assignments
* sync to an associated course
* change the rule on the group
* re-sync
* it should still exclude the correct assignments
 in the associated course group

closes #ADMIN-801

Change-Id: I60e2a691426364ca0b93a1f67b29d1ab05d18e8a
Reviewed-on: https://gerrit.instructure.com/141655
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2018-03-05 16:23:41 +00:00