diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 52d16ef9..22a1c8cd 100644 Binary files a/osinaweb/db.sqlite3 and b/osinaweb/db.sqlite3 differ diff --git a/osinaweb/osinaweb/__pycache__/middleware.cpython-310.pyc b/osinaweb/osinaweb/__pycache__/middleware.cpython-310.pyc index c97daa4f..5f181872 100644 Binary files a/osinaweb/osinaweb/__pycache__/middleware.cpython-310.pyc and b/osinaweb/osinaweb/__pycache__/middleware.cpython-310.pyc differ diff --git a/osinaweb/osinaweb/middleware.py b/osinaweb/osinaweb/middleware.py index 7251c336..566fab2e 100644 --- a/osinaweb/osinaweb/middleware.py +++ b/osinaweb/osinaweb/middleware.py @@ -13,7 +13,7 @@ class OnlineConnectionMiddleware: if request.user.is_authenticated and request.user.staffprofile: current_datetime = datetime.now() last_connection = Connection.objects.filter(user=request.user).order_by('-date').first() - if not last_connection or last_connection.status != 'Online': + if not last_connection: Connection.objects.create(user=request.user, status='Online', date=current_datetime) new_status = Status.objects.create( text='I am now online!', @@ -21,6 +21,20 @@ class OnlineConnectionMiddleware: time=datetime.now().strftime('%I:%M %p'), staff=request.user.staffprofile ) + else: + if last_connection.status != 'Online': + staff_profile = request.user.staffprofile + last_point_activity = PointActivity.objects.filter( + point__task__assigned_to=staff_profile + ).last() + if last_point_activity.point.status=='Working On' and not last_point_activity.end_time: + Connection.objects.create(user=request.user, status='Online', date=current_datetime) + new_status = Status.objects.create( + text='I am now online!', + date=datetime.now().date(), # Getting the current date + time=datetime.now().strftime('%I:%M %p'), + staff=request.user.staffprofile + ) return response