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()