def get_user_conference(user_id, wsck):
    conference = get_conference(wsck)
    conferences = Conference.query(ancestor=ndb.Key(Profile, user_id))
    if not conference in conferences:
        endpoints.UnauthorizedException("Not allowed!")

    return conference
def create_conference(user_id, data):
    p_key = ndb.Key(Profile, user_id)
    c_id = Conference.allocate_ids(size=1, parent=p_key)[0]
    c_key = ndb.Key(Conference, c_id, parent=p_key)
    data['key'] = c_key

    Conference(**data).put()
def get_conferences_with_filters(inequality_filter, filters):
    """Return formatted query from the submitted filters."""
    query = Conference.query()
    if inequality_filter:
        query = query.order(ndb.GenericProperty(inequality_filter))
    query = query.order(Conference.name)

    for filtr in filters:
        if filtr["field"] in ["month", "maxAttendees"]:
            filtr["value"] = int(filtr["value"])
        formatted_query = ndb.query.FilterNode(filtr["field"], filtr["operator"], filtr["value"])
        query = query.filter(formatted_query)

    return query
示例#4
0
def _cacheAnnouncement():
    """Create Announcement & assign to memcache; used by
    memcache cron job & putAnnouncement().
    """
    confs = Conference.query(ndb.AND(
        Conference.seatsAvailable <= 5,
        Conference.seatsAvailable > 0)
    ).fetch(projection=[Conference.name])

    if confs:
        # If there are almost sold out conferences,
        # format announcement and set it in memcache
        announcement = '%s %s' % (
            'Last chance to attend! The following conferences '
            'are nearly sold out:',
            ', '.join(conf.name for conf in confs))
        memcache.set(MEMCACHE_ANNOUNCEMENTS_KEY, announcement)
    else:
        # If there are no sold out conferences,
        # delete the memcache announcements entry
        announcement = ""
        memcache.delete(MEMCACHE_ANNOUNCEMENTS_KEY)

    return announcement
def get_user_conferences(user_id):
    confs = Conference.query(ancestor=ndb.Key(Profile, user_id))
    profile = ndb.Key(Profile, user_id).get()

    return confs, profile