Commit Graph

3629 Commits

Author SHA1 Message Date
Joel Hough 3a2ddb89fe hide "scores in email" notification setting if disabled by root account
fixes CNVS-21773

- enable 'Students can opt-in to receiving scores in email
 notifications' account level setting
- wait for caching (a minute or two)
- view notification preferences
- ensure the 'Include scores when alerting about grade changes'
 check box is visible
- disable the 'Students can' account level setting
- wait for cache
- view notification preferences
- ensure the 'Include scores' check box is not shown

Change-Id: I42ae9b79d736a04fe7382f33847aa70793db7f5c
Reviewed-on: https://gerrit.instructure.com/63811
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
Tested-by: Jenkins
QA-Review: Adrian Russell <arussell@instructure.com>
Product-Review: Peyton Craighill <pcraighill@instructure.com>
2015-09-30 22:22:12 +00:00
Abhishek Singh 4ba84e29a4 adds UI & backend for offline content
fixes CNVS-21793, CNVS-21794, CNVS-21795

- Adds EpubExport model to manage state of generated epubs.
- Adds controller to list, create & show epub exports.
- Adds a mini react app to manage UI for creating epub exports.
- Adds shared ApiProgressBar react comoponent to diplay a progress bar
  that polls the progress API.
- Updates ContentExport to have a relationship with EpubExport.

test plan:
- Navigate to `/epub_exports`.
- Observe a list of courses that are active & user is enrolled in.
- Click on the Generate button.
- Observe that info about the state of the export and the timestamp are
  added to the middle of the row.
- Observe that a progress bar is displayed while the export is in
  progress.
- Observe that upon completion, the progress bar is replaced by two
  button / links: Download & Regenerate.
- Observe that Download at the moment does nothing... this is because
  the backend is not yet hooked up to generate the epub.
- Observe that the Regenerate button triggers the process all over
  again.

Change-Id: I6cd844baa06db0c6648ad19389d235b89659919c
Reviewed-on: https://gerrit.instructure.com/62135
Tested-by: Jenkins
Reviewed-by: Matt Berns <mberns@instructure.com>
QA-Review: Adam Stone <astone@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2015-09-30 16:22:18 +00:00
Brad Horrocks 18e5369ef7 DRY Up LTI Tool links
We can now use context_external_tools_helper to update lti links inside
erbs

Fixes PLAT-1242

Test Plan:
Add an LTI tool using [this
xml](https://gist.github.com/defektive/dbd182cb04500e236bde) or use
[this
url](4a7939ccb4/canvas_icon_class-lti_test.xml)

check the following cog menus for functioning LTI links
- assignments
- quizzes
- modules
- discussions

Check the following right side menus for functioning LTI links
- Course Home
- Course Settings

Change-Id: I75f6cf7c5b3e73b25f8bd6c20404e7379bc46ce6
Reviewed-on: https://gerrit.instructure.com/63620
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
2015-09-29 17:46:22 +00:00
Steven Burnett 6ff4a1b420 fix the timezone problem with recurring events
fixes CNVS-23174

Test Plan:
1. Log into a course as a teacher.
2. Navigate to the Calendar.
3. Click a date like September 14th 2015, and add a new event to the COURSE calendar.
4. Click More Options on the event modal.
5. Check the Repeat checkbox at the bottom.
6. Make the event a larger range so it goes into November, such as every 2 weeks for 4 occurences.
7. Check the count box for good measure and easy reading event names, then click Create Event.
8. Go to the teacher's settings and make sure the time zone is set to Mountain Standard Time, and check the month or agenda view.
9. Verify the times don't start changing to an earlier hour until november 9th, after Daylight Savings time.
10. Change the user's time zone to UTC +1, (Amsterdam or Berlin) and check the calendar dates again.

Change-Id: I9cce9e03fb8b8601eea6c184a1094cee182fd3e9
Reviewed-on: https://gerrit.instructure.com/64150
Reviewed-by: Alex Boyd <aboyd@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Tested-by: Jenkins
QA-Review: Adrian Russell <arussell@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
Product-Review: Steven Burnett <sburnett@instructure.com>
2015-09-29 17:21:10 +00:00
Cody Cutrer 946bb4a980 allow setting authentication provider for the initial login created with a user
test plan:
 * pass a valid value for pseudonym[authentication_provider_id] to create user
   API
 * the user's initial pseudonym should be associated with that auth provider

Change-Id: Ibfe78a2154b52afd4f98c62862d52365a54ec0d6
Reviewed-on: https://gerrit.instructure.com/62039
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-09-29 05:34:04 +00:00
Cody Cutrer 72d8de6429 add sis user id support to group memberships API
fixes gh-695

test plan:
 * enroll a user with an SIS ID in a group
 * you should be able to use the API to do
   DELETE /api/v1/groups/<group_id>/users/sis_user_id:<sis id>
   (assuming proper permissions)

Change-Id: Idf07a28eabc53fbe604efac8f96b56ed8120ff57
Reviewed-on: https://gerrit.instructure.com/63681
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-09-29 05:32:53 +00:00
Joel Hough 77ec590589 don't check all shared contexts if one is specified in conversations api params
fixes CNVS-23342

test plan
- regression test creating conversations, adding messages, and
 adding recipients

Change-Id: I0fc3ed17089118806acbc5cc5e2bf31ccd6b9cbe
Reviewed-on: https://gerrit.instructure.com/63632
Tested-by: Jenkins
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
QA-Review: Heath Hales <hhales@instructure.com>
Product-Review: Joel Hough <joel@instructure.com>
2015-09-29 00:27:47 +00:00
Jeremy Stanley 3a67ed2ec0 move provisional grade endpoints to provisional_grades_controller
also add beta documentation for these endpoints and the
moderation set API endpoints

test plan:
 - specs cover the controller/route change
 - render documentation and sanity check the
   Moderated Grading page (noting the beta tag)

closes CNVS-23310

Change-Id: I64517184fc38d5af0cd7d088222fd5131534e448
Reviewed-on: https://gerrit.instructure.com/63682
Tested-by: Jenkins
Reviewed-by: James Williams  <jamesw@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2015-09-28 21:05:39 +00:00
Rob Orton d252a7f2b4 mobile css and js overrides
closes CNVS-19900

test plan:
 - create a brand_config for an account
 - apply brand_config
 - add ?mobile=1 to an api request that returns a
   body (like a wiki page);
   observe no additional stylesheets in the body
 - go to /accounts/self/, and go to brand
   config and upload a mobile_css_override
 - add ?mobile=1 and check the api result again
   your stylesheet should be there appended to the
   body of the wiki page
 - back in brand_config, remove the uploaded file
 - check your source again - there should not be
   an empty stylesheet tag

Change-Id: Ief728a397d185282a57f8cede0916c7ffe4a2584
Reviewed-on: https://gerrit.instructure.com/61885
Tested-by: Jenkins
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2015-09-28 19:24:55 +00:00
Sterling Cobb 7134c7c828 show radio buttons for moderation set grades
fixes CNVS-23417

This will show radio buttons next to grades for moderation sets. It
also adds urls for the speedgrader.

Test Plan
- Go to an assignment with students that are being moderated then.
- Make sure non of them are added to the moderation list
- there should only be one column represented
- add a student to the moderation set
- notice there are now 4 columns, 3 for the mark, 1 for the final mark
- you should also be able to click on on the speedgrader links

Change-Id: I1e0be0195ffa95d6b43d738178ffd0dcb75832bd
Reviewed-on: https://gerrit.instructure.com/63833
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2015-09-28 16:29:32 +00:00
Mark Severson 3b4206eaa6 add code to sis assignments api errors
test plan:
 * manually exercise the sis assignments api (accounts & courses)
 * ensure that the errors produced include a code
   * gpb not configured & post grades tool not installed
   * unpublished course

fixes SKYW-56

Change-Id: I85873fbbe6e6a32f40a72657adedbb877e1672f9
Reviewed-on: https://gerrit.instructure.com/63503
Tested-by: Jenkins
Reviewed-by: Jonathan Featherstone <jfeatherstone@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Mark Severson <markse@instructure.com>
2015-09-25 22:35:17 +00:00
Jeremy Stanley c9856738d8 copy to final provisional grade
test plan:
 1. create a moderated assignment
 2. associate a rubric with the assignment
 3. add a student to the moderation set, using g/63360, or if that's
    not available yet, the Rails console:

assignment.moderated_grading_selections.create! student: student

 4. submit to the assignment as a student
 5. grade the assignment as a TA in speedgrader, commenting and marking
    the rubric in the process
 6. as a teacher, view the submission using the "Get a single submission"
    API endpoint, including provisional_grades, submission_comments,
    and rubric_assessment

GET /api/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}?include[]=provisional_grades&include[]=submission_comments&include[]=rubric_assessment

 7. retrieve the provisional_grade_id from the above, to use in the next step
 8. as a teacher, call the copy_to_final_grade endpoint to copy the TA's
    provisional grade to the "final" provisional grade editable by
    moderators

POST /api/v1/courses/{course_id}/assignments/{assignment_id}/provisional_grades/{provisional_grade_id}/copy_to_final_mark

 9. as a teacher, repeat the GET from step 6 and ensure that the provisional
    grade appears twice, once with the TA as the scorer_id and once with the teacher
    - the teacher's entry should have final=true while the TA's is false
    - the comments and rubric assessment written by the TA should be included
      in the teacher's provisional grade, but still attributed to the TA's user id

closes CNVS-23300

Change-Id: Id09f828ddb4c262ef5452a62702a3a1828091486
Reviewed-on: https://gerrit.instructure.com/63563
Reviewed-by: James Williams  <jamesw@instructure.com>
Tested-by: Jenkins
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2015-09-25 22:24:23 +00:00
Clay Diffrient f0c4a8610f Make + Reviewers operate on the moderation set
refs CNVS-22002

Test Plan:
  - Load up a moderated assignment's moderate page
  - Click a few of the checkboxes
  - Click the + Reviewer button
  - A success flash message should appear
  - The previously selected checkmarks should still be selected
    but should now be disabled.
  - Refresh the page, the same ones should be disabled still

Change-Id: Ia828ad7e28d692f93aa0c1404a53d293290fc083
Reviewed-on: https://gerrit.instructure.com/63275
Tested-by: Jenkins
Reviewed-by: Sterling Cobb <sterling@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2015-09-25 19:36:50 +00:00
James Williams 9d9e91e137 show 2 marks to moderators in speedgrader
test plan:
* create a moderated assignment with some student submissions
* ta's should still only be able to see their own mark

* when there are no marks, teachers should only see their own
* if there are multiple marks, teachers should be able
 to see the marks that other people have made (in a readonly
 state)
* teachers should still be able to edit their own marks
* they should be able to make changes, then switch to the other
 mark and back, and have their changes still reflected in the ui

* provisional grade switching should work with crocodoc annotations

closes #CNVS-23030 #CNVS-23032 #CNVS-23029

Change-Id: I9314afff929aca58d6981dd2b9dc6724265409fb
Reviewed-on: https://gerrit.instructure.com/63698
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2015-09-25 15:07:30 +00:00
Abhishek Singh d7bd7656d9 Cancel option on Discussions/Announcements
FIxes CNVS-11245

Test Plan
 - There should be cancel option for editing or creating
    discussions and announcements

Change-Id: I58f0621404e31c637fcd075a59a244e73224e274
Reviewed-on: https://gerrit.instructure.com/60824
Reviewed-by: Brian Finney <bfinney@instructure.com>
Tested-by: Jenkins
QA-Review: Adam Stone <astone@instructure.com>
Product-Review: Jason Sparks <jsparks@instructure.com>
2015-09-24 21:56:01 +00:00
Josh Orr 012e499bbe Add user_observees using authorization token
Adds the string param access_token to the POST users/self/observees endpoint.

Allows for adding cross shard and 3rd party authed observees.

Fixes PLAT-1233

Test Plan:

Create shard for parents
Create shard for students
Create student accounts
Create a course in students
Generate student keys
Self register a parent in parent shard
Observe a student through ui
generate parent key
Observe a student through api/key

Change-Id: I1436d3c713b7a569ae78251fd7efc57ef2d41088
Reviewed-on: https://gerrit.instructure.com/63556
Tested-by: Jenkins
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brad Humphrey <brad@instructure.com>
2015-09-24 19:03:38 +00:00
Derek Bender 6258bd46a6 ensure a user's enrollments api works when given a grading period
fixes CNVS-22526

Test plan:

1. Obtain an account-level grading period id. A list of all
    grading period ids can be accessed through:
      /api/v1/accounts/self/grading_periods
2. Create a course and enroll a student in it. Note the
    student's id from the course's people page.
3. Create an assignment in the course due during the
    grading period.
4. Navigate to the gradebook, set the account-level
    grading period, and verify the assignment is in it.
5. Give a grade to the student's assignments
6. Call the API and verify that it responds with data.
    The response will contain "grades" which should
    correspond exactly to the info for the student in the
    grading period.
    The API itself will look like:
    /api/v1/users/:student_id/enrollments?grading_period_id=:grading_period_id

Change-Id: I6c1080345a338750402e86194503f3b0911a4da9
Reviewed-on: https://gerrit.instructure.com/63215
Tested-by: Jenkins
Reviewed-by: Keith T. Garner <kgarner@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Jason Carter <jcarter@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
2015-09-24 16:19:16 +00:00
Jon Willesen 6d1583d535 record real user when error report is submitted in student view
It looks like the user data in the error report should propagate through the ticketing plugin to the ticketing system. Only do this for the student view; other masquerades should behave as before and report the target user because admins tend to use this to submit error reports on the behalf of users.

fixes CNVS-12708

test plan:
 - Submit an error report in stuent view of a course. It should record the real user in the created error_report and not the test student
 - Submit an error report while masqueraded as another user. It should record the target user's information in the error_report

Change-Id: I09c94c5ec753eb05f466a806f3967ea6712fff42
Reviewed-on: https://gerrit.instructure.com/62897
Reviewed-by: James Williams  <jamesw@instructure.com>
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
Tested-by: Jenkins
QA-Review: Charles Kimball <ckimball@instructure.com>
Product-Review: Dan Minkevitch <dan@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
2015-09-24 14:40:57 +00:00
Brandon Broschinsky b5fc2545eb addded documentation for include options of course and user
Change-Id: I284a5bb35c435be9230634ac40500d58e04ec89b
fixes: PFS-2725
Reviewed-on: https://gerrit.instructure.com/62917
QA-Review: Michael Hargiss <mhargiss@instructure.com>
Tested-by: Jenkins
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
Product-Review: Ryan Taylor <rtaylor@instructure.com>
2015-09-24 00:38:11 +00:00
Cody Tanner afd4fce104 adds ability to filter quiz statistics by section
closes PFS-2226
Tests:
1. Create a course with two or more sections
2. Create a Quiz with submissions.
3. with student A submit a submission to the quiz in the first section
4. With Student B submit a submittion to the quiz in the second section
5. As a teacher navigate to the quiz statistics section and view the
results
6. By default all submission will show, once you select a section only
that sections results will show.
Change-Id: Ifd32bbfb67068008f008b8323a10b9ea18a67468
Reviewed-on: https://gerrit.instructure.com/58962
Tested-by: Jenkins
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
QA-Review: Michael Hargiss <mhargiss@instructure.com>
Product-Review: Jason Sparks <jsparks@instructure.com>
2015-09-23 23:54:28 +00:00
Michael Nomitch 995f829eb1 register users with active com channels
fixes CNVS-22713

test plan:
  - create user via API with params
    - pseudonym: {"send_confirmation": "0"}
    - user: {"terms_of_use": "1"}
    - communication_channel: {"skip_confirmation": "1"}
  (note: we recommend against this combo but allow it)
  - log in as them and go to /profile/settings
  - in a console -> change the user workflow_state to
    "pre_registered" and save
    (there may be an unrelated bug & you have to save twice)
  - there is a link to send an email confirming registration
  - click link to send
  - get the URL from the message and (without being logged
  in as another user) go to that url
  - you are redirected to the main page with a flash confirmation
  - if you go back to /profile/settings you dont see that message

Change-Id: I5121c1aef7034eb74ab42b86667858274f9e32e3
Reviewed-on: https://gerrit.instructure.com/62741
Tested-by: Jenkins
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
2015-09-23 19:52:32 +00:00
Clay Diffrient f196b43070 Makes the "Show All Pages" button disappear if the Pages link is disabled
fixes CNVS-18288

Test Plan:
  - Disable the Pages item on the course navigation
  - Go to a Page in the course (via url or module)
    as a student.
  - You should not see a "Show all Pages" link on the page
  - As a teacher do the same, the "Show all Pages" link
    should be there again.
Change-Id: I13e85e66128b1254fb3c9bb34c456a382bcb0a5c
Reviewed-on: https://gerrit.instructure.com/62393
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Tested-by: Jenkins
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2015-09-23 16:23:48 +00:00
Cody Cutrer f76df1dc0f fix deep linking from Office documents
fixes CNVS-23333

test plan:
 * set up a link to say http://canvas.dev/accounts/self in an Word
   document
 * be not logged in to canvas yet in your browser
 * click the link
 * after you log in, you should be at the accounts page, not the
   dashboard
 * click the link again
 * you should end up at the accounts page again (it doesn't make
   you log in again)

Change-Id: Idd1643be569825b8e9b9a9eae0c5409ebb4df911
Reviewed-on: https://gerrit.instructure.com/63701
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-09-23 03:37:30 +00:00
Cameron Matheson ed8ccffa9b moderated grading selection api
fixes CNVS-23025

Test plan:
  * enable moderated grading for a course
  * use this API to add/view students in moderation for an assignment

Change-Id: Ibdff68e91652c223d30d541a92af7c2728f7c897
Reviewed-on: https://gerrit.instructure.com/63360
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2015-09-22 22:58:05 +00:00
Clay Diffrient 25edf74d42 Move Moderated Grading to Redux
This is an initial stab at the conversion.  It gets most of the
boilerplate stuff in and working.

It also handles converting over the publish button.

closes CNVS-23313
closes CNVS-23037
closes CNVS-22746

Test Plan:
  - Set up your environment to function with moderated grading stuff
  - Go to a moderated grading assingment as a teacher
  - You should see the list of students that can be moderated
  - Test Plan from CNVS-22746:
    - Activate Moderated Grading feature flag
    - Create an assignment that is moderated
    - Submit a few assignments as students
    - Go to speedgrader on those assignments and give
      an initial grade
    - Go to the assignment page as the teacher and
      click the "Moderate" button
    - Click the "Publish" button
    - A confirmation box should appear
    - Cancelling should do nothing
    - Confirming should then flash a green success flash message
    - The grades should now be published to the gradebook.
  - The publish button should be disabled after doing the previous steps.
  - Refreshing the page should still have the button disabled.

Change-Id: I15f4bc5d71f7bd3120c4c2ba2d4d239e8ad22db7
Reviewed-on: https://gerrit.instructure.com/63547
Tested-by: Jenkins
Reviewed-by: Jon Willesen <jonw@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2015-09-22 21:37:08 +00:00
Michael Nomitch 8f443fe92d subaccount theme progress bars
fixes CNVS-22541

test plan:
  - go to account that has sub accounts
    with their own themes already made
  - redo the style of the parent account
  - hit Apply
  - you see the progress of each of the children
  - each child progress bar goes away when
    it is done
  - once all are done you are redirected to the
    account settings page

Change-Id: I109ed9f17acd549dc527a3c62813aeb3ab1bc634
Reviewed-on: https://gerrit.instructure.com/62392
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
Product-Review: Colleen Palmer <colleen@instructure.com>
2015-09-22 16:17:59 +00:00
Matthew Wheeler 079e0e0b2e Don't invite users with concluded enrollments to conferences
Fixes CNVS-20701

Test plan:

1. Create a course with several students, and conclude the enrollment of
one of them.
Create a conference, checking the "Invite all" option
Verify the concluded enrollment students are not invited

2. Try those steps again with a course-level group (invite several memebers, then
conclude the course enrollment of a user)

3. Try conference creation in an account-level group

4. Regression test inviting users to conferences, include group conferences
and account level group conferences

Change-Id: I8a6f255938d1910851e7d3d640b271648a61fd37
Reviewed-on: https://gerrit.instructure.com/63118
Reviewed-by: Joel Hough <joel@instructure.com>
Tested-by: Jenkins
QA-Review: Adrian Russell <arussell@instructure.com>
Product-Review: Matthew Wheeler <mwheeler@instructure.com>
2015-09-22 15:18:13 +00:00
James Williams 3d62ae80a8 turn on and remove nc_or feature flag
closes #CNVS-22745 #CNVS-22790

Change-Id: I7e3287c6e4a55d2f735004b2f58470ec62471e50
Reviewed-on: https://gerrit.instructure.com/62948
Tested-by: Jenkins
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2015-09-22 12:16:39 +00:00
Cody Cutrer 1426c305f3 don't force logout mid-MFA workflow due to spurious XHR
test plan:
 * get the MFA screen during login
 * force an XHR (via javascript console?)
 * it should return 403
 * reload the page
 * it should not make you log in again (watch network requests if
   you're using SSO to make sure it doesn't send you back to SSO)

Change-Id: Idc35b99fecfb204ef3da1538661aa52a30db0f15
Reviewed-on: https://gerrit.instructure.com/63505
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-09-21 22:06:53 +00:00
Rob Orton e6e9103726 don't blow up if @js_env is not set
Change-Id: Ic74ae9396345cd630f3121e4fd9ce40acf3dc251
Reviewed-on: https://gerrit.instructure.com/62115
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
2015-09-21 20:36:05 +00:00
James Williams c6c1937b7c check whether provisional grades are needed on student switch
test plan:
* in addition to the test plan for g/63441, it should
 lock provisional graders out if another provisional grader has
 made a mark *after the first one has loaded speedgrader* but before
 they've switched to the student's submission view
 (by going back and forth in speedgrader)

closes #CNVS-23282

Change-Id: Iff45f1424c1b0815bfe30de58d5aa5412d1e5a4f
Reviewed-on: https://gerrit.instructure.com/63515
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2015-09-21 19:05:09 +00:00
James Williams c5837b8528 allow users to view question banks without edit rights
also solidify question bank rights around :read_question_banks

test plan:
* create a teacher who is restricted from editing a course
 through term enrollment dates
* they should see a link to view question banks through
 the quizzes page
* they should be able to view question banks

* this should also apply to account admin roles with
 "View course content" and "View and link to
 question banks" enabled but not "Manage assignments"

closes #CNVS-22457

Change-Id: Iea5fe2e7a4dfcee5f7a68e307bf3d9e33ee14c9a
Reviewed-on: https://gerrit.instructure.com/62894
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
QA-Review: Charles Kimball <ckimball@instructure.com>
Product-Review: Cosme Salazar <cosme@instructure.com>
2015-09-21 18:36:21 +00:00
Brad Horrocks a11fdec9f6 Make LTI configurations accept canvas icon class
Support passing a class for an icon for styling goodness.

added support for `canvas_icon_class` allowing use od css classes from canvas
style guide which can make it look better and maintain our styling
standards.

Fixes PLAT-1222

Test Plan:

prereq's
- "LOR External Tools" feature flag enabled
- (notice the lack of lti example tool, you dont need it)

A new commons icon has been added so you should probably run the
following
`bundle exec rake brand_configs:clean canvas:compile_assets`

Add a new LTI tool to the account using [this xml](https://gist.github.com/defektive/dbd182cb04500e236bde)
check placements to make sure they show a fancy new icon instead of a
crappy star. course_home_sub_navigation should show up as the commons icon

placements to look at
:assignment_menu - cog on an assignment
:course_home_sub_navigation - right side of page
:course_settings_sub_navigation
:discussion_topic_menu
:file_menu (no icon)
:global_navigation (no icon)
:module_menu
:quiz_menu
:wiki_page_menu

Change-Id: Ib462e928a5a3811df490f9bf2441b755db2882a9
Reviewed-on: https://gerrit.instructure.com/62492
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
2015-09-21 17:59:40 +00:00
James Williams 71a64419a0 lock provisional graders from speedgrader when marks are made
test plan:
* enable moderated grading for a course and assignment
* have some students with submissions
* as a provisional grader (e.g. TA or teacher)
 should not be able to add a provisional mark for a student
 if someone else has already made one

(it should hide the grading sidebar and add a message)

* once students can be selected for moderation, it should
 let graders make one more mark

closes #CNVS-22018

Change-Id: I728380b169fdf40663f8216dc2723d83f5523eb0
Reviewed-on: https://gerrit.instructure.com/63441
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
2015-09-21 14:22:53 +00:00
James Williams 2dad511048 preload attachments in calendar events public feed
test plan:
* basic regression test the calendar events public feed api

closes #CNVS-22774

Change-Id: I0a21788d25c63b404a4c6410f5d01e785bed1ed8
Reviewed-on: https://gerrit.instructure.com/62941
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Charles Kimball <ckimball@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams  <jamesw@instructure.com>
2015-09-21 14:22:26 +00:00
James Williams df8399a834 performance improvements for assignment overrides, etc
- preload context module data for student assignments
 in calendar_events_api (improves locked_json)
- preload adhoc assignment overrides
 (i.e. assignment_student_overrides) instead of doing
 N+1 queries
- search the preloaded assignment_overrides when possible
 instead of calling yet another query

test plan:
* regression test assignments api index, assignment groups
 api index, calendar events api index, in particular
 with regards to assignment overrides

refs #CNVS-22774

Change-Id: I5c027e346c733ce0dac2fcd702c5272ff861d1b3
Reviewed-on: https://gerrit.instructure.com/62892
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Charles Kimball <ckimball@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams  <jamesw@instructure.com>
2015-09-21 14:22:16 +00:00
James Williams d0689a15a2 improve performance in assignments/assignment groups api index
test plan:
* assignments and assignment groups api index should
 work as before

closes #CNVS-22864

Change-Id: I4b72f0fd5d5a8dc40a7669ee3929c60ddc401114
Reviewed-on: https://gerrit.instructure.com/62851
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Charles Kimball <ckimball@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams  <jamesw@instructure.com>
2015-09-21 14:22:05 +00:00
James Williams 72dd59c063 paginate assignment groups api index
test plan:
* regression test the assignment groups api index
* regression test of the assignments page (make sure it's
 loading the assignments and groups correctly)

refs #CNVS-22864

Change-Id: I1df025be1c85c6569ff146347128fd480d2205b0
Reviewed-on: https://gerrit.instructure.com/62832
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2015-09-21 14:21:52 +00:00
Jeremy Stanley cc584d67da select_provisional_grade endpoint
test plan:
 1. have a moderated assignment and at least one student
    selected for moderation
 2. as two different TAs, give provisional grades to a student
 3. use the "list gradeable students" endpoint with
    include[]=provisional_grades to see the provisional_grade_ids
    for the two grades
    (see https://gerrit.instructure.com/#/c/63092/)
 4. use the "select provisional grade" endpoint to select one
    of these provisional grades for publishing
    PUT /courses/X/assignments/Y/select_provisional_grade/Z
    where Z is a provisional_grade_id from step 3
 5. the response from step 4 should be a simple json object
    repeating the course, assignment, and provisional grade ids
 6. redo the endpoint from step 3 to confirm the provisional
    grade was actually selected (a selected_provisional_grade_id
    will be returned along with the student whose grade was
    selected)

fixes CNVS-23132

Change-Id: Ic05bce9685f6b246ee8e484523d51a9a014fb517
Reviewed-on: https://gerrit.instructure.com/63356
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Tested-by: Jenkins
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2015-09-18 21:09:49 +00:00
Brandon Broschinsky a25fe068c9 add notes option in scheduler
fixes: PFS-2584

**Test Plan
1. create new appt. group
2. as student reserve a slot in the appt. group
3. enter comments for the appt. and save
4. validate that on appt. popup it shows entered comments
5. as teacher view the appt. group slot the student reserved
6. should show comments the student entered.

Change-Id: I6e20c16da1fcbf1555ac22c011b2bf7a5db8eb67
Reviewed-on: https://gerrit.instructure.com/63129
Tested-by: Jenkins
QA-Review: Adrian Russell <arussell@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
Product-Review: Peyton Craighill <pcraighill@instructure.com>
2015-09-18 20:31:08 +00:00
Jeremy Stanley 4a078f97b0 publish selected provisional grades
test plan:
 - have a moderated assignment and add some users to moderation
   (leave some users out of the moderation set)
 - as two separate TAs, create provisional grades
   for the students in the moderation set
 - also create one provisional grade for each student that
   is not in the moderation set (eventually speedgrader will
   prevent you from creating more than one)
 - as a moderator, select provisional grades on the moderation
   page
 - ensure that the correct provisional grades are published:
   - for students in the moderation set, the grade selected
     by radio button
   - for students not in the moderation set, the one and only
     provisional grade

fixes CNVS-23036

Change-Id: Icf0919d65648e48e31322e09318bff00a1e98949
Reviewed-on: https://gerrit.instructure.com/63313
Tested-by: Jenkins
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Reviewed-by: James Williams  <jamesw@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2015-09-18 19:49:53 +00:00
Clay Diffrient 8e76ab59e1 Adds publish button and header for moderated grading
This also slightly modifies permissions checks in
the show_moderate action to make a little more sense
and be less repetitive.

closes CNVS-22746

Test Plan:
  - Activate Moderated Grading feature flag
  - Create an assignment that is moderated
  - Submit a few assignments as students
  - Go to speedgrader on those assignments and give
    an initial grade
  - Go to the assignment page as the teacher and
    click the "Moderate" button
  - Click the "Publish" button
  - A confirmation box should appear
  - Cancelling should do nothing
  - Confirming should then flash a green success flash message
  - The grades should now be published to the gradebook.

Change-Id: I71861476d9bc11aeb143860c76929b8412fd6552
Reviewed-on: https://gerrit.instructure.com/62339
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Dan Minkevitch <dan@instructure.com>
Tested-by: Jenkins
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2015-09-18 17:10:18 +00:00
Nathan Mills f4171754cf add split secret support for lti 2
fixes PLAT-1134

test-plan:
install an LTI 2 tool  using the test tool
the secret should be 256 char long
the enabled capability on the tool proxy should have Oauth.splitSecret

Change-Id: I0641f17b9b52207362dfa7437d440feae2ef8f3e
Reviewed-on: https://gerrit.instructure.com/57292
Tested-by: Jenkins
Reviewed-by: Brad Humphrey <brad@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nathan Mills <nathanm@instructure.com>
2015-09-18 16:41:04 +00:00
Rob Orton dbf007afca don't show deleted groups in admin page
fixes CNVS-23225

test plan
 - see ticket

Change-Id: Ib688992ef51df89b19aacbef0bdd8a4dc0891367
Reviewed-on: https://gerrit.instructure.com/63417
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2015-09-17 22:03:15 +00:00
Simon Williams 5941f7bd58 api: correct course users docs to allow array param
fixes gh-653

test plan:
- generate the api documentation
- look at the "List users in course" section
- it should indicate "enrollment_type[]" which means it can be treated
  like an array of values

Change-Id: Ia1eba7cb7336ccfc56cc3ad31922a6ad3fa1c363
Reviewed-on: https://gerrit.instructure.com/59567
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
2015-09-17 21:13:28 +00:00
Josh Orr dd185220bf Add group favorites
Adds group context to user's favorites.  Adds favorite_for_user? method to groups.
Adds get "users/self/favorites/groups"
     post "users/self/favorites/groups/:id"
     delete "users/self/favorites/groups/:id"
     delete "users/self/favorites/groups"
endpoints to favorites api.

Corrected get "users/self/favorites/groups" to return all user's groups if no groups are favorited.

Adds ?include[]=favorites option to groups api.

Fixes PLAT-1213

test-plan:
Using PostMan or other API test tool:
List group favorites using either the Group or favorite endpoint, verify that the test user has no group favorites
Add 4 groups and make the test user a member of 3 of them
Use the favorites endpoint to add 3 of the test group as  favorites.
List group favorites using the endpoint not used above.  Verify that 3 of the groups are favorites and one is not.
Use the favorites api to remove one of the groups from favorites
List group favorites and ensure that the 2 correct groups are marked as favorites
Use the favorites api to clear all group favorites
List group favorites to ensure that there are no group favorites

Change-Id: Id7b92126f9c2a34b3a301640e925aa26c494c26a
Reviewed-on: https://gerrit.instructure.com/62301
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Product-Review: Matthew Rice <mrice@instructure.com>
2015-09-17 19:22:54 +00:00
Cody Cutrer 2e5d300041 some optimizations for DiscussionTopics#index
avoid an unnecssary join, and an unnecessary round-trip through ruby

test plan:
  * load discussions page for a course

Change-Id: I22f7cecb9a83e2112bddb9ed0f1e4fa0e17f83b1
Reviewed-on: https://gerrit.instructure.com/63419
Tested-by: Jenkins
QA-Review: August Thornton <august@instructure.com>
Reviewed-by: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2015-09-17 16:15:56 +00:00
James Williams ae670bc460 add final provisional grade marks
moderators should eventually be able to see and
edit the same provisional grade mark

closes #CNVS-23200

Change-Id: I7dde803439efac7287b225bd2d60c468f90cdec0
Reviewed-on: https://gerrit.instructure.com/63230
Tested-by: Jenkins
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
2015-09-16 19:03:13 +00:00
Brad Horrocks 1aff77fe8b allow deactivating developer keys
Fixes PLAT-1232

test plan:
* go to developer keys UI
* you should be to deactive and reactivate keys
* deactivate a key that you have a token for
* the token should no longer work, even though it's not expired

Change-Id: I7388226c710ab0841692902886a49146a037e615
Reviewed-on: https://gerrit.instructure.com/50008
Tested-by: Jenkins
Reviewed-by: Nathan Mills <nathanm@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Brad Horrocks <bhorrocks@instructure.com>
2015-09-16 18:31:33 +00:00
Jeremy Stanley c4fc2b6922 list-gradeable-students endpoint
test plan:
 - look at Submissions API docs for "List gradeable students"
   endpoint
 - confirm it returns the list of students who can submit the
   assignment
 - add the (currently) undocumented include[]=provisional_grades
   parameter and ensure:
   0. the call fails if the caller doesn't have moderate_grades
      permission
   1. in_moderation_set is returned for each student
      (currently false)
   2. selected_provisional_grade_id is returned for each student
      (currently nil)
   3. a list of provisional grades is returned for each student

fixes CNVS-23027
fixes CNVS-23133
fixes CNVS-23148

Change-Id: Ib79f8f04bd455575c4ae2e99c37763094f062982
Reviewed-on: https://gerrit.instructure.com/63092
Tested-by: Jenkins
Reviewed-by: Cameron Matheson <cameron@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
2015-09-16 16:55:14 +00:00