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