Beispiel #1
0
def add_category(category, user_id):
    all_category = find_all(Project)
    all = list(
        filter(lambda t: t.title == category and t.user_id == user_id,
               all_category))
    if len(all) == 0:
        project = Project(title=category, user_id=user_id)
        save(project)
Beispiel #2
0
def create_end(task_id, user_id):
    user = user_id
    if user:
        date = Task_end(user_id=user, task_id=task_id)
        saved_date = save(date)

        # project_service.update_nearest_task_for_project(project.get_id())

        return saved_date
Beispiel #3
0
def create_user_id(task_id, user_id):
    user = user_id
    if user:
        id = Task_userid(user_id=user, task_id=task_id)
        saved_id = save(id)

        # project_service.update_nearest_task_for_project(project.get_id())

        return saved_id
Beispiel #4
0
def create_category(task_id, user_id):
    user = user_id
    if user:
        new_category = Category(user_id=user, task_id=task_id)
        saved_category = save(new_category)

        # project_service.update_nearest_task_for_project(project.get_id())

        return saved_category

    else:
        raise ValueError('Project/User could not be created')
Beispiel #5
0
def create_task(user_id, text):
    user = user_id
    msg_text = text
    project = 1
    if project and user:
        new_task = Task(description=msg_text, user_id=user, project_id=1)
        saved_task = save(new_task)

        # project_service.update_nearest_task_for_project(project.get_id())

        return saved_task

    else:
        raise ValueError('Project/User could not be created')
Beispiel #6
0
def create_or_get_project(message, user_id):
    # TODO somehow find out message's category
    title = message_parser.parse_message_for_project(message)

    projects_of_user = find_all_by_user_id(user_id)
    # check if theres already a project with same title(category)
    for p in projects_of_user:
        if title == p.get_title():
            return p

    # there is no project with this title -> create new
    new_proj = flush(Project(title, user_id))
    saved_proj = save(new_proj)
    return saved_proj
Beispiel #7
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()
Beispiel #8
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()
Beispiel #9
0
def create_or_get_user(chat):
    chat_id = int(chat.id)
    # check if user already exists
    user_by_id = find_one_by_id(chat_id, User)
    if user_by_id:
        return user_by_id

    else:
        # create new one
        username = chat.username
        first_name = chat.first_name
        user = flush(
            User(username=username, chat_id=chat_id, first_name=first_name))
        saved_user = save(user)
        return saved_user
Beispiel #10
0
def update_nearest_task_for_project(project_id_value):
    project_id = int(project_id_value)
    project = find_one_by_id(project_id, Project)

    if project:
        all_tasks = find_all(Task)
        tasks_by_project_id = [t for t in all_tasks
                               if t.get_project_id() == project_id and t.get_next_remind_date() is not None]
        sorted_by_next_remind_date = sorted(tasks_by_project_id, key=lambda t: t.get_next_remind_date())

        if 0 != len(sorted_by_next_remind_date):
            nearest_task = sorted_by_next_remind_date[0]
            project.set_next_task_id(nearest_task)

            saved_proj = save(project)
            return saved_proj

        else:
            return project
Beispiel #11
0
def create_task(update):
    # create or get user
    chat = update.message.chat
    user = user_service.create_or_get_user(chat)

    # create or get project
    msg_text = update.message.text
    project = project_service.create_or_get_project(msg_text, user.get_id())

    if project and user:
        new_task = Task(description=msg_text,
                        user_id=user.get_id(),
                        project_id=project.get_id())
        saved_task = save(new_task)

        project_service.update_nearest_task_for_project(project.get_id())

        return saved_task

    else:
        raise ValueError('Project/User could not be created')