Esempio n. 1
0
def create_presence(role_id, place_id):
    ''' create a Presence for a Role in a Place '''
    profile = _get_my_profile()
    if is_present(role_id, place_id):
        raise ActionException('Role is already present')
    role = _get_role(role_id)
    place = _get_place(place_id)
    pkey = db.Key(Profile, profile.key.id(), Place, place.key.id(), Presence, role.name)
    presence = pkey.get()
    if presence is None:
        presence = Presence(id=role.name, parent=place.key)
        presence.role = role.key
    presence.put()
    return presence.key.urlsafe()
Esempio n. 2
0
def delete_role(role_id):
    ''' delete a Role as long as it is not Present in a Place ''' 
    if len(Presence.query(Presence.role == db.Key(urlsafe=role_id)).fetch()) > 0:
        raise ActionException('Role still has presence')
    db.Key(urlsafe=role_id).delete()
Esempio n. 3
0
def _get_presences(place_id):
    place = db.Key(urlsafe=place_id)
    return [presence for presence in Presence.query(ancestor=place).fetch()]