예제 #1
0
    def duplicate(self, message, chat, apiBot):
        """ Function description.
            :type message: string
            :type chat: int
        """
        if message.isdigit():
            task_id = int(message)
            try:
                task = self.find_task(task_id, chat)
            except sqlalchemy.orm.exc.NoResultFound:
                self.id_error_message(message, chat, apiBot)
                return

            duplicated_task = Task(chat=task.chat,
                                   name=task.name,
                                   status=task.status,
                                   dependencies=task.dependencies,
                                   parents=task.parents,
                                   priority=task.priority,
                                   duedate=task.duedate)
            db.session.add(duplicated_task)

            for dependent_task_id in task.dependencies.split(',')[:-1]:
                dependent_task = self.find_task(dependent_task_id, chat)
                dependent_task.parents += '{},'.format(duplicated_task.id)

            issue = repository.create_issue(duplicated_task.name)
            duplicated_task.issue_number = issue.number
            db.session.commit()
            apiBot.send_message(
                "New task *TODO* [[{}]] {}".format(duplicated_task.id,
                                                   duplicated_task.name), chat)
        else:
            self.id_error_message(message, chat, apiBot)
예제 #2
0
 def new(self, message, chat, apiBot):
     """ Function description.
         :type message: string
         :type chat: int
     """
     task = Task(chat=chat,
                 name=message,
                 status='TODO',
                 dependencies='',
                 parents='',
                 priority='low',
                 duedate=datetime.date(2100, 12, 12))
     issue = repository.create_issue(message)
     task.issue_number = issue.number
     db.session.add(task)
     db.session.commit()
     apiBot.send_message(
         "New task *TODO* [[{}]] {}".format(task.id, task.name), chat)