def get_member_emails(project_key): project = Project.get(project_key) participants = project.indexes("participants_bin", []) owners = project.indexes("owners_bin", []) unregistered = project.indexes("unregistered_bin", []) participants_email = [] owners_email = [] unregistered_emails = [] for owner_key in owners: try: owners_email.append(list(User.get(owner_key).index("email_bin", []))[0]) except NotFoundError: raise Exception("User '%s' does not exist!" % owner_key) for participants_key in participants: try: participants_email.append(list(User.get(participants_key).index("email_bin", []))[0]) except NotFoundError: raise Exception("User '%s' does not exist!" % participants_key) for u in unregistered: temp = u.split(" ") unregistered_emails.append([temp[0], temp[1][:-1]]) return {"participants_email" : participants_email, "owners_email" : owners_email, "unregistered_emails" : unregistered_emails}
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_members_list(project_key): project = Project.get(project_key) members = list(project.index("owners_bin", [])) + list(project.index("participants_bin", [])) members_list = [] for member in members: u = User.get(member) members_list.append({"key" : u.key, "name" : u.name if u.name else list(u.index("email_bin"))[0]}) return members_list
def get_user_simple(key): user = User.get(key) user_json = { "key" : key, "name" : user.name, "positions" : user.positions, "emails" : list(user.indexes("email_bin")) } return user_json
def get_user_profile(key): user = User.get(key) user_json = { "key" : user.key, "name": user.name, "positions": user.positions, "projects": get_user_projects_with_simple(user), "emails" : list(user.indexes("email_bin")) } return user_json
def change_name(key, name): user = User.get(key) user.name = name user.save()