Example #1
0
    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)
Example #2
0
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)
Example #3
0
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
Example #4
0
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
Example #5
0
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):
Example #6
0
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."""
Example #7
0

@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)
Example #9
0
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))
Example #10
0
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."""
Example #11
0
@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)
Example #12
0
# coding: utf-8
from django_jinja import library

from watermarker import core

library.filter(core.watermark)
library.filter(core.get_url_safe)
Example #13
0
# -*- coding: utf-8 -*-
from django_jinja import library
import json

jsonify = library.filter(name='jsonify', fn=json.dumps)
Example #14
0
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)

Example #15
0
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)
Example #16
0
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))
Example #17
0
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"' % (
Example #18
0
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)

Example #19
0
@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