mirror of
https://github.com/TurTaskProject/TurTaskWeb.git
synced 2025-12-19 05:54:07 +01:00
fix percent todo and reccurence compare with all task in that week
This commit is contained in:
parent
f97aaa902d
commit
4c4fb02a0e
@ -5,10 +5,11 @@ from django.utils import timezone
|
|||||||
from rest_framework.test import APIClient
|
from rest_framework.test import APIClient
|
||||||
from tasks.models import Todo, RecurrenceTask
|
from tasks.models import Todo, RecurrenceTask
|
||||||
|
|
||||||
|
|
||||||
class DashboardStatsAPITestCase(TestCase):
|
class DashboardStatsAPITestCase(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
# Create a test user
|
# Create a test user
|
||||||
self.user = User.objects.create_user(username='testuser', password='testpassword')
|
self.user = User.objects.create_user(first_name='test', email='user@mail.co.th', username='testuser', password='testpassword')
|
||||||
|
|
||||||
# Create test tasks
|
# Create test tasks
|
||||||
self.todo = Todo.objects.create(user=self.user, title='Test Todo', created_at=timezone.now())
|
self.todo = Todo.objects.create(user=self.user, title='Test Todo', created_at=timezone.now())
|
||||||
|
|||||||
@ -99,17 +99,31 @@ class WeeklyStatsAPIView(APIView):
|
|||||||
last_7_days_stats = self.calculate_stats(user, last_7_days_start, last_7_days_end)
|
last_7_days_stats = self.calculate_stats(user, last_7_days_start, last_7_days_end)
|
||||||
|
|
||||||
# Calculate the percentage change
|
# Calculate the percentage change
|
||||||
percent_change = self.calculate_percent_change(
|
percent_change_over_all = self.calculate_percent_change(
|
||||||
current_day_stats['overall_completion_rate'],
|
current_day_stats['overall_completion_rate'],
|
||||||
last_7_days_stats['overall_completion_rate']
|
last_7_days_stats['overall_completion_rate']
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Calculate percentage change for completed_todo_count
|
||||||
|
percent_change_todo = self.calculate_percent_change(
|
||||||
|
current_day_stats['completed_todo_count'],
|
||||||
|
last_7_days_stats['completed_todo_count']
|
||||||
|
)
|
||||||
|
|
||||||
|
# Calculate percentage change for completed_recurrence_task_count
|
||||||
|
percent_change_recurrence = self.calculate_percent_change(
|
||||||
|
current_day_stats['completed_recurrence_task_count'],
|
||||||
|
last_7_days_stats['completed_recurrence_task_count']
|
||||||
|
)
|
||||||
|
|
||||||
# Append the daily statistics to the list
|
# Append the daily statistics to the list
|
||||||
weekly_stats.append({
|
weekly_stats.append({
|
||||||
'day_of_week': current_day_start.strftime('%A'),
|
'day_of_week': current_day_start.strftime('%A'),
|
||||||
'current_day_stats': current_day_stats,
|
'current_day_stats': current_day_stats,
|
||||||
'last_7_days_stats': last_7_days_stats,
|
'last_7_days_stats': last_7_days_stats,
|
||||||
'percent_change': percent_change,
|
'percent_change_over_all': percent_change_over_all,
|
||||||
|
'percent_change_todo': percent_change_todo,
|
||||||
|
'percent_change_recurrence': percent_change_recurrence,
|
||||||
})
|
})
|
||||||
|
|
||||||
response_data = {
|
response_data = {
|
||||||
@ -155,4 +169,4 @@ class WeeklyStatsAPIView(APIView):
|
|||||||
else:
|
else:
|
||||||
percent_change = current_value * 100 # Consider infinite change when the last value is zero
|
percent_change = current_value * 100 # Consider infinite change when the last value is zero
|
||||||
|
|
||||||
return round(percent_change, 2)
|
return round(percent_change, 2)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user