Adds apply_multiplier_to_class_cap field in SCRMI
Merge branch 'multiply-room-capacity' of git://github.com/mgersh/ESP-Website into roomcaptmp
Fix modules:0013_replace_verb migration

It needs to use the frozen ORM, because in the future the
StudentClassRegModuleInfo model will change and we will get database
errors from expecting a missing column. :)
Fixes some editclass logic.

 * The user isn't necessarily a teacher of the class (might be an admin),
and the user doesn't need to be added as a teacher (the user is either a
current teacher or an admin). So have ClassCreationController.editclass()
take a current_user argument, rather than a user argument.

 * Do not call ClassCreationController.force_availability(). The editing user
is either an admin (whose availability is irrelivant / shouldn't be edited),
or a teacher who (in theory) already indicated availability.

 * Call ClassCreationController.require_teacher_has_time() for all teachers
of the class, rather than the current user (who might not be a teacher)
and only the current user.

 * Allows ClassCreationController.make_class_happen() to be called without
a user, since we don't need to associate a user with the class if the user
is already a teacher of the class.

 * Have ClassCreationController.require_teacher_has_time() take a current_user
argument, so that different messages can be displayed depending on
whether the teacher violoating the time constraint is the current user or
a different teacher.
Adds scheduling check for teachers teaching both blocks of lunch.
Merge pull request #773 from benjaminjkraft/scheduling-checks-fixes

Adds scheduling check for teachers teaching both blocks of lunch.
Fix #776: QuerySet.prefetch_related broken

Fixes a bug in cache_loader where trying to access a many-to-many
field descriptor of a model class (e.g. ClassSection.meeting_times)
threw an error, which confuses prefetch_related. This was happening
because the cache_loader overrides the __get__ methods on these
descriptors to provide extra attributes, but the overriden methods
assumed you were trying to access the field from the instance to get a
ManyRelatedManager, rather than trying to access the field descriptor
from the class.
Fix #774: Remove unnecessary queries in ProgramModuleObj.findModuleObject

Removes a for-loop that makes a bunch of queries that are supposed to
"make sure all modules exist" but isn't actually needed because
prog.getModuleViews (which is better-cached) does this already.
Fix teachers who like running check.

It called datetime.timedelta.seconds rather than
datetime.timedelta.total_seconds(), so classes scheduled a day and a bit
apart were showing up.
Fixes /cache/view_all/.

Django templates were trying to call some things that shouldn't be
called, and it was breaking the page.
Customize the CSRF failure page.

Uses the CSRF_FAILURE_VIEW setting to specify a custom view for
rendering the CSRF failure page.

The old failure page was ugly and confusing because it didn't use the
same theme of the website. The custom view uses a template that inherits
from main.html, so theming is maintained even when a CSRF error occurs.

The new template also includes important debugging information that a
user can copy-and-paste into an e-mail to us.
Merge pull request #783 from benjaminjkraft/all-caches-fix

Fixes /cache/view_all/.
Adds mechanisms for disabling the debug toolbar

The Django debug toolbar can now be permanently disabled for a dev
server by setting DEBUG_TOOLBAR=False in local_settings.py, or
temporarily disabled with debug_toolbar=f in the request query string.
Fixes persistence of debug toolbar preference

The code for keeping the debug_toolbar GET parameter across page
navigations wasn't working, and probably isn't possible.

Changes the code so that the state is stored in request.session.
Allow QSD.name to be blank

After schema simplification, QSD doesn't use the name field anymore, and most (all?) QSD objects have a blank value for it. This is fine, except that the admin panel complains whenever you try to save a QSD object with a blank name. Thus, make the field blank-able.
Makes navbar entry's admin more useful
Merge branch 'main' of https://github.com/learning-unlimited/ESP-Website into main
Merge pull request #767 from learning-unlimited/multiply-room-capacity

New version of #731: multiply room capacity
Merge pull request #742 from learning-unlimited/old-editclass-fixes

Fixes some editclass logic.
Merge pull request #779 from learning-unlimited/module-views-fewer-queries

Fix #774: Remove unnecessary queries in ProgramModuleObj.findModuleObject