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))
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'}))