33from django .contrib .staticfiles .storage import staticfiles_storage
44
55from django import template
6+ from django .template .base import VariableDoesNotExist
67from django .template .loader import render_to_string
78from django .utils .safestring import mark_safe
89
1617
1718
1819class PipelineMixin (object ):
20+ request = None
21+ _request_var = None
22+
23+ @property
24+ def request_var (self ):
25+ if not self ._request_var :
26+ self ._request_var = template .Variable ('request' )
27+ return self ._request_var
28+
1929 def package_for (self , package_name , package_type ):
2030 package = {
2131 'js' : getattr (settings , 'PIPELINE_JS' , {}).get (package_name , {}),
@@ -32,12 +42,18 @@ def package_for(self, package_name, package_type):
3242
3343 return packager .package_for (package_type , package_name )
3444
45+ def render (self , context ):
46+ try :
47+ self .request = self .request_var .resolve (context )
48+ except VariableDoesNotExist :
49+ pass
50+
3551 def render_compressed (self , package , package_type ):
3652 if settings .PIPELINE_ENABLED :
3753 method = getattr (self , "render_{0}" .format (package_type ))
3854 return method (package , package .output_filename )
3955 else :
40- default_collector .collect ()
56+ default_collector .collect (self . request )
4157
4258 packager = Packager ()
4359 method = getattr (self , "render_individual_{0}" .format (package_type ))
@@ -51,7 +67,9 @@ def __init__(self, name):
5167 self .name = name
5268
5369 def render (self , context ):
70+ super (StylesheetNode , self ).render (context )
5471 package_name = template .Variable (self .name ).resolve (context )
72+
5573 try :
5674 package = self .package_for (package_name , 'css' )
5775 except PackageNotFound :
@@ -77,7 +95,9 @@ def __init__(self, name):
7795 self .name = name
7896
7997 def render (self , context ):
98+ super (JavascriptNode , self ).render (context )
8099 package_name = template .Variable (self .name ).resolve (context )
100+
81101 try :
82102 package = self .package_for (package_name , 'js' )
83103 except PackageNotFound :
0 commit comments