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