this should provide a significant speed
boost to speed_grader_json for quizzes
by squashing a few N+1s (the most significant
N+1 being for Quiz loading). also made a tweak
to submission permission checks that should
improve performance.
closes CNVS-27323
test plan:
- create a quiz with submissions
- verify you can open the quiz in
speedgrader
Change-Id: If069c52440e5981c872f57723e30d0d0665ec8ad
Reviewed-on: https://gerrit.instructure.com/73490
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Tested-by: Jenkins
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Spencer Olson <solson@instructure.com>
calls from new ui dashboard shouldn't count
closes #CNVS-27723
Change-Id: I904fcdff9728f0ba89b02821e897fed0990563ba
Reviewed-on: https://gerrit.instructure.com/73629
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
shouldn't log "Published" event when it isn't publishing
closes #CNVS-27689
Change-Id: Ie8580e29e68c228ebe749513a20e3e670ee323d1
Reviewed-on: https://gerrit.instructure.com/73486
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
test plan:
* enroll two students in a course and add them
to a group
* they should be able to see each other in the
group roster
* inactivate one of the students
* they should no longer be visible in the group
roster to the other student
* they should still be visible to the admin
closes #CNVS-27441
Change-Id: Ia4addb3d269a6bc84bbc08815ebf7d666512179e
Reviewed-on: https://gerrit.instructure.com/73284
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
closes #CNVS-27699
Change-Id: I5af3d9915fef4189204283ca87cafc540ed3eed4
Reviewed-on: https://gerrit.instructure.com/73566
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
closes CNVS-27672
This could stop all API requests from working
if consul suddenly catastrophically loses it's data.
With the patch in place, we'll still fail for
requests that need that data to decrypt (JWT), but regular
access tokens will still work ok. This is better than
total system failure.
TEST PLAN:
1) connect to consul, but put no data in it (particularly no
signing/encryption secrets)
2) hit canvas with an API request using a regular access token
3) it should not blow up
Change-Id: Ia435814929968373f22ab8d120153368267a3f32
Reviewed-on: https://gerrit.instructure.com/73492
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
ABORT_ON_CONSISTENT_BADNESS doesn't catch it if it happens during driver
setup. rather than retrying 10 times, just bail and hope that the other
test-queue nodes will have better luck
test plan:
1. see earlier patchsets how test-queue runners stopped when they hit
those, and other runners got the rest of the specs
Change-Id: I2bdfeafd8fbf5e1404952d92548f4ae62567575e
Reviewed-on: https://gerrit.instructure.com/73546
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Tested-by: Jenkins
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
test plan:
- have a course in a term that has ended
- ensure students do not receive notifications for
1. wiki page changes
2. grade changes
3. being added to a student group
fixes CNVS-27538
Change-Id: I43bdf541fd79abdca41a2899987fb29dddc73fb5
Reviewed-on: https://gerrit.instructure.com/73456
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
refs: CNVS-25278
Test Plan:
- This is a 1 to 1 change. Font size will just be relative instead of
fixed sized (ie, rem instead of px)
- Go to [Course] > Settings > External Apps tab
- The top description area should now have no double border, and
better spacing between and around the description paragraph
Screenshot of changes: http://cl.ly/0z1V0J240P0d
Change-Id: I2126308cfefeb45d1b8ca0586a88e50982b4b095
Reviewed-on: https://gerrit.instructure.com/72484
Reviewed-by: Jennifer Stern <jstern@instructure.com>
Product-Review: Jennifer Stern <jstern@instructure.com>
Tested-by: Jenkins
QA-Review: Myller de Araujo <myller@instructure.com>
Fixes: CNVS-27527
test plan:
- as a user with the old ui and unread messages in your inbox
- navigate to the dashboard and look at the upper-right
nav links - are they aligned?
example: http://screencast.com/t/kQGa92JcxJE
Change-Id: Ic9cfb8520a1236ffe10524db16b2573a9ffb7074
Reviewed-on: https://gerrit.instructure.com/73002
Tested-by: Jenkins
Reviewed-by: Colleen Palmer <colleen@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
Product-Review: Chris Hart <chart@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Refs: CNVS-26581
test plan:
- as a user with the old and/or new ui
- if you already have turned in an assignment that required a file
upload... navigate to the course assignment and click the
"submission details" link from the right-hand side bar
- if you do not have any assignment submissions as a file upload
as a teacher edit one of your assignments to a file upload
for the submission type
- then as the student - submit that assignment and then view the
submission details from the right
- example from new ui: http://screencast.com/t/kPCaBjenS
Change-Id: I04b46ce126ddd6b1794ab963c9ce52ff4e851864
Reviewed-on: https://gerrit.instructure.com/73296
Tested-by: Jenkins
Reviewed-by: Colleen Palmer <colleen@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Refs: CNVS-26581
test plan:
- as a teacher using the old or new ui
- navigate to a course that has users that have submitted assignments
that have been graded so you can view gradebook
- click the grades sub-nav link
- from the gradebook view the following have been updated
note: screen shots are from orig gradebook but look the same:
- ko accessibility warning: http://screencast.com/t/2q5qqEqwfes
- student section: http://screencast.com/t/sNQcjOecb4
- secondary identifier: http://screencast.com/t/9BwHyVcbJI2C
- slick header column: http://screencast.com/t/rp1InVw4Qmx3
- assignment-points-possible: http://screencast.com/t/FAYK4WHMLO2
- letter-grade-points: http://screencast.com/t/ZNDLWnbS
Change-Id: I7f51a2cecc9db0a8300dfbf9682120f653ddbb12
Reviewed-on: https://gerrit.instructure.com/73188
Reviewed-by: Colleen Palmer <colleen@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
Tested-by: Jenkins
QA-Review: Myller de Araujo <myller@instructure.com>
will refactor with timecop in a future sprint
Test Plan:
- pass Jenkins
Change-Id: Ia98fd4ad50105a5d9552a34589829718bc9e2a94
Reviewed-on: https://gerrit.instructure.com/73560
Tested-by: Jenkins
Reviewed-by: Gentry Beckmann <gbeckmann@instructure.com>
Product-Review: Michael Hargiss <mhargiss@instructure.com>
QA-Review: Michael Hargiss <mhargiss@instructure.com>
Refs: CNVS-26581
test plan:
- as a user with the old and/or new ui
- navigate to a course
- click the syllabus link from the course nav
- the last date to appear in the table should now be 12px/0.75rem
- old ui: http://screencast.com/t/Sh5EZcPtl0Da
- new ui: http://screencast.com/t/5Z9rXAHc
Change-Id: Ifadcdf313fad61acb08663acac69066803062938
Reviewed-on: https://gerrit.instructure.com/72915
Tested-by: Jenkins
Reviewed-by: Colleen Palmer <colleen@instructure.com>
Product-Review: Colleen Palmer <colleen@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
secrets are in consul now
config/WEBPACK is the normal way to make webpack happen
Change-Id: I6624756afb74a0fa89ad7275520f7d7513468b12
Reviewed-on: https://gerrit.instructure.com/73539
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
this includes canvas configuration to point it at the service
refs: CYOE-43 CYOE-50
not testing controller or ui because they are proof-of-concepts
and will not be production code. they're hidden by a feature
flag and will be replaced before the feature flag is released.
test plan:
- browse to the conditional release service stub interface
- in canvas, enable the conditional release feature flag
- configure canvas with a conditional_release.yml file that
points to the conditional release service
- see conditional_release.yml.example file
- start canvas and the conditional release service
- as a teacher, go to the course settings page
- click on the conditional release button in the right sidebar
- see the conditional release stub interface show up in canvas
Change-Id: I61f3817a4a6d534a39ef4d981044901a135e1caa
Reviewed-on: https://gerrit.instructure.com/73108
Tested-by: Jenkins
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
test plan:
- for a user using canvas auth, attempt to change the password
(Account | Settings | Edit Settings | Change Password check)
to something longer than 255 characters.
* you should get an error message.
fixes CNVS-25677
Change-Id: Ie0b75d8d5e7de1ee1d34b6fe46ec1616165a8bbc
Reviewed-on: https://gerrit.instructure.com/73535
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
test plan:
* validated e-mails listed under the "Ways to Contact"
on the user settings right side should not be
non-functional links
closes #CNVS-25966
Change-Id: I7fe9811f59ff65bb82feb28c1d7c5b5f07f8f82b
Reviewed-on: https://gerrit.instructure.com/73252
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
iow, don't let image_tag generate alt text badly
test plan: (T_T)
fixes CNVS-27489
fixes CNVS-27043
Change-Id: I52dfe7703f57074df61358262f195161cd34c32f
Reviewed-on: https://gerrit.instructure.com/73334
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
it prevents clearing schema caches. it was likely intended to
prevent truncating the same table multiple times in spec_helper,
but we haven't used all_models for that in a long time
Change-Id: Ife47ea6c565c1334c3049f91e3012b7e1f1de0f7
Reviewed-on: https://gerrit.instructure.com/73406
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
Tested-by: Jenkins
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
fixes CNVS-27480
test plan
- run lti report on a sub account
- it should only contain lti tools from sub_account
Change-Id: I4f70326b0da296c30c2fed039be27c900347afb8
Reviewed-on: https://gerrit.instructure.com/72897
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
There have been some inconsistencies in date and time formats. However,
by standardizing our own translation config files on 24 hour time
formats and including the Hebrew Geresh symbol (׳) in our day and month
name abbreviations we have found a configuration that seems to work well
(or at least consistently).
closes CNVS-26264
test plan:
- enable translations locally and set your language to hebrew
- make sure both ruby and javascript translations work
- check a datetime field specifically
Change-Id: I07128071fb89d7129a1fbdc1e0c446866850f3f5
Reviewed-on: https://gerrit.instructure.com/69911
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
We're removing this volume for now because it ends up getting the wrong
permissions making it impossible for a fresh install to work properly.
Change-Id: I9e08510722bf7bcc8b87c04fce697d5ba26f299b
Reviewed-on: https://gerrit.instructure.com/73495
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins
Product-Review: Tyler Pickett <tpickett@instructure.com>
QA-Review: Tyler Pickett <tpickett@instructure.com>
test plan:
* create a course with two sections
* create an assignment that is only assigned
for one course section
* create two modules and make the first a prerequisite
for the second
* add the assignment as a requirement for the first
* add a student in the other course section
* the second module should be unlocked for them since
they can't see the required assignment
* edit the assignment to be assigned to the other
course section
* revisit the modules page as the student
* the assignment should be visible and the second module locked
closes #CNVS-27470
Change-Id: I366592d11302362b7d92019f211915ce2c29266e
Reviewed-on: https://gerrit.instructure.com/73076
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
the only thing that was using this were some specs
for moderatedGrading. since we only run our qUnit
tests in modern browsers that have native `Promise`
support, we don't need to polyfill it there
whenJS(someVal) is exactly the same as Promise.resolve(someVal)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve
test plan:
moderatedActionsSpec should pass
Change-Id: Ia0f8d24f8452bf0aafce8b11e4e36dad9e472797
Reviewed-on: https://gerrit.instructure.com/73243
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
in the gradebook, we should default to sorting by
assignment group if the custom sort setting is
invalid. we normally do default to sorting by
assignment group if the custom sort setting is
invalid, but a regression was introduced in
696f099e7c
closes CNVS-27545
test plan:
- enter a rails console and find a teacher for
one of your courses
$ bundle exec rails console
$ course = Course.find(1)
$ teacher = course.teachers.active.first
- set the teacher's gradebook sort settings to
an invalid custom sort (it is invalid if it
does not have a customOrder property)
$ teacher.preferences[:gradebook_column_order] =
{ course.id => { "sortType" => "custom" } }
$ teacher.save!
- log in as the teacher above and go to the
gradebook for the course above
- verify the gradebook loads
Change-Id: I84a4d620c2cc1c4fe38d383cd0db254e30e9d245
Reviewed-on: https://gerrit.instructure.com/73448
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Jenkins
QA-Review: KC Naegle <knaegle@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
test plan:
* create a custom course role for an account
* create a sub-account
* enable the permission on the parent account, but
disable it on the sub-account
* create a course for the sub account
* enroll a user in the course using the custom role
* check the disabled permission for the user
* it should be disabled
closes #CNVS-25230
Change-Id: I39c3d65f74c73ae3ae4d6457c072cb2fbab35512
Reviewed-on: https://gerrit.instructure.com/73225
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
* from the course settings, click "Copy this Course"
* on the course copy form, enter a start date
* enter an end date before the start date
* it should prevent the form from being submitted
and pop up an error
* changing the date to a valid one should work
closes #CNVS-26590
Change-Id: I98ac199c946c432d4ab1ea1e19a182d6955d20de
Reviewed-on: https://gerrit.instructure.com/73356
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
* create a user with notification preferences
for "Membership Update" (under Groups) set to ASAP
* enroll the user in a course as a teacher enrollment
but reject the invitation
* enroll a student in the course and accept the invitation
* it should not send a message to the teacher who rejected
closes #CNVS-27533
Change-Id: I7d65c697b80378642b934610bfebce9c3ef89f17
Reviewed-on: https://gerrit.instructure.com/73228
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
* try to upload a file greater than 50MB for a quiz
file upload question submission
* it should be successful
closes #CNVS-27148
Change-Id: Id92ac58a31d0ab38b311fc5227dbd139bb1e35ad
Reviewed-on: https://gerrit.instructure.com/73050
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
* import the package referenced in the ticket
* it should not create any module items linked to announcements
closes #CNVS-27609
Change-Id: I86a8c7ec2efbc766e7f82dac46a449faf0989788
Reviewed-on: https://gerrit.instructure.com/73412
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
fixes CNVS-27335
test plan
- users with just manage sis should not be able
to import sis data.
- users with just import sis permission should be
able to import sis data
- import sis permissions should only exist on
root_accounts
- manage sis users should still see the sis tab
on the account, but should not see any import
options
Change-Id: If965796a4b14630d6674f221805eff7d56da439f
Reviewed-on: https://gerrit.instructure.com/72411
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
refs CNVS-27581
this ensures we have one correlation ID for a request coming
through the ecosystem rather than a seperate ID for each request
at each service. Each request id must be signed to make sure
others can't just submit whatever they want.
TEST PLAN:
1) make an API request and provide the header 'X-Request-Context-Id'
2) make sure to include the X-Request-Context-Signature header, which
should have the value of the sha512 signature with the shared
secret for the services ecosystem
2) the logs should show your provided value as the context Id for that
canvas request
Change-Id: I610fbe8c4df355d43c05360670f80971d1459644
Reviewed-on: https://gerrit.instructure.com/73166
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
Fixes: CNVS-27418
Test plan:
- With the new UI on, as an admin, go to your user
account settings, and turn on High Contrast UI.
- Go to Theme Editor, and you should see the
following alert at the top of the screen:
http://screencast.com/t/shbAlU6H
- The link should take you to your account settings
page
- Turn off High Contrast UI, go back into Theme
Editor, and the alert should no longer show.
Change-Id: I1686bd5e45405195cb511bd8a479e34975fec0b7
Reviewed-on: https://gerrit.instructure.com/73165
Tested-by: Jenkins
Reviewed-by: Jennifer Stern <jstern@instructure.com>
Product-Review: Jennifer Stern <jstern@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
closes CNVS-27597
We need to not slam consul for rarely changing data.
the '#find' method still gets the value from consul everytime.
Cache can be infinite or with timeout.
TEST PLAN:
1) have some data in consul for what the signing secret is for canvas
2) Make sure to query it (Canvas::Security::ServicesJwt.signing_secret)
3) change the consul data
4) query it again, it should not have updated
5) send a SIGHUP
6) query it again, it should have changed
Change-Id: I5b923b8e44ab90692e87969c494a7c65fafcad72
Reviewed-on: https://gerrit.instructure.com/73198
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins
Reviewed-by: David Adams <dadams@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
Fixes CNVS-27413
Test plan:
- Create an assignment
- Create more than 10 users
- Submit the assignment as each user
- As a teacher, verify that the actual number of assignments that
were submitted shows up next to the assignment in the to-do list
Change-Id: I3720ac1e24abbc78bf56f384dfd19400f51f1409
Reviewed-on: https://gerrit.instructure.com/72990
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Allison Weiss <allison@instructure.com>
these specs fail ~85% of the time (though they usually pass reruns).
switch to :once instead since it confers the same speed benefits without
the following drawbacks of :all hooks:
1. things like cached special accounts may be invalid (usually the failure
here)
2. you have to manually clean up afterward, otherwise later specs can break
test plan:
1. jenkins should pass with none of these failing
2. `rspec spec/selenium/gradebook_student_spec.rb:140:255 --order defined`
should now pass locally
Change-Id: Ie21c97a4ce54abe705db43b7fea6dc18b49ae63f
Reviewed-on: https://gerrit.instructure.com/73383
Reviewed-by: Michael Hargiss <mhargiss@instructure.com>
Tested-by: Jenkins
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
refs #CNVS-27475
Change-Id: I241b4c5454fb9d1e306a5a6281dca6f1da439f7c
Reviewed-on: https://gerrit.instructure.com/73357
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
different runners on the same node could stomp on each other's
unzipped_file_path
also remove @export_folder, since it wasn't used
Change-Id: Ifcc75e8e1da7e568c457e8c0d1fc8fec0f1f6877
Reviewed-on: https://gerrit.instructure.com/73353
Tested-by: Jenkins
Reviewed-by: Landon Wilkins <lwilkins@instructure.com>
Product-Review: Landon Wilkins <lwilkins@instructure.com>
QA-Review: Landon Wilkins <lwilkins@instructure.com>