Avatars in comments in SpeedGrader could shrink if the comment text
was too long. This sets a constant size.
Test Plan
- Enable avatars (Account settings)
- Create an assignment
- Launch SpeedGrader as a teacher.
- Create a comment.
- Create a really long comment.
- Notice that the avatars are circular and constantly sized.
- Resize the window and verify the avatars continue to look circular
and constantly sized.
fixes GRADE-1836
Change-Id: Ic155233ca1354c3839138b3b32b06aabf1c9b752
Reviewed-on: https://gerrit.instructure.com/173431
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Keith Garner <kgarner@instructure.com>
QA-Review: Jeremy Neander <jneander@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
Refs GOOF-658
Test Plan: Test that an assignment upload works from
google doc plugin(not lti)
Change-Id: Id9a75d964c60c42336ef827e2472720f33d855a5
Reviewed-on: https://gerrit.instructure.com/173424
Reviewed-by: Nick Houle <nhoule@instructure.com>
Reviewed-by: Jeremy Slade <jslade@instructure.com>
Product-Review: Nick Houle <nhoule@instructure.com>
Tested-by: Jenkins
QA-Review: Pedro Fajardo <pfajardo@instructure.com>
This only affects javascript files and only affects things
from the prettier whitelist
This will run slowly if you don't have node_modules installed
locally (e.g., in Docker), but it will gladly attempt to
run things in Docker for you.
This adds a new githook_installer image that will install
the githook whenever a docker-compose up happens in the
repo. It will also install the hook whenever a `yarn`
occurs locally (as a postinstall hook).
This commit should also not fail things. For example
having unused variables is an ESLint error, but it isn't
autofixable. It will log the error, but will otherwise
continue. However, it will make this pretty with prettier
as well as fix any other autofixable ESLint errors.
closes CORE-2118
Test Plan:
- Run `yarn`
- Add some semicolons to something from the whitelist
- git add that file
- git commit and it will strip semicolons
- In a dockerized Canvas:
- docker-compose up
- Add semicolons to a file
- git add that file
- git commit, it will take forever (~60s)
- It should have stripped out semicolons
Change-Id: Id9198aa008808e898f29acb9ed64dd14ff843222
Reviewed-on: https://gerrit.instructure.com/171510
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Brent Burgoyne <bburgoyne@instructure.com>
The show course endpoint has a new, optional parameter. This adds
it to our API documentation.
test plan:
- rake doc:api
- teacher_limit parameter should be mentioned on courses page
Change-Id: I06edd1fc055469eee7188c9c6e63873fa9eac0e6
Reviewed-on: https://gerrit.instructure.com/173315
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Tucker Mcknight <tmcknight@instructure.com>
closes #CORE-2162
Change-Id: I5ab8818923db51021475d5c90e0dff6ea0447c5f
Reviewed-on: https://gerrit.instructure.com/173251
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
so that we don't complain about version being wrong when other
things are wrong first
Change-Id: I6ae233f9480cd09b485a830138d20bb6aa37935a
Reviewed-on: https://gerrit.instructure.com/173377
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
The graphql-ruby gem defaults to not including the nodes field for
connections defined with the legacy api
Test plan:
All connections should now have a `nodes` field.
closes GQL-19
Change-Id: I5981b68cdbde73cac2ca06ca4ac90448ab348008
Reviewed-on: https://gerrit.instructure.com/173412
Tested-by: Jenkins
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Cameron Matheson <cameron@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
Test plan:
add links to various course files in an assignment's description. The
description returned by graphql should return fully qualifed links
(the description should be the same as the description returned by the
REST api).
closes GQL-7
Change-Id: I189f45160697860201ec8fe6fe1fa2771e18cc35
Reviewed-on: https://gerrit.instructure.com/171990
Tested-by: Jenkins
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Cameron Matheson <cameron@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
Fixes PLAT-4003
Test Plan:
- Create a non-lti key that does not requires scopes
- Verify require_scopes is false for that key
- Create an lti key with or without scopes
- Verify require_scopes is true for that key
Change-Id: I2bf7a6fface7b1ed1d34b34f7cd873792c650d49
Reviewed-on: https://gerrit.instructure.com/172849
Tested-by: Jenkins
QA-Review: Marc Phillips <mphillips@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
Reviewed-by: Marc Phillips <mphillips@instructure.com>
Refs PLAT-3991
Test Plan:
- Create multipel tool proxies in your account.
Note the vendor code and product code of the
proxies.
- Using the new documentation as a reference,
hit the endpoint to add a new service to the tool proxies
- Verify all tool proxies have the new service added
with the correct actions
Change-Id: If19c8ed0b8e788dab3025a7e33c5176386a8d885
Reviewed-on: https://gerrit.instructure.com/172604
Tested-by: Jenkins
QA-Review: Marc Phillips <mphillips@instructure.com>
Product-Review: Jesse Poulos <jpoulos@instructure.com>
Reviewed-by: Marc Phillips <mphillips@instructure.com>
closes: GRADE-80
this also fixes a problem with showUnpublishedDisplayed which was never
hooked up to anything. It now is referenced correctly as
gradebook.gridDisplaySettings.showUnpublishedAssignments
test plan:
- Enable the Final Grade Override Feature Flag
- In new gradebook, View -> Overrides is now present
- When filtering by grading periods, Overrides label changes to
"Grading Period Overrides"
- Selecting this option does not change anything, but the selection
is persisted between page reloads
Change-Id: I9ba16b3bf65c371eb4da4ed070a748c269fe018e
Reviewed-on: https://gerrit.instructure.com/172636
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Tested-by: Jenkins
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
closes: GRADE-1811
test plan:
- no typos
Change-Id: I5f3e89b8ea23af7653a408a9484bfdce4088d202
Reviewed-on: https://gerrit.instructure.com/173185
Tested-by: Jenkins
Reviewed-by: Gary Mei <gmei@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
This prevents an error in our rescue handlers when trying to
save the original error message.
Fixes OUT-2878
Test Plan:
- Create an outcome import csv with a very long (>255 character)
object GUID.
- Attempt to import that csv, and verify an email with an error
is received.
Change-Id: I49bdbbd412ad5555a201965321e7a5c49eb3ea48
Reviewed-on: https://gerrit.instructure.com/173312
Tested-by: Jenkins
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
QA-Review: Dariusz Dzien <ddzien@instructure.com>
Product-Review: Neil Gupta <ngupta@instructure.com>
Fixes OUT-2849
Fixes OUT-2857
Test Plan:
- On the course outcomes page, create a new outcome.
- Verify the info button is a button, has screen reader text,
and opens a modal dialog with information.
- Edit the same outcome after creation and verify the button still
works as outlined above.
Change-Id: I34d0918c7b70f2e1d67b606d5296f3c25ab9be79
Reviewed-on: https://gerrit.instructure.com/172767
Tested-by: Jenkins
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Neil Gupta <ngupta@instructure.com>
test plan:
* have a course with more than 10 teachers
* the account course search shouldn't list
all the teachers for the course
closes #CORE-1656
Change-Id: I2ff6d584c4c366073248b7334b9a8fb1b5c2c4c6
Reviewed-on: https://gerrit.instructure.com/162064
Tested-by: Jenkins
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
fixes COMMS-1770
Test Plan
- Create an assignment and give it a due date
on or after 11:31 p.m. (23:31 for 24-hour clocks)
- Create an assignment and give it a due date before 11:31 p.m.
- Navigate to the calendar
- Notice that the assignment due on or after 11:31 p.m.
will now contain the due date in the title
Change-Id: I50b6bebce54b59e070e0e246b5bff8854e0aed92
Reviewed-on: https://gerrit.instructure.com/173249
Tested-by: Jenkins
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
fixes COMMS-1764
Test Plan:
- Visit an individual assignment page as a student
- notice your data is no longer mocked and shows correctly
Change-Id: I7810db47fa81c6120285359d754e1d9465ad3fe5
Reviewed-on: https://gerrit.instructure.com/173177
Tested-by: Jenkins
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
References OUT-2877
Test Plan:
:qa-cr:
Change-Id: I47356944ddc4da23f99cf6235343f55668044d42
Reviewed-on: https://gerrit.instructure.com/173302
Tested-by: Jenkins
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Frank Murphy III <fmurphy@instructure.com>
closes QA-614
Test Plan:
- Run yarn test inside the canvas-planner directory
- A junit file should be created in ./coverage/canvas-planner-junit.xml
- It should also report to jenkins 'Test Results' when there is a failure
Change-Id: Ibfb1ec088ceb60f2c265b3c31e77029968268f9a
Reviewed-on: https://gerrit.instructure.com/173008
Tested-by: Jenkins
Reviewed-by: Carl Kibler <ckibler@instructure.com>
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
Adding a force_new parameter to the conversations api
to make it more transparent to the user how to send a
new private message. If this parameter is set, it will
branch into the code path to create a new conversation.
Test plan
- Create two conversations using force_new
- ids of the two conversations should not match
refs PLYT-1663
Change-Id: I050aec81b9e2a2def9ed46901b34fd2a06b63cb0
Reviewed-on: https://gerrit.instructure.com/172958
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
Tested-by: Jenkins
QA-Review: Landon Gilbert-Bland <lbland@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
Change-Id: Ieae7ac480124e52050c79ca83c99a7fe698c48d5
Reviewed-on: https://gerrit.instructure.com/173262
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Gary Mei <gmei@instructure.com>
because clay can't spell
also get rid of that feature flag enabling on
every user in specs
also handle development features disabled in prod
Change-Id: Ifd6c590011e6963e7acea90f8f58bd2372123d26
Reviewed-on: https://gerrit.instructure.com/171781
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
fixes ADMIN-2256
test plan:
- In a course, create 2 modules and add some items to each
- use "Move Module" and "Move Contents" a few times
- use "Move To" to be sure it still works too
- When a module is empty (no contents), clicking 'Move Contents'
option doesn't throw a JS console error. (it did before).
Change-Id: Ia0ad37fdd4076e74501f64023a6da3558af9c913
Reviewed-on: https://gerrit.instructure.com/172920
Tested-by: Jenkins
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Carl Kibler <ckibler@instructure.com>
The page for displaying grades in all active courses will show the
lowest scores possible corresponding to the override grades for the
grading periods/course, if override grades exist, for students
and observers. Teachers will continue to see the non-override scores.
closes GRADE-1588
Test Plan
- Have two courses.
- Enroll the same student in both courses.
- The following instructions only apply to one course; you do not
have to do everything twice. The existence of an enrollment in a
second course is sufficient.
- Enable the feature Final Grade Override from the account/course
levels.
- Create a grading scheme. The default one is fine, but enable it if
it is not already enabled.
Grading Periods
- Create a grading period group.
- Create two grading periods; one that is over and one that is still
open. Have the closing dates of both be some date in the future.
- Turn on the option "Display totals for All Grading Periods option"
Assignments
- Create an assignment in each grading period.
- Give a grade to a student for each assignment, so that they'll have
a grade in both grading periods.
- As a student, view the grade summary page for that course. Verify
that grades look as expected so far.
Overriding Grades
- Find the scores for the grading periods and the course score, then
assign them an override score, different for each one.
- To find the score of a grading period:
`score = some_enrollment.scores.find_by(grading_period_id: id)`
- To find the score of the course:
`score = some_enrollment.scores.find_by(course_score: true)`
- To update the score to have an override score:
`score.update!(override_score: a_significantly_different_score)`
* use a significantly different score that puts them in a
different grade bracket, preferably.
Viewing Grades
- As the student, visit the `/grades` page.
- The course you were working in should show a grade for each grading
period and the overall score. Select them via the dropdown menus.
- The grades should be the lowest possible score of the override that
you gave. For example, if a student was overridden to have a 79%
and a 75% was a C and the next tier is 80%, then the page should
show 75%, not 79%.
- As a teacher, turn off the grading scheme in the settings.
- As a student, re-visit the `/grades` page and now the percentages
should be exact (79% in the example above).
Other Users
- Observers of the students, assuming they have at least 2 observees,
should see the same thing that students see.
- Teachers should see a course average, but the average should be
accurate to the non-overridden scores.
Change-Id: I2c696b3fa349cfea67ae5c3a2a4992ef91d6c6a2
Reviewed-on: https://gerrit.instructure.com/172611
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Indira Pai <ipai@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
This adds the RCE API as a new service to the docker-compose file that
is used by Jenkins.
Removed some unused values from the mock dynamic settings.
Also added a metadata option for tests to ignore the browser console
warnings. There are still some browser console warnings being thrown
by the sidebar that we aren't ready to fix yet. (This can be removed
later.)
fixes CORE-1805
Change-Id: I561a6050074d50a556ab40e86b98fa6f2070ad24
Reviewed-on: https://gerrit.instructure.com/161920
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Tucker Mcknight <tmcknight@instructure.com>
Test Plan:
- check the HTML5 integrate arc FF
- notice its not in development
Change-Id: I6abecea070cd5bdcb17e816ece4652fceb811de5
Reviewed-on: https://gerrit.instructure.com/173082
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
Tested-by: Jenkins
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
Causes `GradebookServices` to inherit from `AdvantageServices`. As
a result could remove several placeholder methods for which
`AdvantageServices` had working equivalents:
- `tool`
- `verify_tool_in_context`
- `verify_tool_permissions`
- `render_error`
Also centralizes skip of `load_user` before action callback.
refs PLAT-4007
Test Plan:
- hold off on testing until further patchsets are in
Change-Id: I4398d8b864dba204a8043e8a8b43cd9034d913ef
Reviewed-on: https://gerrit.instructure.com/172580
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: Marc Phillips <mphillips@instructure.com>
test plan:
- enable student context cards feature
- create an admin role that has "Users - view list" permission
but no permissions on courses
- as an admin in that role, go to /courses/X/users
- click a student
- the context card tray thing should appear
(it might not have much in it, but it should appear)
fixes ADMIN-2207
Change-Id: I78d86dbe11e0d3ced3490027fd2f48e9da513625
Reviewed-on: https://gerrit.instructure.com/172592
Tested-by: Jenkins
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Carl Kibler <ckibler@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
test plan:
- test blows up far less frequently.
- else, we delete it. there, I said it. DELETE.
Change-Id: Ia1ebf920272d3f1e8752b3c2db960cb9edbd42e9
Reviewed-on: https://gerrit.instructure.com/173043
Tested-by: Jenkins
Reviewed-by: Anju Reddy <areddy@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Carl Kibler <ckibler@instructure.com>
Fixes COMMS-1763
Test Plan:
* Go to a page with the RCE and attempt to load the media capture
component using safari or IE11. It should load the old flash
version of this.
* Do the same thing with chrome or firefox. It should load the new arc
media player. Do this multiple times (reloading the page each time)
and make sure it consistantly loads the new recorder instead of the
old flash one.
Change-Id: I1998996d0538717e5395315c65f46ac94cb8114d
Reviewed-on: https://gerrit.instructure.com/172904
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Landon Gilbert-Bland <lbland@instructure.com>
Product-Review: Landon Gilbert-Bland <lbland@instructure.com>
closes OUT-2370
test plan:
- create a new, published course
- import the CSV attached in JIRA (ignore the error message)
- in settings, attempt to reset course content
- ensure that the reset doesn't fail with a page error
Change-Id: Ied1763f90c9d7861eb3e0b8efbbd7ebf37f2a4d1
Reviewed-on: https://gerrit.instructure.com/172760
Tested-by: Jenkins
Reviewed-by: Neil Gupta <ngupta@instructure.com>
QA-Review: Dariusz Dzien <ddzien@instructure.com>
Product-Review: Augusto Callejas <acallejas@instructure.com>
closes CORE-942
test plan:
* add `attachment_specific_file_domain: true` to your dynamic_settings.yml
(or to consul) as illustrated in the example
* have a files domain configured
* browse Canvas
* verify that files go through a domain with their ID in it, rather than
just the basic files domain
Change-Id: I21540fb06266dcbf80b66bb884c09cd14eb03456
Reviewed-on: https://gerrit.instructure.com/166462
Tested-by: Jenkins
Product-Review: Matt Miller <mmiller@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>