def get_personalized_data(key): user = User.get(key) todo_query = TodoItem.indexLookup("assigned_to_bin", key) todos = [] now = datetime.now() for todo in todo_query.run(): print todo.done if not todo.done: t = {"title" : todo.title, "desc" : todo.desc["html"]} if todo.duedate: t["time_remaining"] = (todo.duedate - now).total_seconds() else: t["time_remaining"] = None todos.append(t) todos.sort(key=lambda x: x["time_remaining"]) user_json = { "projects" : get_user_projects_with_simple(user), "todos" : todos, "name" : user.name } return user_json
def get_todo_item_with_2i(field, value, simple=False): items_queries = TodoItem.indexLookup(field, value) items = [] # could probably simplify with an integer counter on where each sections are and insert. done_items = [] no_duedate = [] list_to_append_to = items for item in items_queries.run(): if item.done: list_to_append_to = done_items elif not item.duedate: list_to_append_to = no_duedate else: list_to_append_to = items if simple: list_to_append_to.append(todo_to_json_simple(item)) else: list_to_append_to.append(todo_to_json(item)) items.sort(key=lambda x: x["duedate"]) done_items.sort(key=lambda x:["duedate"]) items = items + no_duedate + done_items items.reverse() return items