toggle option shows current status
	
		
			
	
		
	
	
		
	
		
			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:
		| @@ -123,10 +123,17 @@ class ListHandler(BaseHandler): | |||||||
|         await query.answer() |         await query.answer() | ||||||
|  |  | ||||||
|         list_object = context.user_data["current_list"] |         list_object = context.user_data["current_list"] | ||||||
|         keyboard = [[InlineKeyboardButton(v, callback_data=k)] for k,v in list_object.content.items()] |         readable_it = printable_list(list_object) | ||||||
|         reply_markup = InlineKeyboardMarkup(keyboard) |  | ||||||
|         |         | ||||||
|         await query.edit_message_text("Which item would you like to toggle?", reply_markup = reply_markup) |         if readable_it: | ||||||
|  |             msg_content = "Which item would you like to toggle?" | ||||||
|  |             keyboard = [[InlineKeyboardButton(v, callback_data=k)] for k,v in zip(list_object.content.keys(), readable_it)] | ||||||
|  |             reply_markup = InlineKeyboardMarkup(keyboard) | ||||||
|  |         else: | ||||||
|  |             msg_content = "List empty" | ||||||
|  |             reply_markup = None | ||||||
|  |  | ||||||
|  |         await query.edit_message_text(msg_content, reply_markup = reply_markup) | ||||||
|         return ITEMTOGGLE |         return ITEMTOGGLE | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -168,20 +175,10 @@ class ListHandler(BaseHandler): | |||||||
|         await query.answer() |         await query.answer() | ||||||
|         list_object = context.user_data["current_list"] |         list_object = context.user_data["current_list"] | ||||||
|  |  | ||||||
|         content_it = list_object.content.values() |         readable_it = printable_list(list_object) | ||||||
|         # 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: |         if readable_it: | ||||||
|             msg_content = "\n".join([f"{d} {c}" for d, c in zip(done_it, content_it)]) |             msg_content = "\n".join(readable_it) | ||||||
|         else: |         else: | ||||||
|             msg_content = "List empty" |             msg_content = "List empty" | ||||||
|          |          | ||||||
| @@ -238,3 +235,22 @@ class ListHandler(BaseHandler): | |||||||
|  |  | ||||||
|         await query.edit_message_text(f"Removed {name}", reply_markup=reply_markup) |         await query.edit_message_text(f"Removed {name}", reply_markup=reply_markup) | ||||||
|         return ACTION |         return ACTION | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def printable_list(list_object: ListModel): | ||||||
|  |     content_it = list_object.content.values() | ||||||
|  |     done_bool_it = 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 done_bool_it]): | ||||||
|  |         done_it = [ | ||||||
|  |         "✅" if e else "❌" \ | ||||||
|  |         for e in list_object.done_dict.values() | ||||||
|  |         ] | ||||||
|  |     else: | ||||||
|  |         done_it = ["-" for e in done_bool_it] | ||||||
|  |      | ||||||
|  |     readable_it = [f"{d} {c}" for d, c in zip(done_it, content_it)] | ||||||
|  |     return readable_it | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user