示例#1
0
 def getSessionsInWishlist(self, request):
     """query for all the sessions in a conference
     that the user is interested in"""
     profile = profileUtils.getProfileForLoggedInUser()
     sessionKeys = [ndb.Key(urlsafe=sessionKey) for sessionKey in profile.interestedInSessions]
     sessions = ndb.get_multi(sessionKeys)
     return SessionForms(
         items = [sessionUtils.copySessionToForm(session) for session in sessions]
     )
示例#2
0
    def queryShortSessions(self, request):
        """Get sessions with a given type"""
        query = Session.query()

        duration = request.duration
        query = query.filter(Session.duration <= duration)

        return SessionForms(
            items = [sessionUtils.copySessionToForm(session) for session in query]
        )
示例#3
0
    def getSessionsFiltered(self, request):
        """Get sessions with a given type"""
        query = Session.query()

        speaker = request.speaker
        if speaker != None:
            query = query.filter(Session.speaker == speaker)

        return SessionForms(
            items = [sessionUtils.copySessionToForm(session) for session in query]
        )
示例#4
0
    def taskThreeQuery(self, request):
        """Get sessions that aren't workshops and happen before 7pm"""
        query = Session.query()

        query = query.filter(Session.typeOfSession != "Workshop")

        validTime = time(hour=19, minute=00)
        sessions = [session for session in query if session.time < validTime]

        return SessionForms(
            items = [sessionUtils.copySessionToForm(session) for session in sessions]
        )
示例#5
0
    def getConferenceSessions(self, request):
        """Get sessions for a given conference"""
        # create ancestor query for all key matches for this conference
        conference_key = ndb.Key(urlsafe=request.websafeConferenceKey)
        query = Session.query(ancestor=conference_key)

        typeOfSession = request.typeOfSession
        if typeOfSession != None:
            query = query.filter(Session.typeOfSession == typeOfSession)

        return SessionForms(
            items = [sessionUtils.copySessionToForm(session) for session in query]
        )
示例#6
0
    def createConferenceSession(self, request):
        """Create a new session for the given Conference"""
        user = endpoints.get_current_user()
        if not user:
            raise endpoints.UnauthorizedException('Authorization required')
        user_id = getUserId(user)

        #only open to the creator of the conference
        conference = ndb.Key(urlsafe=request.websafeConferenceKey).get()
        if conference.organizerUserId != user_id:
            raise endpoints.UnauthorizedException('Authorization required')

        parser = SessionParser()
        session = parser.parseSession(request)
        session.put()

        taskqueue.add(params={'speakerName': session.speaker,
            'sessionName': session.name,
            'websafeConferenceKey': request.websafeConferenceKey},
            url='/tasks/make_featured_speaker'
        )

        return sessionUtils.copySessionToForm(session)