Fixes PFS-10993
Test Plan:
Documentation on how launchpoint works is in JIRA:
1. Configure a new LTI at the account / course level. See
documentation above for how to create assignment_view
launch.
2. Verify that the launch happens in three different contexts:
a) Assignment view (not in external tool assignments,
explicitly - not in quizzes.next)
b) Discussion topic view (course context only)
c) Quiz view (not quizzes.next)
3. For each context above (#2) verify that launch_height is honored
when it is specified in the LTI install.
4. For each context (#2) verify that launch sends custom_assignment_id
and custom_lti_placement to the LTI, if it was set in the launch
install.
5. For each context (#2) verify that when no relevant LTIs are installed
no discernible change is caused by this patchset.
6. For each context (#2) verify that when multiple apps are installed
they all show in an arbitrary order.
7. A11y: Verify that when you enter or leave the LTI content an
appropriate message is sent to the screenreader.
a) enter message = "The following content is partner provided"
b) leave message = "The preceding content was partner provided"
8. Review api docs at:
doc/api/file.assignment_external_tools.html
experiment with options and verify apps work as expected.
9. Additionally, we may have impacted the following launch locations,
that hit the launch_definitions endpoint. It would be worthwhile
to run a smoke test to verify these are still working:
a) course_assignment_menu placements
- add an LTI (just use the dummy xml for minimal
LTI course_navigation and replace "course_navigation" with
"course_assignment_menu"). These LTIs appear in a menu
available only to teachers on the assignments menu page.
Click the "..." menu and they will be listed under
"Assignment Groups Weights". Verify teachers still see
these LTI options. Verify that students don't even hit the
"launch_definitions" endpoint on this page.
b) module_item link_selection.
- On "Modules" page, create a module. Then add a module item.
Type is "External Tool". Verify that the same list of LTIs
is returned whether using this patchset or not.
Change-Id: I52c0cb7ed871683ba821b1b242b27f8a31a28820
Reviewed-on: https://gerrit.instructure.com/162426
Tested-by: Jenkins
Reviewed-by: Marc Alan Phillips <mphillips@instructure.com>
QA-Review: Marisa Jense <mjense@instructure.com>
Product-Review: Christi Wruck
The code that initialized the lti tool when its tab was being
activated was using the wrong DOM element to get it's data when
the user kb-navigated over, rather than clicking. By using the correct
element, we no longer need the click handler and can initialize
the tool as the tab is being activated
fixes ADMIN-1427
test plan:
- from a course, setings, apps, use +App to install a
homework_submission lti tool (dropbox works and can be
found at https://www.eduappcenter.com/apps/112
the key and secret can be anything.)
- as a teacher, create an assignment with submission types
text entry and file upload
- as a student, go to the assignment and click on "Submit Assignment"
- click on the lti tool's tab (e.g. "dropbox")
> expect the lti tool to initialize and load
- refresh the page and click "Submit Assignment" again
- this time, use the right arrow key to move
to your lti tool's tab
> expect the lti tool to initialize and load
Change-Id: Idb68438ce9428a748f6671c5b8e23ae4ad31f5a6
Reviewed-on: https://gerrit.instructure.com/163855
Tested-by: Jenkins
Reviewed-by: Jon Willesen <jonw+gerrit@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
QA-Review: Steven Burnett <sburnett@instructure.com>
Fixes: PFS-10922
Test Plan:
Documentation on how launchpoint works is in JIRA:
1. Configure a new LTI at the account / course level. See
documentation above for how to create assignment_edit
launch.
2. Verify that the launch happens in three different contexts:
a) Assignment create and edit.
b) Discussion topic create and edit.
c) Quiz create and edit.
3. For each context above (#2) verify that launch_height is honored
when it is specified in the LTI install.
4. For each context (#2) verify that launch sends custom_assignment_id
and custom_lti_placement to the LTI.
5. For each context (#2) verify that when no relevant LTIs are installed
no discernible change is caused by this patchset.
6. For each context (#2) verify that when multiple apps are installed
they all show in an arbitrary order.
7. A11y: Verify that when you enter or leave the LTI content an
appropriate message is sent to the screenreader.
a) enter message = "The following content is partner provided"
b) leave message = "The preceding content was partner provided"
8. Review api docs at:
doc/api/file.assignment_external_tools.html
experiment with options and verify apps work as expected.
Change-Id: I29c7fe43c9b08daa9ff9e53f86dd2a5f762beb37
Reviewed-on: https://gerrit.instructure.com/161571
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Marisa Jense <mjense@instructure.com>
Product-Review: Christi Wruck
Tested-by: Jenkins
closes ADMIN-1118
test plan:
- in a rails console, execute Setting.set('google_analytics_key', 'foo')
(if that doesn't work, replace 'foo' with 'UA-124895132-1')
- restart your rails server
- load a user's profile page
- inspect the network tab
> expect the https://www.google-analytics.com/__utm.gif URLs to send
a page title "utmdt" as "User Profile", and not the student's name
- if you really want to be complete, repeat for each of the changed
files and expect not to see any PII in the page title
(I couldn't figure out the canvas URL for all of them)
app/views/communication_channels/confirm.html.erb: /register/:nonce
though I don't know how to get a valid nonce
app/views/context/new_roster_user.html.erb: /courses/:cid/users/:uid
app/views/context/roster_user.html.erb: almost positive this has
been replaces by new_roster_user and is no longer used.
app/views/profile/profile.html.erb: /profile
app/views/profile/show.html.erb: /profile/settings
app/views/gradebooks/grade_summary.html.erb: /courses/26/grades/43
app/views/outcomes/user_outcome_results.html.erb:
pretty sure it's /outcomes/users/:user_id, but when
I try, I get a routing error. Maybe you have to turn
outcomes on
app/views/profile/observees.html.erb:
pretty sure it's /users/:user_id/observees, but
I get a routing error.
app/views/quizzes/quizzes/history.html.erb:
/courses/26/quizzes/51/history (as the student)
app/views/submissions/show_preview.html.erb:
/courses/:course_id/assignments/:aid/submissions/:user_id
app/views/users/grades.html.erb: /users/:user_id/grades
app/views/users/index.html.erb: i don't believe this is used any
more. the title is "User Search results for %{user_name}",
and from what I can tell, user search is an ajax query now.
app/views/users/show.html.erb: /acounts/:acct_id/users/:user_id
or /users/:user_id
- you probably want to run Setting.set('google_analytics_key', nil)
from the rails console and restart your server
Change-Id: I3619c5bf75889226f7bce52c641fb7d727485b36
Reviewed-on: https://gerrit.instructure.com/162694
Tested-by: Jenkins
Reviewed-by: Mysti Sadler <mysti@instructure.com>
QA-Review: Mysti Sadler <mysti@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
fixes COMMS-1425
Test Plan
* Have a course with a multiple Modules that have Assignments, Discussions, and Pages in them
* Click on Modules for the course
* Click the Ellipsis Menu for a module and select 'Duplicate'
* Note the module is duplicated
* In a different module, click the Ellipsis Menu for an Assignment and select 'Duplicate'
* Note there is only 1 duplicate created
Change-Id: Iff38b7d15d73f47ddcd41258eeaee29bdf7d4dd6
Reviewed-on: https://gerrit.instructure.com/163066
Reviewed-by: Steven Burnett <sburnett@instructure.com>
QA-Review: Landon Gilbert-Bland <lbland@instructure.com>
Tested-by: Jenkins
Product-Review: Steven Burnett <sburnett@instructure.com>
This PR adds monitoring of window messages to the wiki_page_show.js so
that LTI tools embedded in wiki pages can post messages to Canvas. In
particular this allows an embedded tool to resize it’s iframe which
solves problems when the content of the iframe changes its height. The
message handling is refactored into its own file. In addition, the
findDomForWindow method will l find the iframe that contains the window
that produced the window message so that the correct iframe is resized.
Adds tests for messages and restores tool resizer
Change-Id: I2b83a72cd3074d8eb47a5131bcf9e3ef72552ea4
Reviewed-on: https://gerrit.instructure.com/154182
QA-Review: Weston Dransfield <wdransfield@instructure.com>
Reviewed-by: Marc Alan Phillips <mphillips@instructure.com>
Tested-by: Jenkins
Product-Review: Weston Dransfield <wdransfield@instructure.com>
Don't link to plagiarism reports in SpeedGrader if the assignment is
currently anonymizing students. Show a non-clickable score with a
tooltip saying that reports cannot be viewed for anonymous assignments.
fixes GRADE-1434
Test plan:
(Unless you really want to set up Turnitin/Vericite, you will have an
easier time if you manually add originality data to the submissions
you're testing. Details below.)
- Create two assignments (T and V) with anonymous grading enabled
- Set assignment T to require text entry submissions
- Set assignment V to require file uploads
- Masquerade as a student and submit something for each assignment
- In a Rails console, add originality reports for the relevant submissions
(details below).
- As the teacher, open those submissions in SpeedGrader
- The originality score should appear, but not link to anything
- Unmute both assignments (or turn off anonymous grading)
- The originality score should link to a detailed report as before
Creating originality data:
For assignment T ("Turnitin"):
> submission = [the student-submitted submission]
> submission.originality_reports.create!(originality_score: 20)
For assignment V ("Vericite"):
> submission = [the student-submitted submission]
> submission.turnitin_data[:provider] = 'vericite'
> submission.save!
> submission.originality_reports.create!(
originality_score: 80,
attachment_id: [ID of uploaded attachment]
)
(The originality score can be between 0 and 100--a "%" will be appended
when displayed--with a higher score indicating more dire plagiarism.)
Change-Id: I1f2a4dae16526b206da98d5c9c89db81011f3dd4
Reviewed-on: https://gerrit.instructure.com/162581
Reviewed-by: Spencer Olson <solson@instructure.com>
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: Adrian Packel <apackel@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
fixes OUT-2422
test plan:
- on an assignment show page, add a rubric
- edit the rubric on the assignment show page
- without reloading, re-open the rubric
- there should be no trailing '+' icon to add
a rating on right side of the rightmost rating
Change-Id: I431cbda84c2f9023f468edfa8b6cd831d9ba3b4b
Reviewed-on: https://gerrit.instructure.com/162013
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
QA-Review: Augusto Callejas <acallejas@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
Tested-by: Jenkins
Sometimes ENV.LOCALE and ENV.MOMENT_LOCALE are different
(zh-Hans v zh-cn or mi v mi-nz). We were passing the former to planner,
but moment needs the full locale, including language and region
identifiers, and formatMessage copes with the full locale just fine,
so we really need to pass in the latter or moment eventually
blows up.
So mi-nz month names would successfully parse, had to both bump our
version of moment and tweak the canvas customized mi-nz locale data.
to test, you'll have to run yarn to update moment, then build with
RAILS_LOAD_ALL_LOCALES=1 yarn build
Note on the changes to timezoneSpec.js:
- some of the specs were parsing dates like "Mon, Aug 3", which are
being interpreted in the current year, when Aut 3 is not a Monday.
Resolved this by using MockDate to pretend today is 2/1/2015
- moment does not always interpret the Chinese characters for evening as
implying PM. I'm assuming canvas will never need that particular
construct and commented out the failing string.
- there's one date-time that's getting the date totally wrong.
- Fixed grammatically incorrect instances of
'8月 3, 2015' to ''8月 3日, 2015'
- fix cases where the year is coming after the month and day, which
would never really happen
fixes ADMIN-1331
test plan:
- have a student in course so planner is enabled.
- go to /profile/settings and Edit
- change the Language to Reo Māori (Aotearoa) and "Update Settings"
- go to the planner dashboard
- click on + to create a new todo
> expect you can create a todo.
If you want, you can repeat with any of the languages listed in the
ticket just to prove ^that wasn't a fluke.
Change-Id: I9ba069ef61529088ab92271d7857998df6bbc409
Reviewed-on: https://gerrit.instructure.com/161206
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Mysti Sadler <mysti@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Test plan:
- Jenkins passes
Change-Id: I87da1da4021d685fd2aebeb913cea2563b7efcf8
Reviewed-on: https://gerrit.instructure.com/162229
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Adrian Packel <apackel@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
For a moderated assignment, allow the moderator to view rubrics
submitted by provisional graders and enter a custom assessment.
fixes GRADE-1377
Test plan:
- Set up a rubric
- Set up two moderated assignments, one with grader names visible to
the final grader and the other with them not visible
- Attach the rubric to each assignment
- As one or more provisional graders, assess some students using the
rubric in each assignment
- This should function as normal
- As the moderator, open each assignment in SpeedGrader
- The right side should have a dropdown letting you select among
provisional graders' submitted assessments
- If grader names are visible, the dropdown options will show that
provisional grader's name
- If not, they will appear as "Grader # Rubric" (note the "Rubric"
suffix for anonymous graders), numbered as elsewhere on the page
- A "Custom" option representing the moderator's assessment should
always be present, and be the first option
- The button to edit the rubric should only appear when this
option is selected
- Note that assessment scores are not (as of the time of writing)
automatically propagated to provisional grades, so the scores
shown in the grade selector will not necessarily reflect the
contents of the rubric
Change-Id: I3cc05bc64b687096638c64f02633b37484a63455
Reviewed-on: https://gerrit.instructure.com/161822
Tested-by: Jenkins
Reviewed-by: Gary Mei <gmei@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
When importing a gradebook, the csv import can include custom columns
closes GRADE-1315
Test Plan
- Create a course with (not read_only) custom columns in the gradebook
- Export the gradebook to csv
- Make changes to the data in the writable custom columns in the csv
- Import the csv into gradebook
- Run the delayed jobs server
- The gradebook will make changes in writable custom columns with
or without additional changes in assignment columns
- If no changes are made, or changes in non writable columns are made,
the importer will skip these changes
Change-Id: I0a529ea8727be864f6105b9e6b256f75e1c8c471
Reviewed-on: https://gerrit.instructure.com/156068
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
QA-Review: Adrian Packel <apackel@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
When talking to DocViewer, include relevant data for the current user as
well as the filter of users whose comments should be shown. This commit
enables functionality for anonymous annotations.
closes GRADE-1427
closes GRADE-1456
Test Plan 1: Moderated Assignments
1. Create a moderated assignment and allow for at least two provisional
graders in addition to the final grader. Then, leave at least one
annotation and one comment per provisional grader, final grader, and
the student.
2. When "Graders cannot view student names" is checked, verify that
no instructor or admin can see the students identity on annotaions.
Instead, the student's name should show up simply as 'Student'.
3. When "Graders cannot view each other's names" is checked, verify that
non-admin, non-final-grader provisional graders cannot see each
other's names on annotations. Instead, they should see a generic
grader name such as "Grader 1".
4. When "Final grader can view other grader names" is unchecked, verify
the final grader cannot view the other graders' names on annotations.
Instead, they should see a generic grader name such as "Grader 1".
5. Smoke test the settings listed in steps 2, 3, and 4 in various
combinations of being on or off.
6. While the assignment is still in moderation, verify the student can
only see their own annotations.
7. When grades are published for the assignment, verify the assignment
no longer shows any anonymous annotations.
Test Plan 2: Anonymous, Not Moderated Assignments
1. Create an anonymous assignment. Submit to the assignment as a student
and leave some annotations as the student and as an instructor.
2. Verify the student can only see their own annotations while the
assignment is still muted.
3. An instructor *should* be able to see any annotations made by an
instructor, but DocViewer has not implemented this functionality
on their side yet. As a result, just verify that an instructor
can see the student's annotations but they are anonymized while
the assignment is muted.
4. Unmute the assignment and verify the annotations are no longer
anonymized, and the student can now see annotations from instructors.
Test Plan 3: Normal, Not Anonymous Assignments
1. Do a general smoke test of not anonymous, not moderated assignments
to verify annotations still show up as expected.
Change-Id: I181a6ace3c00ca93ab8e6c7608a034b521ed78b7
Reviewed-on: https://gerrit.instructure.com/161486
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
scores are shown, not grades.
closes: GRADE-1457
Test Plan:
Note: the new endpoint is of the form:
/submissions/:submssion_id/comments.pdf
- given a submission with many submission comments
- given SpeedGrader page
- when the link for Export Submission Comments is clicked
- then a pdf of submission comments is displayed
- given a user that cannot Read Grades
- when accessing a pdf url
- then the response is unauthorized
- given a user that cannot Read Comments
- when accessing a pdf url
- then the response is unauthorized
- given an assignment that is anonymous
- when on the SpeedGrader page
- then the link for Export Submission Comments is not displayed
- then hitting the pdf url returns unauthorized
- also test with group assignments
Change-Id: I529fe170a3de6f8a1c8f28ae20a3346c5676a97e
Reviewed-on: https://gerrit.instructure.com/158888
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
Tested-by: Jenkins
closes CORE-1672
Test Plan:
- Make sure file previews are enabled and/or you
have something like Canvadocs running.
- Add a link to a page to a PDF file
- Use the link option to edit the link and make it
auto open the preview
- Save and load the page as a student
- The preview should open, but it should not put focus
on the minimize link.
- Close the preview
- Click the preview link
- Focus should be on the minimize link.
Change-Id: Ibfb5047df62a6bf8cf50b4fdd035b685d7daae95
Reviewed-on: https://gerrit.instructure.com/160552
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
When “show inactive enrollments” is turned on, the csv export
includes assignment scores for inactive students
fixes GRADE-1415
Test Plan
1. Create a course with inactive enrollments
2. Make sure “show inactive enrollments” is toggled On,
you can find this setting under students in the new gradebook
3. Export the gradebook to csv
4. In the csv, under the assignments columns, the inactive students’
actual assignment scores will appear. The scores previously
showed up as ‘N/A
Change-Id: Iaa2897b96e40ef9cc466505440608955359a788c
Reviewed-on: https://gerrit.instructure.com/160938
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Jenkins
QA-Review: Adrian Packel <apackel@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
fixes COMMS-1378
Test Plan:
- create a discussion, graded discussion, assignment, wiki page
and put them in a module
- duplicate the module
- notice it works
- create another module but this time put a lti assignment in the module
- notice you can't duplicate it
Change-Id: Ie7cb6d34ef971e2bc74ebc662868e5ddf61cb19f
Reviewed-on: https://gerrit.instructure.com/161375
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>
Closes PLAT-3647
Test Plan:
- Enable the 'Anonymous Grading' FF in your root
account
- Create an assignment with a plagiarism detection tool.
Be sure to select the 'Graders cannot view student names'
option when creating the assignment.
- As a student submit to the assignment.
- Create a pending originality report for the submission.
- In speedgrader click the "resubmit to <tool name>" button.
- Verify the page refreshes and a `plagiarism_resubmit` live
event was emitted.
Change-Id: Ib633b0d2b9807d2c963ecdba00048d4cfb0392a7
Reviewed-on: https://gerrit.instructure.com/160767
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
Reviewed-by: Han Ngo <hngo@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
When new gradebook is enabled and the user restricts the display to a
specific section, have the selected section carry over to SpeedGrader,
and similarly in the other direction. (If a section is changed in
SpeedGrader, the change will propagate to both old and new gradebooks;
if different selections are selected in OG and NG, SpeedGrader itself
will choose depending on whether new gradebook is enabled.)
fixes GRADE-989
Test plan:
- Have a course with multiple sections and new gradebook enabled
- At least one section should be empty (i.e., contain no students)
- Test the following:
- When you change the selected section in new gradebook and then
open SpeedGrader, the new section should be shown
- Similarly, section changes in SG should be persisted in NG
- Selecting the empty section in SG (or selecting it in NG and then
opening SG) should display an alert indicating no students could be
found, and reload showing all students
- Revert to old Gradebook and check that syncing sections still works
between SG and OG
(Note that selecting a section in new gradebook will *not* directly
update the selected section in old gradebook, and vice versa. Changing
sections in SpeedGrader, however, will update both gradebooks.)
Change-Id: I42b4558f40f3208a93bd00fd6a2224d0f954c96e
Reviewed-on: https://gerrit.instructure.com/159356
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Tested-by: Jenkins
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
closes: CORE-1681
Test plan:
* this code should do exactly the same as what it did before,
just faster
* verify by loading canvas in a production, translated environment
and doing a few spot checks to make sure that strings, dates, times
translated in javscript still show up exactly as they did before
Change-Id: Ibf72f290b64e7b4a664e92753ab3f95e03bd9576
Reviewed-on: https://gerrit.instructure.com/159002
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Tested-by: Jenkins
Product-Review: Ryan Shaw <ryan@instructure.com>
fixes GRADE-1400
test plan:
A. Setup
1. Select or create a course with a teacher
2. Select or create an assignment
* with student anonymity enabled
* with text entry submissions
* assigned to everyone
3. Using the table below, create three students
a. Set their names as below (shown as sortable name)
b. Act as Charlie Xi
c. Submit to the assignment
d. Act as Adam Jones
e. Submit to the assignment
f. Update each submission's anonymous_id
* use the Rails console
* match the table below
4. Log in as the teacher
5. Give Adam Jones a grade
-------------------------------
| student name | anonymous id |
-------------------------------
| Xi, Charlie | bcdef |
| Jones, Adam | abcde |
| Ford, Betty | cdefg |
-------------------------------
B. Verify with Anonymity
1. Log in as the teacher
2. Visit SpeedGrader for the assignment
3. For each sort option
a. Select the option
b. Verify students appear in the order below
------------------------------------------------------
| alphabetical | submission date | submission status |
------------------------------------------------------
| Student 1 | Student 2 | Student 2 |
| Student 2 | Student 1 | Student 3 |
| Student 3 | Student 3 | Student 1 |
------------------------------------------------------
B. Verify without Anonymity
1. Disable student anonymity for the assignment
2. Log in as the teacher
3. Visit SpeedGrader for the assignment
4. For each sort option
a. Select the option
b. Verify students appear in the order below
------------------------------------------------------
| alphabetical | submission date | submission status |
------------------------------------------------------
| Betty Ford | Charlie Xi | Charlie Xi |
| Adam Jones | Adam Jones | Betty Ford |
| Charlie Xi | Betty Ford | Adam Jones |
------------------------------------------------------
Change-Id: I0dbbd21486f3be5780c1ad0baaa1a9d49f4cbbbb
Reviewed-on: https://gerrit.instructure.com/159446
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
The backend wasn't returning ids for the provisional grades when
provisional graders were looking at SpeedGrader, so all the names
were indexed by the same key: nil.
When the final grader was looking at SpeedGrader, the provisional
grader display names weren't refreshed moving from one submission
to the next, so the wrong display names would be requested, resulting
in empty names.
*Special Case
This also fixes another scenario where if you had three graders
comment on a student, and then only two graders comment on the next
student, it was possible that the provisional grader names would
look different. For example, on the first student you might see
"Grader 2, Grader 1, Grader 3" as the order of the comments, and
if Grader 1 and Grader 3 commented on the second student, the text
would instead show "Grader 1, Grader 2". This change happens to fix
that as well.
fixes GRADE-1360
Test Plan
- Don't apply the commit just yet.
- Have 3 teachers and 2 students.
- Create an anonymous, moderated assignment with these settings:
- Moderated Grading on
- Number of graders 2
- Graders can view each other's comments on
- Select some final grader
- Final grader can view other graders names off
- Anonymous Grading on
- Graders cannot view each others names on
- Anything else not specified can be off
- As Grader 1, go to SpeedGrader for the assignment and leave a
comment, but not a grade, for both students.
- As Grader 2, do the same.
- As the final grader, go to SpeedGrader and check comments on both
students' submissions. Notice that at least one comment won't have
an author name.
- As Grader 2, go to SpeedGrader and notice that at least one
comment author has "Custom" as the name rather than "Grader 1" or
some such.
- Apply the commit.
- Navigate to SpeedGrader as the three different teachers and verify
that comment author names are as expected.
Extra Test Plan (for the Special Case)
- Set up an assignment such that three graders commented on one
student, and two of those three commented on a second student.
- If the order of the comments on the first student is NOT 1, 2, 3
then you are good to keep going. If it IS 1, 2, 3 then you either
have to re-do the first step until it is NOT 1, 2, 3 or hop into
a rails console to update anonymous_id of the ModerationGraders to
change the order.
- Once you've reached this step, open SpeedGrader and verify that
comments belong to the Grader that it says they do.
Change-Id: I732dfd1ade5a88f799782202a6225c99a2c9a108
Reviewed-on: https://gerrit.instructure.com/157901
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: Sidharth Oberoi <soberoi@instructure.com>
When we switch students in SpeedGrader and the new student has no
submission, clear the contents of the submission-holding iframe rather
than merely hiding it. This prevents an issue with per-question quiz
grading (which is intended to retain selection on the selected question
when moving between users) that could occur when selecting a student who
had not yet submitted anything, since the contents of the now-hidden iframe
were receiving events that assumed they were visible.
fixes GRADE-1322
Test plan:
* Have a course with a couple students
* Create a quiz with a few questions (enough that the quiz would not
all fit on the screen in SpeedGrader)
* Fill out the quiz for several students
* As a teacher, open the quiz in SpeedGrader
* From the settings menu, enable the "Grade by question" option (this
should reload the page automatically)
* When you navigate between students in the following ways, check that
the currently-focused question remains focused for the new student.
(That is, if you had (say) question #3 selected before switching
students, the new student's answer to question #3 should be shown.)
* From a student who has taken the quiz to another student who has
taken it
* From a student who has taken the quiz, to one who has not, then
back to one who has taken it
Change-Id: I23d14b05441a9ada02b9adb68a4ca95804c7c93a
Reviewed-on: https://gerrit.instructure.com/157995
Reviewed-by: Gary Mei <gmei@instructure.com>
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
After duplicating the module, editing any module on the page
takes you to a modal. This is expected. However what is not
expected is then clicking on "add prerequisite" or "add
requirement" will result in duplicate stuffs showing. This
fixes that.
Fixes COMMS-1337
Test Plan:
* Duplicate a module.
* Edit *any* module on the page (particularly the one you just
made, but the bug showed up on any module)
* Click on "Add prerequisite" and "Add requirement". Duplicates
should not appear.
Change-Id: Ibf88d20849d80e1b925a3967b0b8ce086069f4e7
Reviewed-on: https://gerrit.instructure.com/158186
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Tested-by: Jenkins
QA-Review: Landon Gilbert-Bland <lbland@instructure.com>
Product-Review: Venk Natarajan <vnatarajan@instructure.com>
If a moderator attempts to assign an invalid grade in SpeedGrader and
has not selected a provisional grade prior to doing so, properly clear
the grade field instead of continuing to show the bad grade. (This was
a display bug only; the invalid values were not saved server-side.)
fixes GRADE-1362
Test plan:
* Create a moderated assignment
* As a provisional grader, open the assignment in SpeedGrader
* Make sure entering valid scores still works
* Make sure entering invalid scores still reverts the grade input
to its previous value (or clears if it no previous value)
* As the moderator, open the assignment in SG
* *Before* selecting a provisional grade or entering a valid value,
try entering an invalid value and make sure the grade input is
properly cleared
* Make sure selecting a provisional grade or entering a valid custom
value works properly
* Once you've done either of the above, make sure entering an invalid
value now causes the grade to revert to the previous valid value
Change-Id: I9ca468ab58162d39597f013610562889b731c52d
Reviewed-on: https://gerrit.instructure.com/157868
Reviewed-by: Gary Mei <gmei@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Gary Mei <gmei@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
Tested-by: Jenkins
closes #CORE-1482
Change-Id: I2bbdcc78f1d32e5e65da4d221d1e5d9939c8f1fb
Reviewed-on: https://gerrit.instructure.com/158139
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
fixes: GRADE-1225
test plan:
- speed grader comment box is no longer "small" (aka one line in height)
Change-Id: If8c544c3f8aa6a29c93f2702a868cf3b7d846b7e
Reviewed-on: https://gerrit.instructure.com/158132
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: Keith T. Garner <kgarner@instructure.com>
Hide view/submission dates on submission details page and SpeedGrader if
the assignment should be anonymizing student information.
closes GRADE-1070
Test plan:
* Create an anonymous assignment allowing file-upload submissions
* Logged in as a student (S1):
* Submit something
* As another student (S2), submit multiple files for the same assignment
(i.e., submit something, then re-submit and upload something else)
* Logged in as a teacher:
* Open the assignment in SpeedGrader
* For S1, the "submitted" and "student viewed at" lines on the right
side should not appear
* For S2, the dropdown letting you choose between submissions, which
previously denoted them using the dates submitted, should now name
them "Submission 1", "Submission 2" and so forth
* In both cases, it's okay if the assignment is marked as late or
missing for a given student (we're not trying to hide that info)
* Logged in as an admin:
* Open the assignment in SpeedGrader
* None of the above should apply; i.e., the admin should be able to
view submission dates as though the assignment weren't anonymous
* Log back in as the teacher:
* Unmute the assignment
* For both students, the submitted at/viewed at information should now
be shown again
Change-Id: I35bb3e6d189fd6f5aca333b6eb4419c209d95090
Reviewed-on: https://gerrit.instructure.com/157540
Tested-by: Jenkins
Reviewed-by: Gary Mei <gmei@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
fixes QO-376
test plan:
- Add a numeric question to a quiz
- change the question answer type to "Answer with Precision"
- Change Precision to a value between 1 and 15
- Type a negative answer into the answer field (or a zero)
- The negative value should be formatted with the correct
precision on blur (it should not change to NaN)
- Students should be able to answer the question correctly
Change-Id: Iabf33557ca4544febe121c74df12837e5a73ed06
Reviewed-on: https://gerrit.instructure.com/156252
Tested-by: Jenkins
Reviewed-by: Mark Grant <mgrant@instructure.com>
QA-Review: Nathan Gbedemah <ngbedemah@instructure.com>
Product-Review: Kevin Dougherty <jdougherty@instructure.com>
closes CORE-1362
Test Plan:
- In IE 11 with RCE/RCS enabled go to a page
- Enter in some content to the page
- Select some content and click the link toolbar button
- The link should appear on those words.
- Click that link and have the cursor somewhere within that
link.
- Click the link toolbar button again
- Replace the existing url with a new one
- The link should update and look the same as it did before.
- Repeat test in another browser for completeness.
Change-Id: I62079c00526f65fa7ded58a2e6abd5986385759f
Reviewed-on: https://gerrit.instructure.com/157347
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
i could not discover the purpose of the removeUnwantedChars when
parsing date strings, but it is currently causing a bug, and it is
not safe, especially dealing with locale specific date formats.
fixes CORE-1614
test plan:
- change computer date to a day after the 24th of the month
- test with each locale mentioned in CORE-1614
- create a new calendar event
- the date printed below the date picker should match computer date
Change-Id: I3bdefe228776b1c9a0e3ddaa71f2677dd9b5f2f0
Reviewed-on: https://gerrit.instructure.com/157419
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Brent Burgoyne <bburgoyne@instructure.com>
closes OUT-2191
Test plan:
- create a course with no sections
- enable mastery paths in the course
- create a quiz assigned to "Mastery Paths" only
- verify that quiz is saved assigned
to Mastery Paths only, not Everyone Else as well
- create a discussion topic assigned to
"Mastery Paths" only
- verify that discussion is saved assigned
to Mastery Paths only, not Everyone Else as well
Change-Id: I3af0c58f54a6f9a7ee612ab87276984574ef08d0
Reviewed-on: https://gerrit.instructure.com/155222
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Reviewed-by: Neil Gupta <ngupta@instructure.com>
Tested-by: Jenkins
QA-Review: Dariusz Dzien <ddzien@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
closes ADMIN-1229
test plan:
- have a course with ungraded pages and/or discussions included
in a module
> expect the todo date to show up in the modules page like
the due date would for an assignment
Change-Id: Iab3659dca116c61a4dbc2a68f57b884ea4501900
Reviewed-on: https://gerrit.instructure.com/157517
Reviewed-by: Carl Kibler <ckibler@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Christi Wruck
Tested-by: Jenkins
Fixes OUT-2299
Test Plan
- Align a rubric to an assignment.
- Test that you can fill out a new assessment for a student with
no prior assessment.
- Verify that if you enter an invalid points value, that the text
for the points when submitted appears as '--'
- Verify that a valid points value is persisted and displayed
properly.
Change-Id: I8de8bbaf6c66ec3f488fec681d6ae026f350bc75
Reviewed-on: https://gerrit.instructure.com/156417
Tested-by: Jenkins
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
QA-Review: Augusto Callejas <acallejas@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
Insist that provisional grades must have a valid non-empty score to be
saved, just as non-provisional grades must. Similarly, ensure that an
existing valid provisional grade cannot be replaced with an empty value.
(In both cases the grade should silently revert back to its previous
value, or nothing if no grade was previously entered.)
fixes GRADE-1279
Test plan:
(Note that, while entering invalid grades, you may see an "Oops! The
last request didn't work out" flash error message; this is because we're
actually handling bad values on the back-end as errors now instead of
silently reverting them. The messages will only appear in development
and otherwise shouldn't affect anything.)
* Set up a moderated assignment
* Open it in SG as a provisional grader
* Before issuing a real grade, try to enter some invalid values, like
"asdf" or "EX" (invalid because a provisional grader cannot excuse)
* The grade field should revert to its previous (empty) value
* Check that a provisional grade object has *not* been created as a
result of the invalid values (you can do so using the Rails
console or by opening the assignment in SG as a moderator and
checking the grades in the provisional grade selector)
* As the same grader, make sure you can enter a valid grade
* If you have entered a valid grade at least once, entering an
invalid grade should revert to the last valid value
* Open the assignment in SG as a moderator
* Check that you can excuse the assignment by grading as "EX"
* Check for the following behavior with respect to the provisional
grade selector:
* If you enter an invalid value, the grade field should revert to
the previously-selected value, whether it was your own grade
("Custom") or a provisional grade from someone else
* Similarly, an invalid value should not change the selection of
the provisional grade selector
* Trying to enter a valid value should work as before, and select
the "Custom" radio button if not already selected
* Finally, Create a non-moderated assignment, open it in SG, and check
that it handles valid/invalid grades properly as before
Change-Id: I33fd9450ebea4f1f2d1cae2dd0a4c0c70d6e65c8
Reviewed-on: https://gerrit.instructure.com/156351
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
Unmuting an anonymous assignment will now cause that assignment to show
in the UI as though it is not anonymous. In addition, posting grades for
a moderated anonymous assignment will now cause that assignment to show
in the UI as though it is not anonymous.
closes GRADE-1310
closes GRADE-1313
Test Plan:
1. Verify unmuting an anonymous assignment causes that assignment to no
longer be anonymized in the UI. You can do this by spot checking
gradebook (old/new/individual) and SpeedGrader. In addition,
re-muting an unmuted anonymous assignment should cause the assignment
to become anonymized in the UI.
2. Verify posting grades for a moderated, anonymous assignment causes
that assignment to no longer be anonymized in the UI (even if the
assignment is muted).
Change-Id: I113c61b4e7fa0eb8909448d8ba7cffb22600e17c
Reviewed-on: https://gerrit.instructure.com/156151
Reviewed-by: Gary Mei <gmei@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Tested-by: Jenkins
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
test plan:
* everything except for the calendar (for now)
should be translated
closes #CORE-1555
Change-Id: Ia13d7961e56dbe8eb618a208185a58ef0d2125cf
Reviewed-on: https://gerrit.instructure.com/155809
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Rohan Cheeniyil <rcheeniyil@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams <jamesw@instructure.com>
For student comments on anonymous assignments, the comment author
name is now the same as the student name in the select dropdown.
The format of the student name is `Student ${number}`.
closes GRADE-1284
Test Plan
- Create an anonymous assignment and assign it to at least two
students.
- As each of the students, submit some work and some comments.
- As the teacher, open SpeedGrader for the assignment.
- The author name of the comments should be the same as the author
name in the select dropdown in the top right.
Change-Id: I17545fdb37792158f93a2029e38c59a17a13e039
Reviewed-on: https://gerrit.instructure.com/155668
Tested-by: Jenkins
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
A student not graded for an assignment should be able to be graded
with a zero during gradebook import if the imported CSV contains a
zero in that column. Previously, the import would think there was
no change and the student would stay ungraded.
fixes GRADE-1184
Test Plan
- Create an assignment.
- Make sure not to grade a student for that assignment.
- Export the gradebook.
- Edit the CSV so that the assignment name is sufficiently malformed
such that the import process later will ask you to match an
assignment to an existing one.
- Still editing the CSV, give the student a score of zero.
- Import the CSV to the gradebook.
- Match the malformed assignment name to the actual assignment.
- Verify that the ungraded student now has a grade of zero after
importing and matching. Save the changes.
- Verify in the Gradebook that the student now has a grade of zero.
Change-Id: I2ef79dbc2b66e9f1a41fce2a5ffc59dbceadae26
Reviewed-on: https://gerrit.instructure.com/155475
Tested-by: Jenkins
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
refs CORE-1387
test plan
- test canvas with LOLCALIZE=true
- links, equalla, and record plugin should have tranlated strings
when mouse is over the icon
Change-Id: I99fc0f653960a0bc7407de5750161ca2e8a0c462
Reviewed-on: https://gerrit.instructure.com/154892
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Brent Burgoyne <bburgoyne@instructure.com>
The previous fixes to SpeedGrader scroll bars overreached a little bit
and adversely affected DocViewer frames shown outside of SpeedGrader.
Revert the changes that affected the DocViewer frame globally, but
don't set a min-height requirement when we open the frame from within
SpeedGrader.
fixes GRADE-1316
Test plan:
- SpeedGrader
- View a document and make sure the DocViewer frame has only one
vertical scroll bar (which should scroll over the document in
question)
- Viewing as part of an assignment
- Upload a file (such as a PDF) to the course
- Create/edit an assignment and, as part of the description, insert
a link to the file you uploaded (using the "Files" tab under "Insert
Content into the Page" on the right-hand side of the screen)
- Save and view the assignment
- In the description, click the magnifying glass icon to the right of
the link you just inserted
- The resulting preview should once again be vertically resizable and
occupy a reasonable height (800px) initially
Change-Id: I1f248d67bfdae9b9af9d55176eed9000b611313d
Reviewed-on: https://gerrit.instructure.com/155411
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
Using for-in on an empty array (from test data) was pulling in Ember
properties like firstObject for some reason, which was causing a spec
failure when we tried to access those objects in the array. Stop using
for-in so that the test stops failing.
Test plan:
- Specs pass
Change-Id: If9ff1b6785b4e1f113fe0195051696c404e8e75e
Reviewed-on: https://gerrit.instructure.com/155648
Tested-by: Jenkins
Reviewed-by: Gary Mei <gmei@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Indira Pai <ipai@instructure.com>
Product-Review: Adrian Packel <apackel@instructure.com>
"Extra credit not possible on outcome" alerts were incorrectly appearing
when navigating from a student to another student when both students
were graded using a rubric with an outcome-based criterion and the new
student had fewer points on the criterion than the old student. This
happened regardless of whether the relevant feature flag was enabled,
and was the result of comparing data in the rubric summary and the
editable form. Only perform the relevant comparison when the grader
has entered new scores, and not when we are switching between students.
fixes GRADE-1198
Test plan:
Setup:
- Have a course with some students
- Define an outcome for the course
- Set up a rubric with a criterion mapped to the outcome
- As a grader, open SpeedGrader for the assignment and assess some
students using the rubric
With the feature flag "Outcome Extra Credit" enabled:
- Attempt to enter a score higher than the outcome-based criterion's
maximum allowed points and save
- Saving the assessment should succeed and keep the score you entered
With the flag disabled:
- Attempt to enter a score higher than the outcome-based criterion's
maximum allowed points and save
- Saving the assessment should produce an "extra credit not possible"
alert and force the score to the maximum allowed points
Testing that specious alerts don't show up:
- Assess students such that one student has a score on the criterion
that is higher than a student immediately next to them in the list
of students (but both are at/below the maximum points)
- Navigating back and forth between the two students should not produce
any "extra credit not possible" alerts
- Similarly, editing one student's assessment and switching students
without saving your changes should not produce errors
- Note that currently we do not save any changes made when navigating
this way (this is pre-existing behavior)
Change-Id: I412f743624268850e757781cbc80641d48227c77
Reviewed-on: https://gerrit.instructure.com/155287
Reviewed-by: Gary Mei <gmei@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Tested-by: Jenkins
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
test plan:
* Verify Jenkins passes
Change-Id: I1632755f809383a5ebe23ba0750576f5f68535d9
Reviewed-on: https://gerrit.instructure.com/155261
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Product-Review: Jeremy Neander <jneander@instructure.com>
QA-Review: Jeremy Neander <jneander@instructure.com>
I don’t think we use this anymore. I think we just get tinymce-lightskin
from npm. So I think it is safe to delete all these files.
I think these just leave a red herring because I was trying to fix a bug
that needed changing a tinymce style and I tracked it down to one of
these files just to find out that’s not where it is coming from
Test plan:
* try to find any place that was still using this
* tests should pass
* tinymce editor with both RCE turned on and off should look the same
as it did before
Change-Id: I1fe20a8607338335b241f412f672c6bc73d29072
Reviewed-on: https://gerrit.instructure.com/154718
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
This extracts out the window.location.reload calls to a
helper function that can be stubbed. It goes ahead and
stubs calls that were occurring in #handleGradeSubmit
because it seems that for the master build, this is what
keeps forcing the page to reload and the specs to run
forever
refs CORE-1563
Test Plan:
- Automated tests pass
- Speedgrader isn't busted
Change-Id: I1ee79f98cd7e2b8ac8a546b59ffaa0a3fed05018
Reviewed-on: https://gerrit.instructure.com/155031
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Fixes: CORE-1556
* go to an rich content editor
* add this markup with a “longdesc” attribute to the page
<img
src=“https://placekitten.com/200/300”
longdesc=“http://www.example.com/“
/>
* save it
* reload the page
* make sure the longdesc attribute is still there
Change-Id: I8c57668e3c257ae186a7ea94c40dceb87835ca33
Reviewed-on: https://gerrit.instructure.com/155020
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: Nathan Rogowski <nathan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
fixes GRADE-1115
Test plan:
DocViewer caveat:
The DocViewer frame--which is not directly controlled by us--will
produce a horizontal scroll bar if resized to a small enough width,
even though it also zooms the document out to compensate. This isn't
something we have control over from SG, so it's not an issue for the
purposes of this change.
Viewing documents:
- Create an assignment with online submissions
- As a student, submit a multi-page PDF (or a similar longish
document) for the assignment
- As a teacher, open SpeedGrader for the assignment
- The DocViewer frame should *not* be resizeable independently
from the rest of the page.
- Check that there are no superfluous scrollbars on the page.
Scrollbars should *only* be present for the following:
- On the left side, you should be able to scroll vertically
through the document assuming it is long enough
- If you resize the window to a small enough height that the
contents of the right side are not all visible, a vertical
scroll bar should appear
- If you resize the window to a small enough width that not
everything is visible, a horizontal scroll bar should appear
to let you scroll the window from left to right
- (Note that, per the caveat above, a horizontal scroll bar
specific to the DocViewer frame may also appear)
- Changing the sizes of the left/right divs using the divider,
or clicking on the divider to hide the right side entirely,
should behave sanely with respect to scroll bars
Grading with a rubric:
- Create an assignment with a rubric
- Give at least one criterion several possible "ratings" so it extends
far out horizontally when edited
- Open the assignment in SpeedGrader
- Click the "View Rubric" button and ensure that a horizontal scroll
bar appears if the rubric is too wide to show in the existing width
(and does not appear otherwise)
Change-Id: I25930c4100827f6a29bca2f220a4fc266a069e18
Reviewed-on: https://gerrit.instructure.com/154763
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Gary Mei <gmei@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
closes: GRADE-1266
Test Plan:
enroll two students and two TAs and the teacher is the final grader (it
shouldn't matter if the final grader is a TA or a teacher, in fact feel
free to rotate them for more possibilities). If you're short on time the
following could be done on one assignment and for each test case toggle the
settings on and off, but then it would be difficult to quickly pull of the
correct configuration, if problems arise.
The titles of each feature are how they are found in the Assignment form.
This can cause some confusion due to some rules being enabling or disabling
a phrase with a 'not' present so be careful!
/------------+---------------------------+-----------+-----------------------+---------------------+-----------------------\
| assignment | anonymous (graders cannot | moderated | graders can view | graders cannot view | final grader can view |
| | view student names) | grading | each other's comments | each other's names | other grader names |
+------------+---------------------------+-----------+-----------------------+---------------------+-----------------------+
| I (basic) | | | | | |
+------------+---------------------------+-----------+-----------------------+---------------------+-----------------------+
| II | | on | on | | on |
+------------+---------------------------+-----------+-----------------------+---------------------+-----------------------+
| III | | on | on | | |
+------------+---------------------------+-----------+-----------------------+---------------------+-----------------------+
| IV | | on | | | |
+------------+---------------------------+-----------+-----------------------+---------------------+-----------------------+
| V | on | on | on | on | on |
+------------+---------------------------+-----------+-----------------------+---------------------+-----------------------+
| VI | on | on | on | on | |
+------------+---------------------------+-----------+-----------------------+---------------------+-----------------------+
| VII | on | on | on | | |
+------------+---------------------------+-----------+-----------------------+---------------------+-----------------------+
| VIII | on | on | | | |
+------------+---------------------------+-----------+-----------------------+---------------------+-----------------------+
| IX | on | | | | |
+------------+---------------------------+-----------+-----------------------+---------------------+-----------------------+
Note: if a cell is empty, it means `off`,
For assignments with Moderated Grading enabled the `Number of graders` will
always be `2` (the final grader makes three enrollments we'll use for
Speed Grader)
for each assignment do the following:
have the first student (Student A) submit their homework
- As the first TA (TA1), create a published comment and draft comment on
Student A's submission
- As the second TA (TA2), create a published comment and draft comment on
Student A's submission
- As the final grader (the teacher), create a published comment and draft
comment on Student A's submission
For the follow instructions, negatives are presented in uppercase (`CANNOT`)
for enhanced clarity. Ensure for each grader (unless final grader is
specified) in each assignment referenced via the parens:
(I)
1. can view student names
2. can view each other's comments
(II)
1. can view student names
2. can view each other's comments
3. final graders can view other graders' names
(III)
1. can view student names
2. can view each other's comments
3. final grader CANNOT view other graders' names
(IV)
1. can view student names
2. CANNOT view each other's comments
3. final grader can view each others' comments
(V)
1. CANNOT view student names
2. can view each other's comments
3. CANNOT view each other's names
4. final grader view other graders' names
(VI)
1. CANNOT view student names
2. can view each other's comments
3. CANNOT each other's names
4. final grader CANNOT view other graders' names
(VII)
1. CANNOT view student names
2. can view each other's comments
3. can view each other's names
4. final grader CANNOT view other graders' names
(VIII)
1. CANNOT view student names
2. CANNOT each other's comments
3. final grader can view each others' comments
(IX)
1. CANNOT view student names
Change-Id: I3e9a8787f04cf03a38ea651aa85b3eaa98f41f9c
Reviewed-on: https://gerrit.instructure.com/154391
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: Indira Pai <ipai@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
in our specs, this code results in a bunch of errors that say:
Error
Syntax error, unrecognized expression: #%7B%22anonymous_id%22%3A%2200000%22%7D
/base/spec/javascripts/webpack_spec_index.js in Function.mOY9BNujNR.Sizzle.error at line 508435:8
/base/spec/javascripts/webpack_spec_index.js in Function.mOY9BNujNR.Sizzle.filter at line 508421:12
/base/spec/javascripts/webpack_spec_index.js in Sizzle at line 508211:12
/base/spec/javascripts/webpack_spec_index.js in Function.Sizzle [as find] at line 509343:11
/base/spec/javascripts/webpack_spec_index.js in init.find at line 509599:11
/base/spec/javascripts/webpack_spec_index.js in new init at line 504355:38
/base/spec/javascripts/webpack_spec_index.js in jQuery at line 504195:10
/base/spec/javascripts/webpack_spec_index.js at line 146640:477615
By wrapping this in a try/catch it will proceed even if it is using an
Invalid selector
Test plan:
* you should not see that ^ class of JS errors in the js master build
Change-Id: Ie42e5b1a8db8990adb8a0f570ec72887a51d3df3
Reviewed-on: https://gerrit.instructure.com/154745
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
closes: GRADE-1290
test plan:
- create and assignment
- upload a file for a student
- download the file from speedgrader
- the file successfully downloads
- this should also work for anonymous assignments
Change-Id: Ib094ed116d71e2f333154023b73b2f97cee6989e
Reviewed-on: https://gerrit.instructure.com/154606
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
Tested-by: Jenkins
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
fixes GRADE-1211
test plan:
1. Select or create a Course
2. Create a section in the Course
* Use any or all of these characters:
* ', ", /, &, `, =, <, >
3. Visit New Gradebook
4. Turn on the Section Filter
* View > Filters > Sections
5. Expand the Sections Filter
6. Verify the section name appears as it was named
Change-Id: I7f23bdd37febadd37652d9a1e9beb40e3059469e
Reviewed-on: https://gerrit.instructure.com/154489
Tested-by: Jenkins
Reviewed-by: Gary Mei <gmei@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
Fixes OUT-2302
Test Plan:
- Using Safari / VO / High Sierra
- Open speedgrader with VO. Navigate to grading pane.
- Activate the "View Rubric" button.
- Verify that the focus is immediately changed to the rubric, and you
can easily enter the rubric and start grading.
- Duplicate above steps for assessing the rubric on the student
individual submission page.
Change-Id: I4ab54214c4551e21e6a5f7655a886236280ed703
Reviewed-on: https://gerrit.instructure.com/153881
Tested-by: Jenkins
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
QA-Review: Augusto Callejas <acallejas@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
fixes OUT-2306
test plan:
- enable LMGB
- have some outcome results (ideally multiple
students and outcomes)
- click the dropdown for 'Course Average' and
select a different method
- scores should be properly replaced in the main
header row, not the outcome title row
- in course settings enable new gradebook
(or alternatively, disable it if you were
testing with it already enabled)
- once course settings update (may take a few minutes
due to caching), repeat test plan
Change-Id: I622959bcd2636f73ffe258253f46f1740cdf01b4
Reviewed-on: https://gerrit.instructure.com/154128
Reviewed-by: Matt Berns <mberns@instructure.com>
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Tested-by: Jenkins
QA-Review: Dariusz Dzien <ddzien@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
In SpeedGrader, an assignment in a closed grading period should not
be gradeable, so the select menu should not be openable.
fixes GRADE-1210
Test Plan
- Create a pass/fail assignment, set it due in the past.
- Change the grading period that it was set in to be closed.
- Navigate to the assignment and open SpeedGrader for it.
- Verify that you are unable to set a grade for the assignment.
Change-Id: I35ae261638e7f737d1c99b40dadaf06bb50e46e3
Reviewed-on: https://gerrit.instructure.com/153740
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
QA-Review: Spencer Olson <solson@instructure.com>
Tested-by: Jenkins
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
closes OUT-2220
test plan:
- enable non-scoring rubrics feature flag if not already
- open the account rubrics page
- select the "Learning Mastery" tab
- confirm a billboard is displayed matching the mockup
- if previous custom ratings were defined, you can clear them out
in the rails console:
> OutcomeProficiency.destroy_all
- after saving some custom ratings, confirm the billboard
does not show up after loading the page
- confirm that when using VO/SR, that focus is set on
the first mastery checkbox after dismissing the billboard
Change-Id: Ia00ef7ec6bac771d502c92cbc0ffc088a0161816
Reviewed-on: https://gerrit.instructure.com/153541
Tested-by: Jenkins
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
QA-Review: Michael Brewer-Davis <mbd@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
closes: GRADE-1126
test plan:
- create an anonymously graded assignment
- create a submissions
- in speedgrader, create a comment
- create a draft comment
- delete both comments
- create a draft comment and then publish it
- toggle off anonymous grading for the assignment
- in speedgrader, create a comment
- create a draft comment
- delete both comments
- create a draft comment and then publish it
Change-Id: I5273a0c62bd113713baa833c0a8f806943392d6e
Reviewed-on: https://gerrit.instructure.com/148897
Tested-by: Jenkins
Reviewed-by: Neil Gupta <ngupta@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
when selecting/unseleting external tools for an assignent submission,
tell the SR user what's happening.
closes ADMIN-1076
test plan:
- go to a course's settings page, apps tab. ensure an external tool
or 2 are added
(see https://lti-tool-provider-example.herokuapp.com/xml_builder
for a handy list).
- ensure a SR is enabled
- create a new assignment, set its submission type to "external tool"
- click the "Find" button
- select and unselect tools from the list
> expect the SR to tell you what you've just done
Change-Id: Ice09d79ebe64d3f4779a1b7f75e303fe1fd9e387
Reviewed-on: https://gerrit.instructure.com/153435
Tested-by: Jenkins
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Fixes OUT-2285
Test Plan:
- Create a rubric with an outcome and non-outcome criterion.
- Assess that rubric for a student:
- Verify that you can enter more than the maximum possible points for
a non-outcome criterion, and no error is shown.
- Verify that with the outcome criterion, if you enter more points
than are possible, an error is shown.
- Verify that if you enter invalid points in either field, an error is
shown.
- Set the "Allow Outcome Extra Credit" field to "Allow" for the root
account.
- Enable the feature flag for the course.
- Verify that no errors are shown when extra credit is given, but that
invalid points errors still work.
Change-Id: I83581f153227295125d8782ca678af893769932c
Reviewed-on: https://gerrit.instructure.com/153191
Tested-by: Jenkins
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Reviewed-by: Matt Berns <mberns@instructure.com>
QA-Review: Augusto Callejas <acallejas@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
test plan:
- in a blueprint course, create a new module item
- without reloading the page, ensure you can lock and unlock it
fixes ADMIN-1080
Change-Id: Ibb320274d6832dc6759040801bb8c6930e036897
Reviewed-on: https://gerrit.instructure.com/153567
Tested-by: Jenkins
Reviewed-by: Carl Kibler <ckibler@instructure.com>
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: Luke Kingsley <lkingsley@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
fixes GRADE-976
test plan:
* Make sure the AMM flag is off
* All AMM features should be visible and work
* The Anonymous Marking and Moderated feature flags should be visible
* Toggling the AMM feature flag should do nothing
Change-Id: Ie0c52c23748389c6f5df5b85e8580bdf474c0a52
Reviewed-on: https://gerrit.instructure.com/152067
Reviewed-by: Adrian Packel <apackel@instructure.com>
Tested-by: Jenkins
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
Fixes OUT-2268
Test Plan:
- Open speedgrader, navigate to an assessment of a free-form rubric.
Verify:
- the new UI is present before clicking "view rubric"
- the summary rubric only has two columns
- each criteria lists points assessed out of points possible right after the
comments.
- Now go to an assignment with a points-based rubric. Verify:
- the spiky UI is present
- the summary rubric only has two columns
- each criteria lists the points assessment and comments right after
the description of the rating.
- Navigate to a student without an assessment using the top right arrow
keys
- Verify there is no summary rubric shown
- Navigate back to the student with an assessment, verify the summary is
shown again.
Change-Id: Idae819264c507e42d67a6731367d2ddef5cd176d
Reviewed-on: https://gerrit.instructure.com/152226
Tested-by: Jenkins
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
QA-Review: Matt Berns <mberns@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
Also tidies up some a11y brokenness.
Closes COMMS-254
Test Plan:
* Have a course with 5-6 modules in it.
* Make sure you have module duplication enabled.
* Duplicate one of them.
* Try this both from the modules page, and also from
the course home page when it's set to be the modules
page.
* There will now be a spinner present that goes away once
the new module has rendered.
* Make sure screenreaders are happy.
Change-Id: I7155c674a4c31b1650598d7b12631037b0355661
Reviewed-on: https://gerrit.instructure.com/152403
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Product-Review: Matt Goodwin <mattg@instructure.com>
QA-Review: Landon Gilbert-Bland <lbland@instructure.com>
closes OUT-2248
test plan:
- create an outcome with a default scale of 5/3/0
- create a rubric with several criteria, including the outcome,
and attach it to an assignment
- go to speedgrader and assess the rubric, providing a varing
level of scores
- enable the non-scoring rubrics feature flag (note that due
to caching you may need to wait for the feature to be truly
enabled)
- default colors should properly show on speedgrader, the
submission show page, and student grade summary page
- follow the instructions on g/150095 to create outcome proficiency
ratings using the API in the course's account:
* description: great, points: 5, mastery: false, color: 00ff00
* description: good, points: 3, mastery: true, color: 0000ff
* description: boo, points: 0, mastery: false, color: ff0000
- the custom created colors should now be showing on speedgrader,
the submission show page, and student grade summary page
Change-Id: I0dbe7196871950aa9786978c2f97ec6279823583
Reviewed-on: https://gerrit.instructure.com/152638
Tested-by: Jenkins
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
QA-Review: Frank Murphy <fmurphy@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
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>
References OUT-2251
Test Plan:
- Open speed grader / dev tools.
- Perform a points assessment, leave no comments.
- Confirm that no exception was thrown.
- Verify that the summary doesn't have "null" in the comments section.
- Add some comments to a criterion on that points assessment. Click the
"update comments" button.
- Re-open the comments dialog for the same criterion. Verify that the
comment dialog can be blanked out.
Change-Id: I516afcacf070418df8f1690df3ff1b47c8fb18f9
Reviewed-on: https://gerrit.instructure.com/152660
Tested-by: Jenkins
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
QA-Review: Michael Brewer-Davis <mbd@instructure.com>
Product-Review: Michael Brewer-Davis <mbd@instructure.com>
closes OUT-2252
test plan:
- enable non-scoring rubrics feature flag
- load the account rubrics page
- click on the learning mastery tab
- make changes to the default ratings:
* add ratings
* change existing descriptions, points, etc.
* remove ratings
- save changes by clicking "Save Learning Mastery" button
- click on the account rubrics tab
- click back on the learning mastery tab
- confirm the latest version to the ratings is displayed
- reload the page
- click on the learning mastery tab
- confirm the latest version of the ratings is displayed
Change-Id: Icd717bc18b84044d0f780e5cec97d2df9eaee615
Reviewed-on: https://gerrit.instructure.com/152427
Tested-by: Jenkins
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Reviewed-by: Frank Murphy <fmurphy@instructure.com>
QA-Review: Dariusz Dzien <ddzien@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
closes OUT-2270
Test plan:
- create an course with two students,
one teacher, and one ta
- remove permission "edit grades" from TA
role
- create an assignment with a rubric
- submit the assignment as student 1
- assign student 2 to peer review
student 1's submission
- verify that on the submission details
page, student 1 sees non-editable rubric
- verify that on submission details page,
student 2 sees an editable rubric
- verify that on submission details page,
teacher sees an editable rubric
- verify that in speed grader, teacher
sees an editable rubric
- verify that in speed grader, TA
sees a non-editable rubric
Change-Id: I0e117440ea1ca4e6cee176a577e841f87d677ed9
Reviewed-on: https://gerrit.instructure.com/152448
Reviewed-by: Frank Murphy <fmurphy@instructure.com>
Tested-by: Jenkins
QA-Review: Augusto Callejas <acallejas@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
Fixes OUT-2251
Test Plan:
- You will need assignments with both free-form and points rubrics.
- Both rubrics should have multiple criteria.
- You will need students who have not been graded yet for those
assignments.
- In both speedgrader and the assignment page:
- Verify that points rubric assessemnts persist.
- Make sure no prior assessment exists.
- Check that points can be set and persist.
- Check that comments can be set and persist for the right
criterion.
- Verify that an existing assessment can be edited.
- Check that free-form rubrics
- Make sure no prior assessment exists.
- Check that points can be set and persist.
- Check that comments can be set and persist for the right
criterion.
- Enable the "save comments for later" field and verify that the
comments from that assessment can be used for that criterion in
a different assessment.
- Verify that an existing assessment can be edited.
Change-Id: Ie25a83ef5a7af46caeeda514ca3ef87c7249d808
Reviewed-on: https://gerrit.instructure.com/151811
Tested-by: Jenkins
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
QA-Review: Michael Brewer-Davis <mbd@instructure.com>
Product-Review: Michael Brewer-Davis <mbd@instructure.com>
Add a component in SpeedGrader to allow the moderator to select among
provisional grades or enter a custom grade. Update the grade input to
match the selected grade and indicate which grader is responsible.
closes GRADE-1069
Test plan:
NOTE: you only need to test this with points-based assignments at the
moment. Other grading types will probably work but the display will be
screwy. Those will be addressed more fully in a future ticket.
* Turn on Anonymous Moderated Marking if the feature flag still exists
* Have a course with multiple teachers and students
* Create a moderated assignment and designate one of the teachers to
be the final grader.
* [If the old moderation page still exists when you read this]
On the existing moderation page, add all the students to the
assignment's moderation set.
* As one or more non-final-grader teachers, hand out some grades for
the assignment in SpeedGrader (no need to go through the moderation
page; you can just use the SpeedGrader link on the assignment page).
Make sure there is at least one student who does *not* receive any
provisional grades for the assignment.
* As the final grader, open the assignment in SpeedGrader.
* For any student who HAS received provisional grades, there should
be a "Show/Hide Details" link that toggles a set of radio buttons
showing the existing provisional grades.
* Do some testing with these and make sure they adhere to the
behavior described in the next section.
* For the student who has NOT received provisional grades, the grade
selector should not appear, but you should be able to assign a
grade and submit comments as usual.
Provisional grade selector behavior:
* The top radio button, corresponding to the grade assigned by the
moderator, should always be labeled "Custom." Below that, one
radio button should appear for each provisional grade handed out,
showing the grader and the assigned grade.
* For assignments where grader names are visible to the final grader,
the each button's label should show that grader's name.
* For assignments where grader names are NOT visible to the final
grader, the labels should be "Grader 1", "Grader 2" and so on,
listed in that order.
* When you select a radio button other than "Custom", the value
associated with that button should appear in the grade text input
and the selected grader should be shown to the right of the input.
* When you select the "Custom" button, the last custom value you
entered should appear in the text input, and "Custom" should appear
as the grader name.
* If you directly enter a value in the grade input and tab out,
the "Custom" button should be selected (and the label changed).
* Your selections should persist in moving back/forward between
students and refreshing the page.
Change-Id: I3696f9e0edbbe1aa81aa85fa6e51e229fc2136b5
Reviewed-on: https://gerrit.instructure.com/151472
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
QA-Review: Jeremy Neander <jneander@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
Allow graders to score rubrics for anonymous assignments in SpeedGrader,
using the anonymous ID in place of the user ID to communicate.
closes GRADE-1127
Test plan:
- Have a course with some teachers and students
- (if the Anonymous Moderated Marking feature flag still exists by
the time you read this, enable it)
- Create an assignment with anonymous grading enabled, and a second
assignment with anonymous grading disabled
- Attach a rubric to each assignment (doesn't have to be the same
rubric)
- Open SpeedGrader and evaluate some students vis-à-vis the rubric
- Ensure that the above works correctly for both assignments, and that
your updates are preserved on reloading the page
Change-Id: I18e467d04b333b5c30f21e43791178c3271ca59b
Reviewed-on: https://gerrit.instructure.com/152276
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Jeremy Neander <jneander@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
Run `script/nuke_node.sh` to clean everything up
Run `yarn install` it should install everything for everything
Run `yarn build` and `yarn test` they should work exactly as before
Change-Id: I11a27ff2d705c6cbb3b3f9029dd8b32138706146
Reviewed-on: https://gerrit.instructure.com/151356
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
refs: CORE-1437
This commit just upgrades these components to use instUI 5 instead of
getting them from ui-core in instUI 4.
It is mostly just path renaming.
Test plan:
* verify these components still work as they used to and tests pass
Change-Id: I4735d82855b0e78f3d03ec49ffc0487c60e65bb6
Reviewed-on: https://gerrit.instructure.com/151787
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
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>
closes: CORE-1434
Test plan:
* all the icons should look the same as they did before
* make sure that icons that should flip for RTL (like the icons on
The course/user search pagination arrows, the icon to open the
Submission details tray in new gradebook, the “>” icons to expand
a submenu for the menus in new gradebook, etc)
Change-Id: I490d2dcd91b1b7ca2a116a1416718cd797f74901
Reviewed-on: https://gerrit.instructure.com/149482
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Reviewed-by: Chris Hart <chart@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
if the reqeuest is not complete. also increase the debounce time to
reduce the chance of making more expensive search requests than
needed if someone is typing slow. without this fix the search was
making multiple requests to the server and would always show the last
results to come back regardless of order. this would lead to cases
where the right results show temporarily then the wrong results show
immediately after.
closes CORE-1347
test plan:
- test with course and user search. it will help to have a ton of
records to make the search slow. when i tested I just added
`sleep (rand 3) + 1` to each of the api controller actions to
simulate slow search and make it more likely requests will come
back in the wrong order.
- have the network tab open
- if you type in the search bar slowly enough to trigger multiple
request the unfinished requests should be aborted
- results should always match the search term
Change-Id: I8953d73ea81784e4080cd64412effa0e95520761
Reviewed-on: https://gerrit.instructure.com/150218
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Matt Miller <mmiller@instructure.com>
When a moderated assignment's max grader count has been reached, further
provisional graders other than the moderator are not allowed to grade
or submit comments. Show an appropriate error in SpeedGrader if someone
tries to take either action.
closes GRADE-1058
Test plan:
Note that the plan below assumes that GRADE-1060 (which disables access
to SpeedGrader for new graders if the maximum number of graders has
already been reached) has been merged. If it has not been merged at the
time of testing, you can make the test plan a little easier by loading
both teachers sequentially in the same browser instead of using
different browsers.
* Have a course with AMM enabled and at least three instructors
* Enable AMM, create a moderated assignment, and set the max graders
to 1
* Open two browsers, each logged in as a teacher who is *not* the
final grader. In each browser, open SpeedGrader for that assignment.
* In one browser, enter a grade or submit a comment. This should
complete without incident.
* In the second browser, do the same thing. This time, you should get
an alert stating that the maximum number of graders for the course
has been reached.
* The grader in the first browser should still be able to change their
grade and leave comments.
* Appoint a third teacher as the final grader; make sure this teacher
can open SpeedGrader and grade/submit comments.
Change-Id: Ie2efa3c55bb71788210e7e1a02363712d8f7a2f0
Reviewed-on: https://gerrit.instructure.com/150804
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Jenkins
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
closes OUT-1856, OUT-1858, OUT-2239, OUT-2148
This adds configurable proficiency ratings on the account rubrics page.
Persisting these changes will occur in a future patchset (2252).
Validating order will be in a separate patchset (2240).
test plan:
- with the "non-scoring rubrics" feature flag off, the account rubrics
page should appear without the proficiency ratings tab
- with the "non-scoring rubrics" feature flag on, the accounts rubrics
page should appear with the proficiency tab, if visiting with an
account with "manage_outcomes" permission (e.g. account admin)
- create an account role that has "Create and edit assessing rubrics"
permission enabled but "Manage learning outcomes" disabled by going
to the account page, click on the "Permissions" link in the left menu,
then select the "Account Roles" tab to then be able create the role
and enable the permission above.
- create an account user by going to the account page and then click
on the "People" link in the left menu to then be able to
click on "+ New User". you'll use the email address entered in
the next step.
- make that user an account admin by going to the account page,
click on the "Settings" link in the left menu, then select the
"Admins" tab, then click on "+ Account Admins". select the new
role from the drop down menu and enter the email address you used
in the preivous step
- confirm with the feature flag enabled, that visiting the account
rubrics page does not appear with the proficiency tab, if visiting
with an account without "manage_outcomes" permission (e.g. masquerade
as the user created above)
- on the proficiency tab, test error handling:
* description is required
* points is required, should be a valid number
* when saving changes, all fields with errors should be labelled
with an error text, with the first field receiving focus
Change-Id: Ic52ef9fe9c58cfb215216b3a505ef1fb4b851c68
Reviewed-on: https://gerrit.instructure.com/150841
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Reviewed-by: Frank Murphy <fmurphy@instructure.com>
Tested-by: Jenkins
QA-Review: Dariusz Dzien <ddzien@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
closes: GRADE-1180
test plan:
- enable anonymous moderated marking
- create an anonymous assignment
- preview links in the right sidebar show anonymous_id,
not the user id
Change-Id: I2be87f1f9a7877e99da9f06c62b88cc57b798a22
Reviewed-on: https://gerrit.instructure.com/150927
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
Tested-by: Jenkins
QA-Review: Indira Pai <ipai@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
This reverts commit 0bf7f60a21.
google docs does indeed show text/plain files
test plan:
- have s3 storage enabled
- submit a txt file for a submission
- preview is rendered in speedgrader
Change-Id: I88958c259fd103692f25c2a1168437d2407716fd
Reviewed-on: https://gerrit.instructure.com/150914
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Spencer Olson <solson@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
Fixes OUT-2246
Test Plan:
- Disable the non scoring rubrics feature flag. You might need to
restart your services to expire the cached flag.
- Visit speed grader for an assignment with an aligned rubric. Verify
that the rubric functions normally and can be used to grade.
- Visit a single assignment submission through gradebook > student
results > selected submission. Example URL:
http://canvas.docker/courses/6/assignments/2/submissions/14
Verify that the rubric looks normal and can be used to grade.
- Enable the non scoring rubrics feature flag.
- The new Rubric currently cannot be used to assess, but it should be
visible.
- Visit speed grader, verify the new Rubric is shown (the border
currently around "show long description" is a good way to check this).
- Visit a single assignment submission and verify the new Rubric is
shown.
Change-Id: Ifc5525d1cadaf1d4ff485057b23a7fe00b3f0747
Reviewed-on: https://gerrit.instructure.com/150701
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Tested-by: Jenkins
QA-Review: Andrew Porter <hporter-c@instructure.com>
Product-Review: Frank Murphy <fmurphy@instructure.com>
This should make it so our post-merge build starts working again
and reporting new coverage information.
closes CORE-1435
Test Plan:
- Run `COVERAGE=true yarn run test:karma`
- It should not fail because of memory issues
Change-Id: I6e103352fa25e130d0ba8072a77c9d81ac11bb85
Reviewed-on: https://gerrit.instructure.com/150666
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
closes OUT-2243
Test plan:
With non-scoring rubrics disabled
- verify you cannot create a criterion with
a blank description
- you cannot edit a criterion to have a blank
description
- you cannot create a rating with a blank
description
- you cannot edit a rating to have a blank
description
Change-Id: I06a88230434c22b35653023adebf0f950192a0cc
Reviewed-on: https://gerrit.instructure.com/150704
Reviewed-by: Matt Berns <mberns@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Tested-by: Jenkins
QA-Review: Andrew Porter <hporter-c@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
closes OUT-2157
test plan:
- enable non-scoring rubric feature flag
- create an assignment
- create a rubric on an assignment
- confirm that when `Remove points from rubric` is checked,
that `Use this rubric for assignment grading` and
`Hide score total for assessment results` are hidden.
Change-Id: I76f2ffb7cc8b9015302aba7e6c605ab8004aab98
Reviewed-on: https://gerrit.instructure.com/150496
Tested-by: Jenkins
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
QA-Review: Andrew Porter <hporter-c@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
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>
feature flagged as development-only
adds "Don't show Outcomes results" checkbox
closes OUT-2132
Test plan:
On the assignments show page
and discussions edit page:
- Ensure the non-scoring rubrics feature flag is
off
- Spot check that no non-scoring behavior is apparent
and that rubrics are edited and saved as normal
- Enable the non-scoring rubrics feature flag
(note that due to caching you may need to wait
for the feature to be truly enabled)
- Verify that choosing "Remove points from rubric"
removes all references to points -- existing ratings,
outcome thresholds, creating new ratings, point totals,
points column, etc.
- Choose update rubric, verify that no points are shown
in the view of the rubric
- Reload page, verify that no points are shown in the view
of the rubric
- Edit rubric and uncheck "Remove points...". Verify that
points are returned in all locations
- Verify that edit and view modes for a rubric do not show
points when using a screenreader and "Remove points..."
is set
- Verify that "Don't show outcome results" is persistent
but otherwise has no effect
On manage rubrics page:
- Spot check that no non-scoring behavior is apparent
Change-Id: Ifa72e127f26936221304afcd6530c1d8f1a6ac3b
Reviewed-on: https://gerrit.instructure.com/149622
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Tested-by: Jenkins
QA-Review: Andrew Porter <hporter-c@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
closes CORE-1322
Test Plan:
- Add a pdf file link to a page
- View that page
- You should be able to tab to the small file preview link
that shows up next to the link
- Pressing 'Enter' on the link should open a preview
- Focus should be on the minimize file preview link
- Pressing 'Enter' on that link should send focus back
to the file preview link
Change-Id: I909ca7361b890c0a16be459dd538ecfe89f9a3e9
Reviewed-on: https://gerrit.instructure.com/149852
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Dan Sasaki <dsasaki@instructure.com>
Hides the Moderation Bar in SpeedGrader when the Anonymous Moderated
Marking feature flag is enabled.
closes GRADE-1139
Test Plan:
1. Turn the Anonymous Moderated Marking feature flag on at the root
account level.
2. Create a moderated assignment. Go to the moderation page for the
assignment and add a second reviewer.
3. Log in as an instructor that is not the moderator for the
assignment. Go to SpeedGrader for the assignment and give a
provisional grade for a student.
4. Log in as another instructor that is not the moderator for the
assignment. Go to SpeedGrader and verify there is not a 'Moderation
Bar' at the top of the page (if it was there, the 'Moderation Bar'
would include a tab for each reviewer, and a dropdown to add a new
review).
5. At the root account, disable the Anonymous Moderated Marking feature
flag.
6. As the same instructor from step 4, revisit SpeedGrader and verify
the 'Moderation Bar' is present.
Change-Id: Ib3965927ead41b8ad2bc781a3eb040999cb3d57b
Reviewed-on: https://gerrit.instructure.com/150181
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Adrian Packel <apackel@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
Fixes gh-1292
Test plan: check that collaborations still work
Change-Id: I5faf10346d7a839ecbdc4ef55f7b169e81d60e57
Reviewed-on: https://gerrit.instructure.com/150053
Tested-by: Jenkins
Reviewed-by: Steven Burnett <sburnett@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Omar Khan <okhan@instructure.com>
1. If Anonymous Moderated Marking is enabled, check the assignment's
anonymous grading setting to determine whether to anonymize names in
SpeedGrader, instead of always anonymizing assignments. If not enabled,
revert to checking the (old) "Anonymous Grading" course flag.
2. On the assignment edit page, make sure not to show the "Moderate" if
the assignment doesn't have moderated grading enabled (in addition to
the other conditions).
closes GRADE-1133
Test plan:
Testing SpeedGrader anonymity:
(Note that the "hide student names" setting in SpeedGrader's options
menu, if enabled, will force anonymity regardless of the assignment's
settings. If student names are showing up anonymous regardless of what
you do, make sure that setting is off.)
- Enable AMM for the root account
- Create an assignment with anonymous grading enabled and one without
- In SpeedGrader, the anonymous assignment should anonymize user names
while the non-anonymous one should not
- Disable AMM and make sure SpeedGrader anonymity is now determined
based on the course's Anonymous Grading setting (the *old* anonymous
grading setting) as it was before
Testing the Moderate link for an assignment:
("Never" and "always" in this plan mean that it should behave that way
regardless of the status of the AMM flag.)
- Create an assignment with moderated grading disabled:
- On the edit page, the "Moderate" button should never appear
- Create a moderated assignment and set the current user as final grader
- On the edit page, the "Moderate" button should always appear
- Create a moderated assignment and set a different user as final grader
- On the edit page, the "Moderate" button should appear if AMM is OFF
but be hidden if it is ON.
Change-Id: I4159dbe271cb76791aa93bb6ad07acdc333cdf53
Reviewed-on: https://gerrit.instructure.com/149863
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Anju Reddy <areddy@instructure.com>
Product-Review: Keith T. Garner <kgarner@instructure.com>
fixes OUT-2183
fixes OUT-2187
test plan:
- create two rubrics - on one rubric, create 3 or more criteria,
with at least two criteria utlizing rubric ranges (if you do not
see option for range, you'll need to enable "Rubric Criterion
Range" feature on the account).
- on the other rubric, utlize 5 criteria with the following setup:
3 criteria with a scale of 20/15/10/5/0
2 criteria with a scale of 20/10/5
- attach the rubrics to two different assignments
- as a student, submit to the assignments
- as a teacher, provide scores on the rubrics. On the first one
with the range, ensure that the 2 (or more) range criteria have
different point totals given to them
- on the second rubric, provide a range of points (20, 15, 10, 5, 0)
- as the student, view the grades
- first visit the submission show page. Both rubrics should have their
proper areas highlighted per the scores on the criteria
- visit the student's grades page and expand the rubrics - they both
should have their proper levels highlighted there as well. All
highlights on this page should match the highlights shown on
the submission's show page
Change-Id: I902f5d80285a3c4ef9d55e5d247c4b9f596ca04a
Reviewed-on: https://gerrit.instructure.com/148640
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Tested-by: Jenkins
QA-Review: Dariusz Dzien <ddzien@instructure.com>
Product-Review: Sidharth Oberoi <soberoi@instructure.com>
fixes: CORE-1373
Test plan
* turn on RTL
* go take a quiz
* all the arrows to flag a question (eg https://cl.ly/2p163k092Q0v), the
arrows to mark a question as wrong/right/partially correct, etc
(Eg: https://cl.ly/3n0Q360f213L) should be flipped and look
right (opposite of LTR)
* do a general hunt on the old quizzes pages for anything else you can
find that isn’t flipped for RTL
Change-Id: I7bb032efb751e6b3d4d81e71d29fe61609cb71f6
Reviewed-on: https://gerrit.instructure.com/149028
Tested-by: Jenkins
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Closes: CORE-1226
This gets both the old gradebook and the new gradezilla gradebook to
work in RTL.
Test plan:
* in both old gradebook and new gradezilla gradebook:
* go to the gradebook in normal LTR interface
* everything should work exactly as before
* turn on the RTL feature flag either in your user settings or by
turning int on in accounts/x/settings and then setting your lang
to arabic
Specific things to test:
* try it on both the old gradebook and the new gradezilla gradebook
* try it on a really large gradebook with tons of rows and columns
* try a really small gradebook with less columns than there is screen
width
* try it in different browsers. Since each browser has different
scrollLeft handling in RTL, I normalized it. but verify that it
works in each
* try resizing and reordering columns
* borders and other styles should be flipped to the opposite side in RTL
* make sure keyboard shortcuts (like the left, right, top, down arrow
keys) work and move you in the right direction in both LTR and RTL
(Eg: if you are on “assignment 2”, right arrow goes to “assignment 3”
In LTR but in RTL it goes back to “assignment 1”)
* try to think of other places that might have used the .r<column index>
or .l<column index> classnames to make sure the use the new, RTL-aware
‘.b’ and ‘.f’ (those stand for “back” and “front”) classnames
This change started from this pull request:
https://github.com/mleibman/SlickGrid/pull/666
but there was a lot that still needed to be done there and we needed
change things to handle our frozen columns.
Some interesting trivia:
* in RTL, different browsers have different ways of handling scrollLeft.
they all show the element scrolled all the way to the right by default
(So you see the first columns) but chrome tells you scrollLeft is some
large number to reflect how far from the left you’d have to scroll to
get there if you scrolled all the way to the right like it should.
Safari says scrollLeft is 0 by default and then as you scroll left to
to see the rest of the columns, it counts down and shows
a negative number. And IE does something else.
So you have to do some trickery to normalize them all to be a
consistent value, and that is why this pulled in that NPM module
Change-Id: Id00025db0918cbc2d354e96af88023e70e041e58
Reviewed-on: https://gerrit.instructure.com/144672
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
Reviewed-by: Spencer Olson <solson@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
refs: CORE-1226
I split this out from the javascript changes for slick grid because
the test plan for these changes can be much simpler.
the net result of this change is that absolutely nothing
should change in any of our existing css output. this just makes it so
all of these places where we said:
margin/padding/float/border/border-radus: (left or right), it does the
opposite in RTL so it flows right.
While the review on this can be completely automated, it does need to
be submitted at the same time as the one that changes the slickgrid
javascript. So when you want to manually QA this, check this and that
out at the same time and QA them together.
test plan:
* before you check this out, compile all the css in app.
* copy the contens of public/dist/brandable_css to a folder
* check this commit out
* run brandable_css again and diff the output of that folder with
the old folder.
* there should be absolutely no changes
* verify that for the "_rtl" variants, the right and left values are
swapped whenever they need to be.
With both this and the next commit that does all the RTL js changes
for slickgrid checked out:
* turn on the RTL feature flag and browse around, all the grading pages
should be RTL and all of the margins, padding, spacing, arrow
icons, etc. should be flipped and make sense for an RTL layout.
Change-Id: I896fe581f1ec91383387d34055509bea5b5c41b9
Reviewed-on: https://gerrit.instructure.com/145412
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
Tested-by: Jenkins
Reviewed-by: Jeremy Neander <jneander@instructure.com>
QA-Review: Tucker McKnight <tmcknight@instructure.com>
QA-Review: KC Naegle <knaegle@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>