Removed Checklist class and restructured.

Made small changes to ChecklistItem and removed Checklist entirely, since it wasn't really necessary. Updated test case.
This commit is contained in:
Timothy Davis
2021-01-26 11:22:02 -05:00
parent 5930fd681d
commit a1fef427bf

View File

@@ -17,11 +17,12 @@
class ChecklistItem:
def __init__(self, task=None):
def __init__(self, task=None, schedule=None):
self.task = task
self.parent = None
self.children = []
self.completed = False
self.schedule = schedule
def add_child(self, sub_task):
sub_task.set_parent(self)
@@ -30,6 +31,9 @@ class ChecklistItem:
def mark_task(self):
self.completed = True
for item in self.get_children():
item.mark_task()
def unmark_task(self):
self.completed = False
@@ -45,15 +49,17 @@ class ChecklistItem:
def get_parent(self):
return self.parent
def get_children(self):
return self.children
class Checklist:
def __init__(self, schedule=0):
self.root = ChecklistItem()
self.schedule = schedule
def get_schedule(self):
return self.schedule
def print_checklist(root):
for item in root.children:
if root.parent is None:
print(root.get_task())
temp = root
while temp.get_parent() is not None:
@@ -69,26 +75,34 @@ def print_checklist(root):
if __name__ == "__main__":
test_checklist = Checklist()
test_checklist = ChecklistItem("Backpack Checklist")
"""
As a proof of concept, I'll make a checklist similar to the following, x is complete, o is incomplete:
Backpack Checklist
o back pocket
x laptop
o げんき third edition Japanese textbook and workbook with bonus learning exercises
o laptop
x げんき
x げんき workbook
o front pocket
o pens
o headphones
"""
test_checklist.add_child(ChecklistItem("back pocket"))
test_checklist.add_child(ChecklistItem("front pocket"))
test_checklist.root.add_child(ChecklistItem("back pocket"))
test_checklist.root.children[0].add_child(ChecklistItem("laptop"))
test_checklist.root.children[0].children[0].mark_task()
test_checklist.root.children[0].add_child(ChecklistItem("げんき third edition Japanese textbook and workbook with "
"bonus learning exercises"))
test_checklist.root.add_child(ChecklistItem("front pocket"))
test_checklist.root.children[1].add_child(ChecklistItem("pens"))
test_checklist.root.children[1].add_child(ChecklistItem("headphones"))
sub_checklist = test_checklist.children[0]
sub_checklist.add_child(ChecklistItem("laptop"))
sub_checklist.add_child(ChecklistItem("げんき"))
print_checklist(test_checklist.root)
sub_checklist = sub_checklist.children[1]
sub_checklist.add_child(ChecklistItem("げんき workbook"))
sub_checklist = test_checklist.children[1]
sub_checklist.add_child(ChecklistItem("pens"))
sub_checklist.add_child(ChecklistItem("headphones"))
sub_checklist = test_checklist.children[0].children[1]
sub_checklist.mark_task()
print_checklist(test_checklist)