@ -4,27 +4,40 @@ from datetime import datetime, timedelta
def utilities ( request ) :
minutes_ago = 0
if request . user . is_authenticated and request . user . is_superuser :
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 ( )
else :
# Handle the case when the user is not logged in
open_task_count = 0
working_on_task_count = 0
total_tasks = open_task_count + working_on_task_count
latest_statuses = Status . objects . all ( ) . order_by ( ' -id ' ) [ : 12 ]
return { ' total_tasks ' : total_tasks , ' latest_statuses ' : latest_statuses , }
def last_status ( request ) :
minutes_ago = 0
hours_ago = 0
hours_minutes_ago = " "
current_date = datetime . now ( ) . strftime ( ' % Y- % m- %d ' )
if request . user . is_authenticated :
last_status = Status . objects . filter ( staff = request . user . staffprofile ) . last ( )
if last_status :
# Convert the 'time' field to a datetime object
@ -41,12 +54,17 @@ def utilities(request):
else :
# Handle the case when the user is not logged in
open_task_count = 0
working_on_task_count = 0
last_status = None
total_tasks = open_task_count + working_on_task_count
latest_statuses = Status . objects . all ( ) . order_by ( ' -id ' ) [ : 12 ]
current_date = datetime . now ( ) . strftime ( ' % Y- % m- %d ' )
if minutes_ago > 60 :
hours_ago = minutes_ago / / 60 # Calculate the number of hours
remaining_minutes = minutes_ago % 60 # Calculate the remaining minutes
hours_minutes_ago = f " { hours_ago } hr { remaining_minutes } min ago "
else :
hours_minutes_ago = f " { minutes_ago } min ago "
return { ' total_tasks ' : total_tasks , ' last_status ' : last_status , ' latest_statuses ' : latest_statuses , ' minutes_ago ' : minutes_ago , ' current_date ' : current_date , }
return { ' last_status ' : last_status , ' current_date ' : current_date , ' minutes_ago ' : minutes_ago , ' hours_minutes_ago ' : hours_minutes_ago , }