def ready(self): super().ready() # Register netutils jinja2 filters in django_jinja and Django Template from netutils.utils import jinja2_convenience_function from django_jinja import library from django import template register = template.Library() for name, func in jinja2_convenience_function().items(): # Register in django_jinja library.filter(name=name, fn=func) # Register in Django Template register.filter(name, func)
from jinja2.ext import Extension from babel.support import Format from django_jinja import library from rest_framework.reverse import reverse as drf_reverse from rest_framework.settings import api_settings from olympia import amo from olympia.amo import urlresolvers, utils from olympia.amo.reverse import get_url_prefix from olympia.lib.jingo_minify_helpers import _build_html, get_css_urls, get_js_urls register = Library() # Registering some utils as filters: library.filter(utils.epoch) library.filter(utils.isotime) library.global_function(dict) library.global_function(utils.randslice) library.global_function(static) @library.filter def urlparams(*args, **kwargs): return jinja2.Markup(utils.urlparams(*args, **kwargs)) @library.global_function def switch_is_active(switch_name): return waffle.switch_is_active(switch_name)
from django_jinja import library from pytz import timezone from soapbox.models import Message from statici18n.templatetags.statici18n import statici18n from urlobject import URLObject from ..exceptions import DateTimeFormatError from ..urlresolvers import reverse, split_path from ..utils import urlparams htmlparser = HTMLParser.HTMLParser() # Yanking filters from Django. library.filter(defaultfilters.linebreaksbr) library.filter(strip_tags) library.filter(defaultfilters.timesince) library.filter(defaultfilters.truncatewords) library.global_function(statici18n) library.filter(urlparams) @library.filter def paginator(pager): """Render list of pages.""" return Paginator(pager).render() @library.global_function
from django.utils.translation import ugettext_lazy as _ from django_jinja import library from pytz import timezone, utc from soapbox.models import Message from statici18n.templatetags.statici18n import statici18n from urlobject import URLObject from ..urlresolvers import reverse, split_path from ..utils import urlparams, format_date_time htmlparser = HTMLParser.HTMLParser() # Yanking filters from Django. library.filter(defaultfilters.escapejs) library.filter(defaultfilters.linebreaksbr) library.filter(strip_tags) library.filter(defaultfilters.truncatewords) library.global_function(statici18n) library.filter(urlparams) @library.filter def paginator(pager): """Render list of pages.""" return Paginator(pager).render() @library.global_function
from django.utils.html import strip_tags from django.utils.translation import ugettext_lazy as _ from django_jinja import library from pytz import timezone, utc from soapbox.models import Message from statici18n.templatetags.statici18n import statici18n from urlobject import URLObject from ..exceptions import DateTimeFormatError from ..urlresolvers import reverse, split_path from ..utils import urlparams htmlparser = HTMLParser.HTMLParser() # Yanking filters from Django. library.filter(defaultfilters.linebreaksbr) library.filter(strip_tags) library.filter(defaultfilters.truncatewords) library.global_function(statici18n) library.filter(urlparams) @library.filter def paginator(pager): """Render list of pages.""" return Paginator(pager).render() @library.global_function def url(viewname, *args, **kwargs):
from product_details import product_details from remo.base import utils LINE_LIMIT = 75 FOLD_SEP = u'\r\n ' COUNTRIES_NAME_TO_CODE = {} for code, name in product_details.get_regions('en').items(): name = name.lower() COUNTRIES_NAME_TO_CODE[name] = code # Yanking filters from Django. library.filter(strip_tags) library.filter(defaultfilters.timesince) library.filter(defaultfilters.truncatewords) library.filter(defaultfilters.pluralize) @library.global_function def thisyear(): """The current year.""" return jinja2.Markup(datetime.today().year) @library.global_function def url(viewname, *args, **kwargs): """Helper for Django's ``reverse`` in templates."""
@register.filter def colspan(n): return int(12 / n) @register.filter def must_hide_fieldset(tuples): count = 0 for fields in tuples: count += len(fields) return count == 0 register.filter('getattr', getattr2) register.filter('normalyze', formatter.normalyze) register.filter('decimal1', formatter.format_decimal1) @register.filter def sorted_items(d): items = [] keys = list(d.keys()) keys.sort() for key in keys: items.append((re.sub('^[0-9\.\- ]+', '', key).strip(), d[key])) return items @register.filter
@library.global_function @contextfunction def render_comments_toplevel(context, target): context = dict(context) model_class = target.__class__ templates = ( "comments/{0}_{1}_comments_toplevel.html".format(*str(get_meta(model_class)).split('.')), "comments/{0}_comments_toplevel.html".format(get_meta(model_class).app_label), "comments/comments_toplevel.html", ) context.update({"target": target}) return mark_safe(render_to_string(templates, context)) library.filter(mptt_tags.tree_info) register.simple_tag(get_comments_list, takes_context=True) @library.global_function def comments_count_image_link(instance): ctype = ContentType.objects.get_for_model(instance.__class__) return reverse('comments:count-image', args=(ctype.pk, instance.pk), kwargs={}) @register.simple_tag def admin_comments_url(instance): content_type = ContentType.objects.get_for_model(instance) object_id = instance.pk try: header = RootHeader.objects.get(content_type=content_type, object_id=object_id)
from urllib.parse import urlencode from django_jinja import library from standup.status.models import format_update # Register template filters format_update = library.filter(format_update) @library.global_function def merge_query(request, **kwargs): """merge query params into existing ones""" params = request.GET.dict() params.update(kwargs) return urlencode(params) @library.filter def dateformat(date, fmt='%Y-%m-%d'): def suffix(d): suffixes = {1: 'st', 2: 'nd', 3: 'rd'} return 'th' if 11 <= d <= 13 else suffixes.get(d % 10, 'th') return date.strftime(fmt).replace('{S}', str(date.day) + suffix(date.day))
from markdown import markdown as python_markdown from django_jinja import library from product_details import product_details from remo.base import utils LINE_LIMIT = 75 FOLD_SEP = u'\r\n ' COUNTRIES_NAME_TO_CODE = {} for code, name in product_details.get_regions('en').items(): name = name.lower() COUNTRIES_NAME_TO_CODE[name] = code # Yanking filters from Django. library.filter(strip_tags) library.filter(defaultfilters.timesince) library.filter(defaultfilters.truncatewords) library.filter(defaultfilters.pluralize) @library.global_function def thisyear(): """The current year.""" return jinja2.Markup(datetime.today().year) @library.global_function def url(viewname, *args, **kwargs): """Helper for Django's ``reverse`` in templates."""
@library.global_function @contextfunction def trans_str(context, trans_obj): """Pick a translation as an unescaped string. The string is not wrapped in an HTML element and not marked as HTML safe. """ return pick_translation(context, trans_obj)[0] @library.global_function def current_year(): return date.today().year @library.global_function def is_debug(): return settings.DEBUG @library.global_function def add_query_param(url, **query): for key, val in query.items(): url = replace_query_param(url, key, val) return url library.filter(add_class) library.filter(urlize_quoted_links) library.filter(break_long_headers)
# coding: utf-8 from django_jinja import library from watermarker import core library.filter(core.watermark) library.filter(core.get_url_safe)
# -*- coding: utf-8 -*- from django_jinja import library import json jsonify = library.filter(name='jsonify', fn=json.dumps)
import caching.base as caching import jinja2 import waffle from django_jinja import library from babel.support import Format from olympia.lib.jingo_minify_helpers import ( _build_html, _get_compiled_css_url, get_path, is_external, get_js_urls, get_css_urls) from olympia import amo from olympia.amo import utils, urlresolvers from olympia.constants.licenses import PERSONA_LICENSES_IDS # Registering some utils as filters: urlparams = library.filter(utils.urlparams) library.filter(utils.epoch) library.filter(utils.isotime) library.global_function(dict) library.global_function(utils.randslice) # Mark a lazy marked instance as safe but keep # it lazy mark_safe_lazy = lazy(mark_safe, unicode) @library.global_function def switch_is_active(switch_name): return waffle.switch_is_active(switch_name)
from django_jinja import library from standup.status.utils import ( dateformat, format_update, gravatar_url, ) # Register template filters dateformat = library.filter(dateformat) format_update = library.filter(format_update) gravatar_url = library.filter(gravatar_url)
from django.conf import settings from django.template import loader, engines from django.utils import translation from django.utils.translation.trans_real import to_language from django.utils.encoding import force_text from django_jinja import library import bleach import jinja2 from olympia.amo.utils import clean_nl from olympia.translations.models import PurifiedTranslation library.filter(to_language) @library.filter def locale_html(translatedfield): """HTML attributes for languages different than the site language""" if not translatedfield: return '' site_locale = translation.to_locale(translation.get_language()) locale = translation.to_locale(translatedfield.locale) if locale == site_locale: return '' else: rtl_locales = map(translation.to_locale, settings.LANGUAGES_BIDI) textdir = 'rtl' if locale in rtl_locales else 'ltr' return jinja2.Markup(' lang="%s" dir="%s"' % (jinja2.escape(translatedfield.locale), textdir))
from django.conf import settings from django.template import loader, engines from django.utils import translation from django.utils.translation.trans_real import to_language from django.utils.encoding import force_text from django_jinja import library import bleach import jinja2 from olympia.amo.utils import clean_nl from olympia.translations.models import PurifiedTranslation library.filter(to_language) @library.filter def locale_html(translatedfield): """HTML attributes for languages different than the site language""" if not translatedfield: return '' site_locale = translation.to_locale(translation.get_language()) locale = translation.to_locale(translatedfield.locale) if locale == site_locale: return '' else: rtl_locales = map(translation.to_locale, settings.LANGUAGES_BIDI) textdir = 'rtl' if locale in rtl_locales else 'ltr' return jinja2.Markup(' lang="%s" dir="%s"' % (
import waffle from babel.support import Format from django_jinja import library from olympia import amo from olympia.amo import urlresolvers, utils from olympia.constants.licenses import PERSONA_LICENSES_IDS from olympia.lib.jingo_minify_helpers import ( _build_html, _get_compiled_css_url, get_css_urls, get_js_urls, get_path, is_external) from olympia.lib.cache import cached # Registering some utils as filters: urlparams = library.filter(utils.urlparams) library.filter(utils.epoch) library.filter(utils.isotime) library.global_function(dict) library.global_function(utils.randslice) # Mark a lazy marked instance as safe but keep # it lazy mark_safe_lazy = lazy(mark_safe, unicode) @library.global_function def switch_is_active(switch_name): return waffle.switch_is_active(switch_name)
@register.filter def is_select(field): return isinstance(field.field.widget, forms.Select) @register.filter def is_radio(field): return isinstance(field.field.widget, forms.RadioSelect) @register.filter def is_multiple(field): return isinstance(field.field, forms.MultipleChoiceField) try: from django_jinja import library #library.global_function(contextfunction(formrow_template)) library.global_function(fn=jinja_get_formlayout_template, name='get_formlayout_template') library.global_function(fn=jinja_get_formrow_template, name='get_formrow_template') library.filter(add_field_class) library.filter(is_checkbox) library.filter(is_select) library.filter(is_radio) library.filter(is_multiple) library.filter(add_field_attr) except ImportError: pass