on every save all the participants get duplicated, which
is causing slow loads on messages with lots of recipients.
this commit backgrounds the create process in case
there are a lot of participants to add, and stops using
find_or_create which for some reason was failing to find
correctly.
fixes#4014
Change-Id: I3f03793994999faf2bb424581f45adeb328eb28d
Reviewed-on: https://gerrit.instructure.com/2602
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
This will allow things outside of controller actions, like the soap
endpoint, to use this information and ensure that account-specific
request settings are set properly.
refs #3760
Change-Id: I85284d42b3206ff362c4aee6a998737ab89fc4b7
Reviewed-on: https://gerrit.instructure.com/2579
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
User account associations were not being updated properly when updating pseudonym accounts multiple times.
Without this fix user account association updating breaks when the pseudonym account gets updated multiple times in a row
For ex.
pseudonym.account = account1
pseudonym.save
pseudonym.account = account2
pseudonym.save
After running the code above the update_user_assocations code would update the user association to point to the first account instead of the second account.
Change-Id: I0f2666458cd9b1e54afb52d26e2b4ec858dccd26
Reviewed-on: https://gerrit.instructure.com/2589
Reviewed-by: Brian Whitmer <brian@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
a rubric should only be deleted once it's not
being used anymore. It should only be unbookmarked
from a given context when it's not being used in
that context anymore.
fixes#3309
Change-Id: Icb8a79baeb0c0ec2195b7e19b1d9768eadfeb97e
Reviewed-on: https://gerrit.instructure.com/2518
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
An API request is defined as any path beginning with /api
Change-Id: I715a0b63bbe1d6025cab9cf5b2f1bd062b321eab
Reviewed-on: https://gerrit.instructure.com/2562
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
I removed the api_routes plugin, since the code is currently too tied to
canvas to be pulled out into a generic plugin anyway. The yardoc
templates now live in doc/templates, and I've done some major cleanup
and refactoring -- they don't have much in common with the default YARD
templates anymore, and they work much better as API documentation.
The styling is now a little bit more "canvas-like" now, too.
Change-Id: I80edd02e63d7815a292306741f2e8ea52872aae2
Reviewed-on: https://gerrit.instructure.com/2535
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
even if a user isn't logged the next/prev buttons
should still show up... they do everywhere else
fixes#3929
Change-Id: I8415b17bcb00c3c8b5b845919f892ac13dc3c58e
Reviewed-on: https://gerrit.instructure.com/2470
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
I don't think objects or embeds will work on this page, but this will at least
make the page load.
Change-Id: I3c2062709885748010416340b6b8a1263b67f6c6
Reviewed-on: https://gerrit.instructure.com/2566
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
the gradebook page has a progress bar which currently
waits until all data for the gradebook is loaded before
hiding the progress bar and showing the datagrid.
Seems like it makes more sense to show the gradebook
sooner and just populate it as data comes in so at
least it's partly usable. This is a minor change right
now, but it'll make it possible to do more lazy
loading of the gradebook in the future.
fixes#3955
Change-Id: Ie4f486bdc0dd1373d4119822ec706fcdbd329b2f
Reviewed-on: https://gerrit.instructure.com/2501
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
- got rid of a bunch of rescue statements
- gradebook remembers hidden columns
- attendance columns are hidden in the gradebook
by default, with option added to show them
refs #3263
refs #3264
Change-Id: I786ad2c8d6795d4de3f6d279cde601d95d77091a
Reviewed-on: https://gerrit.instructure.com/2500
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
if you try to delete an assignment group that still has
active assignments in it, it'll pop up a dialog where you
can choose either to delete the assignments in the group
or move assignments in the group to another group.
fixes#3403
Change-Id: Ie7bc0617ac5b639c946e347950e7d550b27ca384
Reviewed-on: https://gerrit.instructure.com/2495
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
if it's not the current user, put the user's name in
the breadcrumb on the quiz history page instead of
just "History".
fixes#1261
Change-Id: I71f413aec3e405f59e32ff35ac1de19f22110ab3
Reviewed-on: https://gerrit.instructure.com/2464
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
This is super performance sensitive, so we're throwing best practices
out the window a bit here. Hopefully someday we can integrate this into
our security framework better and remove this duplication of logic.
Change-Id: I845db50ffab02769d91272fdc0ce3825d9a670c1
Reviewed-on: https://gerrit.instructure.com/2488
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
By scoping the finds to the user, we can avoid a lot of grants_right
lookups and the associated db queries. This is especially helpful for
users who belong to a lot of groups or courses.
Change-Id: I31e22ecddf9456734d6c1297d776a8353e43a526
Reviewed-on: https://gerrit.instructure.com/2486
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
the link really was kind of hard to find
fixes#3227
Change-Id: Ia6ee04e944336f60cd2061ec9a44194c46511e31
Reviewed-on: https://gerrit.instructure.com/2476
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Mark Suman <marks@instructure.com>
before we were recording these values but not doing
anything about it. This commit starts scheduling
delayed_jobs to activate/conclude enrollments
in the background when dates pass.
it does not conclude/publish courses/sections
automatically, though. if we want that to be
automated based on dates then I think we should
do that in a separate commit.
fixes#3356
Change-Id: Id94356fbc5b82196dd041fdb250607a7633cee9f
Reviewed-on: https://gerrit.instructure.com/2431
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
there's was a lot of unnecessary database calls going
on, should be a little faster now.
fixes#3939
Change-Id: I9a43e0d801bc632d16248ad92b7c9ff16d1673eb
Reviewed-on: https://gerrit.instructure.com/2484
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
This was leftover from the removal of OpenObject from the quizzes.
Change-Id: I586c55133eefdc76f9c77d58d1bae3f339628264
Reviewed-on: https://gerrit.instructure.com/2450
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
added wimba web conferencing support, moved dimdim config into plugin
settings, fixed a few web conferencing ui issues
Change-Id: I6b36b0e594a9f296d14cd35bec02186478bcbd13
Reviewed-on: https://gerrit.instructure.com/2343
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
The format_message call takes care of escaping HTML entities.
Change-Id: Ifb6f890903ee00c8098ee8596d4b66d18a2b9054
Reviewed-on: https://gerrit.instructure.com/2418
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
* speed grader now requires hidden student names on anonymous surveys
* quiz moderation no longer presents student names
* anonymous surveys no longer provide a list of students who have not taken
the survey
closes#3793
Change-Id: I7d48766600522b36379e8ae6d2a72486d2ce3ed7
Reviewed-on: https://gerrit.instructure.com/2407
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
It's unnecessary to html unescape the subject and body anymore, as they are
already unescaped.
Change-Id: I10b13805a42c677e1309983c77f1aa62e56e8578
Reviewed-on: https://gerrit.instructure.com/2413
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
Since plaintext fields are stored raw in the database, a lot of the previous
escaping/unescaping behavior in quizzes has changed.
Change-Id: I299fa7979a30b1efa8944c6df7150b82980c47c5
Reviewed-on: https://gerrit.instructure.com/2403
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
These issues arose from a change in the way we are storing plaintext fields in
the database. Previously they were stored html escaped, and now they're not.
Fixed areas include:
* folder names in file manager
* new course sub-account dialog
* grading rules for assignment groups
* event titles in calendar
* content locks page
* outcomes inside rubrics
* course listing while writing feedback
* copying file between contexts in file mgr
* sis import screen logs
* file upload options in wiki sidebar
Change-Id: Iab8c8deb81fdfd9062570288218db4180204a497
Reviewed-on: https://gerrit.instructure.com/2406
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
This involved some refactoring, since we were using
ActionMailer::Base.smtp_settings[:domain] for generating "From"
addresses.
Change-Id: I6cac6d48971d396a56e07314e042b63a0081a4b6
Reviewed-on: https://gerrit.instructure.com/2398
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
missed a rescue in the case where there's not currently
a valid facebook session.
fixes#3867
Change-Id: Ia524dcd93be48e7a4e57866a414096437a0632d3
Reviewed-on: https://gerrit.instructure.com/2359
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
If any individual message delivery fails, we'll reschedule it as its own
individual job.
Change-Id: I51ae5941fd001c61e6c6b708185ff12585d0a49f
Reviewed-on: https://gerrit.instructure.com/2390
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
did this because it was a waste to send it to
every single page view.
plus I hated seeing it in the firebug and web
inspector
fixes: #3874
Change-Id: I3e25cb78cddf9f8f897c81014bb07ca77ccfc361
Reviewed-on: https://gerrit.instructure.com/2363
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
it was because image_tag("blank.png") would put
a alt tag of "blank" on the image, which the screenreader
would always read.
fixes zendesk 5589
Change-Id: Ifbd200e17d40d6a5f45208f1adb6b49835ce3c5d
Reviewed-on: https://gerrit.instructure.com/2365
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
round one in moving all the yml files to the plugins system instead
Change-Id: Id255c15d14d27bce232606ece6bd00eb7e094749
Reviewed-on: https://gerrit.instructure.com/2339
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
the notification settings were poorly formatted, which
was making the start and end times get saved
incorrectly.
Change-Id: I7aae061d823a18f44e00a1e52806df1a26ed3807
Reviewed-on: https://gerrit.instructure.com/2353
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
if a teacher locks a file and tries to go to the
file details page, it says "hasn't been unlocked
yet", when really it should let them download
since they're a teacher.
fixes#3578
Change-Id: I42ea29d2803b8fa96fd50afd0adfdcf614702760
Reviewed-on: https://gerrit.instructure.com/2342
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
if they can only see 1 section (possibly the default section),
they do not get the option to change it.
they can only change sections they are allowed to see
the setting is stored in $.store.userGet and is keyed
off of the course too so it will be remembered for a
given user/course/browser combo.
if the page loads and tries to show only a section,
but that section does not have anyone in it, or they
cant see anyone in it, it will alert() reload to show
all sections.
fixes#3653
Change-Id: Ie6de238ac8e1d5367ae8ab961aaa0fcc1ca66c1e
Reviewed-on: https://gerrit.instructure.com/2324
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
now one of course_id/section_id is required for enrollments, but not both
Change-Id: I4ebd19ac05988bf3eeffcb846d8bc1fafce73b40
Reviewed-on: https://gerrit.instructure.com/2316
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
there's still going to be up to a 3 minute delay on alerts
showing up on a user's dashboard, since we don't touch all
the users for an account when an alert changes, but if a
user closes the alert it should go away forever like it's
supposed to now.
Change-Id: I6461836ad126c4646a496734e84c89305f873f2d
Reviewed-on: https://gerrit.instructure.com/2344
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
Used to fail after 10 empty ajax responses. Changed to
not count it as a bad request unless it's already had
at least one good request.
fixes#3838
Change-Id: I5d41f52ca302f779507e2e93a03ebac342b97e2b
Reviewed-on: https://gerrit.instructure.com/2311
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
On the outcomes page if you clicked "show details" for an
outcome, it would always say "0 artifacts" even if there
were artifacts. The problem is it wasn't actually looking
for artifacts, it was looking for something else. Also
fixed the pageless code on the outcome details page to
correctly do an infinite scroll.
fixes#3823
Change-Id: I6e0fd06ea70e5915ee5cdef23d4851ecd6a285fc
Reviewed-on: https://gerrit.instructure.com/2318
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
On large quizzes there were problems both while
taking and editing the quiz because of all the DOM
elements. Part of the solution was using more event
delegation, and part was rendering smaller
partials when editing quizzes with lots of questions,
and then loading the full details of only the
questions that the user wants to edit/view.
fixes#3771fixes#3817
Change-Id: I73aabe79323c1879d7fc8985d1709751271730f2
Reviewed-on: https://gerrit.instructure.com/2290
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
there's already logic to flag the ContextMessage as read when you read (or
reply to) an InboxItem... just added the inverse to the models, plus a
read call to the controller when replying
Change-Id: Ie3c22cd4e81bbbb4f8a1d88412c6c6fd33e45dc3
Reviewed-on: https://gerrit.instructure.com/2329
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
observers can now be linked from either the course
details page or the user details page inside a course.
Fixed some bugs in this and made the code a bit
cleaner.
refs #3315
Change-Id: I004bc11d823fffcc76ab5b74ee235979248cae4d
Reviewed-on: https://gerrit.instructure.com/2263
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
also some UI fixes for the plugin page
Change-Id: I161c458756c20e034c29d4515801fd9f6427aa53
Reviewed-on: https://gerrit.instructure.com/2093
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
account admins can create "Alerts" from the account
settings page that show up as sticky messages on the
user dashboards. The alerts stay until the end_at
date, or until the user clicks the "close" link. If
you add an alert to the site_admin account then it's
considered a global alert and will go to all root
accounts.
fixes#3738
Change-Id: I47e6eaf717145af24d847d4387e0ad5c36800094
Reviewed-on: https://gerrit.instructure.com/2293
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
by default observers don't have messaging permission. Now
you can give them messaging permission, but if they don't have
roster access then they can only message the teachers. If
they are also granted roster access then they can message
anyone in the course.
refs #3315
Change-Id: Ic9d867a964d3231fedd97547dadd645a6eb85308
Reviewed-on: https://gerrit.instructure.com/2265
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
also added option for plugins to provide validation on
their settings page. I need this for some of the
more complex settings we'll have to put together
as we move stuff from yml files to settings.
Change-Id: I78e6e3cd423e7ef7e15eafae86db8337f605be3a
Reviewed-on: https://gerrit.instructure.com/2247
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
this logic didn't make sense to me, and it was obviously
broken, so I rewrote it. These are the new assumptions
for web conferences:
- when the first participant joins a conference, we set
started_at, start_at and end_at
- once nobody is using the conference anymore and end_at
has passed, or it is more than 15 minutes past
end_at, we set ended_at
- if ended_at is set and has passed, the conference is
considered closed
- if ended_at is not set and a user tries to join an
inactive conference, don't let them unless they're
authorized to resume the conference
- conferences are resumable by those with permission, but
only until the end_at date, after that it's all over
fixes#3827
Change-Id: I3f7474c314a99f0fd5a2b7f9222216d2fc3168a1
Reviewed-on: https://gerrit.instructure.com/2304
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2 things:
1. styled the file uploads for: thing so that it
is not so ugly.
2. if anything in the file list is a swf, when
they click it embed it inline with wmode: opaque
so that it doesn't appear on to of everything
(like the students dropdown in the speedGrader)
Change-Id: Ifcc1044d5256269f1f8b5549f1fb51fde088dba8
fixes: #3497 and zendesk #4562
Reviewed-on: https://gerrit.instructure.com/2192
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
If there are too many questions in a bank we show
just a summary for each question instead of the full
question to help render faster. With the OpenObject
fix it appears that we lost the names of the
questions on the teaser partial.
Change-Id: Iab0a673462dc23626bb63637d1ece90d15aa4a5e
Reviewed-on: https://gerrit.instructure.com/2289
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
- @stored_params was sometimes a hash but everything was still
expecting an open_object
- missed a place where the code now failed on nil
fixes#3804
Change-Id: I1b74dadc5956314ebbf1da0baa0dd2d41940aad7
Reviewed-on: https://gerrit.instructure.com/2283
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
The more general issue of sites setting X-Frame-Options still remains.
See #3834.
Change-Id: Ia659f85aa30877d1e7a7ce351d5856809a034d7d
Reviewed-on: https://gerrit.instructure.com/2300
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
The real fix for this is to make datetime_field idempotent, but that might be
a little trickier. This changes fixes this one specific case though.
(datetime_field was being called multiple times on the date field, which
caused it to include the date twice in the submitted value, which caused ruby
to misinterpret the pm.)
fixes#3818
Change-Id: Ifd24f202d25d7c2431409c1c7c3d285c81d7d990
Reviewed-on: https://gerrit.instructure.com/2292
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
both names were actually being used, this will make it
consistent.
fixes#3781
Change-Id: I6ef6c791d4dca5d2934fa83fd6afaf4b5b9625a5
Reviewed-on: https://gerrit.instructure.com/2267
Reviewed-by: JT Olds <jt@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
due_at used to mean "the time after which you could no
longer start taking a quiz" but that's not really what
"due at" means. We changed it instead to now mean what
it implies, "the time at which all quiz attempts must
be completed."
So if you start taking a 4-hour quiz one hour before
it's due, you'll only get one hour to take it.
The other part of this is fixing the timer to support
switching from counting up to counting down. When an
assignment is untimed but due, say, two months from now,
we should count up on the timer. When we get close to
the due date, though, this should change to a countDOWN
instead. Right now this switch is set to happen at
12 hours from the due date, and will flash a notice
saying "12 hours left".
fixes#3727
Change-Id: I1eec558de61e2500da88f4127b7e691e7aa5c205
Reviewed-on: https://gerrit.instructure.com/2182
Reviewed-by: Brian Whitmer <brian@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
Teachers can specify an IP filter for a quiz, which
means students are only allowed to take the quiz
when their current computer's IP address matches
the specified filter. The initial request to start
taking the quiz and any subsequent requests to
backup or submit the quiz attempt must all come
from a valid IP address.
Admins can pre-define named filters
so that teachers don't have to manually enter
filters all the time. They can instead find them
from a provided list.
Change-Id: I59b6d8ddd31409fc9bd150ed695935ad2f458f86
Reviewed-on: https://gerrit.instructure.com/2167
Reviewed-by: Brian Whitmer <brian@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
- added a moderation link on the quiz page
- moderators can see current quiz results for students
- moderators can add time to a current quiz attempt
- moderators can manually unlock a quiz for a student,
which means the student can take the quiz even if
it's locked for everyone else
- moderators can give a student extra time for every
subsequent attempt of a quiz
- moderators can give a student extra attempts on a quiz
- moderators can also update these settings for multiple
students at the same time
Change-Id: I31c34097fc6e19d8c6e377a6059568e591ffbab8
Reviewed-on: https://gerrit.instructure.com/2166
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
my justification for removing all these tabs (i could be wrong)
* courses: the site admin account shouldn't have any
* users: users in the site admin account are kinda useless if they aren't
account admins, which you can configure in the settings tab
* statistics, outcomes, rubrics, sub-accounts, faculty journal,
terms, authentication, and sis import all make more sense in other
account tabs
the settings and permissions tabs are needed though, though everything but
account-level permissions are disabled
closes#3702
Change-Id: I4516b62ad57600870d9139ba19837325a39665f1
Reviewed-on: https://gerrit.instructure.com/2246
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
In /accounts/*/role_overrides
The value was being saved correctly, but the UI was incorrect and super
confusing. It'd always show a bold "explicit" green checkmark, rather
than the semi-transparent check/cross depending on the actual default.
refs #3711
Change-Id: Ide0a0603b6c820ea0ec94646c4327239d980b09c
Reviewed-on: https://gerrit.instructure.com/2194
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
...and possibly other places as well. Seems like the
default should be to not include deleted users in
any result set.
fixes#3741
Change-Id: I87caaaa2ea69f303e20cbbd259663411b4a9ce89
Reviewed-on: https://gerrit.instructure.com/2201
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
It looks like at some point we switched from an "upload" to an "attachment"
section type, which broke this
Change-Id: I49f1a45ad5b39acd00376504962b9841264d4bd0
Reviewed-on: https://gerrit.instructure.com/2227
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
Once we're storing these permissions caches in a shared memcache
cluster, we can flush them only when they've actually been invalidated.
But until then, we have to flush on each request, in case a role
override was changed on a different app server.
Change-Id: I4479605b96a4fcf36a686033939be4a158aa9699
Reviewed-on: https://gerrit.instructure.com/2224
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
the default url for facebook authorization calls wasn't getting the
"http://" part sometimes, which is obviously a problem.
Change-Id: Iabc51056f81d8c427ffcbad8f20d215cfd724025
Reviewed-on: https://gerrit.instructure.com/2222
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
When the "Manually Created Courses" account was getting created, it wasn't
getting its root_account set properly. In fact, it looks like only
sub-accounts 2-levels deep were getting it set correctly all the time. This
was causing courses in those accounts to have the wrong root account, making
it so admins couldn't access them.
fixes#3749
Change-Id: I3eead0fd66e3127bfc713f991d26f6d304b0e782
Reviewed-on: https://gerrit.instructure.com/2217
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
This also prevents blank wiki pages from being created
when there are unsupported import types
closes#3739
Change-Id: I6c1aa7f34de07db83d6c45d134c5e967dc7506d9
Reviewed-on: https://gerrit.instructure.com/2195
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
- if you change the points possible for an assignment, the
'grade' column for submissions is no longer accurate.
This fix makes sure the grade column stays up to date (but
does not update any old versions of the submission)
- if you have a letter grade assignment, we should accept
lowercase versions of the grade if there's not an exact
match.
Change-Id: I6277c9a216e23bd068fc0381cac1da2e9d718d1a
Reviewed-on: https://gerrit.instructure.com/2193
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
looks like guid and date are not defined on rss 1.0 feeds
fixes#3720
Change-Id: I361e0d3dae44f3085e135a9ddf6bbb52b18f1bae
Reviewed-on: https://gerrit.instructure.com/2173
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
Turnitin has no way to register callbacks when a submission's
originality score changes. However, teachers are able to
modify originality scores for submissions by marking certain
sources as being ignored when checking for originality. If a
teacher does this then the data we've cached will get out of
date.
We don't really want to have to regularly poll for updated
info, so this will just schedule a background job to check
for updates whenever someone goes to view the full
originality report. There will still be plenty of time
when the data it out of sync, but it at least gives a
way in the UI to update the data.
Change-Id: Ia8cc814a2e9cf5ec140d3fd22acedfbb00da1b8a
Reviewed-on: https://gerrit.instructure.com/2163
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
migrations were previously limited to being on the same
job server, now the exported data is uploaded back to
canvas and downloaded again for the importing step
closes#3519
Change-Id: I24deaf4bc1811c4b66b1a2cf79f311ffc1fa9906
Reviewed-on: https://gerrit.instructure.com/2178
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
When we import quizzes from another system we leave
them all unpublished so the teacher can review
the import results before publishing. This adds
a "Publish Multiple Quizzes" button that will,
well, publish multiple quizzes -- at the same time.
fixes#3636
Change-Id: I9b762da0e938a0b2e1986e3bdb9a216dd5bc7142
Reviewed-on: https://gerrit.instructure.com/2175
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
- use real emails for students in turnitin when available
(requested by iParadigms)
- add note to assignment details page to say it's a
turnitin assignment
- add turnitin score icons to student grades page
- better logging if any errors happen during API calls
Change-Id: I0e1096583f600439245d975a178c7638d6c40fa3
Reviewed-on: https://gerrit.instructure.com/2137
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
The zip filename was wrong, so we weren't finding the previous entry,
and the javascript was asking for a compile each time.
Change-Id: Idd6bae2add07ec67c6f1f62cfe103dd036e57e8a
Reviewed-on: https://gerrit.instructure.com/2149
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
It was configurable on the console before, but this adds it
to the account settings page as well. Sub-accounts are
able to set their own equella settings.
Change-Id: I76d909dcf9d581760c815a369793d86264148a1c
Reviewed-on: https://gerrit.instructure.com/2132
Reviewed-by: Brian Whitmer <brian@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
more can be handled in a plugin.
Change-Id: Ie8525625f8846c2312d15fab352850a6901744b6
Reviewed-on: https://gerrit.instructure.com/2142
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
Previously we were only sending it if registration approval was required. Now
we send it no matter what.
Change-Id: I64aed1b7132555ffa73fd94194a1c4afe9dd63c9
Reviewed-on: https://gerrit.instructure.com/2103
Reviewed-by: Brian Palmer <brianp@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
We used to hide it by default in any setting where we knew the
wizard would pop up. But because we're storing a setting in
localStorage now we can't be sure it shouldn't be there.
Change-Id: I8bba90001a300e76d467c99f25747cf246fe3933
Reviewed-on: https://gerrit.instructure.com/2136
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
Next we will be extracting all this Instructure-specific stuff into a plugin
so this page is generic for Canvas CV.
Change-Id: I46200fb27a9c434d3b1983674043f6413b23a041
Reviewed-on: https://gerrit.instructure.com/2128
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: JT Olds <jt@instructure.com>
This was cause by the new default escaping behaviour
Change-Id: I5a6dc181dee5b8eaa2d94545f15c3f2a9903f059
Reviewed-on: https://gerrit.instructure.com/2126
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Bracken Mosbacker <bracken@instructure.com>
When we sanitize eportfolio content we set the keys to be
symbols instead of strings. Since we just recently started
sanitizing we're actually going to have some symbol
keys and some string keys, so I've added a
.with_indifferent_access call.
fixes#3198
Change-Id: I928a5ea575158aa871e13733637bb1cc98108c75
Reviewed-on: https://gerrit.instructure.com/2118
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Zach Wily <zach@instructure.com>