Ejemplo n.º 1
0
    def get(self):
        city = self.request.get('city')
        street = self.request.get('street')
        streetNum = self.request.get('streetNum')
        dateDD = self.request.get('dateDD')
        dateMM = self.request.get('dateMM')
        dateYYYY = self.request.get('dateYYYY')
        dateDDto = self.request.get('dateDDto')
        dateMMto = self.request.get('dateMMto')
        dateYYYYto = self.request.get('dateYYYYto')
        time = self.request.get('time')
        basis = self.request.get('basis')
        sun = self.request.get('sun')
        mon = self.request.get('mon')
        tues = self.request.get('tues')
        wednes = self.request.get('wednes')
        thurs = self.request.get('thurs')
        fri = self.request.get('fri')
        satur = self.request.get('satur')
		
        q = Ride.query() # Retrieve all Account entitites for manipolation

        #--- check if the fields was assind, fillters by them. ---#
		
		#if user:
         #   self.error(402)
          #  self.response.write('hhhh')
           # return
		
        #--- parse strings to ints ---#
		
     
        if city != 'Search by City':
            if city == 'My City':
                user1 = None
                if self.request.cookies.get('our_token'):    #the cookie that should contain the access token!
                    user1 = User.checkToken(self.request.cookies.get('our_token'))
                    q = q.filter(Ride.city == user1.homeCity)
                else:
                    self.redirect('/')
            else:
                q = q.filter(Ride.city == city)
					
        if street != "":
            q = q.filter(Ride.street == street)
		

        if streetNum != "":
            q = q.filter(Ride.streetNum == streetNum)
			
	   
	   
       
			
        if basis == 'byDate':
            if dateDD or dateMM or dateYYYY or dateDDto or dateMMto or dateYYYYto:

                if dateDD != 'DD':
                    dateDD = int(dateDD)
#                q = q.filter(ndb.OR(Ride.dateDD >= dateDD, Ride.dateDD == None))
                else:
                    dateDD = 1
     
                if dateMM != 'MM':
                    dateMM = int(dateMM)
#                q = q.filter(ndb.OR(Ride.dateMM >= dateMM, Ride.dateMM == None))
                else:
                    dateMM = 1

                if dateMMto != 'MM':
                    dateMMto = int(dateMMto)
#                q = q.filter(ndb.OR(Ride.dateMM < dateMMto, Ride.dateMM == None))
                else:
                    dateMMto = 12
            
                if dateYYYY != 'YY':
                    dateYYYY = int(dateYYYY)
#                q = q.filter(ndb.OR(Ride.dateYYYY >= dateYYYY, Ride.dateYYYY == None))
                else:
                    dateYYYY = 2014
			
			
                if dateYYYYto != 'YY':
                    dateYYYYto = int(dateYYYYto)
#                q = q.filter(ndb.OR(Ride.dateYYYY < dateYYYYto, Ride.dateYYYY == None))
                else:
                    dateYYYYto = 2030

                if dateDDto != 'DD':
                    dateDDto = int(dateDDto)
#                q = q.filter(ndb.OR(Ride.dateDD < dateDDto, Ride.dateDD == None))
                else:
                    dateDDto = int(Ride.maxDays(dateMMto, dateYYYYto))

            q = q.filter(ndb.OR(Ride.date >= datetime.date(dateYYYY, dateMM, dateDD), Ride.dateYYYY == None, Ride.dateMM == None, Ride.dateDD == None))
            q = q.filter(ndb.OR(Ride.date <= datetime.date(dateYYYYto, dateMMto, dateDDto), Ride.dateYYYY == None, Ride.dateMM == None, Ride.dateDD == None))

        if basis == 'byWeekDays':
            weekDays = []
            if sun == 'true':
                weekDays.append('sun')

            if mon == 'true':
                weekDays.append('mon')

            if tues == 'true':
                weekDays.append('tues')

            if wednes == 'true':
                weekDays.append('wednes')

            if thurs == 'true':
                weekDays.append('thurs')

            if fri == 'true':
                weekDays.append('fri')

            if satur == 'true':
                weekDays.append('satur')

            if sun == 'true' or mon == 'true' or tues == 'true' or wednes == 'true' or thurs == 'true' or fri == 'true' or satur == 'true':
                q = q.filter(Ride.weeklyDays.IN(weekDays))

        if q == None:
            self.response.write(json.dumps(""))
            return

        user = None
        dateDay = ""
        output = []
        for ride in q:
            user = User.query(User.rideKeys == ride.key)
            user = user.get()
            if ride.dateDD and ride.dateMM and ride.dateYYYY:
                dateDay = str(ride.dateDD) + "/" + str(ride.dateMM) + "/" + str(ride.dateYYYY) + ", "# + ride.weeklyDays[0] + "day"
            if len(ride.weeklyDays) > 0:
                for day in ride.weeklyDays:
                    if day == ride.weeklyDays[len(ride.weeklyDays) -1]:
                        dateDay += day + "day"
                        continue
                    dateDay += day + "day, "
            #output.append([user.firstName + " " + user.lastName, user.phone, ride.city, ride.street + " " + ride.streetNum, str(ride.dateDD) + "/" + str(ride.dateMM) + "/" + str(ride.dateYYYY), ride.time])
            output.append([user.firstName + " " + user.lastName, user.phone, ride.city , ride.street + " " +  ride.streetNum , str(dateDay), ride.time])
            dateDay = ""
        
        self.response.write(json.dumps(output))
Ejemplo n.º 2
0
    def post(self):
        self.redirect('/')
        city = self.request.get('city')
        street = self.request.get('street')
        streetNum = self.request.get('streetNum')
        dateDD = self.request.get('dateDD')
        dateMM = self.request.get('dateMM')
        dateYYYY = self.request.get('dateYYYY')
        dateDDto = self.request.get('dateDDto')
        dateMMto = self.request.get('dateMMto')
        dateYYYYto = self.request.get('dateYYYYto')
        time = self.request.get('time')
		
        
			
        if dateDD == "DD":
            dateDD = None

        if dateMM == "MM":
            dateMM = None

        if dateDDto == "DD":
            dateDD = None

        if dateMMto == "MM":
            dateMMto = None

        if not dateDD and dateMM and dateYYYY:
            self.error(403)
            self.response.write('Wrong date submitted')
            return

        if dateYYYY < "2015":
            self.error(403)
            self.response.write('Wrong year submitted. It must be ')
            return

        qry = Ride.query() # Retrieve all Account entitites for manipolation

        #--- check if the fields was assind, fillters by them. ---#

        if city:
            qry = qry.filter(Ride.city == city)

        if street:
            qry = qry.filter(Ride.street == street)

        if streetNum:
            qry = qry.filter(Ride.streetNum == streetNum)

        if dateDD and dateMM and dateYYYY:
            qry = qry.filter(Ride.dateDD >= dateDD and Ride.dateMM >= dateMM and Ride.dateYYYY >= dateYYYY)

        if dateDDto and dateMMto and dateYYYYto:
            qry = qry.filter(Ride.dateDD < dateDDto and Ride.dateMM < dateMMto and Ride.dateYYYY < dateYYYYto)

        user = None
        output = ""
        for ride in qry:
            user = User.qury(User.email == ride.email)
            output += "<tr><td>" + user.firstName + " " + user.lastName + "</td>"
            output += "<td>" + user.phone + "</td>"
            output += "<td>" + ride.city + "</td>"
            output += "<td>" + ride.street + " " + ride.streetNum + "</td>"
            output += "<td>" + ride.dateDD + "/" + ride.dateMM + "/" + ride.dateYYYY + "</td>"
            output += "<td>" + ride.time + "</td></tr>"

        self.response.write(json.dumps({'status':'OK'}))