Updated to new schema

This commit is contained in:
Jacob Henry 2018-11-19 01:25:46 -05:00
parent b6c8a7886c
commit a56b4e91b1
2 changed files with 17 additions and 9 deletions

View File

@ -6,7 +6,7 @@ from typing import Tuple, List, Optional, Any
import google_api import google_api
import scroll_util import scroll_util
SHEET_ID = "1lPj9GjB00BuIq9GelOWh5GmiGsheLlowPnHLnWBvMOM" SHEET_ID = "1f9p4H7TWPm8rAM4v_qr2Vc6lBiFNEmR-quTY9UtxEBI"
# Note: These ranges use named range feature of google sheets. # Note: These ranges use named range feature of google sheets.
# To edit range of jobs, edit the named range in Data -> Named Ranges # To edit range of jobs, edit the named range in Data -> Named Ranges
@ -49,12 +49,15 @@ class JobAssignment(object):
assignee: scroll_util.Brother assignee: scroll_util.Brother
signer: Optional[scroll_util.Brother] signer: Optional[scroll_util.Brother]
late: bool late: bool
bonus: bool
def to_raw(self) -> Tuple[str, str, str, str, str, str]: def to_raw(self) -> Tuple[str, str, str, str, str, str, str]:
# Converts this back into a spreadsheet row # Converts this back into a spreadsheet row
signer_name = self.signer.name if self.signer is not None else SIGNOFF_PLACEHOLDER signer_name = self.signer.name if self.signer is not None else SIGNOFF_PLACEHOLDER
late = "y" if self.late else "n" late = "y" if self.late else "n"
return self.job.name, self.job.house, self.job.day_of_week, self.assignee.name, signer_name, late bonus = "y" if self.bonus else "n"
return self.job.name, self.job.house, self.job.day_of_week, self.assignee.name, signer_name, late, bonus
@dataclass @dataclass
class PointStatus(object): class PointStatus(object):
@ -95,10 +98,12 @@ def import_assignments() -> List[Optional[JobAssignment]]:
# None-out invalid rows (length not at least 4, which includes the 4 most important features) # None-out invalid rows (length not at least 4, which includes the 4 most important features)
def fixer(row): def fixer(row):
if len(row) == 4: if len(row) == 4:
return strip_all(row + [SIGNOFF_PLACEHOLDER, "n"]) return strip_all(row + [SIGNOFF_PLACEHOLDER, "n", "n"])
elif len(row) == 5: elif len(row) == 5:
return strip_all(row + "n") return strip_all(row + ["n", "n"])
elif len(row) == 6: elif len(row) == 6:
return strip_all(row + ["n"])
elif len(row) == 7:
return strip_all(row) return strip_all(row)
else: else:
return None return None
@ -113,7 +118,7 @@ def import_assignments() -> List[Optional[JobAssignment]]:
assignments.append(None) assignments.append(None)
else: else:
# Breakout list # Breakout list
job_name, location, day, assignee, signer, late = row job_name, location, day, assignee, signer, late, bonus = row
# Figure out when the day actually is, in terms of the date class # Figure out when the day actually is, in terms of the date class
day_rank = { day_rank = {
@ -165,8 +170,11 @@ def import_assignments() -> List[Optional[JobAssignment]]:
# Make late a bool # Make late a bool
late = late == "y" late = late == "y"
# Ditto for bonus
bonus = bonus == "y"
# Create the assignment # Create the assignment
assignment = JobAssignment(job=job, assignee=assignee, signer=signer, late=late) assignment = JobAssignment(job=job, assignee=assignee, signer=signer, late=late, bonus=bonus)
# Append to job/assignment lists # Append to job/assignment lists
assignments.append(assignment) assignments.append(assignment)
@ -180,7 +188,7 @@ def export_assignments(assigns: List[Optional[JobAssignment]]) -> None:
rows = [] rows = []
for v in assigns: for v in assigns:
if v is None: if v is None:
rows.append([""] * 6) rows.append([""] * 7)
else: else:
rows.append(list(v.to_raw())) rows.append(list(v.to_raw()))

View File

@ -217,7 +217,7 @@ async def nag_callback(slack, msg, match):
signoff_hook = slack_util.Hook(signoff_callback, signoff_hook = slack_util.Hook(signoff_callback,
pattern=r"signoff\s+(.*)", pattern=r"signoff\s+(.*)",
channel_whitelist=[channel_util.HOUSEJOBS]) channel_whitelist=[channel_util.BOTZONE])
reset_hook = slack_util.Hook(reset_callback, reset_hook = slack_util.Hook(reset_callback,
pattern=r"reset signoffs", pattern=r"reset signoffs",