Example #1
0
def get_user_projects_with_simple(user):
  project_query = Project.indexLookup("owners_bin", user.key)
  projects = project_query.all()
  project_query = Project.indexLookup("participants_bin", user.key)
  projects.extend(project_query.all())

  for i in xrange(len(projects)):
    projects[i] = {"key" : projects[i].key, "name" : projects[i].name}
  return projects
Example #2
0
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}
Example #3
0
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
Example #4
0
def get_project_json(key):
  project = Project.get(key)
  project_json = {
    "key": project.key,
    "name": project.name,
    "desc": project.desc,
    "owners": list(project.index("owners_bin", [])),
    "participants": list(project.index("participants_bin", [])),
  }
  return project_json
Example #5
0
def set_owners(project_key, emails):
  project = Project.get(project_key)
  project.removeIndex("owners_bin")
  for email in emails:
    user_queries = User.indexLookup("email_bin", email)
    if len(user_queries) == 0:
      add_unregistered_to_project(project, email, "owners")
    else:
      project.addIndex("owners_bin", user_queries.all()[0].key)

  project.save()
  return True
Example #6
0
def set_participants(project_key, emails):
  project = Project.get(project_key)
  project.removeIndex("participants_bin", silent=True)
  if len(emails) == 1 and emails[0] == "":
    project.save()
    return True

  for email in emails:
    user_queries = User.indexLookup("email_bin", email)
    if len(user_queries) == 0:
      add_unregistered_to_project(project, email, "participants")
    else:
      project.addIndex("participants_bin", user_queries.all()[0].key)

  project.save()
  return True
Example #7
0
def _add_to_projects(email, u, t):
  projects_query = Project.indexLookup("unregistered_bin", email + " " + t)
  for project in projects_query.run():
    project.addIndex(t + "_bin", u.key)
    project.removeIndex("unregistered_bin", email + " " + t)
    project.save()
Example #8
0
def new_project(name, userkey):
  project = Project(name=name)
  project.addIndex("owners_bin", userkey)
  project.save()
  return project
Example #9
0
def get_project_json_simple(key):
  project = Project.get(key)
  return {"key" : project.key, "name" : project.name}