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, {Required('asvar'): Variable(), Optional('for_obj'): Variable(), Optional('count'): Variable()}) 
def get_taglist(context, asvar, for_obj=None, count=None):
    # print asvar
    # print for_obj
    # print count
    queryset = get_queryset(for_obj)         
    queryset = queryset.order_by('-num_times')        
    if count:
        context[asvar] = queryset[:int(count)]
    else:
        context[asvar] = queryset
        
    return ''

@tag(register, {Optional('as'): Variable(), Optional('for'): Variable(), Optional('count'): Variable()})
def get_tagcloud(context, asvar=None, forvar=None, count=None):
예제 #2
0
    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):
        context[asvar] = queryset
예제 #3
0
        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,
예제 #4
0
__FILENAME__ = models

########NEW FILE########
__FILENAME__ = histograms
from django import template

from templatetag_sugar.register import tag
from templatetag_sugar.parser import Name, Variable, Constant, Optional, Model

from django_histograms.utils import Histogram


register = template.Library()


@tag(register, [Model(), Variable(), Optional([Variable(), Variable()])])
def histogram_for(context, model, attname, months=2, day_labels=True):
    return Histogram(model, attname, months=months).render(css=True, day_labels=day_labels)


@tag(register, [Model(), Variable(), Optional([Variable(), Variable()])])
def histogram_for_days(context, model, attname, days=31, day_labels=True):
    return Histogram(model, attname, days=days).render(css=True, day_labels=day_labels)

########NEW FILE########
__FILENAME__ = utils
import calendar
import datetime

from django.db.models import Count
from django.template.loader import render_to_string
예제 #5
0
import re
from django.template import Library
from django.template.defaultfilters import slugify
from django.core.urlresolvers import reverse
from django.utils.safestring import mark_safe
from backend.api import Glossary
from backend.util import timestamp_to_seconds
from transcripts.templatetags.missiontime import timestamp_to_url

from templatetag_sugar.register import tag
from templatetag_sugar.parser import Variable, Optional

register = Library()

@tag(register, [Variable(), Variable()])
def original_link(context, transcript, page):
    url_args = {
        'page': page,
    }
    if transcript != context['request'].mission.main_transcript:
        # Split transcript name from [mission]/[transcript]
        url_args["transcript"] = transcript.split('/')[1]
    
    return reverse("original", kwargs=url_args)


def glossary_link(match, request):
    # Try to look up the definition
    gitem = None
    if request:
        try:
예제 #6
0
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 ''
예제 #7
0
            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 %}
예제 #8
0
    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):
        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

    context_instance = RequestContext(request)
    paging_context = paginate_func(request, queryset_or_list, per_page, endless=is_endless)
    paging = mark_safe(render_to_string('paging/pager.html', paging_context, context_instance))

    result = dict(objects=paging_context['paginator'].get('objects', []),
				  paging=paging, paginator=paging_context['paginator'])
예제 #9
0
    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()
예제 #10
0
        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)
    if(len(num_times) == 0):
예제 #11
0
    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(
예제 #12
0
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 ''
예제 #13
0
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)
    cache_key = get_cache_key(username, asvar, exclude, limit)
예제 #14
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
예제 #15
0
    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:
예제 #16
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 ""
예제 #17
0
        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]
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
예제 #20
0
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:
        logging.getLogger(__name__).error(str(e))
예제 #21
0
from django import template

from templatetag_sugar.register import tag
from templatetag_sugar.parser import Variable

register = template.Library()


@tag(register, [Variable("event")])
def render_event(context, event):
    return event.render(context)
예제 #22
0
    seconds = value
    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 ''
예제 #23
0
    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(
예제 #24
0
'''
'''

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