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