def post(self): rating = int(cgi.escape(self.request.get("rating_select"))) review = str(cgi.escape(self.request.get("reviewtext"))) courseId = int(cgi.escape(self.request.get("courseId"))) fb = Facebook(FB_API_KEY, FB_APP_SECRET) if fb.check_session(self.request): courseQuery = db.Query(Course) courseQuery.filter('courseId =', courseId) cr = CourseReview(courseID=courseId, reviewText=review, overallRating=rating, fbUID=long(fb.uid)) cr.put() self.redirect('/coursepage/?id=' + str(courseId))
def get(self): courseId = int(cgi.escape(self.request.get('id'))) query = db.Query(Course) query.filter('courseId =', courseId) results = query.fetch(1) if len(results) < 1: template_values = {'courseId' : courseId} path = os.path.join(os.path.dirname(__file__), 'templates/coursenotfound.html') self.response.out.write(template.render(path, template_values)) else: # There should just be one course course = results[0] reviewquery = CourseReview.all().filter('courseID =', int(courseId)) #reviewquery.order('-ratingTimestamp') reviews = reviewquery.fetch(25) courseRating = 0 for review in reviews: courseRating += float(review.overallRating) / len(reviews) review.reviewText = review.reviewText.replace('\n', '<br />') templatevals = {'courseRating': courseRating, 'courseName': course.courseName, 'lat': course.latitude, 'lon': course.longitude, 'numholes': course.numberHoles, 'id': course.courseId, 'description': course.description, 'city': course.city, 'state': course.state, 'zip' : course.zip, 'teeType': course.teeType, 'basketType': course.basketType, 'holesLT300': course.holesLT300, 'holesBW300400': course.holesBW300400, 'holesGT400': course.holesGT400, 'reviews' : reviews , 'gmaps_api_key': GMAPS_API_KEY, 'facebook': self.get_facebook() } path = os.path.join(os.path.dirname(__file__), 'templates/coursepage.html') self.response.out.write(template.render(path, templatevals))