Merge pull request #811 from cpennington/initialize-mitxmako-at-startup
Move mitxmako initialization to a startup module
This commit is contained in:
@@ -3,7 +3,6 @@ from certificates.models import certificate_status_for_student
|
||||
from certificates.models import CertificateStatuses as status
|
||||
from certificates.models import CertificateWhitelist
|
||||
|
||||
from mitxmako.middleware import MakoMiddleware
|
||||
from courseware import grades, courses
|
||||
from django.test.client import RequestFactory
|
||||
from capa.xqueue_interface import XQueueInterface
|
||||
@@ -52,14 +51,6 @@ class XQueueCertInterface(object):
|
||||
"""
|
||||
|
||||
def __init__(self, request=None):
|
||||
# MakoMiddleware Note:
|
||||
# Line below has the side-effect of writing to a module level lookup
|
||||
# table that will allow problems to render themselves. If this is not
|
||||
# present, problems that a student hasn't seen will error when loading,
|
||||
# causing the grading system to under-count the possible score and
|
||||
# inflate their grade. This dependency is bad and was probably recently
|
||||
# introduced. This is the bandage until we can trace the root cause.
|
||||
m = MakoMiddleware()
|
||||
|
||||
# Get basic auth (username/password) for
|
||||
# xqueue connection if it's in the settings
|
||||
|
||||
@@ -10,8 +10,6 @@ from django.contrib.auth.models import User
|
||||
|
||||
import xmodule
|
||||
|
||||
import mitxmako.middleware as middleware
|
||||
middleware.MakoMiddleware()
|
||||
from xmodule.modulestore.django import modulestore
|
||||
from courseware.model_data import ModelDataCache
|
||||
from courseware.module_render import get_module
|
||||
|
||||
@@ -12,6 +12,7 @@ from django.core.urlresolvers import reverse
|
||||
|
||||
from student.models import CourseEnrollment
|
||||
from student.tests.factories import AdminFactory
|
||||
from mitxmako.middleware import MakoMiddleware
|
||||
|
||||
from xmodule.modulestore.django import modulestore
|
||||
|
||||
@@ -135,6 +136,10 @@ class ViewsTestCase(TestCase):
|
||||
def verify_end_date(self, course_id, expected_end_text=None):
|
||||
request = self.request_factory.get("foo")
|
||||
request.user = self.user
|
||||
|
||||
# TODO: Remove the dependency on MakoMiddleware (by making the views explicitly supply a RequestContext)
|
||||
MakoMiddleware().process_request(request)
|
||||
|
||||
result = views.course_about(request, course_id)
|
||||
if expected_end_text is not None:
|
||||
self.assertContains(result, "Classes End")
|
||||
|
||||
@@ -20,7 +20,6 @@ from dogapi import dog_stats_api
|
||||
|
||||
from xmodule.modulestore.django import modulestore
|
||||
|
||||
import mitxmako.middleware as middleware
|
||||
from track.views import task_track
|
||||
|
||||
from courseware.models import StudentModule
|
||||
@@ -35,26 +34,6 @@ TASK_LOG = get_task_logger(__name__)
|
||||
UNKNOWN_TASK_ID = 'unknown-task_id'
|
||||
|
||||
|
||||
def initialize_mako(sender=None, conf=None, **kwargs):
|
||||
"""
|
||||
Get mako templates to work on celery worker server's worker thread.
|
||||
|
||||
The initialization of Mako templating is usually done when Django is
|
||||
initializing middleware packages as part of processing a server request.
|
||||
When this is run on a celery worker server, no such initialization is
|
||||
called.
|
||||
|
||||
To make sure that we don't load this twice (just in case), we look for the
|
||||
result: the defining of the lookup paths for templates.
|
||||
"""
|
||||
if 'main' not in middleware.lookup:
|
||||
TASK_LOG.info("Initializing Mako middleware explicitly")
|
||||
middleware.MakoMiddleware()
|
||||
|
||||
# Actually make the call to define the hook:
|
||||
worker_process_init.connect(initialize_mako)
|
||||
|
||||
|
||||
class UpdateProblemModuleStateError(Exception):
|
||||
"""
|
||||
Error signaling a fatal condition while updating problem modules.
|
||||
|
||||
Reference in New Issue
Block a user