Commit Graph

3743 Commits

Author SHA1 Message Date
Simon Williams 9038175eb4 api: support turnitin_settings in assignment api
fixes #CNVS-2598

test plan:
- on an assignment in a course with turnitin enabled
- make sure turnitin_settings are returned in the api
- make sure you can modify them

Change-Id: Ief9465ef3ef9f1d180dd551dcb846b25bc63b3fa
Reviewed-on: https://gerrit.instructure.com/16583
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Stanley Stuart <stanley+gerrit@instructure.com>
2013-01-09 00:00:48 -07:00
Stanley Stuart 389bcb4ed2 removal of add assignment group dialog js block
test plan:
  - as a teacher, go to Calendar 1, click on an assignment and edit it.
    Select "New Group" from the Assignment Group dropdown.
  - You should get a popup dialog to enter a new group name. Enter a
    new group name.
  - Make sure the group is really added when you hit submit by going to
    Course Assignments page (/courses/:course_id/assignmetns) and
    verifying the presence of the group there.
  - Do the same for the assignments edit page. As a teacher, add a
    new Assigment Group from that page.

Change-Id: I4f0adf6f594ef357c95c06dae2f01019d26c6fcd
Reviewed-on: https://gerrit.instructure.com/16517
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Myller de Araujo <myller@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
2013-01-08 17:25:32 -07:00
Jeremy Stanley eb65125135 track the role each UserView applies to
Each user box under a role is associated with a UserView, but each UserView looks
at all the user's enrollments, not just those of the containing role.  Fix.

Test plan:
 - Enroll a user as both a TA (in Section 1) and an Observer (in Section 2).
  - Ensure the gear menu in the TA box has an "Edit Sections" menu item
   - Click Edit Sections and add the TA to Section 2; make sure this works.
  - Ensure the gear menu in the Observer box has a "Link to Students" menu item.
   - Link the observer to a student, and confirm this works as expected.
 - Enroll a user as both an Observer and a custom role based on Observer.
  - Verify this actually worked in the UI--the user should show in both
    boxes, and should not disappear from one and appear in the other
  - Link each enrollment with a different student.  Make sure the student
    appears in the right place.
 - Enroll a user as both a TA (in Section 1) and a custom TA-based role
   (in Section 2).
   - Ensure the TA box shows only "Section 1", and the Custom-TA box shows
     only "Section 2".
   - Click "Edit sections" for the Custom TA and add Section 1.  make sure
     the Custom TA box shows both sections after this, and that the
     (regular) TA box continues to show only Section 1.

fixes #CNVS-2432
fixes #CNVS-2596
fixes #CNVS-2628

Change-Id: I93fe0da90064b7530541010775f2ae0d280e033d
Reviewed-on: https://gerrit.instructure.com/16560
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: James Williams  <jamesw@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
2013-01-08 16:32:16 -07:00
Joel Hough d1739afae8 don't show time for all day calendar events
fixes #CNVS-2582

test plan
- create an all day event
- ensure that the details popup shows only the date, not the time
- create a not all day event
- ensure that the details popup shows the time as well as date
- ensure that other event types like assignments and quizzes are
  unchanged

Change-Id: I4bd1cedcd33d098caf40a9d63fd62324b3e92183
Reviewed-on: https://gerrit.instructure.com/16599
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-01-08 13:30:36 -07:00
Jon Willesen 03a74245b0 respect assignment overrides in gradebook2
fixes #CNVS-472

When determining lateness of an assignment, use the cached late
value of the submission instead of doing manual comparisons.

test plan:
 * create an assignment due in the past with an override
   due in the future
 * submit the assignment both as a student the override
   applies to and a student the override does not apply
   to
 * as a teacher or admin, visit gradebook2 and verify that
   the late submission appears late and the on-time
   submission is not marked as late
 * check the mouse-over text on both submissions to make sure
   they display the lateness of the submissions correctly.

Change-Id: I4a77d2f065402babd737f887c08dfb844c342cbf
Reviewed-on: https://gerrit.instructure.com/16356
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Willesen <jonw@instructure.com>
QA-Review: Jon Willesen <jonw@instructure.com>
2013-01-08 13:29:03 -07:00
Mark Ericksen bd4286d53f Support "Switch Views" when editing a calendar event's description. Fixes #CNVS-458
When creating a new CalendarEvent or editing an existing one, the description
uses the TinyMCE editor but there was no way to toggle between HTML and
source versions. This adds that ability.

Testing Notes:
=============
* As a user, create Calendar event on either
  Calendar1 or 2. Click the "more options" link
  which takes you to a dedicated edit page.
* Between the title and description, there should now
   be a "Switch Views" link that toggles the editor
   between HTML and source view.
* It should work for any user (teachers or students).
   There is nothing user-specific about it.

Change-Id: Icfd5b58dc7708bf9b2d75312983629af5e505ea9
Reviewed-on: https://gerrit.instructure.com/16475
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-01-08 12:03:33 -07:00
Cody Cutrer 1e339db4c5 add support for applying role overrides to just self or just descendants
* wrap RoleOverride#permission_for with enabled_for? that also takes a
   context of where the permission is being applied, and recalculates its
   enabled-ness relative to that context; use that for checking account
   admin and enrollment permissions
 * refactor User#can_masquerade to properly check for descendant
   permissions

test plan:
 * create a custom role in site admin. give it permission to
   manage permissions
 * in script/console, find that override and set apply_to_self=false
 * add a user to that role, and login as that user
 * the user should not be able to change permissions in site admin
 * the user should be able to change permissions in the default
   account
 * add another role in site admin. give it permission to manage
   permissions
 * in script/console, find the override and set apply_to_self=true,
   apply_to_descendants=false
 * add another user to that role, and login as that user
 * the user should be able to change permissions in site admin
 * the user should not be able to change permissions in the default
   account
 * the first user should not be able to masquerade as the second user
   and vice versa
 * an Account Admin should be able to masquerade as either user
 * create a custom role in the default account, give it permission
   to manage permissions, and add a user to that role
 * the first user should be able to masquerade as the new user;
   the second user should not be able to masquerade as the new user

 * general regression tests on permissions and masquerading

Change-Id: I20a1183b7dfec419634a92cda498f245187060ef
Reviewed-on: https://gerrit.instructure.com/15896
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Cody Cutrer <cody@instructure.com>
2013-01-08 11:01:13 -07:00
Brian Palmer 7c46375684 don't store the page view if it has no user
These page views won't ever be queried anyway, so storing them is
pointless.

Change-Id: I8242c50be32f626d64caa528e7a5fd3a921af461
Reviewed-on: https://gerrit.instructure.com/16572
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2013-01-08 08:25:30 -07:00
Mark Ericksen 44e6765889 Display "Multiple Due Dates" on speedgrader when applicable. Fixes #CNVS-740
On SpeedGrader, when an assignment has multiple due dates, in the header,
display something to let the grader know that.

Testing Notes:
==========
* Using an assignment with no due date, visit SpeedGrader and verify
   that it says, "due: No Due Date"
* Using an assignment with a single (no override) due date, visit
   SpeedGrader and verify that it says "due: <the date>"
* Using an assignment with multiple override due dates, visit
   SpeedGrader and verify that is says "due: Multiple Due Dates"

NOTE: This also changes the previous behavior of not showing anything for a
due date when the assignment didn't have one to now showing
"due: No Due Date" when there is no due date. This is because the assignment
might have no due date but an override might specify one.

Change-Id: I1337015eef623f9579be3af990c8651cacd957af
Reviewed-on: https://gerrit.instructure.com/16391
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-01-07 16:26:08 -07:00
Joel Hough 0f30dc4eb9 hide events for appointments that a student hasn't signed up for
fixes #CNVS-1881

for calendar2
event still shows up on the calendar for students who are signed
up for the appointment and on the calendar for anyone who can
manage the appointment group

test plan
-as a teacher, create an appointment group
-as a student, sign up for a slot in the appoinment group
-as that same student, ensure that an event appears on the calendar
 for the appointment
-as a different student who is not signed up for the appointment
 group, ensure that an event does not appear on the calendar for
 the appointment
-as a teacher, ensure that an event appears on the calendar for
 the appointment

Change-Id: I458c849cd675dadf3384b545c1162f00905f6018
Reviewed-on: https://gerrit.instructure.com/16452
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-01-07 14:06:37 -07:00
Mark Ericksen b03a1147db Support 'C Spire' phone network for SMS. Fixes #1287
Adds support for the "cspire" cell carrier for user SMS
 notification options.

 Testing Notes:
 ==========
 NOTE: Full testing requires someone with that network service
 to verify that messages are correctly being received.
 * On /profile/settings page click the 'Add Contact Method'
    in the sidebar under "Other Contacts"
* On the "Text (SMS)" tab, verify that 'C Spire' is now a carrier
   option.
* Verify that when selected, the "SMS Email" uses the
   "@cspire1.com" domain

Change-Id: I1dd409f728cff28499bfbf5fa7c189f64f705746
Reviewed-on: https://gerrit.instructure.com/16555
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-01-07 12:31:27 -07:00
Zach Pendleton 5d68d044b9 update copy on notifications privacy warning.
fixes #CNVS-2502

test plan:
  * enable the external notifications warning on an
    account;
  * as a member of that account, navigate to your
    notification settings page and verify that the
    warning displays with the text given in CNVS-2502.

Change-Id: Ic6d88ba8cc1322844bdb14b61dec4fff3e747fda
Reviewed-on: https://gerrit.instructure.com/16521
QA-Review: Marc LeGendre <marc@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
2013-01-07 10:48:01 -07:00
Zach Pendleton dc3d09aa1d announce conversation forward/delete buttons.
fixes #CNVS-2389

when using a screen reader, announce the display of the
forward/announce buttons when checking a conversation in
the right conversation view pane.

test plan:
  * in the inbox, select a conversation;
  * using a screen reader (but not using Chrome), check a
    message's checkbox and verify that (1) the forward/
    delete buttons appear, and (2) they are read by the
    screen reader.

Change-Id: Ib5e761ec75c1036e97972f2c2a379b189c744e25
Reviewed-on: https://gerrit.instructure.com/16423
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
2013-01-07 08:42:51 -07:00
Cody Cutrer 7df855ce1e add a separate permission for just viewing jobs
test plan:
 * create a site admin role with only view jobs permission
 * as a user in that role, you should be able to see the jobs page,
   but not hold, un-hold, or delete jobs

Change-Id: I5438ef55d13f87773b9e664f87e5b0d167ad4767
Reviewed-on: https://gerrit.instructure.com/16463
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
2013-01-05 06:55:42 -07:00
Zach Pendleton 392ec24711 improve accessibility of conversations gear menus.
fixes #CNVS-1330

replace custom conversations gear menus w/ menus used
everywhere else in canvas to make them more usable by
persons w/ screen readers.

test plan:
  * using a screen reader, navigate to conversations;
  * navigate to the actions menu of an existing
    conversation and click it w/ the keyboard;
  * verify that you can navigate to each menu item, that
    it is properly read, and that menu items can be
    clicked using the keyboard.

Change-Id: Ic67bb56e684702a871b2199fdbdb9615625aae81
Reviewed-on: https://gerrit.instructure.com/16394
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
2013-01-04 20:18:20 -07:00
Zach Pendleton a69f77218d add groups to collaborators table, add api endpoint.
refs #CNVS-1160

adds group_id to collaborators table to identify
collaborators associated w/ a group versus collaborators
added as individuals.

also adds a new API endpoint to return collaborators for
a given collaboration.

test plan:
  * run migrations to add the group_id column;
  * create new collaboration and add at least one user
    as a collaborator;
  * in the console, add a group as a collaborator, giving
    it a group_id and no user_id;
  * make a GET to /api/v1/collaborations/:id/members
    and verify that users added as individuals are
    returned as type 'user' and that users added with
    group_ids are returned as type 'group' and not
    displayed as individuals.
  * verify that one record exists for each collaborator
    regardless of type;
  * verify that adding per_page params will paginate
    requests to the endpoint.

Change-Id: Id509fd0e7eebe6a889b2ca86e8d7d8d1a9e93c63
Reviewed-on: https://gerrit.instructure.com/16203
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-01-04 20:18:04 -07:00
Stanley Stuart d30084e9c2 update assignments api to handle frozen assignments
Allows several new fields in the Assignments API to both update existing
assignments and set attributes on freshly created assignments.

test plan:
  - run through the api trying each field in the generated
    documentation.
  - Make sure you can create assignments with every field, and update
    assignments with every field available in the documentation. The
    specs do this so they should pass as well.

closes #CNVS-2190

Change-Id: I0d67e379777b5a313f45289f23852122b1e61a37
Reviewed-on: https://gerrit.instructure.com/16114
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
2013-01-04 17:01:05 -07:00
James Williams e41401f45c use overridden due dates on modules page
indicates multiple overridden due dates on multiple sections if
they are visible to a teacher/ta/designer

if there are different dates, it sends all the information back
this json info can be used in the future for a detailed popup

but for now, simply indicate with text that there are
multiple due dates for the assignment

if they are a student, then only show them the latest override
that applies to them

test plan:
* create an assignment
* create a module, add the assignment as an item
* create another course section
* override the assignment date for one section,
then override it to another date for the other section
* go to modules page, should see "Multiple Due Dates"

* create a ta/teacher/designer/student, restrict them to one section
* login as the ta/teacher/designer/student, should see one due date

closes #CNVS-2010 #CNVS-2011

Change-Id: Ieab089a27e4e4e7bea26b1c597859bf8b77dc802
Reviewed-on: https://gerrit.instructure.com/16401
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
2013-01-04 15:34:43 -07:00
Cody Cutrer 6950e85164 conversations transitionary commit
so plugins can start passing users to to conversation methods

Change-Id: If8cf75de862f7e96bf9b69daf809a79f6c5d0aa0
Reviewed-on: https://gerrit.instructure.com/16534
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
2013-01-04 14:45:42 -07:00
Ryan Florence fefff71ce0 don't expand dashboard category on link click
fixes #CNVS-2369

test plan:
1. On the dashboard recent activity, click a
   course/group link in a category header.
2. The category should not expand

Change-Id: I114cbf59a4fb5e012b6f42d70d86f5be06076351
Reviewed-on: https://gerrit.instructure.com/16375
Reviewed-by: Jon Jensen <jon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
2013-01-04 13:33:54 -07:00
Brian Palmer 07c314b980 use .build instead of .new when generating calendar event
It seems that for some courses, calling
course.calendar_events.new.context returns nil, instead of the course.
For other courses it works, I'm trying to determine what the difference
is, but using .build instead of .new fixes things to work correctly.

fixes #CNVS-2542

test plan: Since this only happens on some courses, it may be difficult
to reproduce until we know exactly what triggers the bad behavior. In
any case, you should be able to visit /calendar without seeing an error
page, and you should be able to create new calendar events from that
page.

Change-Id: I3d4c17676b39382f61ef8ebffb35cf47eec39fa5
Reviewed-on: https://gerrit.instructure.com/16526
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
2013-01-04 11:56:55 -07:00
Simon Williams dac18a0978 fix outcome state standards pagination
we were filtering the common core group in the wrong place which caused
a javascript error, which in turn broke any further pages from loading via
ajax.

fixes #CNVS-2526

test plan:
- in an environment where there is a page of state standards after the page
  that contains the common core group
- make sure they all load
- make sure common core still works correctly as well, and is excluded from the
  state standards folder

Change-Id: I7c636a263fc8dc2a4a5a9cadc5595c160f693848
Reviewed-on: https://gerrit.instructure.com/16514
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stanley Stuart <stanley+gerrit@instructure.com>
QA-Review: Bryan Madsen <bryan@instructure.com>
2013-01-04 11:31:21 -07:00
Zach Pendleton 8162c13e75 allow account admins to edit notifications warning pref.
fixes #CNVS-2530

account admins now have the permissions to edit the
external notifications warning preference. previously
this permission was only given to people with
:manage_site_settings permissions on the site admin
account.

test plan:
  * create an account admin user;
  * on the account settings page, click the notifications
    tab, check the external notifications warning checkbox,
    reload the page, save your changes, and verify that
    they've persisted across page loads.

Change-Id: I0b2a6403e3ae3e8bf5372b0bd2f9ea9887e0c89c
Reviewed-on: https://gerrit.instructure.com/16520
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
Reviewed-by: Mark Ericksen <marke@instructure.com>
2013-01-04 10:24:58 -07:00
Jon Jensen b88e8b95bc don't include submissions in recent_stream_items
dashboards don't show these, and existing ones can be a little crazy if
they have lots of submission comments

also change cache key so these get regenerated

test plan:
1. dashboards should work
2. stream item api should work
3. specs should pass

Change-Id: I245f4464189a507f0e1a8c9dc1c4c1e9fd4b7566
Reviewed-on: https://gerrit.instructure.com/16502
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
2013-01-03 15:42:39 -07:00
Jon Jensen 0ede7d45d5 don't include submission comments in stream items, fixes #CNVS-2506
also limit number of root discussion entries (they still need to be there
per the current api implementation)

test plan:
1. as a student, submit some homework
2. as a teacher, grade the homework and add a comment
3. as both users, ensure the dashboard loads correctly (submission stuff
   doesn't show on the stream, so there are no visible changes)
4. as a teacher, start a discussion
5. as a student, comment on the discussion
6. as both users, ensure the dashboard loads and you see the discussion
   under recent activity

Change-Id: Iaa2569b2890c0ead1dc96252d327f59527be6568
Reviewed-on: https://gerrit.instructure.com/16488
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
2013-01-03 15:42:36 -07:00
Ryan Shaw b11fcdf3ec fix popover positioning on calendar 2
this: http://cl.ly/image/0J0j0p393P3N
instead of: http://cl.ly/image/2q060C2H393R

Change-Id: Ie59206a5957097bc33fa096ed96de4c7ba48375a
Reviewed-on: https://gerrit.instructure.com/16332
Reviewed-by: Mark Ericksen <marke@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-01-03 14:39:47 -07:00
Brian Palmer fcc4b6655c log the ErrorReport id after creating it
And log some basic ErrorReport info if creating it fails

Change-Id: I4853569f6a1107321bc3bc05e7fa413a69996a6e
Reviewed-on: https://gerrit.instructure.com/15981
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Duane Johnson <duane@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
2013-01-03 13:35:04 -07:00
Sterling Cobb f3d8cdd94c Add new permissions management ui (role overrides)
When editing permissions for an account, course
or admin section the UI has changed to use
drop downs instead of a 6 state check box. It
has also been switched to use 100% backbonejs to
handle creating and editing roles. This works with
the roles api and allows you to create custom
roles for courses.

fixes #CNVS-1165

Test Plan

Apply this test in two places. The Site Admin and
a custom university.

1. Go to the "permissions" tab
2. Notice permissions are available per role in a
table.

------------ Adding/Removing Roles --------------
1. When under the "Account Role" tab click
"Add Role"
2. Enter a role name and click "Create/Add"
3. A new role should appear automatically.
4. You should be able to delete this role by
clicking the x next to it's name.

------------ Editing Permissions ----------------
1. Go to a role in the permissions tab.
2. Try to edit one of it's permissions. It should
have a drop down with options to select
permissions. You should be able to enable/disable
or set to default and lock the permission.
Read only permissions cannot be clicked on.
3. Buttons with default set should have a special
"default" class added to the button representing
its permission.

------------ Organization of Roles --------------
1. In the course role tab, add a few roles with
different base types (use the dropwdown)
2. Roles should be grouped together by base role
type.

------------ Automatic Saving ------------------
1. Change a permission on a role
2. The role should automatically save the
the permission after selecting the option you want

Change-Id: I343afc36b85183e5913c8eef6111ea2c5ae62726
Reviewed-on: https://gerrit.instructure.com/16323
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
2013-01-03 10:05:51 -07:00
Ethan Vizitei 7875fdbe11 use user global id for redis key in oauth workflow
refs #CNVS-2412

added some spec coverage for the action that
accepts the oath connection and start using
the global_id for the user instead of the local
id.

Also removed an oath method from 
lib/authentication_methods that doesn't
get used anywhere (grep says so anyway,
we'll see what jenkins says).

TEST PLAN:
Behavior has not changed, this is just to
prevent a fairly specific authorization hack.
regression tests on oauth workflow should cover
it.

Change-Id: I39dd50276561677be11dd0ed3d3832624cf70a84
Reviewed-on: https://gerrit.instructure.com/16369
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
2013-01-03 05:52:28 -07:00
James Williams 94fd914e4a don't send notifications to students for locked/hidden files
notifications will no longer be sent to students if:
 * the file's folder is locked (and thus inaccessible
 to students), or
 * the files tab has been hidden on the navigation
 and is thus inaccessible by students

test plan:
 * as a student, set file notification to ASAP
 * as an admin, create a folder and lock it
 * add a file
 * confirm that the student account did not receive
 an email notification

 * repeat the above, but instead of locking the file,
 hide the file navigation tab in the course settings

closes #CNVS-1688

Change-Id: Ic4398f2dadca0892d7e0643ec5e9b3eba6991dbd
Reviewed-on: https://gerrit.instructure.com/16243
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
2013-01-02 15:47:53 -07:00
Jacob Fugal 5756417887 restrict length of tmpfile filename
an excessively long course short_name or assignment title could cause a
filename over the 256 character limit.

fixes #CNVS-2365

test-plan:
 - create a course with a 250+ character course code (aka short name)
 - create an assignment in that course
 - create a submission for that assignment
 - go to the assignment page and click "Download Submissions"
 - zipfile should successfully create and download
 - repeat with short course code but 250+ character assignment title

Change-Id: Idcf0bdc303e8b467fc29196c52081f2070344811
Reviewed-on: https://gerrit.instructure.com/16362
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Ethan Vizitei <ethan@12spokes.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
2013-01-02 14:41:39 -07:00
Jacob Fugal 78764e29ad document the outcomes/outcome_groups API
fixes #CNVS-2156

test-plan:
  - rake doc:api
  - view the /doc/api/outcomes.html and /doc/api/outcome_groups.html
    pages
  - documentation should be intelligible and correct

Change-Id: I7194ef5b9b1b8aeab63e280cb6ad287022743747
Reviewed-on: https://gerrit.instructure.com/16427
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
QA-Review: Clare Hetherington <clare@instructure.com>
2013-01-02 13:22:04 -07:00
Simon Williams eba1520a66 successfully redirect after deleting a quiz from the show page
a typo was preventing the redirect from working.

fixes #CNVS-2424

test plan:
- create a quiz.
- go to the /courses/:id/quizzes/:id page
- hit the delete button in the right side bar
- you should be redirected to the quiz index page

Change-Id: If8768c11658eea473bfeb48dbb50d61e8e3e756c
Reviewed-on: https://gerrit.instructure.com/16416
QA-Review: Myller de Araujo <myller@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
2013-01-02 13:18:55 -07:00
Jon Willesen 36b903ff73 fix for "unknown author" when a post is required to see replies
"Unknown Author" typically shows up when you fetch a discussion
before the background jobs have processed it. In this case, we
were fetching the discussion immediately after adding the
student's reply, so the background jobs didn't have a chance to
get to the new reply yet.

Normally this isn't a problem because the reply is added to the
discussion without refetching the discussion. In this case, we
need to remember the new reply, which has all the good
information in it, so we can replace bad fetched reply with the
good data.

fixes #CNVS-2406

test plan:
 - As a teacher, create a discussion topic with "Users must
   post before seeing replies" checked
 - As a teacher, create reply to the discussion
 - View the discussion as a student (shouldn't see replies)
 - Reply to the discussion as a student
 - Replies should load and you should see student's reply with
   the student's name

Change-Id: Id1189eabc0e8e1ff90c3764f2d0d92b425b50672
Reviewed-on: https://gerrit.instructure.com/16413
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Zach Pendleton <zachp@instructure.com>
QA-Review: Marc LeGendre <marc@instructure.com>
2013-01-02 13:00:58 -07:00
Jon Jensen 8fc9c282f4 move default help links from js -> ruby, refs #CNVS-2331
no user-visible changes, just a tweak to make it easier for plugins to
override the default help links

test plan:
1. click on the help dialog
2. confirm that you see the appropriate links based on your role
3. add a custom link (via account settings)
4. confirm that it shows up correctly

Change-Id: I6e93b2fa9c2ebd32dc6eb485d50bd3f1118f2364
Reviewed-on: https://gerrit.instructure.com/16385
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
2013-01-02 12:36:20 -07:00
Simon Williams f7c38856e2 don't load unncessary assignment information for js grade calc
we load the assignment groups, which include assignments, which by default
includes the discussion topic info the the assignment is linked to
a discussion. this was unncessary, and was causing an error because the
discussion topic json does a select for update, and this is all happening in
a slave block.

fixes #CNVS-2430

test plan:
- in an environment with a master and slave database (user)
- try to load gradebook1; it should work
- try to load a student's grade summary page; it should work

Change-Id: I2fb9a202d1b30660871708ace16cb3be4cebb445
Reviewed-on: https://gerrit.instructure.com/16396
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Stanley Stuart <stanley+gerrit@instructure.com>
QA-Review: Stanley Stuart <stanley+gerrit@instructure.com>
2013-01-02 09:05:13 -07:00
Jon Jensen 4fe8f4143a move course full check so already-enrolled users see the right thing
refs #CNVS-1360

Change-Id: I71d78c514715c741ab1956bfe8406e94d6d04e2e
Reviewed-on: https://gerrit.instructure.com/16409
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
2012-12-31 10:55:26 -07:00
Jeremy Stanley af737b8672 look at role name when reusing enrollments; fixes #CNVS-2431
test plan:
 * enroll a user as a plain Student
 * enroll the same user in a custom student role
 * the plain Student enrollment should not disappear

Change-Id: I7f7a1ce96a1a5f971a7226756d25b063d6f88a87
Reviewed-on: https://gerrit.instructure.com/16363
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
2012-12-28 15:23:15 -07:00
Ryan Florence 614b696a63 collapse / expand discussion entries
also:

- counts in side-comment "show all [n] replies"
  are now accurate
- moved lock/unlock into the cog menu
- moved the cog menu into the toolbar

test plan:
1. go to a discussion
2. click "collapse" in the toolbar
   - the root entries should collapse
   - the page should scroll to the entries
3. expand a single reply
   - the reply's replies should NOT be collapsed
4. click a page number
   - the newly rendered entries should be
     collapsed
5. click expand
   - all the root entries should expand
6. click a page link
   - all the entries should be expanded
7. lock and unlock should still work
8. Go to a side comment discussion
   - "show all [n] replies" should have an
     accurate count

Change-Id: Ia06fad173344c549d31b7cd51d4ecc57d2e40d5f
Reviewed-on: https://gerrit.instructure.com/15834
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
QA-Review: Cam Theriault <cam@instructure.com>
2012-12-27 14:36:21 -07:00
James Williams 878c73b43a use due dates from assignment overrides on student grades page
test plan:

* override the due_at column using assignment overrides
 either for sections, groups, or a specific student
* view the student's grade page and confirm that
 the new due date is used

closes #CNVS-444

Change-Id: Id4f4c1a05ab7129a29909b4142ffc25b056a2be4
Reviewed-on: https://gerrit.instructure.com/16167
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
2012-12-27 11:39:09 -07:00
Stanley Stuart 7b963aff37 remove openobject from UsersController
Removes OpenObject in favor of a struct to gain performance.

test plan:
  - specs should pass.

Change-Id: I0be2319533e2c2cd6ce1fa5dbf044ccb5368c299
Reviewed-on: https://gerrit.instructure.com/16049
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
2012-12-26 16:18:34 -07:00
Bracken Mosbacker 5585c3a203 add custom role support to course users tab
You can add enrollments with the custom roles and see who
has the roles.

Test Plan:
 * Create custom roles for each enrollment type
 * Test all the settings page's functionality like adding/deleting users with custom roles
 * Make custom observers observe students in various combinations of custom roliness
   - verify that the new observer role has the custom role
 * Make sure the section limited check box shows up for custom tas/teachers by selecting those options in the new user select box

closes #cnvs-1166

Change-Id: I5f133bf1b5b1438d7f8e34297b450ff561d401d0
Reviewed-on: https://gerrit.instructure.com/16272
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
2012-12-26 15:46:12 -07:00
Cameron Matheson f842c4ba4c cache submission lateness
fixes #CNVS-1295

* Adds a new 'late' field to submissions
* Adds compute_lateness method to submissions which
  is called on every save when the 'late' field is nil
  or when the submission time changes
* Adds after_save callbacks to Assignment and
  AssignmentOverride to recompute lateness on submissions
  in a background process
* Includes data migration for initializing the value of the
  new cache field

Change-Id: I68d47fdbcbb167bef8428b6ecd48bf6f66ef8cb7
Reviewed-on: https://gerrit.instructure.com/16086
QA-Review: Amber Taniuchi <amber@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
2012-12-26 15:37:18 -07:00
Cameron Matheson 105a4ae0a9 don't ignore muted assignments in gradebook csv
closes #CNVS-2397

Test plan:
  - set up a course with assignments
  - mute some assignments
  - set grades for students
  - make sure the gradebook csv totals and the gradebooks match
  - the student's grade page (when masquerading) should *not* match
    (it should ignore muted assignments)

Change-Id: Iebe15c5d108dcfa899bd501cc6dd45ceb688fa25
Reviewed-on: https://gerrit.instructure.com/16197
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Simon Williams <simon@instructure.com>
Tested-by: Simon Williams <simon@instructure.com>
2012-12-26 10:11:50 -07:00
Nathan Mills cbe2494c24 set cache headers for files
fixes #PS-73

test plan:

1. create a page that embeds a text file and a images

2. make sure that the page displays correctly

3. make sure you can  download the image from files

Change-Id: I2c4d7515d91b7c3aec1b01a41ceb6072bed33d6c
Reviewed-on: https://gerrit.instructure.com/16179
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Adam Phillipps <adam@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
2012-12-26 09:39:25 -07:00
Jeremy Stanley 7a6f15e975 fix API workflow wrt inactive/deleted roles
add index and show endpoints for Roles API; fixes #CNVS-2357
these endpoints add the ability to view inactive roles

remove the ability to delete and make the DELETE method
deactivate (at least until we figure out how to delete properly
with regard to account users, enrollments, and sub-accounts);
fixes #CNVS-2378

test plan:
 * render the docs and examine the new actions
 * test the index action (GET /api/v1/accounts/X/roles)
   - make sure it lists all roles
   - make sure built-in roles are 'active'
   - make sure you can list inactive roles
     with state[]=inactive
 * test the show action (GET /api/v1/accounts/X/roles/RoleName)
   - make sure it works for a built-in role
   - make sure it works for a custom role
   - make sure it 404s if an invalid name is given
 * test the deactivate action (DELETE /api/v1/accounts/X/roles/RoleName)
   - make sure it deactivates the role

Change-Id: Ic0b1e1709d2f52b17d26bc15ab7ecd60dd7ed743
Reviewed-on: https://gerrit.instructure.com/16291
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
QA-Review: Bracken Mosbacker <bracken@instructure.com>
2012-12-26 07:30:13 -07:00
Jon Jensen 03502069b7 only count self enrollments toward limit, refs #CNVS-1120
don't count manually created student enrollments toward the cap

test plan:
1. set an enrollment limit on a new course (e.g. max 1)
2. as a teacher, add several students
3. confirm that additional students can still self enroll up to the limit
   (the students added in step 2 don't count)

Change-Id: I93309181f3a5021d6cf51b8c02ba899f017cd32e
Reviewed-on: https://gerrit.instructure.com/16308
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joe Tanner <joe@instructure.com>
QA-Review: Jon Jensen <jon@instructure.com>
2012-12-23 15:59:31 -07:00
Jon Jensen c51c4fbe0c skip the message if we can't find the participant record
Change-Id: Ie771b72283de9831de182d72e2f6c26a7754e67a
Reviewed-on: https://gerrit.instructure.com/16338
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Zach Wily <zach@instructure.com>
QA-Review: Zach Wily <zach@instructure.com>
2012-12-22 08:48:24 -07:00
Cody Cutrer c78f334c4f get the last author from the last message, not the stream item
Change-Id: I3092383b8898f17f7bf1f4c97fb113f322f3797d
Reviewed-on: https://gerrit.instructure.com/16337
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Cody Cutrer <cody@instructure.com>
2012-12-22 08:19:38 -07:00
Cody Cutrer ead78975b0 change cached enrollments cache key
Change-Id: I52f95e7cbca04e26853e57461969892838d2250c
Reviewed-on: https://gerrit.instructure.com/16336
Reviewed-by: Jon Jensen <jon@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Cody Cutrer <cody@instructure.com>
2012-12-22 08:11:52 -07:00