write master timetable script
This commit is contained in:
1 file changed
+29
-2
+29
-2
@@ -1,13 +1,40 @@
|
||||
#!/usr/bin/env python3.11
|
||||
|
||||
from docx.shared import Inches
|
||||
import xlsxwriter
|
||||
import docx
|
||||
import json
|
||||
|
||||
flex = ("XAT--12A-S", "XAT--12B-S")
|
||||
|
||||
def putMasterTimetable(timetable: dict):
|
||||
pass
|
||||
def putMasterTimetable(table: dict, output_dir: str='./output/final') -> None:
|
||||
# worksheet.write(row, col, val)
|
||||
|
||||
workbook = xlsxwriter.Workbook('master_timetable.xlsx')
|
||||
worksheet = workbook.add_worksheet()
|
||||
|
||||
sem1Header = workbook.add_format({'bold': True, 'align': 'center', 'bg_color': '#91c5fa', 'border': 1})
|
||||
sem2Header = workbook.add_format({'bold': True, 'align': 'center', 'bg_color': '#a2fa91', 'border': 1})
|
||||
sem1Data = workbook.add_format({'bg_color': '#cee1f5', 'border': 1})
|
||||
sem2Data = workbook.add_format({'bg_color': '#d8f7d2', 'border': 1})
|
||||
worksheet.merge_range(0, 0, 0, len(table) * 2 - 1, 'Semester 1', sem1Header)
|
||||
worksheet.merge_range(0, len(table) * 2, 0, (len(table) * 4) - 1, 'Semester 2', sem2Header)
|
||||
|
||||
tracker = 0
|
||||
for i in range(0, len(table) * 4, 4):
|
||||
tracker += 1
|
||||
block, index = tracker, f'block{tracker}'
|
||||
header = sem1Header if tracker <= len(table) / 2 else sem2Header
|
||||
block = block if block <= len(table) / 2 else block - (len(table) // 2)
|
||||
worksheet.merge_range(1, i, 1, i + 3, f'Block {block}', header)
|
||||
|
||||
row = 2
|
||||
for course in table[index]:
|
||||
style = sem1Data if tracker <= len(table) / 2 else sem2Data
|
||||
worksheet.merge_range(row, i, row + 1, i + 3, f'{table[index][course]["Description"]}\n{course[:-2]}', style)
|
||||
row += 2
|
||||
|
||||
workbook.close()
|
||||
|
||||
def putScheduleToWord(courses: dict, student: dict, output_dir: str='./output/final/student_schedules') -> None:
|
||||
|
||||
|
||||
Reference in new issue
Block a user