split the controllers into separate files
This commit is contained in:
40
owrx/controllers/template.py
Normal file
40
owrx/controllers/template.py
Normal file
@ -0,0 +1,40 @@
|
||||
from . import Controller
|
||||
import pkg_resources
|
||||
from string import Template
|
||||
from abc import ABCMeta
|
||||
|
||||
|
||||
class TemplateController(Controller, metaclass=ABCMeta):
|
||||
def render_template(self, file, **vars):
|
||||
file_content = pkg_resources.resource_string("htdocs", file).decode("utf-8")
|
||||
template = Template(file_content)
|
||||
|
||||
return template.safe_substitute(**vars)
|
||||
|
||||
def serve_template(self, file, **vars):
|
||||
self.send_response(self.render_template(file, **vars), content_type="text/html")
|
||||
|
||||
def default_variables(self):
|
||||
return {}
|
||||
|
||||
|
||||
class WebpageController(TemplateController, metaclass=ABCMeta):
|
||||
def template_variables(self):
|
||||
header = self.render_template("include/header.include.html")
|
||||
return {"header": header}
|
||||
|
||||
|
||||
class IndexController(WebpageController):
|
||||
def handle_request(self):
|
||||
self.serve_template("index.html", **self.template_variables())
|
||||
|
||||
|
||||
class MapController(WebpageController):
|
||||
def handle_request(self):
|
||||
# TODO check if we have a google maps api key first?
|
||||
self.serve_template("map.html", **self.template_variables())
|
||||
|
||||
|
||||
class FeatureController(WebpageController):
|
||||
def handle_request(self):
|
||||
self.serve_template("features.html", **self.template_variables())
|
Reference in New Issue
Block a user