feat(NoSheet): started creating default sheet, todo add default data

This commit is contained in:
darkicewolf50 2024-12-07 13:00:13 -07:00
parent 3b46d56339
commit 0077950f2a
5 changed files with 133 additions and 53 deletions

View File

@ -1,35 +1,93 @@
import openpyxl
import yaml
import json
import datetime
from openpyxl.styles import Font, Border, Side
yamlraw = """
Interview TimeTable:
- Date: Null
- Meeting Duration: 30 min
- Start Time Slot: Null
- Interviewee Name: Null
- Interviewee Email: Null
- Category (if not general): Null
- Interviewer(s) Name(s): Null
- Status: Dropdown (Options in datahelp)
Recruitment Responses:
- Frist Name (What we should call them): Null
- Last Name: Null
- Ucalgary Email: Null
- What Subsystem/SubTeam are you interested in?: Null
- Major: Null
- Academic Year: Null
- Why are you interested in joining UCalgary BAJA?: Null
- Where did you hear about us?: Null
- Are you available for team meetings/work days? Saturdays 10 am - 4 pm: Null #add condiftional formatting for no to make whole line red
Data Help:
- Status Dropdown:
- Unknown
- Done
- No Show
- Cancelled/Moved
def NoSheet():
# sheet with an example properites
yamlraw = """
Recruitment Responses:
- Frist Name (What we should call them): Steve
- Last Name: the Bug
- Ucalgary Email: steve.the.bug@ucalgary.ca
- What Subsystem/SubTeam are you interested in?: |
Chassis
Ergonomics
Suspension
Steering
Powertrain
Final Drive
Any Mechanical
Business - Content Creation
Business - Business Relations
Software
- Major: General (1st Year)
- Academic Year: 1st
- Why are you interested in joining UCalgary BAJA?: Example Interest
- Where did you hear about us?: Testing
- Are you available for team meetings/work days? Saturdays 10 am - 4 pm: Yes #add condiftional formatting for no to make whole line red
Interview TimeTable:
- Date: 9/16/2024
- Meeting Duration: 30 min
- Start Time Slot: 10:00:00 AM
- Slot: 1
- Interviewee Name (What to call them): Steve
- Interviewee Email: steve.the.bug@ucalgary.ca
- Category (if not general): Test
- Interviewer(s) Name(s): Example
- Status: Dropdown (Options in datahelp) #default is Unkown
Data Helper:
- Status Dropdown:
- Unknown
- Done
- No Show
- Cancelled/Moved
"""
yamlsheet = yaml.safe_load(yamlraw)
yamlsheet = yaml.safe_load(yamlraw)
print(json.dumps(yamlsheet, indent=4))
print(json.dumps(yamlsheet, indent=4))
year_donation = int(str(datetime.datetime.now().year)[2:]) + 1 # gets the last two digits of the current year then adds 1 for the current season
file_name = f"OR{year_donation}-L-Interview Data.xlsx" # name based off the 2025 naming system
sheet_names = [name for name in yamlsheet.keys()]
# border style
border = Border(
left=Side(style='medium'),
right=Side(style='medium'),
top=Side(style='medium'),
bottom=Side(style='medium')
)
# create workbook in memory
work_book = openpyxl.Workbook()
if len(sheet_names) > 0:
# remove default sheet
default_sheet = work_book.active
work_book.remove(default_sheet)
for sheet_name, title_list in yamlsheet.items():
# add standard sheets
sheet = work_book.create_sheet(sheet_name)
titles = [list(title.keys())[0] for title in title_list]
for col_num, title in enumerate(titles, start=1):
cell = sheet.cell(row=1, column=col_num)
cell.value = title
cell.font = Font(bold=True)
cell.border = border
# save to storage
work_book.save(file_name)
if __name__ == "__main__":
NoSheet()

View File

@ -7,6 +7,12 @@ import time
excel_file_path = "./OR-L-Interview Data.xlsx"
lock_file_path = "./OR-L-Interview Data.xlsx.lock"
"""
TODO change to dynamic file name
year_donation = int(str(datetime.datetime.now().year)[2:]) + 1 # gets the last two digits of the current year then adds 1 for the current season
file_name = f"OR{year_donation}-L-Interview Data.xlsx" # name based off the 2025 naming system
"""
def ReadDatabase():
"""
Reads the database for which slots are available

View File

@ -8,6 +8,11 @@ from filelock import FileLock
file_path = "./interview_database.xlsx"
lock_path = "./interview_database.xlsx.lock" # Lock file for synchronization
"""
TODO chnage to dynamic file name
year_donation = int(str(datetime.datetime.now().year)[2:]) + 1 # gets the last two digits of the current year then adds 1 for the current season
file_name = f"OR{year_donation}-L-Interview Data.xlsx" # name based off the 2025 naming system
"""
def ReadDatabase():
"""
Reads the Database to retrieve available interview slots.

25
emp.yml
View File

@ -1,25 +0,0 @@
Interview TimeTable:
- Date: Null
- Meeting Duration: 30 min
- Start Time Slot: Null
- Interviewee Name: Null
- Interviewee Email: Null
- Category (if not general): Null
- Interviewer(s) Name(s): Null
- Status: Dropdown (Options in datahelp)
Recruitment Responses:
- Frist Name (What we should call them): Null
- Last Name: Null
- Ucalgary Email: Null
- What Subsystem/SubTeam are you interested in?: Null
- Major: Null
- Academic Year: Null
- Why are you interested in joining UCalgary BAJA?: Null
- Where did you hear about us?: Null
- Are you available for team meetings/work days? Saturdays 10 am - 4 pm: Null #add condiftional formatting for no to make whole line red
Data Help:
- Status Dropdown:
- Unknown
- Done
- No Show
- Cancelled/Moved

36
temp.yml Normal file
View File

@ -0,0 +1,36 @@
Recruitment Responses:
- Frist Name (What we should call them): Steve
- Last Name: the Bug
- Ucalgary Email: steve.the.bug@ucalgary.ca
- What Subsystem/SubTeam are you interested in?: |
Chassis
Ergonomics
Suspension
Steering
Powertrain
Final Drive
Any Mechanical
Business - Content Creation
Business - Business Relations
Software
- Major: General (1st Year)
- Academic Year: 1st
- Why are you interested in joining UCalgary BAJA?: Example Interest
- Where did you hear about us?: Testing
- Are you available for team meetings/work days? Saturdays 10 am - 4 pm: Yes #add condiftional formatting for no to make whole line red
Interview TimeTable:
- Date: 9/16/2024
- Meeting Duration: 30 min
- Start Time Slot: 10:00:00 AM
- Slot: 1
- Interviewee Name (What to call them): Steve
- Interviewee Email: steve.the.bug@ucalgary.ca
- Category (if not general): Test
- Interviewer(s) Name(s): Example
- Status: Dropdown (Options in datahelp) #default is Unkown
Data Helper:
- Status Dropdown:
- Unknown
- Done
- No Show
- Cancelled/Moved