StudE-Backend/stude/accounts/management/commands/clean_old_entries.py

34 lines
1.1 KiB
Python

from django.core.management.base import BaseCommand
from django.utils import timezone
from django.contrib.gis.geos import Point
from study_groups.models import StudyGroup
from student_status.models import StudentStatus
class Command(BaseCommand):
help = 'Removes old study groups and resets old student statuses'
def handle(self, *args, **kwargs):
# Get the current time
now = timezone.now()
# Get the time 8 hours ago
time_threshold = now - timezone.timedelta(hours=8)
# Delete StudyGroup entries older than 8 hours
StudyGroup.objects.filter(timestamp__lt=time_threshold).delete()
# Get StudentStatus entries older than 8 hours
old_statuses = StudentStatus.objects.filter(
timestamp__lt=time_threshold)
# Set the fields of the old statuses to the required values
for status in old_statuses:
status.location = Point(0, 0)
status.subject = None
status.landmark = None
status.study_group = None
status.save()
self.stdout.write(self.style.SUCCESS(
'Successfully cleaned old entries'))