diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 14933d75..be908ce1 100644 Binary files a/osinaweb/db.sqlite3 and b/osinaweb/db.sqlite3 differ diff --git a/osinaweb/osinacore/__pycache__/custom_context.cpython-310.pyc b/osinaweb/osinacore/__pycache__/custom_context.cpython-310.pyc index 7bcf86ec..caacc4c5 100644 Binary files a/osinaweb/osinacore/__pycache__/custom_context.cpython-310.pyc and b/osinaweb/osinacore/__pycache__/custom_context.cpython-310.pyc differ diff --git a/osinaweb/osinacore/custom_context.py b/osinaweb/osinacore/custom_context.py index fdb1e3ae..0e896c68 100644 --- a/osinaweb/osinacore/custom_context.py +++ b/osinaweb/osinacore/custom_context.py @@ -2,6 +2,7 @@ from .models import Task, Status from django.contrib.auth.models import AnonymousUser from datetime import datetime, timedelta + def utilities(request): minutes_ago = 0 if request.user.is_authenticated and request.user.is_superuser: @@ -9,34 +10,46 @@ def utilities(request): 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') + # 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() + # 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) + # 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) + # Check if it's 60 minutes or more + if minutes_ago >= 60: + # Calculate the time difference in hours + hours_ago = minutes_ago // 60 + return f'{hours_ago} hour{"s" if hours_ago > 1 else ""} 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') + # 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() - # 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) - # 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) + # Check if it's 60 minutes or more + if minutes_ago >= 60: + # Calculate the time difference in hours + hours_ago = minutes_ago // 60 + return f'{hours_ago} hour{"s" if hours_ago > 1 else ""} ago' else: # Handle the case when the user is not logged in open_task_count = 0 @@ -45,5 +58,6 @@ def utilities(request): 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') - return {'total_tasks': total_tasks, 'last_status' : last_status, 'latest_statuses' : latest_statuses, 'minutes_ago' : minutes_ago, } + return {'total_tasks': total_tasks, 'last_status' : last_status, 'latest_statuses' : latest_statuses, 'minutes_ago' : minutes_ago, 'current_date' : current_date, } diff --git a/osinaweb/templates/main.html b/osinaweb/templates/main.html index 299892a7..6b549b08 100644 --- a/osinaweb/templates/main.html +++ b/osinaweb/templates/main.html @@ -221,7 +221,7 @@

Recent Status: {{last_status.text}}

-

Last update: {{last_status.date}} | {{last_status.time}}, {% if minutes_ago == 0 %} Just Now {%else%} {{minutes_ago}} mins ago {%endif%}

+

Last update: {{last_status.date}} | {{last_status.time}}, {% if minutes_ago == 0 %} Just Now {%else%} {% if last_status.date == current_date %} {{minutes_ago}} mins ago {%endif %} {%endif%}