87 lines
2.5 KiB
Python
87 lines
2.5 KiB
Python
#!/usr/bin/env python3
|
|
### Script for adding a new category. Handles adding data to config.csv.
|
|
|
|
from utils import csv as util_csv
|
|
import os
|
|
|
|
## Check to see if there's at least one category ##
|
|
|
|
categoriesOld = util_csv.dictReaderMultiRow(
|
|
"../csv/categories.csv", "tk_category_dashname"
|
|
)
|
|
if len(categoriesOld.keys()) == 0:
|
|
print("Add a category first (using scripts/add-category.py)")
|
|
os._exit(1)
|
|
|
|
divider = "----------"
|
|
|
|
print(
|
|
f"\nWe'll ask for the runner, verifier, category, run date, category, description of, and recording link of the new run.\n\n{divider}\n"
|
|
)
|
|
|
|
tk_run_id = 1
|
|
existingRuns = util_csv.dictReaderMultiRow("../csv/runs.csv", "tk_run_id")
|
|
for id in existingRuns:
|
|
tk_run_id = int(id) + 1
|
|
|
|
tk_run_runner = input("Runner: ")
|
|
tk_run_verifier = input("Verifier: ")
|
|
|
|
## End of: Check to see if there's at least one category ##
|
|
|
|
## Handle input of tk_run_category_dashname ##
|
|
|
|
doneCategoryInput = False
|
|
displayName = "tk_category_name"
|
|
|
|
while not doneCategoryInput:
|
|
print("\nCategory (input a number)")
|
|
|
|
index = 0
|
|
categoriesNew = {}
|
|
for category in categoriesOld:
|
|
categoriesNew[index] = categoriesOld[category]
|
|
print(f"{index} - {categoriesNew[index][displayName]}")
|
|
index += 1
|
|
|
|
try:
|
|
try:
|
|
rawCategoryInput = input("Your pick: ")
|
|
except KeyboardInterrupt:
|
|
os._exit(1)
|
|
categoryInput = int(rawCategoryInput)
|
|
if categoryInput <= index:
|
|
try:
|
|
tk_run_category_dashname = categoriesNew[categoryInput][
|
|
"tk_category_dashname"
|
|
]
|
|
doneCategoryInput = True
|
|
except:
|
|
print("Not a valid choice!")
|
|
else:
|
|
print("Not a valid choice!")
|
|
except:
|
|
print("Not a number!")
|
|
print(f"You picked - {categoriesNew[categoryInput][displayName]}\n")
|
|
|
|
## End of: Handle input of tk_run_category_dashname ##
|
|
|
|
tk_run_date = input("Date (format - MM/DD/YYYY): ")
|
|
tk_run_description = input("Description: ")
|
|
tk_run_link = input("Recording link (format - https://foo.bar): ")
|
|
|
|
runDict = {
|
|
"tk_run_id": tk_run_id,
|
|
"tk_run_runner": tk_run_runner,
|
|
"tk_run_verifier": tk_run_verifier,
|
|
"tk_run_category_dashname": tk_run_category_dashname,
|
|
"tk_run_date": tk_run_date,
|
|
"tk_run_description": tk_run_description,
|
|
"tk_run_link": tk_run_link,
|
|
}
|
|
|
|
util_csv.dictWriter("../csv/runs.csv", runDict, "a")
|
|
|
|
print(
|
|
f"\n{divider}\n\nAdded run! If you made a mistake, you can manually edit csv/runs.csv\n"
|
|
)
|