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)
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
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
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')
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')
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
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()
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()
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
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
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')