def update_entire_history(self): orgs = Organization.objects.all() # we need to create a range to break hits down # start with oldest hit oldest_hit = Hit.objects.all().order_by("created")[1] oldest_year = oldest_hit.created.year current_year = datetime.datetime.today().year for org in orgs: print org orgsub_hits = Hit.objects.filter(orgsub=org) stats = {} for hit in orgsub_hits: year = stats.get(hit.created.year, {}) month = year.get(hit.created.month, []) month.append(hit) year[hit.created.month] = month stats[hit.created.year] = year for stats_key, stats_value in stats.iteritems(): for stats_value_key, stats_value_value in stats_value.iteritems(): month_ip_hits = len([hit for hit in stats_value_value if hit.orgsub_ip == True]) month_member_hits = len([hit for hit in stats_value_value if hit.orgsub_member == True]) monthly_stats = MonthlyStatistics( org_sub=org, year_month=datetime.date(stats_key, stats_value_key, 1), total_visits=len(stats_value_value), ip_visits=month_ip_hits, member_visits=month_member_hits, ) monthly_stats.save()
def update_monthly_history(self): orgs = Organization.objects.all() # we need to create a range to break hits down # start with oldest hit current_date = datetime.datetime.today() for org in orgs: month_total_visits = 0 month_ip_visits = 0 month_member_visits = 0 orgsub_hits = Hit.objects \ .filter(orgsub = org) \ .filter(created__year = current_date.year) \ .filter(created__month = current_date.month) if orgsub_hits: month_total_visits = len(orgsub_hits) month_ip_visits = len( [hit for hit in orgsub_hits if hit.orgsub_ip == True]) month_member_visits = len( [hit for hit in orgsub_hits if hit.orgsub_member == True]) try: monthly_stats = MonthlyStatistics.objects.get( org_sub=org, year_month=datetime.date(current_date.year, current_date.month, 1), ) monthly_stats.total_visits = month_total_visits monthly_stats.ip_visits = month_ip_visits monthly_stats.member_visits = month_member_visits monthly_stats.save() except MonthlyStatistics.DoesNotExist: monthly_stats = MonthlyStatistics( org_sub=org, year_month=datetime.date(current_date.year, current_date.month, 1), total_visits=month_total_visits, ip_visits=month_ip_visits, member_visits=month_member_visits, ) monthly_stats.save()
def update_monthly_history(self): orgs = Organization.objects.all() # we need to create a range to break hits down # start with oldest hit current_date = datetime.datetime.today() for org in orgs: month_total_visits = 0 month_ip_visits = 0 month_member_visits = 0 orgsub_hits = Hit.objects \ .filter(orgsub = org) \ .filter(created__year = current_date.year) \ .filter(created__month = current_date.month) if orgsub_hits: month_total_visits = len(orgsub_hits) month_ip_visits = len([hit for hit in orgsub_hits if hit.orgsub_ip == True]) month_member_visits = len([hit for hit in orgsub_hits if hit.orgsub_member == True]) try: monthly_stats = MonthlyStatistics.objects.get( org_sub = org, year_month = datetime.date(current_date.year, current_date.month, 1), ) monthly_stats.total_visits = month_total_visits monthly_stats.ip_visits = month_ip_visits monthly_stats.member_visits = month_member_visits monthly_stats.save() except MonthlyStatistics.DoesNotExist: monthly_stats = MonthlyStatistics( org_sub = org, year_month = datetime.date(current_date.year, current_date.month, 1), total_visits = month_total_visits, ip_visits = month_ip_visits, member_visits = month_member_visits, ) monthly_stats.save()