Commit 93381ffe by Kyle MacFarlane Committed by Timothée Peignier

template tags now only load the package they need instead of all packages every time

Signed-off-by: Timothée Peignier <timothee.peignier@tryphon.org>
parent 776f4066
......@@ -11,15 +11,19 @@ from pipeline.versioning import Versioning
class Packager(object):
def __init__(self, force=False, verbose=False):
def __init__(self, force=False, verbose=False, css_packages=None, js_packages=None):
self.force = force
self.verbose = verbose
self.compressor = Compressor(verbose)
self.versioning = Versioning(verbose)
self.compiler = Compiler(verbose)
if css_packages is None:
css_packages = settings.PIPELINE_CSS
if js_packages is None:
js_packages = settings.PIPELINE_JS
self.packages = {
'css': self.create_packages(settings.PIPELINE_CSS),
'js': self.create_packages(settings.PIPELINE_JS),
'css': self.create_packages(css_packages),
'js': self.create_packages(js_packages),
}
def package_for(self, kind, package_name):
......
......@@ -10,10 +10,14 @@ register = template.Library()
class CompressedCSSNode(template.Node):
def __init__(self, name):
self.name = name
self.packager = Packager()
def render(self, context):
package_name = template.Variable(self.name).resolve(context)
package = settings.PIPELINE_CSS.get(package_name, {})
if package:
package = {package_name: package}
self.packager = Packager(css_packages=package, js_packages={})
try:
package = self.packager.package_for('css', package_name)
except PackageNotFound:
......@@ -45,10 +49,14 @@ class CompressedCSSNode(template.Node):
class CompressedJSNode(template.Node):
def __init__(self, name):
self.name = name
self.packager = Packager()
def render(self, context):
package_name = template.Variable(self.name).resolve(context)
package = settings.PIPELINE_JS.get(package_name, {})
if package:
package = {package_name: package}
self.packager = Packager(css_packages={}, js_packages=package)
try:
package = self.packager.package_for('js', package_name)
except PackageNotFound:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment