Esempio n. 1
0
    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
Esempio n. 2
0
    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])
Esempio n. 3
0
    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)