예제 #1
0
def top_tags(model_or_obj, num=10):
    """return top tags based on uses
    cloud filer is quite similar to top_tags except
    logarithmic scaling. However, it has been left as it is for future use!
    """
    tag_uses = get_tag_uses()
    if not(tag_uses):
        return []
    tag_uses.sort(reverse=True)
    if num != 0:
        tag_uses = tag_uses[:num]

    out = []
    Item = namedtuple('Item', 'slug tag score')
    for score, pk in tag_uses:
        tag = Tag.objects.get(id=pk)
        out.append(Item(tag.slug, tag, int(score)))

    return out
예제 #2
0
def cloud(model_or_obj, num=5):
    """ Get a tag cloud """
    tag_uses = get_tag_uses()
    if not(tag_uses):
        return []
    tag_uses.sort(reverse=True)
    if num != 0:
        tag_uses = tag_uses[:num]
    max_uses = max(tag_uses[0][0], 5)
    min_uses = tag_uses[-1][0]
    # Use a logarithmic scaling between 1.0 to 170% of baseline font size
    # We could consider a logarithmic scale
    min_font, max_font = 3, 6
    slope = (max_font-min_font)/(max_uses - min_uses + 0.0)
    intercept = min_font - slope * min_uses

    out = []
    Item = namedtuple('Item', 'slug tag score')
    for score, pk in tag_uses:
        tag = Tag.objects.get(id=pk)
        out.append(Item(tag.slug, tag, int(log(slope*score + intercept)*100)-9))

    out.sort()
    return out
예제 #3
0
def cloud(model_or_obj, num=5):
    """ Get a tag cloud """
    tag_uses = get_tag_uses()
    if not(tag_uses):
        return []
    tag_uses.sort(reverse=True)
    if num != 0:
        tag_uses = tag_uses[:num]
    max_uses = max(tag_uses[0][0], 5)
    min_uses = tag_uses[-1][0]
    # Use a logarithmic scaling between 1.0 to 170% of baseline font size
    # We could consider a logarithmic scale
    min_font, max_font = 3, 6
    slope = (max_font-min_font)/(max_uses - min_uses + 0.0)
    intercept = min_font - slope * min_uses

    out = []
    Item = namedtuple('Item', 'slug tag score')
    for score, pk in tag_uses:
        tag = Tag.objects.get(id=pk)
        out.append(Item(tag.slug, tag, int(log(slope*score + intercept)*100)-9))

    out.sort()
    return out