# tasks.py from celery import shared_task from osinacore.models import * from django.db.models import Q @shared_task def set_offline(): all_staff_profiles = StaffProfile.objects.all() for staff_profile in all_staff_profiles: last_working_point_activity = PointActivity.objects.filter( point__status='Working On', point__task__assigned_to=staff_profile, ).order_by('-end_time').first() if last_working_point_activity and last_working_point_activity.end_time <= datetime.now() - timedelta(minutes=10): user = staff_profile.user last_connection = Connection.objects.filter(user=user).order_by('-date').first() if last_connection is None or last_connection.status != 'Offline': Connection.objects.create( status='Offline', date=datetime.now(), user=user ) Status.objects.create( text='I am now offline!', date=datetime.now().date(), time=datetime.now().strftime('%I:%M %p'), staff=user.staffprofile )