Calculate average for last five working days
parent
463f5af330
commit
6073a66333
|
@ -15,7 +15,9 @@
|
|||
|
||||
from django.apps import apps
|
||||
from django.db.models import Count
|
||||
from django.db.models import Q
|
||||
from django.utils import timezone
|
||||
|
||||
from datetime import timedelta
|
||||
from collections import OrderedDict
|
||||
|
||||
|
@ -25,17 +27,23 @@ def get_users_stats():
|
|||
queryset = model.objects.filter(is_active=True, is_system=False)
|
||||
stats = OrderedDict()
|
||||
|
||||
# Total
|
||||
stats["total"] = queryset.count()
|
||||
|
||||
# Average last 7 days
|
||||
today = timezone.now()
|
||||
seven_days_ago = today-timedelta(days=7)
|
||||
stats["average_last_seven_days"] = (queryset.filter(date_joined__range=(seven_days_ago, today))
|
||||
yesterday = today - timedelta(days=1)
|
||||
seven_days_ago = yesterday - timedelta(days=7)
|
||||
a_year_ago = today - timedelta(days=365)
|
||||
|
||||
stats["total"] = queryset.count()
|
||||
stats["today"] = queryset.filter(date_joined__year=today.year,
|
||||
date_joined__month=today.month,
|
||||
date_joined__day=today.day).count()
|
||||
stats["average_last_seven_days"] = (queryset.filter(date_joined__range=(seven_days_ago, yesterday))
|
||||
.count()) / 7
|
||||
stats["average_last_five_working_days"] = (queryset.filter(date_joined__range=(seven_days_ago, yesterday))
|
||||
.exclude(Q(date_joined__week_day=1) |
|
||||
Q(date_joined__week_day=7))
|
||||
.count()) / 5
|
||||
|
||||
# Graph: users last year
|
||||
a_year_ago = timezone.now() - timedelta(days=365)
|
||||
# increments ->
|
||||
# SELECT date_trunc('week', "filtered_users"."date_joined") AS "week",
|
||||
# count(*)
|
||||
|
@ -68,12 +76,20 @@ def get_projects_stats():
|
|||
queryset = model.objects.all()
|
||||
stats = OrderedDict()
|
||||
|
||||
stats["total"] = queryset.count()
|
||||
|
||||
today = timezone.now()
|
||||
seven_days_ago = today-timedelta(days=7)
|
||||
stats["average_last_seven_days"] = (queryset.filter(created_date__range=(seven_days_ago, today))
|
||||
yesterday = today - timedelta(days=1)
|
||||
seven_days_ago = yesterday - timedelta(days=7)
|
||||
|
||||
stats["total"] = queryset.count()
|
||||
stats["today"] = queryset.filter(created_date__year=today.year,
|
||||
created_date__month=today.month,
|
||||
created_date__day=today.day).count()
|
||||
stats["average_last_seven_days"] = (queryset.filter(created_date__range=(seven_days_ago, yesterday))
|
||||
.count()) / 7
|
||||
stats["average_last_five_working_days"] = (queryset.filter(created_date__range=(seven_days_ago, yesterday))
|
||||
.exclude(Q(created_date__week_day=1) |
|
||||
Q(created_date__week_day=7))
|
||||
.count()) / 5
|
||||
|
||||
stats["total_with_backlog"] = (queryset.filter(is_backlog_activated=True,
|
||||
is_kanban_activated=False)
|
||||
|
@ -98,10 +114,19 @@ def get_user_stories_stats():
|
|||
queryset = model.objects.all()
|
||||
stats = OrderedDict()
|
||||
|
||||
stats["total"] = queryset.count()
|
||||
|
||||
today = timezone.now()
|
||||
seven_days_ago = today-timedelta(days=7)
|
||||
stats["average_last_seven_days"] = (queryset.filter(created_date__range=(seven_days_ago, today))
|
||||
yesterday = today - timedelta(days=1)
|
||||
seven_days_ago = yesterday - timedelta(days=7)
|
||||
|
||||
stats["total"] = queryset.count()
|
||||
stats["today"] = queryset.filter(created_date__year=today.year,
|
||||
created_date__month=today.month,
|
||||
created_date__day=today.day).count()
|
||||
stats["average_last_seven_days"] = (queryset.filter(created_date__range=(seven_days_ago, yesterday))
|
||||
.count()) / 7
|
||||
stats["average_last_five_working_days"] = (queryset.filter(created_date__range=(seven_days_ago, yesterday))
|
||||
.exclude(Q(created_date__week_day=1) |
|
||||
Q(created_date__week_day=7))
|
||||
.count()) / 5
|
||||
|
||||
return stats
|
||||
|
|
Loading…
Reference in New Issue