mirror of
https://github.com/lemeow125/StudE-Backend.git
synced 2024-11-17 06:19:24 +08:00
Added pruning command
This commit is contained in:
parent
c8fca412b8
commit
13ba0cb12a
3 changed files with 89 additions and 4 deletions
34
stude/accounts/management/commands/clean_old_entries.py
Normal file
34
stude/accounts/management/commands/clean_old_entries.py
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
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'))
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Generated by Django 4.2.3 on 2023-10-01 05:25
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('accounts', '0003_alter_customuser_options_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='customuser',
|
||||||
|
options={'verbose_name': 'user', 'verbose_name_plural': 'users'},
|
||||||
|
),
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name='customuser',
|
||||||
|
unique_together=set(),
|
||||||
|
),
|
||||||
|
]
|
|
@ -135,7 +135,7 @@ paths:
|
||||||
name: id
|
name: id
|
||||||
schema:
|
schema:
|
||||||
type: integer
|
type: integer
|
||||||
description: A unique integer value identifying this custom user.
|
description: A unique integer value identifying this user.
|
||||||
required: true
|
required: true
|
||||||
tags:
|
tags:
|
||||||
- api
|
- api
|
||||||
|
@ -155,7 +155,7 @@ paths:
|
||||||
name: id
|
name: id
|
||||||
schema:
|
schema:
|
||||||
type: integer
|
type: integer
|
||||||
description: A unique integer value identifying this custom user.
|
description: A unique integer value identifying this user.
|
||||||
required: true
|
required: true
|
||||||
tags:
|
tags:
|
||||||
- api
|
- api
|
||||||
|
@ -187,7 +187,7 @@ paths:
|
||||||
name: id
|
name: id
|
||||||
schema:
|
schema:
|
||||||
type: integer
|
type: integer
|
||||||
description: A unique integer value identifying this custom user.
|
description: A unique integer value identifying this user.
|
||||||
required: true
|
required: true
|
||||||
tags:
|
tags:
|
||||||
- api
|
- api
|
||||||
|
@ -218,7 +218,7 @@ paths:
|
||||||
name: id
|
name: id
|
||||||
schema:
|
schema:
|
||||||
type: integer
|
type: integer
|
||||||
description: A unique integer value identifying this custom user.
|
description: A unique integer value identifying this user.
|
||||||
required: true
|
required: true
|
||||||
tags:
|
tags:
|
||||||
- api
|
- api
|
||||||
|
@ -857,6 +857,22 @@ paths:
|
||||||
responses:
|
responses:
|
||||||
'204':
|
'204':
|
||||||
description: No response body
|
description: No response body
|
||||||
|
/api/v1/study_groups/member_avatars/:
|
||||||
|
get:
|
||||||
|
operationId: api_v1_study_groups_member_avatars_list
|
||||||
|
tags:
|
||||||
|
- api
|
||||||
|
security:
|
||||||
|
- jwtAuth: []
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/CustomUserAvatar'
|
||||||
|
description: ''
|
||||||
/api/v1/study_groups/near/:
|
/api/v1/study_groups/near/:
|
||||||
get:
|
get:
|
||||||
operationId: api_v1_study_groups_near_list
|
operationId: api_v1_study_groups_near_list
|
||||||
|
@ -1065,6 +1081,20 @@ components:
|
||||||
- student_id_number
|
- student_id_number
|
||||||
- username
|
- username
|
||||||
- yearlevel_shortname
|
- yearlevel_shortname
|
||||||
|
CustomUserAvatar:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
avatar:
|
||||||
|
type: string
|
||||||
|
format: uri
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
readOnly: true
|
||||||
|
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
|
||||||
|
only.
|
||||||
|
required:
|
||||||
|
- avatar
|
||||||
|
- username
|
||||||
Landmark:
|
Landmark:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
|
Loading…
Reference in a new issue