def index(request, group_slug=None, template_name="djime/statistics/index.html", bridge=None): start = date.today() end = date.today() while start.isocalendar()[1] == end.isocalendar()[1]: start -= timedelta(days=1) start += timedelta(days=1) end = start + timedelta(days=7) timeslices = TimeSlice.objects.filter(user=request.user, begin__range=(start, end)) return render_to_response(template_name, { 'flot_data': flot_timeslices(timeslices, start, end), 'headline': _('this week')}, context_instance=RequestContext(request))
def statistics_date(request, end_date, start_date, group_slug=None, template_name="djime/statistics/index.html", bridge=None): headline = '%s to %s' % (start_date, end_date) s_date = datetime.strptime(start_date, '%Y-%m-%d').date() e_date = datetime.strptime(end_date, '%Y-%m-%d').date() + \ timedelta(days=1) timeslices = TimeSlice.objects.select_related().filter( user=request.user, begin__range=(s_date, e_date)) return render_to_response(template_name, { 'flot_data': flot_timeslices(timeslices, s_date, e_date), 'headline': headline}, context_instance=RequestContext(request))
def statistics(request, method=None, year=None, method_value=0, group_slug=None, template_name="djime/statistics/index.html", bridge=None, ajax=False): today = date.today() if not method: headline = 'today' timeslices = TimeSlice.objects.select_related().filter( user=request.user, begin__day=today.day, begin__month=today.month, begin__year=today.year) elif method == 'week': week = int(method_value) if year: year = int(year) headline = 'week %s - %s' % (week, year) elif week: year = today.year headline = 'week %s - %s' % (week, year) else: headline = 'this week' week = method_value = today.isocalendar()[1] year = today.year start_date = date(year, 1, 1) + timedelta(days=(week-2)*7) while start_date.isocalendar()[1] != week: start_date += timedelta(days=1) end_date = start_date + timedelta(days=7) timeslices = TimeSlice.objects.select_related().filter( user=request.user, begin__range=(start_date, end_date)) elif method == 'month': month = int(method_value) if year: year = int(year) headline = '%s - %s' % (datetime(2000, month, 1).strftime('%B'), year) elif month: year = today.year headline = '%s - %s' % (datetime(2000, month, 1).strftime('%B'), year) else: headline = 'this month' month = method_value = today.month year = today.year start_date = date(year, month, 1) if month == 12: end_date = date(year + 1, 1, 1) else: end_date = date(year, month+1, 1) timeslices = TimeSlice.objects.select_related().filter( user=request.user, begin__range=(start_date, end_date)) elif method == 'quarter': quarter = int(method_value) quarter_suffix = ['1st', '2nd', '3rd', '4th'] quarter_end = [31, 30, 30, 31] if year: year = int(year) headline = '%s quarter - %s' % (quarter_suffix[quarter-1], year) elif quarter: year = today.year headline = '%s quarter - %s' % (quarter_suffix[quarter-1], year) else: headline = 'this quarter' quarter = method_value = (today.month - 1) / 3 + 1 year = today.year start_date = date(year, quarter * 3 - 2, 1) end_date = date(year, quarter * 3, quarter_end[quarter-1]) + \ timedelta(days=1) timeslices = TimeSlice.objects.select_related().filter( user=request.user, begin__range=(start_date, end_date)) elif method == 'year': year = int(method_value) if not year: year = method_value = today.year if year == today.year: headline = 'this year' else: headline = year start_date = date(year, 1, 1) end_date = date(year + 1, 1, 1) timeslices = TimeSlice.objects.select_related().filter( user=request.user, begin__year=year) if ajax: return flot_timeslices(timeslices, start_date, end_date) return render_to_response(template_name, { 'flot_data': flot_timeslices(timeslices, start_date, end_date), 'headline': headline, 'method': method, 'method_value': method_value,}, context_instance=RequestContext(request))