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>
Before, the child did a hard Kernel#exit!, skipping all finalizers and
exit callbacks. This was causing issues with code misbehaving, for
instance Tempfile instances never getting rm'd off disk.
Now we're doing a fork { block } and using the normal ruby exit path, so
that these finalizers get run. I had to tweak the db connection
handling, because this means that the db connection is also getting
closed by each spawned child.
Unfortunately I'm sure there's a performance hit for reconnecting to the
job queue database after each job is run.
Change-Id: I83776d08bf3693f72fd3e7246cee196cca1987a1
Reviewed-on: https://gerrit.instructure.com/2295
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@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>
The text helper was double escaping urls from external migrations
refs #3667
Change-Id: Ica89af6fffab47ec1fee82167acc1d34551e63e4
Reviewed-on: https://gerrit.instructure.com/2232
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
The closure-compiler gem has an undocumented
dependency on Windows with Ruby < 1.9. I've added
this to the Gemfile and also sent a message to
the gem's owner to hopefully get this fixed.
Change-Id: Ifb06b97013d541238cb834ca1773e16c1db11355
Reviewed-on: https://gerrit.instructure.com/2213
Reviewed-by: Brian Whitmer <brian@instructure.com>
Tested-by: Hudson <hudson@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>