Coverage for e2xgrader/server_extensions/apps/formgrader/formgrader.py: 46%
28 statements
« prev ^ index » next coverage.py v7.4.2, created at 2024-03-14 13:22 +0100
« prev ^ index » next coverage.py v7.4.2, created at 2024-03-14 13:22 +0100
1import os
3from e2xcore import BaseApp
4from nbgrader.apps.baseapp import NbGrader
5from nbgrader.server_extensions.formgrader import handlers as nbgrader_handlers
6from tornado import web
8from e2xgrader.exporters import E2xExporter
9from e2xgrader.preprocessors import FilterCellsById
11from .handlers import default_handlers
14class FormgradeApp(NbGrader, BaseApp):
15 template_path = os.path.join(os.path.dirname(__file__), "templates")
16 static_path = os.path.join(os.path.dirname(__file__), "static")
18 def __init__(self, **kwargs):
19 NbGrader.__init__(self, **kwargs)
20 BaseApp.__init__(self, **kwargs)
21 self.initialize([])
22 if not self.config.has_key(
23 "HTMLExporter"
24 ) or not self.config.HTMLExporter.has_key("template_name"):
25 self.config.HTMLExporter.template_name = "formgrade"
27 def load_app(self):
28 self.log.info("Loading the formgrader app")
29 exporter = E2xExporter(config=self.config)
30 exporter.register_preprocessor(FilterCellsById)
32 self.update_tornado_settings(
33 dict(
34 nbgrader_jinja2_env=self.webapp.settings["e2xgrader"]["jinja_env"],
35 nbgrader_exporter=exporter,
36 )
37 )
38 self.add_template_path(self.template_path)
39 self.add_template_path(nbgrader_handlers.template_path)
40 self.add_handlers(default_handlers)
41 self.add_handlers(nbgrader_handlers.default_handlers)
43 static_handlers = [
44 (
45 r"/formgrader/static/(.*)",
46 web.StaticFileHandler,
47 {"path": nbgrader_handlers.static_path},
48 ),
49 (
50 r"/e2xgrader/static/(.*)",
51 web.StaticFileHandler,
52 {"path": self.static_path},
53 ),
54 ]
56 self.add_handlers(static_handlers)