mirror of
https://github.com/lemeow125/StudE-Backend.git
synced 2024-11-17 06:19:24 +08:00
Optimized subjects adding postmigration for better code readability
This commit is contained in:
parent
84e33d7ca6
commit
c5e1f0dc49
1 changed files with 18 additions and 8 deletions
|
@ -95,6 +95,7 @@ def populate_subjects(sender, **kwargs):
|
||||||
next(reader) # Skip the header row
|
next(reader) # Skip the header row
|
||||||
subject_count = 0
|
subject_count = 0
|
||||||
updated_subjects = 0
|
updated_subjects = 0
|
||||||
|
ignored_subjects = 0
|
||||||
for row in reader:
|
for row in reader:
|
||||||
if not any(row):
|
if not any(row):
|
||||||
continue
|
continue
|
||||||
|
@ -106,33 +107,38 @@ def populate_subjects(sender, **kwargs):
|
||||||
subject_code = row[1]
|
subject_code = row[1]
|
||||||
subject_name = row[2]
|
subject_name = row[2]
|
||||||
|
|
||||||
|
# Definitions of subjects to ignore
|
||||||
ignored_subject_codes = ['NSTP', 'ROTC', 'CWTS', 'LTS']
|
ignored_subject_codes = ['NSTP', 'ROTC', 'CWTS', 'LTS']
|
||||||
ignored_subject_names = [
|
ignored_subject_names = [
|
||||||
'PRACTICUM', 'On the Job Training', 'CAPSTONE', 'Capstone']
|
'PRACTICUM', 'On the Job Training', 'CAPSTONE', 'Capstone']
|
||||||
|
|
||||||
# Skip ignored subjects
|
# Skip ignored subjects
|
||||||
if any(ignored_code in subject_code for ignored_code in ignored_subject_codes):
|
if any(ignored_code in subject_code for ignored_code in ignored_subject_codes):
|
||||||
print('Ignored subject', subject_name,
|
ignored_subjects += 1
|
||||||
'with code', subject_code)
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if any(ignored_name in subject_name for ignored_name in ignored_subject_names):
|
if any(ignored_name in subject_name for ignored_name in ignored_subject_names):
|
||||||
print('Ignored subject', subject_name,
|
ignored_subjects += 1
|
||||||
'with code', subject_code)
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
# Get relevant info for specific subject
|
||||||
course = Course.objects.filter(
|
course = Course.objects.filter(
|
||||||
name=filename).first()
|
name=filename).first()
|
||||||
year_level = Year_Level.objects.filter(
|
year_level = Year_Level.objects.filter(
|
||||||
name=subject_year_level).first()
|
name=subject_year_level).first()
|
||||||
semester = Semester.objects.filter(
|
semester = Semester.objects.filter(
|
||||||
name=subject_semester).first()
|
name=subject_semester).first()
|
||||||
# Create the subject instance or get if it already exists
|
|
||||||
|
# If subject already exists with relevant info, skip over it
|
||||||
|
if (Subject.objects.filter(name=subject_name, year_levels=year_level, semesters=semester).exists()):
|
||||||
|
# print('Duplicate subject')
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Else if subject exists without relevant info, add relevant info
|
||||||
if (Subject.objects.filter(name=subject_name).exists()):
|
if (Subject.objects.filter(name=subject_name).exists()):
|
||||||
SUBJECT = Subject.objects.filter(name=subject_name
|
SUBJECT = Subject.objects.filter(name=subject_name
|
||||||
).first()
|
).first()
|
||||||
if (Subject.objects.filter(name=subject_name, year_levels=year_level, semesters=semester).exists()):
|
|
||||||
# print('Duplicate subject')
|
|
||||||
continue
|
|
||||||
SUBJECT.courses.add(course)
|
SUBJECT.courses.add(course)
|
||||||
SUBJECT.year_levels.add(year_level)
|
SUBJECT.year_levels.add(year_level)
|
||||||
SUBJECT.semesters.add(semester)
|
SUBJECT.semesters.add(semester)
|
||||||
|
@ -140,6 +146,8 @@ def populate_subjects(sender, **kwargs):
|
||||||
code=subject_code)
|
code=subject_code)
|
||||||
SUBJECT.codes.add(SUBJECT_CODE[0])
|
SUBJECT.codes.add(SUBJECT_CODE[0])
|
||||||
updated_subjects += 1
|
updated_subjects += 1
|
||||||
|
|
||||||
|
# If subject does not exist at all, then create new subject
|
||||||
else:
|
else:
|
||||||
|
|
||||||
SUBJECT = Subject.objects.get_or_create(
|
SUBJECT = Subject.objects.get_or_create(
|
||||||
|
@ -156,3 +164,5 @@ def populate_subjects(sender, **kwargs):
|
||||||
# Set the course, year level, and semester of the subject
|
# Set the course, year level, and semester of the subject
|
||||||
print('Added', subject_count, 'subjects from', filename,)
|
print('Added', subject_count, 'subjects from', filename,)
|
||||||
print('Updated', updated_subjects, 'subjects from', filename)
|
print('Updated', updated_subjects, 'subjects from', filename)
|
||||||
|
print('Ignored', ignored_subjects,
|
||||||
|
'subjects from', filename, '\n')
|
||||||
|
|
Loading…
Reference in a new issue