Compare commits

...

6 Commits

Author SHA1 Message Date
Challenger 48451b9060
Merge f0a02ec2d0 into a6ec89f1c6 2024-09-12 08:37:54 +00:00
Challenger f0a02ec2d0 Updated checks for script arguments 2023-06-09 18:55:55 +05:30
Challenger 35391e6173 Merge branch 'sample_data' of https://github.com/CDC-IITDH/cdc-placement-website-backend into sample_data 2023-06-09 18:46:48 +05:30
Challenger 1da13d787f Changed the format to get input 2023-06-09 18:38:01 +05:30
Challenger 70711888ea Using constants from APIs/constants.py now 2023-06-09 00:14:56 +05:30
Challenger 609eb1a159 Added add_students script to add sample students 2023-06-08 23:58:11 +05:30
1 changed files with 70 additions and 0 deletions

View File

@ -0,0 +1,70 @@
import random
from django.db.utils import IntegrityError
from APIs.models import Student
from APIs.constants import BRANCHES, BATCH_CHOICES, DEGREE_CHOICES
# To run this script run the following command:
# python manage.py runscript add_students --script-args <add_type> <num_of_stundents_to_add>
def run(*args):
# Throw error if invalid number of arguments passed
if not args:
raise ValueError("Invalid number of arguments passed")
if args[0] in ("manual", "man") :
if len(args) != 2 or not args[1].isdigit() or int(args[1]) < 1:
raise ValueError("Invalid number of arguments passed")
print("id\troll_no\tname\tbranch\tphone_number\tcpi\tdegree\tbatch")
for i in range(1, int(args[1])+1):
details = input()
details = details.split(",")
details = [i.strip() for i in details]
details = [int(details[0]), int(details[1]), details[2], details[3],
int(details[4]), float(details[5]), details[6], details[7]]
student = Student.objects.create(
id = details[0],
roll_no = details[1],
name = details[2],
branch = details[3],
phone_number = details[4],
cpi = details[5],
degree = details[6],
batch = details[7],
)
student.save()
elif args[0] in ("auto", "automatic"):
if len(args) != 2 or not args[1].isdigit() or int(args[1]) < 1:
raise ValueError("Invalid number of arguments passed")
for i in range(1, int(args[1])+1):
try:
student = Student.objects.create(
id = i-1,
roll_no = 220010000 + i,
name = "Student " + str(i),
branch = random.choice(BRANCHES),
phone_number = random.randint(1000000000, 9999999999),
cpi = random.random()*10,
degree = random.choice(DEGREE_CHOICES)[0],
batch = random.choice(BATCH_CHOICES)[0],
)
student.save()
except IntegrityError:
pass
elif args[0] in ("del", "delete"):
# delete students with name starting with Student
s = Student.objects.filter(name__startswith="Stundent")
s.delete()
else:
raise ValueError("Invalid argument passed")