@ -1,5 +1,6 @@
from . models import Task , Status
from django . contrib . auth . models import AnonymousUser
from datetime import datetime , timedelta
def utilities ( request ) :
@ -8,10 +9,35 @@ def utilities(request):
open_task_count = Task . objects . filter ( status = ' Open ' ) . count ( )
working_on_task_count = Task . objects . filter ( status = ' Working On ' ) . count ( )
last_status = Status . objects . filter ( staff = request . user . staffprofile ) . last ( )
if last_status :
# Convert the 'time' field to a datetime object
status_time = datetime . strptime ( last_status . time , ' % I: % M % p ' )
# Get the current time
current_time = datetime . now ( ) . time ( )
# Calculate the time difference
time_difference = abs ( datetime . combine ( datetime . today ( ) , current_time ) - datetime . combine ( datetime . today ( ) , status_time . time ( ) ) )
# Get the time difference in minutes
minutes_ago = time_difference . total_seconds ( ) / 60
minutes_ago = int ( minutes_ago )
elif request . user . is_authenticated :
open_task_count = Task . objects . filter ( assigned_to = request . user . staffprofile , status = ' Open ' ) . count ( )
working_on_task_count = Task . objects . filter ( assigned_to = request . user . staffprofile , status = ' Working On ' ) . count ( )
last_status = Status . objects . filter ( staff = request . user . staffprofile ) . last ( )
if last_status :
# Convert the 'time' field to a datetime object
status_time = datetime . strptime ( last_status . time , ' % I: % M % p ' )
# Get the current time
current_time = datetime . now ( ) . time ( )
# Calculate the time difference
time_difference = abs ( datetime . combine ( datetime . today ( ) , current_time ) - datetime . combine ( datetime . today ( ) , status_time . time ( ) ) )
# Get the time difference in minutes
minutes_ago = time_difference . total_seconds ( ) / 60
minutes_ago = int ( minutes_ago )
else :
# Handle the case when the user is not logged in
open_task_count = 0
@ -21,4 +47,4 @@ def utilities(request):
total_tasks = open_task_count + working_on_task_count
latest_statuses = Status . objects . all ( ) . order_by ( ' -id ' ) [ : 12 ]
return { ' total_tasks ' : total_tasks , ' last_status ' : last_status , ' latest_statuses ' : latest_statuses , }
return { ' total_tasks ' : total_tasks , ' last_status ' : last_status , ' latest_statuses ' : latest_statuses , ' minutes_ago ' : minutes_ago , }