fixes CNVS-35954
just use a two-stage query where we translate to an ID first, so that
we can keep the final output as a relation object
Change-Id: Ia5529e5382ceb8f1104e09f8d0a0c04fef0d9efa
Reviewed-on: https://gerrit.instructure.com/110403
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Create new Canvadoc plugin setting to enable the hijacking of crocodoc
sessions.
When enabled crocodoc sessions will really go to canvadocs.
Canvadocs still needs to add support for migrating crocodocs from the
raw crocodoc data table.
Test Plan:
Enable the setting.
View an existing crocodoc
You should get an error :D
If you dont want an error I have A PS you can checkout
that returns a fake session id, which you can verify is being used
but it will still result in an error. but on the canvadocs side instead
of the canvas side.
Change-Id: Ie634e3f822ae3f9c453e9fefa70069d43c896d09
Reviewed-on: https://gerrit.instructure.com/108436
Tested-by: Jenkins
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Josh Orr <jgorr@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
since these are not paginated. in the future, we anticipate
potentially replacing this functionality with a course asset
audit stream, which will make it possible to paginate the
migration_details and unsynced_changes endpoints and lift
this limit (and also enable the unsynced change count to be
displayed on the blueprint sidebar as in the original design)
refs MC-177
Change-Id: Iba23680de98cc67739fb9fe0372483faec9d6cf7
Reviewed-on: https://gerrit.instructure.com/110178
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
fixes CNVS-36040
test plan:
- try file uploads against an eu-central-1 and a us-east-1 s3 bucket as
well as local uploads
- try direct-to-s3 uploads (like from the files area), proxied uploads
(add a new file from the add module item dialog), and behind-the-scenes
uploads (like generating a course export or doing a sis import)
- make sure previously uploaded files continue to work
Change-Id: Ifd55cd72e017257e807f26a11a2f0870b7f68957
Reviewed-on: https://gerrit.instructure.com/110446
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
this was fixed in 6012a64ce7, but we need
to clean up old invalid channels to prevent issues with password reset
fixes CNVS-36145
test plan:
- munge the database to get an invalid email address in a communication
channel (doesn't match X@Y.Z)
- run the data fix
- it should delete the invalid channel
Change-Id: I62b72afa478538c4c0b615f555e587bfb4ab9f06
Reviewed-on: https://gerrit.instructure.com/109649
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Tested-by: Jenkins
Product-Review: Simon Williams <simon@instructure.com>
so we still have a deterministic sort for pagination when
multiple users have the same sortable name
fixes CNVS-36604
Change-Id: I75b5eaae782553a80a185660ddb4346dbe79f853
Reviewed-on: https://gerrit.instructure.com/110288
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
also return the workflow_state of the user_observer
object instead of the pseudonyms state.
refs CNVS-36589
test plan
- delete an observer
- it should not be included user observer sis export
- check include deleted objects, it should be included
and marked as deleted
Change-Id: Iae67f90b69e37cf144a8e0aa564b99f76275f4ab
Reviewed-on: https://gerrit.instructure.com/110685
Tested-by: Jenkins
Reviewed-by: Tyler Pickett <tpickett@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
fixes MC-164
test plan:
- kind of hard to test because it relies on things in the backend
blowing up..
- one way might be to open up the blueprint sidebar, kill the rails
server, and click the sync button
- note that an alert appears at the top of the screen with a proper
error message
Change-Id: I7a7debfe2252217bc73e79d4ae79b370900553c4
Reviewed-on: https://gerrit.instructure.com/109888
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Tested-by: Jenkins
Product-Review: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
QA-Review: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
fixes PLAT-2173
trim() is supported in all major browser versions
We currently add validation on the name and config URL input
fields before the user is allowed to submit the form. We also
flash an alert and stop the form from submitting if the provided
config URL endpoint doesn't resolve to a file path that contains
an XML description/markup of the basic launch link. We now remove
whitespace from all fields for all form types. Whitespace in this
context is all the whitespace characters (space, tab, no-break space, etc.)
and all the line terminator characters (LF, CR, etc.)
test plan:
• Navigate to Settings --> External Apps
• Select | + App | button
• Select the "By URL" Configuration Type
• Add leading or trailing whitespace to the following fields:
• Consumer Key
• Shared Secret
• Config URL
• Submit the form with valid data
• Edit the added tool's config
• Verify no leading or trailing whitespace
Change-Id: I329871734dbb969dafef38b78bec49e044ea3607
Reviewed-on: https://gerrit.instructure.com/110268
Tested-by: Jenkins
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Product-Review: August Thornton <august@instructure.com>
adds lock/unlock to files.
To test, will need James' fix for the files api
https://gerrit.instructure.com/#/c/109231/
closes MC-139
test plan:
setup: create master and minion courses.
- in the master course, add a file and lock it,, migrate
> expected: in the minion course it shows up as locked. the gear menu
> only lets the user download
- in the master course, add a folder and put a couple files in it,
migrate
> expected: in the minion course, the folder and files show up as
> unlocked
- in the master course, lock one of the files in the folder, migrate
> expected: in the minion course, the folder is locked. the 1 file is
> locked, the other isn't
- in the master course, unlock the files in the folder, create a
sub-folder, add a file there and lock it
> expected: in the minion course, the top and sub-folders are locked
- navigate to the master course's files
- in devtools console, set ENV.COURSE_ID='xxx'
- click on the lock to lock|unlock a file
> expected: an alert is displayed at the top of the page
- click the details button
> expectd: you are shown details about the error
- wait 10 seconds
> expectd: the alert disappears
Change-Id: I626a7ba50ddfb415d5c8337baa0ce96f87f9842e
Reviewed-on: https://gerrit.instructure.com/109193
Reviewed-by: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
QA-Review: Heath Hales <hhales@instructure.com>
Tested-by: Jenkins
Product-Review: Kendall Chadwick <kchadwick@instructure.com>
Product-Review: Matt Goodwin <mattg@instructure.com>
prevents a problem when accounts are created in the same transaction as
the shard was created
Change-Id: Id658cc307f4321d0cd892400d8c0c1ad74a4cbae
Reviewed-on: https://gerrit.instructure.com/110699
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
test plan:
* see test commits
Change-Id: If9f8cf898cdc76e81196de1f5bf8c91fea098126
Reviewed-on: https://gerrit.instructure.com/110408
Tested-by: Jenkins
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
fixes CNVS-35979
test plan
- destroy an account report
- it should stop the job that was running
Change-Id: I3f4e33eed030fa4e80a54a5207daaf014eb0159b
Reviewed-on: https://gerrit.instructure.com/106950
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
fixes CNVS-36124
Test Plan:
- Create some appointments in new scheduler (via modal)
- Delete all appointments
- Go to the syllabus page
- Notice that the event isn't showing there
- delete more events from your calenar
- notice nothing breaks
- watch screen cast for more context
Change-Id: Ib992247bf9267889f5a296e36536b23cdc4cc22d
Reviewed-on: https://gerrit.instructure.com/110470
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Chris Ward <cward@instructure.com>
refs #CNVS-36038
Change-Id: Ibf4d3cbfd3dea9a7584d945086a4b0fc81ed1abd
Reviewed-on: https://gerrit.instructure.com/110629
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
This makes focus be trapped inside of the tutorial trays
so that they are consistent with the a11y measures taken
elsewhere in Canvas.
closes FALCOR-208
Test Plan:
- Enable new user tutorials (user and account levels)
- Open a tray
- Tabbing through the tray should not let focus leave
the tray.
Change-Id: I2c3d21e0b457f8403b07065858530655192124bb
Reviewed-on: https://gerrit.instructure.com/110490
Tested-by: Jenkins
Reviewed-by: Jennifer Stern <jstern@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
closes CNVS-36109
Test plan
- In new Scheduler, set up an appointment group that
- allows students to see other appointment group students
- As a student, sign up for the appointment group
- As another student, sign up for the appointment group
- Ensure that after you have reserved the appointment
- slot, you can still see the other student that is
- signed up for the slot
Change-Id: I9ecb5782a7cab9f6a5c6c1353bcc1f4e8647cd05
Reviewed-on: https://gerrit.instructure.com/110302
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Christi Wruck
content is no longer required to be true in the default
lock configuration
refs MC-168
Change-Id: I66fdb90838e74559ecdd283171cde2da5c115ad2
Reviewed-on: https://gerrit.instructure.com/110206
Tested-by: Jenkins
Reviewed-by: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
fixes CNVS-35919
also, prefer SIS pseudonyms over non-SIS pseudonyms from any given
account
test plan:
* have a non-SIS pseudonym and a SIS pseudonym on a user
* do an LTI launch
* the LTI tool should get the info from the SIS pseudonym
Change-Id: I60a3c48a32eae94db93b0e72f1f0f6c5b6a5f5c2
Reviewed-on: https://gerrit.instructure.com/107785
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Reviewed-by: Tyler Pickett <tpickett@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Tested-by: Jenkins
Product-Review: Cody Cutrer <cody@instructure.com>
fixes MC-130
Test plan:
- create a course
- give the course a nickname
- open the master course sidebar
- expand the list of courses
> expect the nickname not to be shown, just the course name
Change-Id: Ia54494b7d55156716df5ec6885342aecf353b529
Reviewed-on: https://gerrit.instructure.com/109854
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
test plan:
* in a new browser/incognito window, try to visit /files
* it should redirect to the login page
closes #CNVS-36611
Change-Id: Ie0d8e7b145e062b8aa9824c6c49c7ae2386f2d64
Reviewed-on: https://gerrit.instructure.com/110352
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
test plan:
- set up a blueprint course and do an initial sync
- create, update, and delete objects in the blueprint
- before performing another sync, call the unsynced_changes
endpoint and see that your changes are returned
closes MC-172
Change-Id: I6ff383a34b66217199923ed49b0456ff2f5e5be4
Reviewed-on: https://gerrit.instructure.com/110086
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
fixes CNVS-35623
test plan:
* disable redis
* configure MFA; do not remember this computer
* on your profile, there should be a link to MFA backup codes
* follow it; it should show 10 codes
* log out and log back in, using one of those codes
* go back to your backup code list; the one you used should be
crossed out
* log out and log back in, attempting to use the same code;
it should not allow you to
* log in with another code
* make note of one of the unused backup codes
* regenerate your backup codes; it should give you 10 new codes,
all unused
* log out, and attempt to log in with one of the old unused codes;
it should not allow you to
* log in with one of the new backup codes; it should work
* make note of backup codes
* reconfigure MFA
* look at your backup codes again; they should be different
* make note of them again
* disable MFA, and then configure it again
* your backup codes should be different again
Change-Id: I20b1da102ef4cb757c80e1f46e276f88fdfb21b4
Reviewed-on: https://gerrit.instructure.com/21614
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Tested-by: Jenkins
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: McCall Smith <mcsmith@instructure.com>
refs CNVS-36115
Test Plan:
1. Review individual view of course with assignment groups
Note: this is just a refactoring change, to prepare for
another upcoming feature change
Change-Id: I2387f4389a6d09451fd00aa9ad73d97605e485c8
Reviewed-on: https://gerrit.instructure.com/109458
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
QA-Review: Shahbaz Javeed <sjaveed@instructure.com>
Product-Review: Christi Wruck
closes CNVS-36430
test plan:
* Create two courses with two students and two assignments each
* Go to Gradezilla for Course 1
* From the Student Name column, change the "Sort by" value so the
rows are sorted in a new way
* Reload the page and observe the rows continue to remain sorted
the way they were before the reload
* Repeat with the "Display as" and "Secondary info" menus in
the Student Name column
* Repeat with sorting on any of the Assignment, Assignment Group
or Total Grade columns
* Go to Gradezilla for Course 2
* Verify the settings for Course 1 do not apply here
* Change any of the above settings for Course 2 and verify they
stick after a reload
* Verify Course 1 settings haven't been changed as a result
* Create a third course, Course 3, with at least two sections
and at least one student in each section.
* Go to Gradezilla and ensure the display is for "All Sections"
* Change the sort order of the Student column to "None" and
verify it remains "None" after a reload
Change-Id: I4d2cf016453d2fb0f774629e5bc848fb452d4032
Reviewed-on: https://gerrit.instructure.com/109412
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Christi Wruck
- fixes known bugs
- includes additional translations
closes CNVS-36607
test plan:
- enable RCS
- add image to text area
- select the image and then add a new image to replace
- select the image and add a link with the link button
and or Links panel
- verify the image links to the correct link
- while editing a page, select an existing image
- fromt he Images tab on the sidebar, upload a new image
- verify that it replaces the selected image with the new image instead
of hyperlinking the old image to the new image
Change-Id: I2f9eff61a1d40ca989efb07b56bee9d60dd70e41
Reviewed-on: https://gerrit.instructure.com/110260
Tested-by: Jenkins
Reviewed-by: brian kirkby <bkirkby@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Brent Burgoyne <bburgoyne@instructure.com>
If a score is nil, but the workflow state is graded, we should still
consider it as needing to be graded. This should will clear up an
inconsistency between what one sees in the gradebook and things like
Assignment#needs_grading_count and the canvas dashboard.
fixes CNVS-36581
test plan:
- Have an course with an online entry assignment and a student
- Submit homework as the student
- As a teacher, in the gradebook, grade the student for the assigment
- As a teacher, in the gradebook, set an empty grade for the student
for the assignment
- Confirm on the canvas dashboard that your assignment needs grading
Change-Id: I41ce623f984b91c1e4e286b0f5934421f23b2e86
Reviewed-on: https://gerrit.instructure.com/109963
Tested-by: Jenkins
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
Reviewed-by: Matt Taylor <mtaylor@instructure.com>
QA-Review: Trevor Needham <tneedham@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
test plan:
- enable custom help links by running this console command:
Setting.set("show_feedback_link", "true")
- in the "Help menu options" section of account settings:
- ensure the disabled up and down arrow buttons at the
top and the bottom of the list, respectively, are not
focusable
- ensure when moving a link down using the down button,
focus remains on the down arrow if the link is not moved
to the bottom spot, and moves to the up arrow when the
link is moved to the bottom
- ensure when moving a link up using the up button, focus
remains on the up arrow if the link is not moved to the
top, and then moves to the preceding component (Icon) if
the item is moved to the top
- ensure when deleting a help link using the trashcan icon,
focus moves to the previous trashcan, or the Icon if the
top link is deleted
fixes CNVS-35393
Change-Id: Ibdbb322abb05d34dbaabfb67eb37b9aa28af3339
Reviewed-on: https://gerrit.instructure.com/109208
Reviewed-by: Felix Milea-Ciobanu <fmileaciobanu@instructure.com>
Tested-by: Jenkins
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
probably isn't necessary anymore because of
effective_due_dates query rewrite
Change-Id: I5f6c54ed1913b34c674dd530f3bc38c3d1b726b2
Reviewed-on: https://gerrit.instructure.com/110330
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-36456
Test Plan
1. Enable Grade Export plugin.
2. As a teacher in a course with grades to export,
navigate to Gradezilla.
3. Click the "Actions" menu.
a. Verify "Publish grades to SIS" is a menu item.
b. Click "Publish grades to SIS" menu item.
c. Verify that you are taken to the course
"Grade Publishing" tab.
4. Navigate back to Gradezilla
5. Click the settings cog button.
a. Verify that "Publish grades to SIS" is no
longer an option.
6. Verify that the "Publish grades to SIS" Actions menu
item is keyboard and VO accessible.
Change-Id: I8433a59406756c892dcbce7b77d9eda61daafa47
Reviewed-on: https://gerrit.instructure.com/109400
Tested-by: Jenkins
Reviewed-by: Shahbaz Javeed <sjaveed@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Pert Eilers <peilers@instructure.com>
test plan:
- render documentation
- test the "Get migration details" endpoint:
- starting both with a blueprint course and a minion course
- ensure a teacher without rights on the blueprint cannot
call the endpoint on the blueprint (but can still call
on a minion)
- ensure creates, deletes, updates, and exceptions (for
changed minion content) are returned as expected
(exceptions show what type of content changed in the minion
course to prevent the update from being synced:
'content', 'points', 'due_dates', or 'availability_dates')
- ensure when calling on a minion course, only exceptions
for that minion course are returned
- ensure the html_url retrieved links to the copy of the asset
in the course the API endpoint is called on (master or minion)
closes MC-119
Change-Id: I73cf52304b080bbe564779294b53b4991700f0f8
Reviewed-on: https://gerrit.instructure.com/104789
Reviewed-by: James Williams <jamesw@instructure.com>
Tested-by: Jenkins
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
fixes PLAT-2482
Test Plan:
- Do a content item tool launch in Firefox
(i.e. launch a tool from the rce).
- Verify you can focus elements in the tool's iframe
via keyboard navigation in Firefox
- Verify focus loops to top of modal instead of
falling through to page when forward tabbing through
content.
- Verify focus loops to bottom of modal when reverse
tabbing through content.
- Verify all instances of the jquery dialog continue
to work as expected in supported browsers.
Change-Id: Ie832b8e9150f4a67af2386f6b84404b70c06b40c
Reviewed-on: https://gerrit.instructure.com/109748
Tested-by: Jenkins
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>