Example #1
0
def user_chart(request, context):
    """
    Creates a standard chart.
    """
    user  = context.get('user')
    start = context.get('start')
    end   = context.get('end')
    count = context.get('count', 100)

    isWeek = start == end

    G = request.GET
    only_new = 'newmusic' in G
    exclude_months = 'exclude_months' in G

    chart = Chart(user, start, end, count)

    if only_new:
        chart.set_exclude_before_start()

    exclusion = G.get('num_excluded', '')
    max_scrobbles = G.get('max_scrobbles', '')
    if exclude_months:
        if exclusion.isdigit():
            exclusion = int(exclusion) 
            max_scrobbles = int(max_scrobbles) if max_scrobbles.isdigit() else 0
            chart.set_exclude_months(exclusion, max_scrobbles)

    back = { 
        'context': context,
        'chart' : chart,
        'isWeek' : isWeek,
        'count' : count,
        'only_new': only_new,
        'exclude_months': exclude_months,
        'num_excluded': exclusion,
        'max_scrobbles': max_scrobbles
    }

    if isWeek:
        back['prevW'] = start - 1
        back['nextW'] = start + 1 

    return back