fixes CNVS-5680
test plan:
- create an account that has enable_draft enabled
- as a teacher within that account, create an assignment
- using the api, get that assignment and check for the 'published' flag
- there should be a 'published' flag that is either true/false
- now, turn off enable_draft on the account
- using the api, get that assignment and check for the 'published' flag
- there should not be a 'published' flag
Change-Id: I161e3144ca6b82e41e72d5dbb56bebcee03e6fa4
Reviewed-on: https://gerrit.instructure.com/20609
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
fixes CNVS-4818
test plan: enter a really long sis user id (> 255 chars) and verify that
you get a validation error when saving. try this both in the UI and
through the API/SIS.
Change-Id: I0190769af645011c2c7ad0b363bc1a1e7ad13487
Reviewed-on: https://gerrit.instructure.com/20631
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Duane Johnson <duane@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
test plan:
- as a few different students, take a quiz with at least two questions
that are file upload questions. Answer each question as each
student.
- as the teacher, you should see a "Download All Files" button on the
right on the Quiz Show Page next to "Quiz Stastics" and "Moderate
This Quiz".
- You should get a pop up that successfully downloads all the zips
(make sure you have delayed jobs running!). Make sure all the files
you submitted as the students are there, with the student's name,
user id, question number, and attachment display name in the
filename of each file.
closes CNVS-3048
Change-Id: I23cb2d4262bb0446476eeac4fdcb356e604e6a05
Reviewed-on: https://gerrit.instructure.com/20495
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Eric Berry <ericb@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
Not only is this unnecessary, but worse it changes the assignment's
resource_link_id, messing up any LTI tools that rely on that
parameter.
fixes CNVS-5884
test plan: Create an LTI assignment using any tool, and inspect the html
to view the launch parameters. Record the resource_link_id. Then edit
and save the assignment, and inspect the launch parameters again. The
resource_link_id should remain the same.
Change-Id: Ib2adcff90474cbb60a85c18b8f233f9fd9a1eff7
Reviewed-on: https://gerrit.instructure.com/20656
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
FIXES CNVS-5540
make graded notifications come from quiz
submissions and not from regular submissions
so that we can accurately differentiate
between "graded" and "regraded".
Also makes sure that no messages get sent until
after essay questions on quizzes are graded.
Finally extracts the quiz_submission broadcast
policy into it's own object because there's
a lot of repetition there (did the same
for submission broadcast policy since I
was touching it anyway, could be a good pattern
for other broadcast policy definitions)
TEST PLAN:
1) Log in as a student
2) take a quiz with an essay question
3) you should NOT get a notification
4) login as a teacher, and grade that quiz
5) the student should get a notification that
their quiz has been graded
6) that notification should NOT say that the
quiz has been RE-graded.
7) repeat, but grade from gradebook instead of
speedgrader
Change-Id: Id057f6d7abb64906c03334031d0d66af1e25adb2
Reviewed-on: https://gerrit.instructure.com/20511
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Reviewed-by: Cameron Matheson <cameron@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-1608
test plan:
* on a canvas installation with multi-tenancy enabled
and cassandra being used for global lookups, create
at least two accounts (A and B) on the same shard that
don't share domain names;
* create an active user account in account A;
* create a duplicate user in account B through an SIS
import;
* verify that the duplicate user receives a merge
notification and that the link in the email properly
references account A, while the domain in the
notification body references account B.
Change-Id: I44f84c082b319dd9129da8422a9e4c8c03103a13
Reviewed-on: https://gerrit.instructure.com/20615
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
fixes CNVS-3371
testing instructions:
=======================
* in a course on the "Collaborations" tab,
click the "Start a New Collaboration" button
* in "Document name" input text longer than 255
characters
* hit button "Start Collaboration", an error
ballon should appear on the document name input
telling the limit and offering a helpful hint.
Text: "Please use 255 characters or less for the name.
Use the description for additional content."
* verify a collaboration works when size is less than
or equal to 255 characters.
* verify the document name is still required
(i.e. can't be blank)
Change-Id: Iea6e5d5243389866f62ab24c6869361b6e3a4e47
Reviewed-on: https://gerrit.instructure.com/20602
Product-Review: Mark Ericksen <marke@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Mark Ericksen <marke@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
test plan: attachments should still upload and process as normal.
contexts should be touched after upload, for example if you upload a
file to a course, the course updated_at should change.
Change-Id: Ie05b535a0ae7638ffd66d60331d9bab9d2332dcc
Reviewed-on: https://gerrit.instructure.com/20584
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Paul Hinze <paulh@instructure.com>
QA-Review: Paul Hinze <paulh@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
refs CNVS-5846
test plan: load the ics feed for (a) course and (b) user, and verify
that assignments include a link to more details but no description
directly in the ics feed.
Change-Id: I58e4a78425cd2156de63dd7f6f90bb4f31918b36
Reviewed-on: https://gerrit.instructure.com/20579
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
fixes CNVS-5706
users are now able to toggle the discussion auto-mark
as read feature. this setting is user-level, and when
it is off, discussion entries will only be marked as
read when manually marked by the user.
manual marking is part of CNVS-5705.
test plan:
* create a discussion in a course;
* as user A, post an entry to the discussion;
* as user B, navigate to the discussions index page and
click the gear menu; check the "manually mark
posts as read" checkbox and save the setting;
* click into the discussion posted to by user A and
verify that user A's post is not automatically marked
as read;
* uncheck the "manually mark posts as read" checkbox
and save the setting;
* revisit user A's post and verify that is marked as
read without any input.
* repeat steps above twice: once with user B as a
teacher, once with user B as a student.
Change-Id: I2ff13705dfbee7d90e4e6c4003215d617fc0ef48
Reviewed-on: https://gerrit.instructure.com/20441
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Don't automatically mark a discussion entry as read if the user
manually marks the entry as unread.
fixes CNVS-5705
test plan:
- As one user, create a discussion with lots of posts.
- As a different user, go to the discussion, see the entries
are automatically marked as read. Don't scroll all the way
to the bottom of the discussion so there are still some
unread posts.
- Click the gray circle to manually mark some of the read
entries as unread.
- Refresh the page. The manually marked entries should show
as unread and should not be automatically marked as read.
- Scroll down. Unread entries that were not manually marked as
unread should still be automatically marked as read.
Change-Id: I963d1dea9fc961a28a0a5c488399d4e3964c8d10
Reviewed-on: https://gerrit.instructure.com/20414
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
test plan:
* refer to the API documentation to:
* create a module
* update existing module
* delete a module
* create a module item
* update a module item
* delete a module item
closes #CNVS-5534 #CNVS-5555
Change-Id: Icf13300d015e37bae636324a218ecf9ab9f2f8d0
Reviewed-on: https://gerrit.instructure.com/20200
QA-Review: Adam Phillipps <adam@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Fixes an issue where the submission that was being checked for never
existed (student2 was created in the previous revision of the spec, but
never used to set up a quiz submission). The change also change's the
students' submission's "updated_at" property so the CSV should have
the same row order every time.
test plan: specs pass.
Change-Id: I97584bf3a7980108f8608dfe891befe0dfdc4a6f
Reviewed-on: https://gerrit.instructure.com/20520
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Cody Cutrer <cody@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
add button to create item analysis report, and make student analysis
creation async. make both buttons show a progress indicator, and auto-
download the file when it's ready (or not, if you refresh the page)
test plan:
1. make sure delayed jobs are running
2. create a quiz that allows multiple submissions
3. have some students take the quiz
4. go to the quiz statistics page
5. click "Generate Item Analysis"
6. it should be generated and prompt you to download
7. the data should be useful/correct
8. click "Generate Student Analysis
9. it should be generated and prompt you to download
10. the data should be useful/correct
11. have another student take the quiz
12. you should be able to regenerate both reports
13. have a student retake the quiz
14. you should get the link to view stats for all submissions
15. you should be able to download a different "Student Analysis" report
for all submissions vs latest submission
16. the "Item Analysis" report should be the same for all submissions and
latest submissions
Change-Id: Ib6bfa259f386a6660a41cd7e093d3a6eb0119eda
Reviewed-on: https://gerrit.instructure.com/20137
Reviewed-by: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
fixes CNVS-1610
test plan:
- as a teacher create a quiz with multiple attempts, without essay questions
- as one student take and complete the quiz
- as another student, take, complete, start taking again, and then leave
without completing the quiz a second time
- as a teacher, your dashboard should not show a quiz needing grading
- as a teacher, both quizzes should show as graded in the speedgrader.
- now create a quiz with multiple attempts, with essay questions
- complete the quiz 1 time with 3 students
- as a teacher you should see 3 submissions needing grading on the dashboard
- grade two of them
- you should see one submission needing grading on the dashboard
- now start taking the quiz but don't complete it with one of the graded
students
- dashboard should still say one needing grading
- now start taking the quiz but don't complete it with one the ungraded student
- dashboard should still say one needing grading
Change-Id: I22927f13e69bcac533bcc936bba0a6ac335fde6d
Reviewed-on: https://gerrit.instructure.com/20467
Reviewed-by: Stanley Stuart <stanley@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
test plan:
- as a teacher, make a quiz with a file upload question (as well as
some other question types)
- have some students in the class take the quiz
- download the statistics csv and verify that:
- students that submitted a file for the file upload question have
the attachment's name in the column for that question
- students that didn't have a file upload for their submission for
the file upload question have a blank column where the filename
is for students that do have a submission
fixes CNVS-1157
Change-Id: I98e8a2236d344804e3c17cc00ab60c7013520eb6
Reviewed-on: https://gerrit.instructure.com/20280
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ryan Florence <ryanf@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
when a user explicitly logs out of one pseudonym session, invalidate all
the others
fixes CNVS-1923
test-plan:
- create a user in two different accounts
- log them in to both accounts
- click "log out" in one account
- should be logged out of both accounts
Change-Id: I79e70017d753c8201429901421e015f5d20e2000
Reviewed-on: https://gerrit.instructure.com/20096
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
fixes CNVS-4106
test steps:
- go to create a discussion topic and ensure that you can toggle between
the 'Graded' and non-graded availability dates. If the Graded is not
checked, you should see the Available From/Until.
- create a discussion topic with a past from and past until. ensure that
the discussion is locked for a student
- create a discussion topic with a future from and future until. ensure
the discussion cannot be seen by the student
- update the above created discussion topic and switch it to be graded
and set a future due, from, until date. ensure that the student cannot
see the discussion.
- edit the discussion and ensure that the graded checkbox is checked and
the group assignment fields are showing
- update the assignment with a past due, from, until and make sure the
discussion is locked for the student.
- do all above with current dates (from in past, until in future) and
make sure the student can see and reply to them.
- create an announcement and ensure that the functionality and forms are
the same as before
- verify that you are able to lock and unlock discussion topics on the
show view by using the gear drop-down
Change-Id: I99c9d54763fe3a74aa8a4bb37c22f09d4765d41e
Reviewed-on: https://gerrit.instructure.com/20339
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
test plan:
- go to the groups page of a course or account
/courses/*/groups or /accounts/*/groups
- edit a group category by clicking on the pencil icon or
click 'make a new set of groups'
- check the 'Allow self sign-up' checkbox
- a textbox should appear to limit group members
- enter a number (2 or 3) for the group limit and save
- add at least on group
- masquerade as students in the course and join a group until it's full
- once the group is full students should not be able to join the group
- also, when editing a group category you should be able to remove the group limit
Change-Id: I0d035320a171b03a7cd2e4d81ecb0648c5aacad0
Reviewed-on: https://gerrit.instructure.com/20309
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Product-Review: Joe Tanner <joe@instructure.com>
fixes#9725, fixes#9776, fixes#7311,
Test plan:
* go to the 'external tools' tab on the 'course settings' page
* create and edit some external tools
- make sure to omit fields or input invalid data and make sure you
get sensible error messages back
Change-Id: I88a7d5e439a27a599cbcfcfbd576434386949d35
Reviewed-on: https://gerrit.instructure.com/13332
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
fixes CNVS-5733
test plan: specs. it's difficult to get a submission version into this
state now that we do more validation.
Change-Id: I5c482198ff95ce93e09a1b373e4e7061da96984d
Reviewed-on: https://gerrit.instructure.com/20452
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
fixes CNVS-5532
test plan:
* create at least two students in a course with immediate
notification preferences;
* create a new assignment in their class with
automatically assigned peer reviews and online
submission;
* create a rubric for the assignment;
* as each of the two students, submit the assignment;
* wait for the assignment due date to pass, then check
each students' messages. verify that each has received
one notification about their peer reviews.
Change-Id: I2ef5be7fedfa775e8ed60aa80545c34e88a53623
Reviewed-on: https://gerrit.instructure.com/20321
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
QA-Review: Zach Pendleton <zachp@instructure.com>
test plan:
- enable the quiz file upload feature for your account.
- make sure you have s3 credentials for your Canvas installation
- as a teacher, create a quiz with some file upload questions
- as a student, take the quiz, making sure the following works:
- you should get a warning if you leave any questions unanswered
- you should see your file in the right spot if you refresh the page
- when you finish the quiz, make sure a link to the file shows up on
the quiz show page and the display name for that file is the same
name of the file you uploaded
- take the quiz again and make sure files you uploaded for hte
previous submission don't show up when you first take the quiz.
closes CNVS-1153
closes CNVS-5331
Change-Id: Id3f8706e87cef9876946b52fd564caf31f31e4b5
Reviewed-on: https://gerrit.instructure.com/20174
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Stanley Stuart <stanley@instructure.com>
test plan:
* create a course module with the option checked
"Students must move... in sequential order"
* Export the course and import it into another course
* or copy the course
* The new module should retain the setting
fixes #CNVS-1495
Change-Id: Iefe1782b3746eb4adcb47d03f6714443dbb91009
Reviewed-on: https://gerrit.instructure.com/20359
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
fixes CNVS-5505
This utilizes our after_transaction_commit callback mechanism to delay
uploading the file until the database trasaction is committed, so that
we aren't holding the transaction open for the entire upload to S3. At
best this causes <IDLE> transactions, and at worst it keeps other rows
locked for the duration of the upload.
It also introduces a new callback on AttachmentFu models,
after_save_and_attachment_processing, which is called like a normal
after_save when the attachment is uploaded immediately, and after the
attachment is uploaded (so after the transaction) when the upload is
delayed.
test plan: most attachment upload paths are covered by selenium tests.
for manual testing, we'll want to check each location in the application
where files can be uploaded for regressions. this includes anywhere that
a zip file is uploaded or generated and downloaded.
Change-Id: I033bd19d63a6becc421143c929dfe7c19c7f4e51
Reviewed-on: https://gerrit.instructure.com/20210
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Duane Johnson <duane@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
closes CNVS-2049
Test plan:
* download the gradebook csv in a course with unweighted assignment
groups. you should see "Current Points" and "Final Points" columns
* download the gradebook csv in a course with weighted assignment
* groups. there should not be any points columns
Change-Id: If795ab3dc0ae8a4fb84f29c9e759b463b7a14d04
Reviewed-on: https://gerrit.instructure.com/20189
Reviewed-by: Simon Williams <simon@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
fixes CNVS-620
test plan:
* create a course with at least two enrollees (A and B);
* as enrollee A, send a message to enrollee B;
* conclude the course, create a new course, and enroll
users A and B in it;
* as enrollee A, send a message to enrollee B and verify
that the message's tags update to include the new
course.
Change-Id: I36332c84a9602aee31b2e2ee1e73b12e87462e38
Reviewed-on: https://gerrit.instructure.com/20221
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
- update the Gemfile to be 1.9 only, and raise an exception on wrong
ruby version
- remove RUBY_VERSION checks, replacing with the applicable code
- remove the FasterCSV compatibility shim, just use CSV now
test plan: trying to bundle install on ruby 1.8 or 2.0 should raise an
exception, specs should pass, canvas should work as normal on 1.9
Change-Id: I49088e9d227c59c6d5d5acb417c2df971129474a
Reviewed-on: https://gerrit.instructure.com/19806
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Brian Palmer <brianp@instructure.com>
Rails 3 doesn't handle them, so just ignore them.
also fix api usage of pluck depending on an include
Change-Id: Ia39b8ef6e5f442f4f7b873ae3bd6839f0422b906
Reviewed-on: https://gerrit.instructure.com/20071
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
fixes CNVS-5480
testing direction:
==================
using both threaded and unthreaded discussions:
* create a discussion using two different users
* create discussion replies (entries) and verify
the "unread" count correctly changes
* delete an "unread" entry before the other
user has seen it. verify the unread count is
correctly updated.
* after deleting entries, verify the "total"
count is correct on the index and show pages.
* verify that the discussion's list page counts
match a specific discussion's show page counts
Change-Id: Id29ee1d03a60c6a78565661ee214bf9031fae69c
Reviewed-on: https://gerrit.instructure.com/20201
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
fixes CNVS-5309
test steps:
- as a teacher, create a few discussion topics with graded
checked and due, begin and until dates are in the future, past
and current.
- as a student, view the discussions list and ensure that the
present and past topics are visible but the future is not.
- click the past discussion topic and make sure you are able to
view the discussion but not reply to it.
- click the present discussion and make sure that you can reply
to it.
- as the student and teacher, ensure that the visible discussion
topics appear in the stream items (dashboard) and the future
do not (for the student).
Change-Id: Ibb0a3d05ae830e764c8068a6c9d4ead804e91139
Reviewed-on: https://gerrit.instructure.com/20082
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
closes CNVS-4188
Test plan:
* Follow the file upload api instructions but use
/courses/:course_id/quizzes/:quiz_id/quiz_submissions/self/files as
the end point
Change-Id: I12aea4332f149656f04d4a3253d99caa4abd3beb
Reviewed-on: https://gerrit.instructure.com/19799
Reviewed-by: Stanley Stuart <stanley@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
QA-Review: Cameron Matheson <cameron@instructure.com>
this is necessary since csrf protection is disabled for certain quiz submission
actions.
closes CNVS-3986
test plan:
- make sure taking a quiz and submitting still works normally
- make sure previewing a quiz still works normally
- create a new quiz
- start a quiz with one user, answer a few questions
- in a separate tab, log out and log in as another user
- if you change anything, you will get the "logged out" message
- if you try to quickly submit, the answers won't count for you
Change-Id: I2222975ea0cc6ecb346d03dc2077dc411e759084
Reviewed-on: https://gerrit.instructure.com/20051
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stanley Stuart <stanley@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-5572
test-plan:
- have page views enabled and processing through a redis queue
- generate a new page view from a user with non-UTC time zone
- process redis queue to persist page view
- reload page view and check created_at; should equal the time the
page view was created
Change-Id: I8fa4da8f81d7f18815ef9223decea433e9a71172
Reviewed-on: https://gerrit.instructure.com/20171
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
test plan:
* create a discussion topic in a course, checking
"allow threaded replies"
* copy the course
* the new discussion topic should retain the option
fixes #CNVS-1589
Change-Id: I0a37babac340c1f6ee869e4805217553d954e165
Reviewed-on: https://gerrit.instructure.com/20152
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
this commit is to help make canvas extensions more robust by
allowing tool level defaults and allowing both tool domains and launch
urls. Also added some helper methods for getting the correct properties,
and refactored to use the new helper methods.
Test Plan:
- Add a tool with both a domain and an launch url
- It should not give an error
- Add a tool configured with defaults for for canvas extensions
(such as icon_url, url, selection_height, selection_width, etc)
- Add a canvas launch (resource_selection, editor_button, course_navigation, etc)
with minimal configuration
- The canvas launch should inherit the properties from the extensions default
- Add an launch that has its own properties
- The launch should prefer its properties over the defaults
* should test that all launch types are accepting defaults
closes #CNVS-4498
Change-Id: I0dd4e78efb54db9c0cd1204383934db50f402674
Reviewed-on: https://gerrit.instructure.com/17715
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
fixes CNVS-5552
some requests may need to make several messageable_user related calls
for the same user. using a new calculator object for each skips any
in-object caching we've done, resulting in excessive cache traffic.
instead, reuse the same calculator object for any calls for the same
user during a request.
removes the convenience class methods on MessageableUser::Calculator
since (1) they're no longer used, and (2) the user's
messageable_user_calculator should be used instead.
test-plan:
- general conversation regression
- have redis caching set up
- create a user with multiple courses all with a common letter in the
title
- create multiple sections for each of those courses
- in the recipients field search for that character
- check logs; should not have excessive
context_permissions/courses/X/users/Y cache lookups
Change-Id: Ib015c59e7c735fca8ec5ba1998f08dff609e29d2
Reviewed-on: https://gerrit.instructure.com/20126
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
test plan:
* enable scheduler for root account by checking
the account setting boxes for "Enable Calendar 2"
and "Enable Scheduler"
* Through the scheduler:
* As a teacher, offer an appointment group for a course
* As a student, reserve an appointment for the course
* As the student, confirm that the appointment is shown
as an event on the course syllabus
* Confirm that the appointmet is not shown
as an event on the syllabus of a different course
fixes #CNVS-4649
Change-Id: If4ef716077b4323c54ed97ba24c5d8588082ac52
Reviewed-on: https://gerrit.instructure.com/20133
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
fixes CNVS-4959
(note that this does not cover the cross-shard links
from these assignments working correctly; that is a
separate issue)
test plan:
* enroll a user in courses in multiple shards
* assignments from all courses should show up in
/assignments regardless of current shard
Change-Id: Ic46711a31ddc573f124cad3ed2bc5abefd4646a9
Reviewed-on: https://gerrit.instructure.com/19234
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
closes #CNVS-4511
refactor of some of the QuizStatistics model so it can be used with multiple report types
test plan:
just ensure the current quiz stats page and csv report still work,
the item analysis UI commit will have a more comprehensive test plan
Change-Id: I2973a2e3aa572bc272c59b4b97015c7f93d756d7
Reviewed-on: https://gerrit.instructure.com/20057
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Joe Tanner <joe@instructure.com>
QA-Review: Joe Tanner <joe@instructure.com>
fixes CNVS-5478
Testing Notes:
================
* with a user that has conversations in their Inbox
that are spread across multiple shards, a JSON
request to /conversations.json should return
a hash with :conversations and :conversation_ids.
The list of IDs uses the "pluck" command which is
not currently working across shards with the way
associations were being included for this query.
With this fix, the :conversation_ids list should
include the IDs of at least all of the
conversations JSON objects returned.
Change-Id: I718e9ea1e714f9a931ebf28a26389746e093a425
Reviewed-on: https://gerrit.instructure.com/20040
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
replaced the mailman gem with custom code with more error
handling. this will allow the incoming message processor to
continue processing messages after encountering a message with
an encoding or parsing error. the broken messages will be moved
aside to a separate folder for later inspection.
fixes CNVS-4970
test plan:
- read up on the new incoming_mail.yml configuration settings.
- configure incoming_mail.yml with the test imap accounts
using legacy settings and check for regressions.
- reconfigure incoming_mail.yml to read from a directory.
- copy some testing email files into the configured directory.
test files should be a mix of:
- emails with encoding errors
- emails with syntax errors
- normal emails
- all of the normal emails should be processed normally
- all of the error emails should be moved into the error
subdirectory
Change-Id: I0f946a56b41492f007db2775aa6da3cdfa4fdd3f
Reviewed-on: https://gerrit.instructure.com/19729
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
fixes CNVS-2802
test-plan:
- create a course with multiple students and assignments
- create submissions for those students and assignments
- grade the submissions, including multiple gradings of some of them
- GET /api/v1/courses/X/gradebook_history/feed
- each grading should match the SubmissionVersion object described in
the API docs
- should include gradings for any assignment and student in the
course
- should include all gradings for any submission that's been graded
multiple times
- should paginate the returned gradings
- should order the most recent gradings first
- GET /api/v1/courses/X/gradebook_history/feed?assignment_id=Y
- should only return gradings for submissions on that assignment
- GET /api/v1/courses/X/gradebook_history/feed?user_id=Z
- should only return gradings for submissions by that user
- GET /api/v1/courses/X/gradebook_history/feed?ascending=1
- should order the oldest gradings first
- Repeat with combinations of the various parameters
Change-Id: I44aae11919116519f87a097f2d5cf1849acc4db3
Reviewed-on: https://gerrit.instructure.com/19680
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
* expose templates so plugins can override them
* tweak ENV data we pass into js
* basic cilent-side field validations
test plan:
N/A, see plugin commit
Change-Id: Ic3998affc99e24f9c8d57b8f0068d03ae3be9fef
Reviewed-on: https://gerrit.instructure.com/20056
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
test plan:
* import a package containing an item that is
invalid so it will create a
"Couldn't import the" item warning, but also
have an extremely long title (~250 characters)
(an example is attached to the ticket)
* confirm that when trying to import,
the entire migration does not fail silently,
and thus hang in the import phase,
but instead creates a proper migration issue
for the invalid item and continues the import
normally
fixes #CNVS-5467
Change-Id: I2659ac0c5531ad609f3f58abc1fc0960e9d85c51
Reviewed-on: https://gerrit.instructure.com/19961
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
closes #CNVS-4578
no test plan, see specs
Change-Id: I9417e362fcead64b9e87647e615eab7318633262
Reviewed-on: https://gerrit.instructure.com/18696
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Jon Jensen <jon@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
fixes CNVS-5279
test plan:
- see API documentation to create/retrieve/update/delete pages
- exercise endpoints, including
- CRUD functionality (above)
- test renaming page
- test publishing / unpublishing
- test creating the front page in a new course or group
Change-Id: I5d3b36615b7bdbfda0d4781db14cd7d49d32eba1
Reviewed-on: https://gerrit.instructure.com/19952
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
- added assignment links for public courses
- fixed images in the syllabus body for non-enrolled admins
test plan:
* syllabus page is shown (including when the course home page is set to the syllabus)
* images in the syllabus body are shown
* links are presented when the user has access to the content (assignment, event, etc)
public and non-public courses for all role types, including:
* teacher, ta, etc
* student
* anonymous (not logged in)
* admin (with & without 'View Course Content' right)
fixes: CNVS-5364
Change-Id: Ieea5987530e67563c97eec2b495cfb8b712f8a03
Reviewed-on: https://gerrit.instructure.com/19822
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
Product-Review: Matt Goodwin <mattg@instructure.com>