fixes CNVS-6632
test plan
- use screenreader to check/uncheck the flag question icon on a quiz question
Change-Id: I5ce10b44d1381d8b7ab188e13a9248dd35b732e2
Reviewed-on: https://gerrit.instructure.com/24888
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
fixes CNVS-8473
test plan
- this should theoretically not change anything... but to be safe:
- quizzes should continue to submit correctly
- "next" button on quizzes taken one question at a time should work correctly
- nobody can reproduce this error, so this fix is basically a shot in the dark
Change-Id: Ic5208ff0cfdabb24adc17a88fc31a1b06c30fd02
Reviewed-on: https://gerrit.instructure.com/24886
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
fixes CNVS-7597
when given this header, data structures passed to render :json are
pre-processed before serialization to json such that any integer values
in 'id', 'foo_id', or 'foo_ids' fields (also 'ids' fields, but we don't
have any of those currently that I'm aware off), at any level (e.g.
within a nested data structure), are cast to strings.
test-plan:
- full regression testing of both the UI (as it makes API calls) and
the documented API
- no UI behavior should change
- API behavior should change only as described above
Change-Id: I4e0a68957038be063cf488dd9ec2262452dea3cf
Reviewed-on: https://gerrit.instructure.com/23956
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
refs CNVS-7597
render :json => thing will call ActiveSupport::JSON.encode(thing) unless
thing is a String. ActiveSupport::JSON.encode(thing) just calls
thing.to_json but with some circular reference checking that we want. we
may also want enhance ActiveSupport::JSON.encode to do additional
processing, and calling to_json straight up would bypass that.
in the cases where we do need to do the structural transformation before
passing to render :json (e.g. because of need to pass arguments), use
as_json to do structural transformation only, vs. to_json that does
serialization of the as_json result.
adds a rake task to lint the controllers to enforce as_json over to_json
in render json calls.
test-plan: heavy regression testing; no end behavior should change
(except a pair of serialization bugs that got fixed)
Change-Id: I7a91a9fe0eca70456bc5bca233f0ed6b27a54aaf
Reviewed-on: https://gerrit.instructure.com/23650
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
no longer necessary to do this manually in specs
Change-Id: I7f121743a5059234560c431c5225485124d85b5d
Reviewed-on: https://gerrit.instructure.com/24769
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
refs CNVS-7597
this was the only call site, and the implementation did a lot in ruby
that is better done in the database
test-plan:
- regression testing on /api/v1/courses/123/files
Change-Id: I120438c58f1c8de34503a0d14fc51d3853eb9385
Reviewed-on: https://gerrit.instructure.com/23943
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
removes need for run_transaction_commit_callbacks all over the place
Change-Id: Id878276ed86bb37f625ef34412b16d1f75a63bca
Reviewed-on: https://gerrit.instructure.com/24758
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
now we only automatically grade assignments when a grade is passed back,
otherwise we leave them ungraded so that the teacher will be notified.
Test Plan:
- Install a homework submission tool
- Submit a grade via LTI
* Ensure that the grade submits correctly
- Submit a url without a grade
* Ensure that the teacher is notified of the ungraded assessment
* Ensure that the url is recorded for that submission
- Submit text without a grade
* Ensure that the teacher is notified of the ungraded assessment
* Ensure that the text is recorded for that submission
Change-Id: Ic941c54062685ef1bba0aa860682db40cff952e3
Reviewed-on: https://gerrit.instructure.com/24474
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Adam Phillipps <adam@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
fixes CNVS-8396
test plan:
* send a conversation message containing a URL
* open it in conversations beta
* verify that your URL is a link
Change-Id: I2028c01e53f5efa30b36be51c023176fe2288f7c
Reviewed-on: https://gerrit.instructure.com/24667
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
fixes CNVS-8285
added "disabled" to the input in the index template
added a handler that enables the input and removes itself when the
assignmentGroup collection is reset
test plan:
- enable draft state
- go to the assignments index page
- verify that the search input is disabled while items are loading
(depending on how snappy things are being you might have to use
network link conditioner or similar to slow things down)
- verify that you can type in the input after assignment groups finish
loading
Change-Id: Id217a9372a8601bd1928ea958cb06a94e4531f4a
Reviewed-on: https://gerrit.instructure.com/24811
QA-Review: Amber Taniuchi <amber@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Liz Abinante <labinante@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
test plan:
* import the package referenced in the ticket
* check the quiz titled "Test 7"
* check the question titled
"3.3 find p-value two-tailed mu with website"
* confirm that the question has answers
fixes #CNVS-5672
Change-Id: I8e2597475ead30a10e57b9a9edac18c0e10d6fe6
Reviewed-on: https://gerrit.instructure.com/24677
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Hannah Bottalla <hannah@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
test plan:
* referring to the discussion topic api documentation,
use the "scope" argument to make index calls, confirming
that you are able to retrieve either pinned discussions or
unpinned discussions
closes #CNVS-8436
Change-Id: Id82fef1903472d3bb6e39b79bc2b3edea9d2c6b5
Reviewed-on: https://gerrit.instructure.com/24720
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
fixes CNVS-8317
test plan:
* have a separate queue config, with a slave environment that uses
a separate host
* in script/console, execute the following:
* Delayed::Job.connection_pool.spec.config
* Shackles.activate!(:slave)
* Delayed::Job.connection_pool.spec.config
* Shackles.activate!(:master)
* Delayed::Job.connection_pool.spec.config
* The config output for the first and third should be identical; for
the second time, the host key should be the one for the slave
Change-Id: Ied6ec2bea1ff0e07a47434a5ad6d80ccd06e3bee
Reviewed-on: https://gerrit.instructure.com/24819
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
fixes CNVS-8360
test plan:
- the label in speedgrader settings should say
'Grade by question (beta)'
Change-Id: I16b32586713b962ab7ae4d5bad93faf9a19ed976
Reviewed-on: https://gerrit.instructure.com/24642
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Matthew Irish <mirish@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
fixes CNVS-8314
test plan:
* create over 100 discussions in a course;
* as a teacher, navigate to the course discussions page;
* scroll to the bottom of the page and, using the gear
menu, attempt to pin the bottom-most discussion;
* verify that it properly pins.
Change-Id: Icc064daf2316d8de37e6b45d6e6bb40320f5c90b
Reviewed-on: https://gerrit.instructure.com/24786
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Braden Anderson <banderson@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
QA-Review: Zach Pendleton <zachp@instructure.com>
fixes CNVS-7863
testing steps:
- Create a discussion or something similar that will create a new stream item on the dashboard.
- With postman, send DELETE to the following endpoint: /api/v1/users/self/ignore_stream_item/<stream_item_id>
- Verify that the stream item has been hidden
- With postman, send DELETE to the following endpoint: /api/v1/users/self/ignore_stream_item
- Confirm that all stream items have been hidden
- Generate API docs, and veryify that under the USER api there is a doc for 'Hide a stream item'
Change-Id: Id3c19952bdf76d8ee3e6234a661fa98de002ea4e
Reviewed-on: https://gerrit.instructure.com/24152
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
the default accept language header that cuty capt sends does not play nicely
with canvas' locale selection. so for now, force it to send 'en'. in the
future it would be nice to have it send the user's configured locale, if it
exists.
fixes CNVS-8421
test plan:
- on a machine with the fix applied, and with cuty capt enabled
- submit a url assignment that points to a canvas installation
* note: the submitted url does not need the fix applied, just the requester
- the screenshot should be in english
Change-Id: I56a534d4d1eaed92c2615ea500b5960708e49112
Reviewed-on: https://gerrit.instructure.com/24716
QA-Review: Amber Taniuchi <amber@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cameron Sutter <csutter@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
test plan:
* create a course
* create many folders for the course in the console
(replacing <COURSE_ID> with the id of the course):
c = Course.find(<COURSE_ID>)
f = Folder.root_folders(c).first
2000.times{|i| f.sub_folders.create!(:name => "folder #{i}",
:context => c)}
* visit the course content_migrations page
* should not take a long time to load or time out
fixes #CNVS-8366
Change-Id: I66785f9948c7d3d34319f6074ad5a7d7d0750038
Reviewed-on: https://gerrit.instructure.com/24713
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Hannah Bottalla <hannah@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
test plan:
* verify that the API docs for "Create a conversation" document that
the maximum subject length is 255 characters
* post a conversation to the API with a subject longer than 255 chars
* verify that you get a model validation error
* open new conversations
* compose a message
* try to enter more than 255 characters in the subject field
* verify that your input is constrained
Change-Id: Ibf569c8b7aa17677a5968859b57b0e0c3c373603
Reviewed-on: https://gerrit.instructure.com/23521
QA-Review: Cam Theriault <cam@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
test plan:
* create a course with weighted assignment groups and
assignments
* as a student that has some graded assignments and some
ungraded assignments, click on the empty score boxes for
the ungraded assignments ("-") to save "what-if" scores
* refresh the page
* click on 'Show Saved "What-If" Scores'
* should update the total percentage
* click on "Revert to Actual Score"
* should correctly update the total percentage to the
previous value
fixes #CNVS-3723 #CNVS-3933
Change-Id: I6efaf9033e1a6fb3e2a08b6190de6d9c98c99763
Reviewed-on: https://gerrit.instructure.com/24683
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Hannah Bottalla <hannah@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
closes CNVS-7197
test plan:
- add a formula question type in a quiz
- create your variable definitions and formula definitions
scenario 1:
- generate possible solutions, and add a margin of +/- a percentage value (5%)
- make sure that when a student answers a quiz question that it allows the
percentage margin of error entered
scenario 2:
- generate possible solutions, and add a margin of +/- a point value (2.0)
- make sure that when a student answers a quiz question that it allows the
margin of error entered (as it worked previously)
Change-Id: Ib819cdd2b3412dfb080e44cacf6516ceb8fa4944
Reviewed-on: https://gerrit.instructure.com/24539
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>
the process of selecting ports at random is an error-prone and slow
way of selecting a free port. instead, we simply bind against port 0,
which indicates to the OS to select a free port for us.
test plan:
- selenium tests pass
Change-Id: I86dd05aaa469f8f2765ec5d56fff5f1e812cbdfc
Reviewed-on: https://gerrit.instructure.com/24728
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bryan Madsen <bryan@instructure.com>
Product-Review: Bryan Madsen <bryan@instructure.com>
QA-Review: Bryan Madsen <bryan@instructure.com>
popover menu positioning refactored into seperate backbone view with boundary and collision handling. fixes CNVS-8151.
Test Plan:
(test in both the new groups UI and old)
1) Click into a course with multiple unassigned students
2) Create a new group set with 11 or so groups
3) Click the '+' button within the unassigned students sidebar menu
4) Continue clicking the '+' button at different locations within the page
taking note of the position of the popover menu as it appears.
Change-Id: Icb9e02baba8da8e345c6e56ae537c44263251ffe
Reviewed-on: https://gerrit.instructure.com/24489
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
closes CNVS-6824
This adds a permissions attribute to the returned json for discussion topic
contexts (Course, Group).
The permissions attribute contains an optional permission of
"create_discission_topic" which returns true or false depending on whether the
current user can create discussion topics for the course or group. For
performance reasons this is only added to a single course/group json and not in
lists so the only call that will return it is /api/v1/<context>/<context_id>
where context is a course or group. Since we did not want to include this on
every response its a custom permissions attribute for course and groups in the
course_json or group_json serialization methods.
Using the includes parameter for the API supplying a value of "permissions"
will include the permissions with "create_discussion_topic" for a group and
course. When the object is serialized to json it checked to see if the model
implements a serialize_permissions method and calls that to render or override
permissions generated from the policies.
- Create a test Course. Make sure the course allows members to post topics.
- Add a student to the course.
- Make a call to /api/v1/courses/<id> where "<id>" is the id of the created
course.
- The response should include a permissions attribute with a boolean value for
"create_discission_topic" see the example below.
- Make a call to /api/v1/courses to return a list of course objects.
- The permissions attribute should not be included in the response.
- Create a test Group tied to the course created in the first step.
- Add a mamber to the group.
- Make a call to /api/v1/groups/<id> where "<id>" is the id of the created
group.
- The response should include a permissions attribute with a boolean value for
"create_discission_topic" see the example below.
- Make a call to /api/v1/groups to return a list of group objects.
- The permissions attribute should not be included in the response.
Example Response:
{
id: 42,
...
permissions: {
create_discission_topic: true
}
}
Change-Id: Ia02d5aa67e345740a93dd0f63e357e7cb5e1efd6
Reviewed-on: https://gerrit.instructure.com/24478
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Nick Cloward <ncloward@instructure.com>
fixes CNVS-8461
test plan:
* create a big blue button conference with recording
enabled;
* start and end the conference;
* reload the conferences page and verify that it loads
as expected.
Change-Id: I159765d894f37261d650ee633023b6415f19f6f4
Reviewed-on: https://gerrit.instructure.com/24766
Reviewed-by: Jon Willesen <jonw@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Product-Review: Zach Pendleton <zachp@instructure.com>
fixes CNVS-7162
testing steps:
- on the new groups UI, use a group's cog
menu to select "Message All Unassigned Students"
- dialog should appear allowing message to be sent
to multiple users
- verify several users have received a message
ie: [canvas]/users/1/messages
- with many unassigned users, when additional pages
of users haven't been loaded yet, they should
be fetched before the dialog appears and should
all be displayed in the users list.
- in a large_roster course, the "Message All Unassigned
Students" menu option should not be shown
- in a course where unassigned users are paginated,
it should load all users before displaying dialog
Change-Id: I66b258763ab7f2dd99e821a5da9235d36ea541b4
Reviewed-on: https://gerrit.instructure.com/24518
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Product-Review: Marc LeGendre <marc@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
* use IANA timezone names, not Rails weird names
* don't send the offset (it will just be a source of bugs)
* don't allow a custom variable name when a standard
(http://www.imsglobal.org/LTI/v2p0pd2/uml/purl.imsglobal.org/vocab/lti/v2/variable/index.html)
one will do just fine
Change-Id: I774a8b34b14507c6e65b1c1b144369ba09d50af3
Reviewed-on: https://gerrit.instructure.com/24665
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brad Humphrey <brad@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
fixes CNVS-7043
Added a `MoveToDialogView` that presents the user
with one or two (if there are nested collections)
<select>s. Each select (and corresponding label)
is its own view called `MoveDialogSelect`.
Using this new view, Assignments and Assignment Groups
are now re-orderable from these dialogs (as well as drag
and drop).
Updated SortableCollectionView and DraggableCollectionView to sort the
collection after updating positions and to also enforce uniqueness of
the "position" attribute on DraggableCollectionView.
Changed the `reorder_assignments` method on the
AssignmentGroupsController to only return ids of active assignments.
Test plan:
- turn on draft state
- with only one Assignment Group, there should be no "Move To ..." item
in the cog menu
- with more than one Assignment Group, there should be a "Move To ..."
item
- when clicked the "Move To" should open a dialog asking you where you
want to move the Assignment group verify that:
- the title of the Assignment Group is in dialog "Where would you
like to move {AG Name here}?"
- There is 1 select that does not include the Assignment Group
as a value
- the label for the select reads "Place Before:"
- the select has an option to move to the bottom of the list
- with multiple assignments, it is similar to the above with the
exceptions:
- the "Move To" menu item should disappear when there's
only one assignment and one assignment group
- there should be two selects in the dialog. One with the label
"Place Before:", and one listing the assignment groups with
the label "Assignment Group:"
- the select for "Assignment Group" should have the current
Assignment Group selected when the dialog is opened
- when the Assignment Group select is changed, it should update
the value of the "Place Before:" select with the names of the
assignments in that Assignment Group
- after saving, the items should update their order on the page
- after moving an assignment once, bring up the move dialog again
and verify that the Assignment Group select has the updated assignment
group as the selected value
Change-Id: Ifb6c1df155d3011949e25afeac111c230f5ff56a
Reviewed-on: https://gerrit.instructure.com/24362
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Simon Williams <simon@instructure.com>
the recording checkbox should have been disabled after the
conference has started, like other conference controls, because
you can't change the recording setting after the conference has
started.
fixes CNVS-8288
test plan:
- create a BBB conference, recording checkbox should be
editable.
- edit the BBB conference, recording checkbox should still be
editable.
- start the BBB conference, recording checkbox should no
longer be editable.
Change-Id: I8ee65b45448c9a469516c6c246ea2cbd354e634a
Reviewed-on: https://gerrit.instructure.com/24635
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
incoming message processor should not wait indefinitely on
external connections. it now implements timeouts on external
connections that are controlled by the Canvas.timeout_protection
method. It uses incoming_message_processor as the serivce name,
which makes these meaningful settings to change the timeout
behavior:
- service_incoming_message_processor_timeout
- service_incoming_message_processor_cutoff
- service_incoming_message_processor_error_ttl
fixes CNVS-8198
test plan:
- see the incoming message processor wiki page for instructions
on how to do the configuration and run these tests.
- create a fifo in an empty directory, configure
incoming_mail.yml to read from the directory, run
script/process_incoming_emails and make sure it exits in
30 seconds or so.
- use nc -l <port> to listen on a port, configure
incoming_mail.yml to access that port on localhost, and run
script/process_incoming_emails and make sure it exits in
30 seconds or so.
- run script/process_incoming_emails against an actual email
account and make sure it can still process emails normally.
Change-Id: I23c67c1e8c0581a1e6ca69ab2c7b8855090688d1
Reviewed-on: https://gerrit.instructure.com/24483
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
Product-Review: Jon Willesen <jonw@instructure.com>
fixes CNVS-8154
test plan:
* set up a chat server with https://gerrit.instructure.com/24593
* add the chat LTI tool as an app
* navigate to a course page other than chat
* verify that minichat still works
Change-Id: I547d34f012d0a846163fc906bc4d3328dbc03f36
Reviewed-on: https://gerrit.instructure.com/24592
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joel Hough <joel@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Product-Review: Braden Anderson <banderson@instructure.com>
fixes: CNVS-4676
because we use the same function to do both auto saving (on a 30 second
interval), and event-based saving (e.g. when the user answers a question
or otherwise interacts with the quiz form), sometimes the auto interval
wouldn't fire due to various circumstances. we bypass this by
explicitly declaring that we're performing an interval save (vs an event
based submission save). i've also added new messaging when we try to
save, but when there's no new data to save (giving the user a time stamp for the
latest save attempt).
test plan:
(this can be confusing to test)
1. take a quiz
2. answer a question
- note that the quiz is still saving (or attempting to save, if there's
no new data to save) at a regular interval
Change-Id: I139f94cb5b3cdae1d8b316d1c9510f1352d83ae3
Reviewed-on: https://gerrit.instructure.com/24558
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
test plan:
* create a course with a group
* create a wiki page for the group
* inside the group, add a link to content for the course
(e.g. "/courses/:course_id/files")
* it should not translate the link to point to "/groups/:group_id"
fixes #CNVS-8313
Change-Id: Icd64cf11668481cee34d4bcddd1332431826959f
Reviewed-on: https://gerrit.instructure.com/24606
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Hannah Bottalla <hannah@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>
test plan:
* import a content migration package through
"/courses/:course_id/content_migrations",
checking the field to "adjust events and due dates"
* manually type in dates of various formats
(e.g. "MM/DD/YYYY")
* should adjust the dates accordingly
* copy a course through the "copy this course" link
shown in "/courses/:course_id/settings"
* should adjust the dates here as well
fixes #CNVS-5771
Change-Id: Ib3c74f57ce3e351f6d3df88883b055bb8aa77101
Reviewed-on: https://gerrit.instructure.com/24246
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Hannah Bottalla <hannah@instructure.com>
Product-Review: Bracken Mosbacker <bracken@instructure.com>