fix percent todo and reccurence compare with all task in that week

This commit is contained in:
Chaiyawut Thengket 2023-11-20 11:55:52 +07:00
parent f97aaa902d
commit 4c4fb02a0e
2 changed files with 19 additions and 4 deletions

View File

@ -5,10 +5,11 @@ from django.utils import timezone
from rest_framework.test import APIClient
from tasks.models import Todo, RecurrenceTask
class DashboardStatsAPITestCase(TestCase):
def setUp(self):
# 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
self.todo = Todo.objects.create(user=self.user, title='Test Todo', created_at=timezone.now())

View File

@ -99,17 +99,31 @@ class WeeklyStatsAPIView(APIView):
last_7_days_stats = self.calculate_stats(user, last_7_days_start, last_7_days_end)
# Calculate the percentage change
percent_change = self.calculate_percent_change(
percent_change_over_all = self.calculate_percent_change(
current_day_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
weekly_stats.append({
'day_of_week': current_day_start.strftime('%A'),
'current_day_stats': current_day_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 = {