From 391cc55537a97ec8b2b55662db9c63f86ab885ef Mon Sep 17 00:00:00 2001 From: Roald de Vries Date: Mon, 5 Dec 2016 10:32:12 +0100 Subject: get templates from pkg_resources --- service/pixelated/resources/inbox_resource.py | 8 ++------ service/pixelated/resources/login_resource.py | 7 ++++--- service/pixelated/resources/root_resource.py | 6 +++--- 3 files changed, 9 insertions(+), 12 deletions(-) (limited to 'service/pixelated/resources') diff --git a/service/pixelated/resources/inbox_resource.py b/service/pixelated/resources/inbox_resource.py index d9ba86a5..13d1f298 100644 --- a/service/pixelated/resources/inbox_resource.py +++ b/service/pixelated/resources/inbox_resource.py @@ -15,6 +15,7 @@ # along with Pixelated. If not, see . import hashlib import os +import pkg_resources from string import Template import pixelated @@ -35,9 +36,8 @@ class InboxResource(BaseResource): def __init__(self, services_factory): BaseResource.__init__(self, services_factory) self._not_quite_the_templates_folder = self._get_not_quite_the_templates_folder() - self._templates_folder = self._get_templates_folder() self._html_template = open(os.path.join(self._not_quite_the_templates_folder, 'index.html')).read() - with open(os.path.join(self._templates_folder, 'Interstitial.html')) as f: + with open(pkg_resources.resource_filename('templates', 'Interstitial.html')) as f: self.interstitial = f.read() self._mode = MODE_STARTUP @@ -48,10 +48,6 @@ class InboxResource(BaseResource): path = os.path.dirname(os.path.abspath(pixelated.__file__)) return os.path.join(path, '..', '..', 'web-ui', 'public') - def _get_templates_folder(self): - path = os.path.dirname(os.path.abspath(pixelated.__file__)) - return os.path.join(path, 'assets') - def _is_starting(self): return self._mode == MODE_STARTUP diff --git a/service/pixelated/resources/login_resource.py b/service/pixelated/resources/login_resource.py index 6300efdb..2ca85af9 100644 --- a/service/pixelated/resources/login_resource.py +++ b/service/pixelated/resources/login_resource.py @@ -15,6 +15,7 @@ # along with Pixelated. If not, see . import os +import pkg_resources from xml.sax import SAXParseException from pixelated.authentication import Authenticator @@ -71,7 +72,7 @@ def parse_accept_language(all_headers): class DisclaimerElement(Element): - loader = XMLFile(FilePath(os.path.join(_get_startup_folder(), '_login_disclaimer_banner.html'))) + loader = XMLFile(FilePath(pkg_resources.resource_filename('templates', '_login_disclaimer_banner.html'))) def __init__(self, banner): super(DisclaimerElement, self).__init__() @@ -94,7 +95,7 @@ class DisclaimerElement(Element): class LoginWebSite(Element): - loader = XMLFile(FilePath(os.path.join(_get_startup_folder(), 'login.html'))) + loader = XMLFile(FilePath(pkg_resources.resource_filename('templates', 'login.html'))) def __init__(self, error_msg=None, disclaimer_banner_file=None): super(LoginWebSite, self).__init__() @@ -132,7 +133,7 @@ class LoginResource(BaseResource): self.putChild('startup-assets', File(self._startup_folder)) self.putChild('public-assets', File(self._public_folder)) - with open(os.path.join(self._startup_folder, 'Interstitial.html')) as f: + with open(pkg_resources.resource_filename('templates', 'Interstitial.html')) as f: self.interstitial = f.read() def getChild(self, path, request): diff --git a/service/pixelated/resources/root_resource.py b/service/pixelated/resources/root_resource.py index 375f27f6..e6a25e00 100644 --- a/service/pixelated/resources/root_resource.py +++ b/service/pixelated/resources/root_resource.py @@ -15,6 +15,7 @@ # along with Pixelated. If not, see . import json import os +import pkg_resources from pixelated.resources.users import UsersResource import pixelated @@ -50,9 +51,8 @@ class RootResource(BaseResource): self._assets_folder = self._get_assets_folder() self._startup_assets_folder = self._get_startup_folder() self._static_folder = static_folder - self._html_template = open(os.path.join(templates_folder, 'index.html')).read() self._services_factory = services_factory - with open(os.path.join(self._startup_assets_folder, 'Interstitial.html')) as f: + with open(pkg_resources.resource_filename('templates', 'Interstitial.html')) as f: self.interstitial = f.read() self._redirect_to_login_resource = Redirect('login') self._inbox_resource = InboxResource(services_factory) @@ -60,7 +60,7 @@ class RootResource(BaseResource): def _startup_mode(self): self.putChildProtected('assets', File(self._assets_folder)) - self.putChildPublic('startup-assets', File(self._startup_assets_folder)) + self.putChildPublic('startup-assets', File(pkg_resources.resource_filename('templates', '.'))) self.putChildPublic('static', File(self._static_folder)) self._mode = MODE_STARTUP logger.debug('Root in STARTUP mode. %s' % self) -- cgit v1.2.3