def render_common(obj, filename, version): if settings.COMPRESS: filename = get_output_filename(filename, version) context = template.Context(obj.get('extra_context', {})) prefix = context.get('prefix', None) if filename.startswith('http://'): context['url'] = filename else: context['url'] = compress_url(filename, prefix) if not settings.COMPRESS: # append querystring version when not compressing files context['url'] = '%s?%s' % (context['url'], get_version([filename])) return obj['template'].render(context)
def render(self, context): js_name = template.Variable(self.name).resolve(context) try: js = settings.COMPRESS_JS[js_name] except KeyError: return '' # fail silently, do not return anything if an invalid group is specified if 'external_urls' in js: r = '' for url in js['external_urls']: r += render_js(js, url) return r if settings.COMPRESS: version = None if settings.COMPRESS_AUTO: u, version = needs_update(js['output_filename'], js['source_filenames']) if u: filter_js(js) else: filename_base, filename = os.path.split(js['output_filename']) path_name = media_root(filename_base) version = get_version(path_name, filename) if self.variable is None: return render_js(js, js['output_filename'], version) else: context[self.variable] = [media_url(js['output_filename'], context.get('prefix', None))] return '' else: # output source files if self.variable is None: r = '' for source_file in js['source_filenames']: r += render_js(js, source_file) return r else: context[self.variable] = [media_url(a_js_file, context.get('prefix', None)) for a_js_file in js['source_filenames']] return ''