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>
and add a new column for linking it to a user
refs #3315
Change-Id: I8333a0530bb2da5557385bf30f45cdd56b5eb261
Reviewed-on: https://gerrit.instructure.com/2266
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>
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>