diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/app/generator.py b/app/generator.py old mode 100644 new mode 100755 index 6e8353b..b52eac0 --- a/app/generator.py +++ b/app/generator.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.11 +#!/usr/bin/env python3 import json import random from string import hexdigits @@ -117,10 +117,12 @@ def generateScheduleV3( # If remaining fit in open slots in existing classes if remaining <= classRunCount * (classCap - median): # Equally disperse remaining into existing classes - for j in range(classRunCount): - if remaining == 0: break - emptyClasses[index][f"{index}-{hexdigits[j]}"]["expectedLen"] += 1 - remaining -= 1 + while remaining > 0: + for j in range(classRunCount): + if remaining == 0: break + emptyClasses[index][f"{index}-{hexdigits[j]}"]["expectedLen"] += 1 + remaining -= 1 + if remaining > 0: print("step 2 logic error", remaining, "remaining") # If we can create a class using remaining, create class elif remaining >= minReq: @@ -366,7 +368,7 @@ def generateScheduleV3( } if hasConflicts: - student.Classes: int = 0 + student.Classes = 0 missing: list[str] = [] # Clear student schedule to restructure diff --git a/app/util/convertRawData.py b/app/util/convertRawData.py old mode 100644 new mode 100755 index f5dccba..7a7452d --- a/app/util/convertRawData.py +++ b/app/util/convertRawData.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python 3.11 +#!/usr/bin/env python 3 from docx.shared import Inches from app.util.globals import flex import xlsxwriter diff --git a/app/util/courses.py b/app/util/courses.py old mode 100644 new mode 100755 index bd38a91..977a8ef --- a/app/util/courses.py +++ b/app/util/courses.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.11 +#!/usr/bin/env python3 import json import csv from dataclasses import dataclass, asdict diff --git a/app/util/errorCalculator.py b/app/util/errorCalculator.py old mode 100644 new mode 100755 index 33afd0b..50182a1 --- a/app/util/errorCalculator.py +++ b/app/util/errorCalculator.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.11 +#!/usr/bin/env python3 import json import csv diff --git a/app/util/estimateGrade.py b/app/util/estimateGrade.py old mode 100644 new mode 100755 index da5aafb..be82e7f --- a/app/util/estimateGrade.py +++ b/app/util/estimateGrade.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.11 +#!/usr/bin/env python3 from app.util.globals import flex most_frequent = lambda l : max(set(l), key = l.count) diff --git a/app/util/globals.py b/app/util/globals.py old mode 100644 new mode 100755 index ad7c1e8..7780207 --- a/app/util/globals.py +++ b/app/util/globals.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.11 +#!/usr/bin/env python3 from dataclasses import dataclass # These are the codes for Flex (spare) blocks diff --git a/app/util/students.py b/app/util/students.py old mode 100644 new mode 100755 index 7977765..7466c6f --- a/app/util/students.py +++ b/app/util/students.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.11 +#!/usr/bin/env python3 import json import csv from app.util.estimateGrade import estimateStudentGrade diff --git a/app/util/validator.py b/app/util/validator.py old mode 100644 new mode 100755 index 20991ba..b68a086 --- a/app/util/validator.py +++ b/app/util/validator.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.11 +#!/usr/bin/env python3 from app.util.globals import Error # validate user's inputed csv file contains required fields diff --git a/example/course_selection_data_example.csv b/example/course_selection_data_example.csv old mode 100644 new mode 100755 index 06b8274..4948c6b --- a/example/course_selection_data_example.csv +++ b/example/course_selection_data_example.csv @@ -96,8 +96,8 @@ Pupil #,CrsNo,Description,Alternate? 198219,MWEX-2A--S,WORK EXPERIENCE 12A,FALSE 198219,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 198219,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -198219,XSIEP2B--S,"BASES SR STUDY SKILLS, SEMESTERED",FALSE -198219,XSPBK1ATUS--S-LST,LST 11/FALSE +198219,XSIEP2B--S,BASES SR STUDY SKILLS SEMESTERED,FALSE +198219,XSPBK1ATUS--S-LST,LST 11,FALSE 198219,MTPA-11--S,ACTING 11,TRUE 206678,MADDL08--C,INFORMATION TECHNOLOGY 08 (ADST-Digital Literacy),FALSE 206678,MADFS08--C,FOOD STUDIES 08 (ADST),FALSE @@ -542,7 +542,7 @@ Pupil #,CrsNo,Description,Alternate? 612732,MWEX-2A--S,WORK EXPERIENCE 12A,FALSE 612732,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 612732,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -612732,XSPBK1ATUS--S-LST,LST 11/FALSE +612732,XSPBK1ATUS--S-LST,LST 11,FALSE 612732,MSADP12--S,DRAWING AND PAINTING,True 622270,MADDL08--C,INFORMATION TECHNOLOGY 08 (ADST-Digital Literacy),FALSE 622270,MADMA08--C,VISUAL ARTS 08 (ADST),FALSE @@ -753,7 +753,7 @@ Pupil #,CrsNo,Description,Alternate? 772554,MPE--11--S,PHYSICAL EDUCATION 11,FALSE 772554,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 772554,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -772554,XSPBK1ATUS--S-LST,LST 11/FALSE +772554,XSPBK1ATUS--S-LST,LST 11,FALSE 772554,YPSYC1A--S,PSYCHOLOGY 11 (BAA),FALSE 772554,YPSYC2A--S,PSYCHOLOGY 12 (BAA),TRUE 781879,MADDL08--C,INFORMATION TECHNOLOGY 08 (ADST-Digital Literacy),FALSE @@ -1309,8 +1309,8 @@ Pupil #,CrsNo,Description,Alternate? 1203410,MTEW-10--S,WOODWORK 10,FALSE 1203410,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 1203410,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -1203410,XSIEP2C--S,"LSB SR ACADEMIC SUPPORT 1, SEMESTERED",FALSE -1203410,XSIEP2D--S,"LSB SR ACADEMIC SUPPORT 2, SEMESTERED",FALSE +1203410,XSIEP2C--S,LSB SR ACADEMIC SUPPORT 1 SEMESTERED,FALSE +1203410,XSIEP2D--S,LSB SR ACADEMIC SUPPORT 2 SEMESTERED,FALSE 1203410,MVAM-10--S,MEDIA ARTS 10,TRUE 1219043,MCH--11--S,CHEMISTRY 11,FALSE 1219043,MEN--11--S-COMP,ENGLISH 11 COMPOSITION,FALSE @@ -1861,8 +1861,8 @@ Pupil #,CrsNo,Description,Alternate? 1551767,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE 1551767,XSIEP0A--S,BASES SR LIFESKILLS 1,FALSE 1551767,XSIEP0C--S,BASES SR LIFESKILLS 2,FALSE -1551767,XSIEP0D--Y,"BASES SR MATH 2, LINEAR",FALSE -1551767,XSIEP0E--Y,"BASES SR LIFESKILLS 1, LINEAR",FALSE +1551767,XSIEP0D--Y,BASES SR MATH 2 LINEAR,FALSE +1551767,XSIEP0E--Y,BASES SR LIFESKILLS 1 LINEAR,FALSE 1551767,MTEM-10--S,METALWORK 10 ,TRUE 1551767,YCCT-0B--S,DIGITAL MEDIA TECHNOLOGY,TRUE 1553617,MADDL08--C,INFORMATION TECHNOLOGY 08 (ADST-Digital Literacy),FALSE @@ -3006,7 +3006,7 @@ Pupil #,CrsNo,Description,Alternate? 2376561,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 2376561,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE 2376561,MAC--11--S,ACCOUNTING 11,TRUE -2376561,XSPBK1ATUS--S-LST,LST 11/TRUE +2376561,XSPBK1ATUS--S-LST,LST 11,TRUE 2385555,MADFS09--Y,FOODS AND NUTRITION 09 (ADST),FALSE 2385555,MADM-09--Y,METALWORK 09 (ADST),FALSE 2385555,MFR--09--Y,FRENCH 09,FALSE @@ -3115,7 +3115,7 @@ Pupil #,CrsNo,Description,Alternate? 2476051,MSS--11--S-POLSTUD,POLITICAL STUDIES,FALSE 2476051,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 2476051,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -2476051,XSPBK1ATUS--S-LST,LST 11/FALSE +2476051,XSPBK1ATUS--S-LST,LST 11,FALSE 2476051,YVPA-1B--S,THEATRE COMPANY 11 (BAA),FALSE 2476051,MFDN-11--S,FOODS AND NUTRITION 11,TRUE 2476718,MCH--11--S,CHEMISTRY 11,FALSE @@ -3381,7 +3381,7 @@ Pupil #,CrsNo,Description,Alternate? 2645875,MWEX-2A--S,WORK EXPERIENCE 12A,FALSE 2645875,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 2645875,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -2645875,XSPBK1ATUS--S-LST,LST 11/FALSE +2645875,XSPBK1ATUS--S-LST,LST 11,FALSE 2645875,MBI--11--S,LIFE SCIENCES 11,TRUE 2645875,MFM--11--S,CHILD DEVELOPMENT AND CAREGIVING,TRUE 2650753,MCH--11--S,CHEMISTRY 11,FALSE @@ -3596,8 +3596,8 @@ Pupil #,CrsNo,Description,Alternate? 2774765,XSIEP0A--S,BASES SR LIFESKILLS 1,FALSE 2774765,XSIEP0B--S,BASES SR COMMUNITY,FALSE 2774765,XSIEP0C--S,BASES SR LIFESKILLS 2,FALSE -2774765,XSIEP0D--Y,"BASES SR MATH 2, LINEAR",FALSE -2774765,XSIEP0E--Y,"BASES SR LIFESKILLS 1, LINEAR",FALSE +2774765,XSIEP0D--Y,BASES SR MATH 2 LINEAR,FALSE +2774765,XSIEP0E--Y,BASES SR LIFESKILLS 1 LINEAR,FALSE 2774765,XSIEP0F--S,BASES SR EMPLOYMENT SKILLS,FALSE 2774765,XSIEP0G--S,BASES SR HEALTHY LIVING 1,FALSE 2774765,XSIEP0H--S,BASES SR HEALTHY LIVING 2,FALSE @@ -3908,7 +3908,7 @@ Pupil #,CrsNo,Description,Alternate? 2970350,MIPUN11--S,INTRODUCTORY PUNJABI 11,FALSE 2970350,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 2970350,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -2970350,XSPBK1ATUS--S-LST,LST 11/FALSE +2970350,XSPBK1ATUS--S-LST,LST 11,FALSE 2970350,MAC--11--S,ACCOUNTING 11,TRUE 2971229,MADFS09--Y,FOODS AND NUTRITION 09 (ADST),FALSE 2971229,MADMA09--Y,VISUAL ARTS 09 (ADST),FALSE @@ -4345,7 +4345,7 @@ Pupil #,CrsNo,Description,Alternate? 3326851,MPH--11--S,PHYSICS 11,FALSE 3326851,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 3326851,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -3326851,XSPBK1ATUS--S-LST,LST 11/FALSE +3326851,XSPBK1ATUS--S-LST,LST 11,FALSE 3326851,MCJ--12--S,CARPENTRY & JOINERY,True 3336516,MEN--10--S-FLIT,ENGLISH 10 FOCUSED LIT/COMPOSITION,FALSE 3336516,MFMP-10--S,FOUNDATIONS OF MATH AND PRE-CALCULUS 10,FALSE @@ -4836,7 +4836,7 @@ Pupil #,CrsNo,Description,Alternate? 3680143,MPE--10--S,PHYSICAL EDUCATION 10,FALSE 3680143,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 3680143,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -3680143,XSPBK1ATUS--S-LST,LST 11/FALSE +3680143,XSPBK1ATUS--S-LST,LST 11,FALSE 3680143,MBCA-11--S,BUSINESS COMPUTER APPLICATIONS 11,TRUE 3680143,YPSYC1A--S,PSYCHOLOGY 11 (BAA),TRUE 3684371,MADIT09--Y,COMPUTER PROGRAMMING (ADST),FALSE @@ -5667,7 +5667,7 @@ Pupil #,CrsNo,Description,Alternate? 4349400,MHI--12--S-2WLDHIS,20TH CENTURY WORLD HISTORY,FALSE 4349400,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 4349400,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -4349400,XSPBK1ATUS--S-LST,LST 11/FALSE +4349400,XSPBK1ATUS--S-LST,LST 11,FALSE 4349400,YHRA-1C--S,WEIGHT TRAINING 11 (BAA),FALSE 4349400,MMFM-11--S,METAL FABRICATION AND MACHINING 11(FNASK),TRUE 4353111,MEN--10--S-FLIT,ENGLISH 10 FOCUSED LIT/COMPOSITION,FALSE @@ -6465,7 +6465,7 @@ Pupil #,CrsNo,Description,Alternate? 4963292,MSADP11--S,DRAWING AND PAINTING 11,FALSE 4963292,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 4963292,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -4963292,XSPBK1ATUS--S-LST,LST 11/FALSE +4963292,XSPBK1ATUS--S-LST,LST 11,FALSE 4963292,YIA--1A--S,WOODCRAFT 11 (BAA),FALSE 4963292,MDDF-11--S,DRAFTING AND DESIGN (FNASK) 11,TRUE 4963292,MICTC12--S,GAME DEVELOPMENT,TRUE @@ -7284,8 +7284,8 @@ Pupil #,CrsNo,Description,Alternate? 5665836,MTEW-10--S,WOODWORK 10,FALSE 5665836,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 5665836,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -5665836,XSIEP2C--S,"LSB SR ACADEMIC SUPPORT 1, SEMESTERED",FALSE -5665836,XSIEP2D--S,"LSB SR ACADEMIC SUPPORT 2, SEMESTERED",FALSE +5665836,XSIEP2C--S,LSB SR ACADEMIC SUPPORT 1, SEMESTERED,FALSE +5665836,XSIEP2D--S,LSB SR ACADEMIC SUPPORT 2, SEMESTERED,FALSE 5665836,MFDN-10--S,FOODS AND NUTRITION 10,TRUE 5666390,MFR--08--Y,FRENCH 08,FALSE 5666390,MMA--08--Y,MATHEMATICS 08,FALSE @@ -7872,7 +7872,7 @@ Pupil #,CrsNo,Description,Alternate? 6060628,MVAMT11--S,MEDIA ARTS 11,FALSE 6060628,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 6060628,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -6060628,XSPBK1ATUS--S-LST,LST 11/FALSE +6060628,XSPBK1ATUS--S-LST,LST 11,FALSE 6060628,YVPA-1A--S,MUSICAL THEATRE 11 (BAA),FALSE 6060628,MAF--11--S,ART FOUNDATIONS 11,TRUE 6060628,MFDN-11--S,FOODS AND NUTRITION 11,TRUE @@ -9760,9 +9760,9 @@ Pupil #,CrsNo,Description,Alternate? 7624742,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE 7624742,XSIEP0A--S,BASES SR LIFESKILLS 1,FALSE 7624742,XSIEP0C--S,BASES SR LIFESKILLS 2,FALSE -7624742,XSIEP0D--Y,"BASES SR MATH 2, LINEAR",FALSE +7624742,XSIEP0D--Y,BASES SR MATH 2 LINEAR,FALSE 7624742,MVAG-10--S,VISUAL ARTS 10 GENERAL,TRUE -7624742,XSIEP0E--Y,"BASES SR LIFESKILLS 1, LINEAR",TRUE +7624742,XSIEP0E--Y,BASES SR LIFESKILLS 1 LINEAR,TRUE 7635240,MEN--10--S-FLIT,ENGLISH 10 FOCUSED LIT/COMPOSITION,FALSE 7635240,MFMP-10--S,FOUNDATIONS OF MATH AND PRE-CALCULUS 10,FALSE 7635240,MFR--10--S,FRENCH 10,FALSE @@ -10257,7 +10257,7 @@ Pupil #,CrsNo,Description,Alternate? 8007175,MVAMT11--S,MEDIA ARTS 11,FALSE 8007175,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 8007175,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -8007175,XSPBK1ATUS--S-LST,LST 11/FALSE +8007175,XSPBK1ATUS--S-LST,LST 11,FALSE 8007175,MICTM11--S,DIGITAL DESIGNS 11,TRUE 8008833,MADFS09--Y,FOODS AND NUTRITION 09 (ADST),FALSE 8008833,MDNC-09--Y-BEG,DANCE 09: BEGINNER,FALSE @@ -10296,7 +10296,7 @@ Pupil #,CrsNo,Description,Alternate? 8039343,MFDN-11--S,FOODS AND NUTRITION 11,FALSE 8039343,MICTS12--S,APPLICATIONS PROGRAMMING,FALSE 8039343,MSP--11--S,SPANISH 11,FALSE -8039343,PKG--11--NEW MED ENG,NEW MEDIA/ DIGITAL PACKAGE 11,FALSE +8039343,PKG--11--NEW-MED-ENG,NEW MEDIA/ DIGITAL PACKAGE 11,FALSE 8039343,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 8039343,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE 8039343,YPHR-2A--S,PHILOSOPHY,False @@ -10588,7 +10588,7 @@ Pupil #,CrsNo,Description,Alternate? 8219194,MWEX-2A--S,WORK EXPERIENCE 12A,FALSE 8219194,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 8219194,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -8219194,XSPBK1ATUS--S-LST,LST 11/FALSE +8219194,XSPBK1ATUS--S-LST,LST 11,FALSE 8219194,YPHR-2A--S,PHILOSOPHY,True 8226206,MADFS09--Y,FOODS AND NUTRITION 09 (ADST),FALSE 8226206,MDNC-09--Y-BEG,DANCE 09: BEGINNER,FALSE @@ -12021,7 +12021,7 @@ Pupil #,CrsNo,Description,Alternate? 9336350,MGEO--12--S-HUMGEO,HUMAN GEOGRAPHY,False 9336350,XAT--12A-S,FLEX SENIOR SEMESTER 1,FALSE 9336350,XAT--12B-S,FLEX SENIOR SEMESTER 2,FALSE -9336350,XSPBK1ATUS--S-LST,LST 11/FALSE +9336350,XSPBK1ATUS--S-LST,LST 11,FALSE 9336350,MTXT-11AD--S,TEXTILES 11 ADVANCED,TRUE 9337158,MADGE09--Y,DIGITAL MEDIA ADST 09,FALSE 9337158,MADPT09--Y,TECHNOLOGY EDUCATION 09 (ADST),FALSE @@ -12908,7 +12908,7 @@ Pupil #,CrsNo,Description,Alternate? 9913220,MIMCB11--Y,CONCERT BAND 11,FALSE 9913220,MIMJB12--Y,JAZZ BAND,False 9913220,MPH--11--S,PHYSICS 11,FALSE -9913220,XSPBK1ATUS--S-LST,LST 11/FALSE +9913220,XSPBK1ATUS--S-LST,LST 11,FALSE 9913220,MAF--11--S,ART FOUNDATIONS 11,TRUE 9913220,MICTP11--S,COMPUTER PROGRAMMING,TRUE 9913220,MMCT-11--Y,MUSIC COMPOSITION & TECHNOLOGY 11,TRUE diff --git a/main.py b/main.py index 636fc5b..accc370 100755 --- a/main.py +++ b/main.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.11 +#!/usr/bin/env python3 import eel import os import json diff --git a/template/index.html b/template/index.html old mode 100644 new mode 100755 diff --git a/template/script.js b/template/script.js old mode 100644 new mode 100755 diff --git a/template/style.css b/template/style.css old mode 100644 new mode 100755