Esempio n. 1
0
def delete_task(task_id):
    db_session.query(Task).filter_by(id=task_id).delete()
    db_session.query(Task_create_date).filter_by(task_id=task_id).delete()
    db_session.query(Task_end).filter_by(task_id=task_id).delete()
    db_session.query(Task_remind).filter_by(task_id=task_id).delete()
    db_session.query(Task_userid).filter_by(task_id=task_id).delete()
    db_session.query(Category).filter_by(task_id=task_id).delete()
    db_session.commit()
Esempio n. 2
0
def change_category(user_id, task_id, cat):
    all_cat = find_all(Category)
    category = [
        t for t in all_cat if user_id == t.user_id and task_id == t.task_id
    ]
    category[0].category = cat
    entity_by_id = db_session.query(Category).filter_by(
        task_id=task_id, user_id=user_id).update({'category': cat})
    db_session.commit()
Esempio n. 3
0
def update_duration(category, dur):
    entity_by_id = db_session.query(Project).filter_by(title=category)
    if entity_by_id[0].duration:
        dur = dur + entity_by_id[0].duration
    if entity_by_id[0].tasks:
        amount = entity_by_id[0].tasks
    else:
        amount = 0
    db_session.query(Project).filter_by(title=category).update({'duration': dur})
    db_session.query(Project).filter_by(title=category).update({'tasks': amount + 1})
    db_session.commit()
Esempio n. 4
0
def create_remind(task_id, user_id, date):
    user = user_id
    all = find_all(Task_remind)
    all = list(
        filter(lambda t: t.task_id == task_id and t.user_id == user_id, all))
    if len(all) == 0:

        date = Task_remind(user_id=user, task_id=task_id, date=date)
        saved_date = save(date)
        return saved_date
    else:
        entity_by_id = db_session.query(Task_remind).filter_by(
            user_id=user, task_id=task_id).update({'next_remind_date': date})
        db_session.commit()
Esempio n. 5
0
def create_remind(task_id, user_id, date):
    user = user_id
    all = find_all(Task_remind)
    if all.count() == 0:

        date = Task_remind(user_id=user, task_id=task_id, date=date)
        saved_date = save(date)

        # project_service.update_nearest_task_for_project(project.get_id())

        return saved_date
    else:
        entity_by_id = db_session.query(Task_remind).filter_by(
            user_id=user, task_id=task_id).update({'next_remind_date': date})
        db_session.commit()
Esempio n. 6
0
def select(message, vk):
    showtask(message, vk)
    vk.messages.send(user_id=message.user_id,
                     message=u'Введите id задания',
                     random_id=random.randint(1, MAXINT))
    text = vk.messages.getConversations()['items'][0]['last_message']['text']
    while (text == 'Введите id задания'):
        text = vk.messages.getConversations(
        )['items'][0]['last_message']['text']
        time.sleep(0.2)
    task = task_service.find_tasks_by_id(int(text))

    KEYBOARD_STEP_1 = kb.Keyboard.KEYBOARD_STEP_3
    keyboard = json.dumps(KEYBOARD_STEP_1, ensure_ascii=False).encode('utf-8')
    keyboard = str(keyboard.decode('utf-8'))
    vk.messages.send(user_id=message.user_id,
                     message=u"Задание выбрано",
                     random_id=random.randint(1, MAXINT),
                     keyboard=keyboard)
    text = vk.messages.getConversations()['items'][0]['last_message']['text']
    while (text == 'Задание выбрано'):
        text = vk.messages.getConversations(
        )['items'][0]['last_message']['text']
        time.sleep(0.2)
    if text == 'Выполнено':
        delta = datetime.datetime.now() - task_service.get_date(task[0].id)
        print(int(delta.total_seconds() / 60) - 180)
        project_service.update_duration(
            str(task_service.get_category(task[0].id, message.user_id)),
            int(delta.total_seconds() / 60) - 180)
        task_service.delete_task(task[0].id)
    if text == 'Посмотреть сведения':
        category, create_date, next_remind_date, end_date = task_service.get_info(
            task[0].id, message.user_id)
        res = f'Категория: {category}\n' \
            f'Дата создания: {create_date}\n' \
            f'Дата напоминания: {next_remind_date}\n' \
            f'Дата окончания: {end_date}\n'
        vk.messages.send(user_id=message.user_id,
                         message=res,
                         random_id=random.randint(1, MAXINT),
                         keyboard=keyboard)
    if text == 'Удалить':
        task_service.delete_task(task[0].id)
    if text == 'Изменить текст':
        while (text == 'Изменить текст'):
            text = vk.messages.getConversations(
            )['items'][0]['last_message']['text']
            time.sleep(0.2)
        task_service.update_text(task[0].id, text)
    if text == 'Добавить время окончания':
        while (text == 'Добавить время окончания'):
            text = vk.messages.getConversations(
            )['items'][0]['last_message']['text']
            time.sleep(0.2)
        time1 = parse_date_msg(text)
        entity_by_id = task_service.create_end(task[0].id, message.user_id,
                                               time1)
    if text == 'Изменить врeмя напоминания':
        while (text == 'Изменить врeмя напоминания'):
            text = vk.messages.getConversations(
            )['items'][0]['last_message']['text']
            time.sleep(0.2)
        # task_service.update_text(task[0].id, text)
        if timers.get(task[0].get_id()) is not None:
            timers[task[0].get_id()].cancel()
        notification_message = task[0].get_description()
        print(message.text.split(u' '))
        # time1 = message.text.split(u' ')[1]
        time1 = parse_date_msg(text)
        print(time1)
        reply_text = 'Notification not found'
        delta = time1 - datetime.datetime.now()
        entity_by_id = db_session.query(Task_remind).filter_by(
            task_id=task[0].id,
            user_id=message.user_id).update({'next_remind_date': time1})
        db_session.commit()
        print(delta.total_seconds())
        seconds_till_notify = delta.total_seconds()
        if not notification_message:
            vk.messages.send(user_id=message.user_id,
                             message=reply_text,
                             random_id=random.randint(1, MAXINT))
            return

        context = [vk, message.user_id, notification_message]
        print(context)
        try:
            vk.messages.send(user_id=message.user_id,
                             message='notification is added',
                             random_id=random.randint(1, MAXINT))

            seconds_as_int = int(
                seconds_till_notify)  # do not forget casting to float
            t = Timer(seconds_as_int, callback_notifier, context)
            timers['1'] = t
            t.start()
        except Exception as e:
            reply_text = 'There were an error: ' + str(e)

        else:
            reply_text = 'Notification has been set up'

        vk.messages.send(user_id=message.user_id,
                         message=reply_text,
                         random_id=random.randint(1, MAXINT))
    if text == 'Изменить кaтегорию':
        KEYBOARD_STEP_1 = kb.Keyboard.KEYBOARD_STEP_2

        keyboard = json.dumps(KEYBOARD_STEP_1,
                              ensure_ascii=False).encode('utf-8')
        keyboard = str(keyboard.decode('utf-8'))
        vk.messages.send(user_id=message.user_id,
                         message=u"Выберите кaтегорию",
                         random_id=random.randint(1, MAXINT),
                         keyboard=keyboard)
        text = vk.messages.getConversations(
        )['items'][0]['last_message']['text']
        while (text == 'Выберите кaтегорию'):
            text = vk.messages.getConversations(
            )['items'][0]['last_message']['text']
            time.sleep(0.2)
        task_service.set_category(task[0].id, message.user_id, text)
        task_service.add_category(text, message.user_id)
    KEYBOARD_STEP_1 = kb.Keyboard.KEYBOARD_STEP_1
    keyboard = json.dumps(KEYBOARD_STEP_1, ensure_ascii=False).encode('utf-8')
    keyboard = str(keyboard.decode('utf-8'))
    vk.messages.send(user_id=message.user_id,
                     message=u"Выберите действие",
                     random_id=random.randint(1, MAXINT),
                     keyboard=keyboard)
Esempio n. 7
0
def save(entity):
    """ insert entity into db """
    db_session.add(entity)
    db_session.commit()
    return entity
Esempio n. 8
0
def set_category(task_id, user, category):
    entity_by_id = db_session.query(Category).filter_by(
        id=task_id, user_id=user).update({'category': category})
    db_session.commit()
Esempio n. 9
0
def update_text(task_id, text):
    entity_by_id = db_session.query(Task).filter_by(id=task_id).update(
        {'description': text})
    db_session.commit()