def show_tasks(message, db_collection): tasks = user_get_tasks(message, db_collection) tables = create_tables(tasks, ui.table_asset, ui.pic_task_status, ui.menu_list_items['important'], ui.menu_list_items['ordinary']) bot.send_message(message.from_user.id, tables[0], parse_mode='HTML') bot.send_message(message.from_user.id, tables[1], parse_mode='HTML')
def switch_task_status(call, db_collection, text): target_id = extract_id(text) target_list = find_list(call, db_collection, target_id) task_index = find_index_task(call, db_collection, target_id, target_list) if target_list and task_index is not False: user_task = user_get_tasks(call, db_collection)[target_list][task_index] if user_task.get('task_status'): user_task['task_status'] = False else: user_task['task_status'] = True update_status = user_update_task(call, COLLECTION, target_list, task_index, user_task) if update_status: new_screen_info = edited_task_card(user_task) bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=new_screen_info[0], reply_markup=new_screen_info[1], parse_mode='HTML') text = ui.dialogue['task_status_changed'].format( ui.different_signs['warning']) bot.send_message(chat_id=call.message.chat.id, text=text) else: text = ui.dialogue['task_status_not_changed'].format( ui.different_signs['exclamatory']) bot.send_message(chat_id=call.message.chat.id, text=text) else: text = ui.dialogue['wrong_task_status'].format( ui.different_signs['exclamatory']) bot.send_message(chat_id=call.message.chat.id, text=text)
def add_new_text(msg, need_list, need_index): new_text = msg.text user_task = user_get_tasks(msg, db_collection)[need_list][need_index] user_task['task'] = new_text update_status = user_update_task(msg, COLLECTION, need_list, need_index, user_task) if update_status: notify_text = ui.dialogue['text_changed'].format( ui.different_signs['warning']) bot.send_message(chat_id=call.message.chat.id, text=notify_text, reply_markup=MENU_BACK) new_screen_info = edited_task_card(user_task) bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=new_screen_info[0], reply_markup=new_screen_info[1], parse_mode='HTML') else: notify_text = ui.dialogue['text_not_changed'].format( ui.different_signs['exclamatory']) bot.send_message(chat_id=call.message.chat.id, text=notify_text, reply_markup=MENU_BACK)
def find_index_task(call, db_collection, task_id, task_list_name): tasks = user_get_tasks(call, db_collection) try: for index, value_dict in enumerate(tasks[task_list_name]): if value_dict.get('task_id') == task_id: return index except KeyError: return False
def find_list(call, db_collection, task_id): tasks = user_get_tasks(call, db_collection) for current_key, current_value in tasks.items(): if current_value is not None: for value in current_value: if value.get('task_id') == task_id: return current_key return False
def task_notification(message): def get_not_ready_tasks(): result = [] for index, current_task in enumerate(tasks_important): if not current_task.get('task_status'): result.append(tasks_important[index]) else: continue return result tasks_important = user_get_tasks(message, COLLECTION)['important'] if tasks_important is not None: task = get_not_ready_tasks() if task: random_task = choice(task) text_task = random_task.get('task') text = ui.dialogue['task_notification'].format( ui.different_signs['warning'], message.from_user.first_name, text_task) bot.send_message(message.from_user.id, text)
def edit_tasks(message, db_collection): tasks = user_get_tasks(message, db_collection) if tasks['important'] is None and tasks['ordinary'] is None: text = ui.dialogue['lists_empty'].format(ui.different_signs['warning']) bot.send_message(message.from_user.id, text, reply_markup=MENU_BACK) else: text = ui.dialogue['lists_ready_change'].format( ui.different_signs['warning']) bot.send_message(message.from_user.id, text, reply_markup=MENU_BACK) cards = [] def create_task_cards(asset, pic_status, txt_status, tasks_dict, list_name, item_list): blank = { 'head': asset['card_head'].format(list_item=item_list, separator=asset['separator']), 'cards_full_info': tasks_dict[list_name], 'screen_info': [] } if blank['cards_full_info'] is not None: for value in blank['cards_full_info']: if value.get('task_status'): txt, pic = txt_status['ready'], pic_status['ready'] else: txt, pic = txt_status['not_ready'], pic_status['not_ready'] blank['screen_info'].append(asset['card_desc'].format( task=value.get('task'), status=txt, pic_status=pic, task_id=value.get('task_id'))) cards.append(blank) else: blank['screen_info'].append(asset['card_empty']) cards.append(blank) def show_card(cards_tasks): show_card_text = cards_tasks['head'] bot.send_message(message.from_user.id, show_card_text, parse_mode='HTML') if cards_tasks['cards_full_info'] is not None: for index, current_dict in enumerate( cards_tasks['cards_full_info']): if current_dict.get('task_status'): show_card_text = cards_tasks['screen_info'][index] bot.send_message(message.from_user.id, show_card_text, reply_markup=BTN_CNL_BAR_NOT_READY, parse_mode='HTML') else: show_card_text = cards_tasks['screen_info'][index] bot.send_message(message.from_user.id, show_card_text, reply_markup=BTN_CNL_BAR_READY, parse_mode='HTML') else: show_card_text = cards_tasks['screen_info'] bot.send_message(message.from_user.id, show_card_text, parse_mode='HTML') create_task_cards( ui.card_asset, ui.pic_task_status, ui.txt_task_status, tasks, 'important', ui.menu_list_items['important'], ) create_task_cards( ui.card_asset, ui.pic_task_status, ui.txt_task_status, tasks, 'ordinary', ui.menu_list_items['ordinary'], ) show_card(cards[0]) show_card(cards[1])