def generate_request(sender, institution, requested_institution, admin=None): """create and save a request.""" admin_key = admin.key.urlsafe() if admin else sender.key.urlsafe() data = { 'sender_key': sender.key.urlsafe(), 'is_request': True, 'admin_key': admin_key, 'institution_key': institution.key.urlsafe(), 'institution_requested_key': requested_institution.key.urlsafe(), 'type_of_invite': 'REQUEST_INSTITUTION_PARENT' } request = RequestInstitutionParent.create(data) request.put() return request
def generate_child_to_parent(parent, child_admin=None): """Create a child for the parent.""" admin = create_user() if child_admin is None else child_admin child = create_institution() child.add_member(admin) child.set_admin(admin.key) admin.add_permissions(DEFAULT_ADMIN_PERMISSIONS, child.key.urlsafe()) data = { 'sender_key': admin.key.urlsafe(), 'institution_requested_key': parent.key.urlsafe(), 'admin_key': admin.key.urlsafe(), 'institution_key': child.key.urlsafe() } parent_invite = RequestInstitutionParent.create(data) # link child_a to institution Institution.create_parent_connection(parent, parent_invite) # update child child = child.key.get() return child