diff --git a/osinaweb/osinacore/__pycache__/custom_context.cpython-310.pyc b/osinaweb/osinacore/__pycache__/custom_context.cpython-310.pyc index d382957f..1042d4a5 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/__pycache__/tasks.cpython-310.pyc b/osinaweb/osinacore/__pycache__/tasks.cpython-310.pyc index 6c4879ef..368ddb16 100644 Binary files a/osinaweb/osinacore/__pycache__/tasks.cpython-310.pyc and b/osinaweb/osinacore/__pycache__/tasks.cpython-310.pyc differ diff --git a/osinaweb/osinacore/custom_context.py b/osinaweb/osinacore/custom_context.py index 001744dd..57594173 100644 --- a/osinaweb/osinacore/custom_context.py +++ b/osinaweb/osinacore/custom_context.py @@ -2,6 +2,7 @@ from .models import * from django.contrib.auth.models import AnonymousUser from datetime import datetime, timedelta from django.shortcuts import get_object_or_404 +from django.db.models import Max, F def calculate_time_ago(status): @@ -21,14 +22,18 @@ def calculate_time_ago(status): def utilities(request): - last_connections = Connection.objects.order_by('user', '-date').distinct('user') - + latest_connections = Connection.objects.filter( + user__staffprofile__isnull=False + ).values('user').annotate( + latest_connection=Max('date') + ) online_staff_profiles = [] - - for connection in last_connections: - if connection.status == 'Online': - # Add user staff profile to online_staff_profiles - online_staff_profiles.append(connection.user.staffprofile) + for connection in latest_connections: + user_id = connection['user'] + latest_connection = connection['latest_connection'] + last_connection = Connection.objects.filter(user_id=user_id, date=latest_connection).first() + if last_connection.status == 'Online': + online_staff_profiles.append(last_connection.user.staffprofile) notes = None recent_note = None if request.user.is_authenticated: diff --git a/osinaweb/osinaweb/__pycache__/celery.cpython-310.pyc b/osinaweb/osinaweb/__pycache__/celery.cpython-310.pyc index 8557f165..e551eedb 100644 Binary files a/osinaweb/osinaweb/__pycache__/celery.cpython-310.pyc and b/osinaweb/osinaweb/__pycache__/celery.cpython-310.pyc differ diff --git a/osinaweb/osinaweb/celery.py b/osinaweb/osinaweb/celery.py index ee4c6152..36b70bec 100644 --- a/osinaweb/osinaweb/celery.py +++ b/osinaweb/osinaweb/celery.py @@ -18,6 +18,6 @@ celery_app.autodiscover_tasks() celery_app.conf.beat_schedule = { 'set-offline-every-minute': { 'task': 'osinacore.tasks.set_offline', # Assuming your task is in tasks.py in your_app - 'schedule': crontab(second='*'), # Run every secon + 'schedule': crontab(minute='1'), # Run every secon }, }