#YZ JavaScript Django Template Compiler #Copyright (c) 2010 Weiss I Nicht <*****@*****.**> #(sha-1: 90f01291285340bf03c2d41952c4b21b3d338907) from yz_js_django_tpl import BaseJsFilter, JsProcessorRegistry class DefaultJsFilter(BaseJsFilter): """ Converts the "default" filter in django templates to javascript expression i.e. {{exampleVar|default:"default value"}} Examples: >>> from yz_js_django_tpl import TemplateJsNode,JsTplSettings >>> JsTplSettings.CONFIG['VERSAGER_MODE'] = False >>> ############### >>> #test django "default" filter >>> ############### >>> js_tpl = TemplateJsNode('Default value text: {{testVar|default:"default val"}}') >>> js_tpl.render() u'function(testVar){return "Default value text: "+yzdjs_default(testVar,"default val")}' """ expected_filter_funcname = 'default' js_func_name = 'yzdjs_default' file_path = __file__ JsProcessorRegistry.register_js_filter(DefaultJsFilter)
#YZ JavaScript Django Template Compiler #Copyright (c) 2010 Weiss I Nicht <*****@*****.**> #(sha-1: 90f01291285340bf03c2d41952c4b21b3d338907) from yz_js_django_tpl import BaseJsFilter, JsProcessorRegistry class HashJsFilter(BaseJsFilter): """ Converts the "hash" filter in django templates to native javascript hash look up, i.e. {{exampleVar|hash:varB}} Examples: >>> from yz_js_django_tpl import TemplateJsNode,JsTplSettings >>> from yz_js_django_tpl.customfilters import * >>> JsTplSettings.CONFIG['VERSAGER_MODE'] = False >>> ############### >>> #test django "hash" filter >>> ############### >>> js_tpl = TemplateJsNode('{% load hash %}Dict var1 with hash varB{{ varA|hash:varB }}') >>> js_tpl.render() u'function(varA,varB){return "Dict var1 with hash varB"+varA[varB]}' """ expected_filter_funcname = 'hash' def render(self): return '%s[%s]' % (self.expr, self.arg) JsProcessorRegistry.register_js_filter(HashJsFilter)
#YZ JavaScript Django Template Compiler #Copyright (c) 2010 Weiss I Nicht <*****@*****.**> #(sha-1: 90f01291285340bf03c2d41952c4b21b3d338907) from yz_js_django_tpl import BaseJsFilter, JsProcessorRegistry class AddJsFilter(BaseJsFilter): """ Converts the "add" filter in django templates to native javascript expression, i.e. {{exampleVar|add:"2"}} Examples: >>> from yz_js_django_tpl import TemplateJsNode,JsTplSettings >>> JsTplSettings.CONFIG['VERSAGER_MODE'] = False >>> ############### >>> #test django "add" filter >>> ############### >>> js_tpl = TemplateJsNode('1 + 1 = {{ 1|add:"1" }}') >>> js_tpl.render() u'function(){return "1 + 1 = "+(1+1)}' >>> js_tpl = TemplateJsNode('{{ 1|add:"1" }}') >>> js_tpl.render() u'function(){return (1+1)}' """ expected_filter_funcname = 'add' def render(self): return '(%s)' % '+'.join(self.js_func_params) JsProcessorRegistry.register_js_filter(AddJsFilter)