|
|
|
@ -6,25 +6,24 @@ 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
|
|
|
|
|
)
|
|
|
|
|
point__task__assigned_to=staff_profile
|
|
|
|
|
).last()
|
|
|
|
|
if last_working_point_activity and last_working_point_activity.end_time:
|
|
|
|
|
if 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.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=staff_profile
|
|
|
|
|
)
|