toggleable lists also apply status to newly added items
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -169,11 +169,17 @@ class ListHandler(BaseHandler):
|
||||
list_object = context.user_data["current_list"]
|
||||
|
||||
content_it = list_object.content.values()
|
||||
done_it = [
|
||||
"· " if e is None \
|
||||
else "✅ " if e \
|
||||
else "❌ " \
|
||||
for e in list_object.done_dict.values()]
|
||||
# distinguish the enumeration:
|
||||
# either all done_dict values are None -> the list is not toggleable
|
||||
# or at least one value is of type bool -> the list is toggleable and None === False
|
||||
if any([type(e) == bool for e in list_object.done_dict.values()]):
|
||||
done_it = [
|
||||
"✅ " if e else "❌ " \
|
||||
for e in list_object.done_dict.values()
|
||||
]
|
||||
else:
|
||||
done_it = [". " for e in list_object.done_dict]
|
||||
|
||||
if content_it:
|
||||
msg_content = "\n".join([f"{d} {c}" for d, c in zip(done_it, content_it)])
|
||||
else:
|
||||
@@ -191,7 +197,6 @@ class ListHandler(BaseHandler):
|
||||
new = list_object.content
|
||||
new.update({"random_key": item})
|
||||
list_object.content = new
|
||||
# TODO test me!
|
||||
keyboard = [[InlineKeyboardButton("Add some more", callback_data="add"), InlineKeyboardButton("Back to the menu", callback_data="overview")]]
|
||||
reply_markup = InlineKeyboardMarkup(keyboard)
|
||||
await update.message.reply_text(f"Added {item}", reply_markup=reply_markup)
|
||||
@@ -204,11 +209,10 @@ class ListHandler(BaseHandler):
|
||||
await query.answer()
|
||||
|
||||
list_object = context.user_data["current_list"]
|
||||
old = list_object.done_dict[toggle_key]
|
||||
# if all None or all False (first toggle or all false) then set all dones to False
|
||||
if not any(list_object.done_dict.values()):
|
||||
new_done_dict = dict.fromkeys(list_object.done_dict, False)
|
||||
else: new_done_dict = list_object.done_dict
|
||||
old = list_object.done_dict[toggle_key] or False
|
||||
# if it was previously unset (None), we can later on set it to not old = True
|
||||
|
||||
new_done_dict = list_object.done_dict
|
||||
new_done_dict[toggle_key] = not old
|
||||
list_object.done_dict = new_done_dict
|
||||
|
||||
|
Reference in New Issue
Block a user