for entry in _entries: entries.append(entry) if getattr(entry, 'navigation_extension', None): extended_entries = [ p for p in entry.extended_navigation( level=entry.level + 1, tree_id=root_page.tree_id, lft=0, rght=0) if p.level <= root_page.level + depth ] entries.extend(extended_entries) return entries @tag(register, [ Optional([Constant("for"), Variable("start_page")]), Optional([Constant("level"), Variable("level")]), Optional([Constant("depth"), Variable("depth")]), Optional([Constant("active_depth"), Variable("active_depth")]), Optional([Constant("language"), Variable("language")]), Optional([Constant("type"), Variable("navigation_type")]), Optional([Constant("extended"), Variable("extended")]), Optional([Constant("as"), Name('asvar')]) ]) def extended_navigation(context, start_page=None, level=0, depth=1, active_depth=0, language=None,
from templatetag_sugar.parser import Constant, Optional, Variable from templatetag_sugar.register import tag from sentry.models import User, UserAvatar from sentry.utils.avatar import (get_email_avatar, get_gravatar_url, get_letter_avatar) register = template.Library() # Adapted from http://en.gravatar.com/site/implement/images/django/ # The "mm" default is for the grey, "mystery man" icon. See: # http://en.gravatar.com/site/implement/images/ @tag( register, [ Variable('email'), Optional([Constant('size'), Variable('size')]), Optional([Constant('default'), Variable('default')]) ] ) def gravatar_url(context, email, size=None, default='mm'): return get_gravatar_url(email, size, default) @tag( register, [ Variable('display_name'), Variable('identifier'), Optional([Constant('size'), Variable('size')]) ] ) def letter_avatar_svg(context, display_name, identifier, size=None):
def get_weight_fun(t_min, t_max, f_min, f_max): def weight_fun(f_i, t_min=t_min, t_max=t_max, f_min=f_min, f_max=f_max): # Prevent a division by zero here, found to occur under some # pathological but nevertheless actually occurring circumstances. if f_max == f_min: mult_fac = 1.0 else: mult_fac = float(t_max - t_min) / float(f_max - f_min) return t_max - (f_max - f_i) * mult_fac return weight_fun @tag(register, [Constant('as'), Name(), Optional([Constant('for'), Variable()])]) def get_taglist(context, asvar, forvar=None): queryset = get_queryset(forvar) queryset = queryset.order_by('-num_times') context[asvar] = queryset return '' @tag(register, [Constant('as'), Name(), Optional([Constant('for'), Variable()])]) def get_tagcloud(context, asvar, forvar=None): queryset = get_queryset(forvar) num_times = queryset.values_list('num_times', flat=True) if (len(num_times) == 0):
except ImportError: is_coffin = False from templatetag_sugar.register import tag from templatetag_sugar.parser import Name, Variable, Constant, Optional, Model register = template.Library() if is_coffin: def paginate(request, queryset_or_list, per_page=25, endless=True): context_instance = RequestContext(request) context = paginate_func(request, queryset_or_list, per_page, endless) paging = Markup(render_to_string('paging/pager.html', context, context_instance)) return dict(objects=context['paginator'].get('objects', []), paging=paging) register.object(paginate) @tag(register, [Variable('queryset_or_list'), Constant('from'), Variable('request'), Optional([Constant('as'), Name('asvar')]), Optional([Constant('per_page'), Variable('per_page')])]) def paginate(context, queryset_or_list, request, asvar, per_page=25): """{% paginate queryset_or_list from request as foo[ per_page 25] %}""" from django.template.loader import render_to_string context_instance = RequestContext(request) paging_context = paginate_func(request, queryset_or_list, per_page) paging = mark_safe(render_to_string('paging/pager.html', paging_context, context_instance)) result = dict(objects=paging_context['paginator'].get('objects', []), paging=paging) if asvar: context[asvar] = result return '' return result
output = [] if hours: output.append('%dh' % hours) if minutes: output.append('%dm' % minutes) if seconds > 1: output.append('%0.2fs' % seconds) elif seconds: output.append('%dms' % (seconds * 1000)) return ''.join(output) # XXX: this is taken from django-paging so that we may render # a custom template, and not worry about INSTALLED_APPS @tag(register, [Variable('queryset_or_list'), Constant('from'), Variable('request'), Optional([Constant('as'), Name('asvar')]), Optional([Constant('per_page'), Variable('per_page')])]) def paginate(context, queryset_or_list, request, asvar=None, per_page=EVENTS_PER_PAGE): """{% paginate queryset_or_list from request as foo[ per_page 25] %}""" result = paginate_func(request, queryset_or_list, per_page, endless=True) context_instance = RequestContext(request) paging = mark_safe(render_to_string('sentry/partial/_pager.html', result, context_instance)) result = dict(objects=result['paginator'].get('objects', []), paging=paging) if asvar: context[asvar] = result return '' return result
def get_upvote_count(content_object): ctype = ContentType.objects.get_for_model(content_object) return UpDownVote.objects.filter(content_type=ctype, object_id=content_object.id, vote=True).count() @register.simple_tag def get_downvote_count(content_object): ctype = ContentType.objects.get_for_model(content_object) return UpDownVote.objects.filter(content_type=ctype, object_id=content_object.id, vote=False).count() @tag(register, [Variable(), Variable(), Optional([Constant("as"), Name()])]) def get_user_vote_for(context, user, content_object, name=None): if not user.is_anonymous(): try: ctype = ContentType.objects.get_for_model(content_object) vote = UpDownVote.objects.get(user__pk=user.pk, content_type=ctype, object_id=content_object.id).vote except UpDownVote.DoesNotExist: vote = None else: vote = None if name is not None: context[name] = vote return ''
model_or_search_record.video_id, max_items), "video_url": video_url, } @register.inclusion_tag('teams/_team_video_in_progress_list.html') def team_video_in_progress_list(team_video_search_record): langs_raw = video_cache.writelocked_langs( team_video_search_record.video_id) langs = [_(ALL_LANGUAGES_DICT[x]) for x in langs_raw] return {'languages': langs} @tag(register, [Variable(), Constant("as"), Name()]) def team_projects(context, team, varname): """ Sets the project list on the context, but only the non default hidden projects. Usage: {% team_projects team as projects %} {% for project in projects %} project {% endfor %} If you do want to loop through all project: {% for p in team.project_set.all %} {% if p.is_default_project %} blah {% else %}
if seconds > 1: output.append('%0.2fs' % seconds) elif seconds: output.append('%dms' % (seconds * 1000)) return ''.join(output) @register.filter def date(dt, arg=None): from django.template.defaultfilters import date if not timezone.is_aware(dt): dt = dt.replace(tzinfo=timezone.utc) return date(dt, arg) @tag(register, [Constant('for'), Variable('user'), Constant('from'), Variable('project'), Constant('as'), Name('asvar')]) def get_project_dsn(context, user, project, asvar): from sentry.models import ProjectKey if not user.is_authenticated(): context[asvar] = None return '' try: key = ProjectKey.objects.filter(project=project)[0] except ProjectKey.DoesNotExist: context[asvar] = None else: context[asvar] = key.get_dsn()
from django.core.cache import cache from shop.cart import cart_from_session from product.cart import cart_list, cart_total from django.utils.translation import get_language register = template.Library() @register.inclusion_tag('shop/productos.html', takes_context=True) def widget_productos(context): p = Product.objects.featured()[:3] context['productos'] = p return context @tag(register, [Constant('as'), Name()]) def get_categories(context, asvar): queryset = Category.objects.all() context[asvar] = queryset return '' @tag(register, [Constant('as'), Name()]) def get_cart(context, asvar): c = cart_from_session(context['request']) val = None if c.total() == 0: context[asvar] = None return ''
from django import template from templatetag_sugar.register import tag from templatetag_sugar.parser import Variable, Constant from snipts.models import Favorite, Snipt from snipts.utils import get_lexers_list import hashlib register = template.Library() @tag(register, [Constant('as'), Variable()]) def snipt_is_favorited_by_user(context, asvar): user = context['request'].user snipt = context['snipt'] is_favorited = False if user.is_authenticated(): if snipt.user != user: try: is_favorited = Favorite.objects.get(snipt=snipt, user=user).id except Favorite.DoesNotExist: pass context[asvar] = is_favorited return ''
else: return queryset.annotate(num_times=Count(count_field)) def get_weight_fun(t_min, t_max, f_min, f_max): def weight_fun(f_i, t_min=t_min, t_max=t_max, f_min=f_min, f_max=f_max): # Prevent a division by zero here, found to occur under some # pathological but nevertheless actually occurring circumstances. if f_max == f_min: mult_fac = 1.0 else: mult_fac = float(t_max-t_min)/float(f_max-f_min) return t_max - (f_max-f_i)*mult_fac return weight_fun @tag(register,[Constant('as'), Name(), Optional([Constant('for'), Variable()]), Optional([Constant('limit'), Variable()]) ]) def get_taglist(context, asvar, forvar=None, limit=10): queryset = get_queryset(forvar) queryset = queryset.order_by('-num_times') context[asvar] = queryset if limit: queryset = queryset[:limit] return '' @tag(register, [Constant('as'), Name(), Optional([Constant('for'), Variable()]), Optional([Constant('limit'), Variable()]),]) def get_tagcloud(context, asvar, forvar=None, limit=None): queryset = get_queryset(forvar) num_times = queryset.values_list('num_times', flat=True)
Argument: Number of chars to truncate after. """ try: length = int(arg) except ValueError: # Invalid literal for int(). return value # Fail silently. if len(value) > length: return value[:length] + '...' return value truncatechars.is_safe = True # XXX: this is taken from django-paging so that we may render # a custom template, and not worry about INSTALLED_APPS @tag(register, [Variable('queryset_or_list'), Constant('from'), Variable('request'), Optional([Constant('as'), Name('asvar')]), Optional([Constant('per_page'), Variable('per_page')])]) def paginate(context, queryset_or_list, request, asvar=None, per_page=settings.MESSAGES_PER_PAGE): """{% paginate queryset_or_list from request as foo[ per_page 25] %}""" result = paginate_func(request, queryset_or_list, per_page, endless=True) context_instance = RequestContext(request) paging = mark_safe(render_to_string('sentry/partial/_pager.html', result, context_instance)) result = dict(objects=result['paginator'].get('objects', []), paging=paging) if asvar: context[asvar] = result return '' return result
from django import template from django.core.cache import cache from templatetag_sugar.parser import Optional, Constant, Name, Variable from templatetag_sugar.register import tag import ttp import twitter register = template.Library() def get_cache_key(*args): return 'get_tweets_%s' % ('_'.join([str(arg) for arg in args if arg])) @tag(register, [ Constant("for"), Variable(), Constant("as"), Name(), Optional([Constant("exclude"), Variable("exclude")]), Optional([Constant("max_url_length"), Variable("max_url_length")]), Optional([Constant("limit"), Variable("limit")]) ]) def get_tweets(context, username, asvar, exclude='', max_url_length=60, limit=None): tweet_parser = ttp.Parser(max_url_length=max_url_length)
if ids == None: ids = [c.id for c in root.get_children().filter(show_in_nav=True)] cache.set(key, ids, random.randint(300, 360)) child_ids = child_ids.union(ids) results.append([root, ids]) children = dict([(child.id, child) for child in models.Page.objects.filter(id__in=child_ids)]) for result in results: result[1] = [children[id] for id in result[1]] return results @tag(register, [Optional([Constant("as"), Name()])]) def current_page(context, asvar=None): url = context['request'].path_info.rstrip('/') + '/' try: page = get_object_or_404(models.Page, url__exact=url) except Http404: page = None if asvar: context[asvar] = page else: context['page'] = page return ''
output.append('%0.2fs' % seconds) elif seconds: output.append('%dms' % (seconds * 1000)) return ''.join(output) @register.filter def date(dt, arg=None): from django.template.defaultfilters import date if not timezone.is_aware(dt): dt = dt.replace(tzinfo=timezone.utc) return date(dt, arg) @tag(register, [ Constant('for'), Variable('user'), Constant('from'), Variable('project'), Constant('as'), Name('asvar') ]) def get_project_dsn(context, user, project, asvar): from sentry.models import ProjectKey if not user.is_authenticated(): context[asvar] = None return '' try: key = ProjectKey.objects.filter(project=project)[0]
import hashlib import os from django import template from snipts.models import Favorite, Snipt from snipts.utils import get_lexers_list from templatetag_sugar.parser import Variable, Constant from templatetag_sugar.register import tag register = template.Library() @tag(register, [Constant("as"), Variable()]) def snipt_is_favorited_by_user(context, asvar): user = context["request"].user snipt = context["snipt"] is_favorited = False if user.is_authenticated(): if snipt.user != user: try: is_favorited = Favorite.objects.get(snipt=snipt, user=user).id except Favorite.DoesNotExist: pass context[asvar] = is_favorited return ""
elif seconds: output.append('%dms' % (seconds * 1000)) return ''.join(output) @register.filter def date(dt, arg=None): from django.template.defaultfilters import date if not timezone.is_aware(dt): dt = dt.replace(tzinfo=timezone.utc) return date(dt, arg) @tag( register, [ Constant('for'), Variable('user'), Constant('from'), Variable('project'), Constant('as'), Name('asvar') ] ) def get_project_dsn(context, user, project, asvar): from sentry.models import ProjectKey if not user.is_authenticated(): context[asvar] = None return '' try:
from django import template from templatetag_sugar.register import tag from templatetag_sugar.parser import Name, Variable, Constant, Optional, Model register = template.Library() @tag(register, [Constant("for"), Variable(), Optional([Constant("as"), Name()])]) def test_tag_1(context, val, asvar=None): if asvar: context[asvar] = val return "" else: return val @tag(register, [Model(), Variable(), Optional([Constant("as"), Name()])]) def test_tag_2(context, model, limit, asvar=None): objs = model._default_manager.all()[:limit] if asvar: context[asvar] = objs return "" return unicode(objs) @tag(register, [Variable()]) def test_tag_3(context, val):
if is_coffin: def paginate(request, queryset_or_list, per_page=25): context_instance = RequestContext(request) context = paginate_func(request, queryset_or_list, per_page) paging = Markup( render_to_string('paging/pager.html', context, context_instance)) return dict(objects=context['paginator'].get('objects', []), paging=paging) register.object(paginate) @tag(register, [ Variable('queryset_or_list'), Constant('from'), Variable('request'), Optional([Constant('as'), Name('asvar')]), Optional([Constant('per_page'), Variable('per_page')]), Optional([Variable('is_endless')]) ]) def paginate(context, queryset_or_list, request, asvar, per_page=25, is_endless=True): """{% paginate queryset_or_list from request as foo[ per_page 25][ is_endless False %}""" from django.template.loader import render_to_string
from django.core.cache import cache from templatetag_sugar.parser import Optional, Constant, Name, Variable from templatetag_sugar.register import tag import ttp import twitter register = template.Library() tweet_parser = ttp.Parser() def get_cache_key(*args): return 'get_tweets_%s' % ('_'.join([str(arg) for arg in args if arg])) @tag(register, [ Constant("for"), Variable(), Constant("as"), Name(), Optional([Constant("exclude"), Variable("exclude")]), Optional([Constant("limit"), Variable("limit")]) ]) def get_tweets(context, username, asvar, exclude='', limit=None): cache_key = get_cache_key(username, asvar, exclude, limit) tweets = [] try: user_last_tweets = twitter.Api().GetUserTimeline( screen_name=username, include_rts=('retweets' not in exclude), include_entities=True) except (twitter.TwitterError, URLError), e:
if hours: output.append('%dh' % hours) if minutes: output.append('%dm' % minutes) if seconds > 1: output.append('%0.2fs' % seconds) elif seconds: output.append('%dms' % (seconds * 1000)) return ''.join(output) # XXX: this is taken from django-paging so that we may render # a custom template, and not worry about INSTALLED_APPS @tag(register, [ Variable('queryset_or_list'), Constant('from'), Variable('request'), Optional([Constant('as'), Name('asvar')]), Optional([Constant('per_page'), Variable('per_page')]) ]) def paginate(context, queryset_or_list, request, asvar=None, per_page=EVENTS_PER_PAGE): """{% paginate queryset_or_list from request as foo[ per_page 25] %}""" result = paginate_func(request, queryset_or_list, per_page, endless=True) context_instance = RequestContext(request) paging = mark_safe( render_to_string('sentry/partial/_pager.html', result,
''' ''' from django import template from django.db import models from product.models import Product, Category from stocks.models import Stock from templatetag_sugar.register import tag from templatetag_sugar.parser import Name, Variable, Constant, Optional, Model from django.core.cache import cache from django.utils.translation import get_language register = template.Library() @tag(register, [Variable(), Constant('as'), Name()]) def get_stock(context, stock, asvar): products = Product.objects.all() prod = {} st = stock.get_product_stocks() for p in products: qty = st.get(p.pk, 0) prod[p.pk] = (p, qty) context[asvar] = {'stocks': st, 'products': prod} return '' #request.cart = val #return None