def is_next_hidden(self, state, update: Update): if state['q'] == "": length = len(DB.get_user_projects(state['u_id'])) else: length = len( DB.get_user_project_by_query(state['u_id'], state['q'])) page_count = ceil(length / self.IN_PAGE) if page_count <= int(state['page']): return True return False
def get_project_buttons(self, state, update: Update): def get_keyboard_by_projects(projects): keyboard = list() i = 0 for project in projects: button = { "name": project['name'], #"action": "select_project", "callback": str(project['id']) } if i % 2 == 0: keyboard.append([button]) else: keyboard[i // 2].append(button) i += 1 return keyboard if state['q'] == "": all_user_projects = DB.get_user_projects(state['u_id']) projects = DB.get_last_projects(state['u_id']) for project in all_user_projects: temp = {'id': project['id'], 'name': project['name']} if temp not in projects: projects.append(temp) else: projects = DB.get_user_project_by_query(update.effective_user.id, state['q']) i = self.IN_PAGE * (int(state['page']) - 1) return get_keyboard_by_projects(projects[i:i + 4])
def start(self, update: Update, context: CallbackContext): temp = update.message.text.split(" ") if len(temp) > 1 and not temp[1].isdigit(): projects = DB.get_user_project_by_query(update.effective_user.id, temp[1]) if len(projects) == 1: project = projects[0] activity_name = DB.get_activity_by_id( project['activity_id'])['name'] self.start_activity.start_activity(update.effective_user.id, activity_name, update, edit=False, project=project) return self.send(update, context) DB.update_user_and_chat(update.message.from_user, update.effective_chat)