def post_review(request): post_obj = json.loads(request.body) title, description, safety, rating, building_id = None, None, None, None, None user = request.user if 'title' in post_obj: title = post_obj['title'] if 'description' in post_obj: description = post_obj['description'] if 'safety' in post_obj: safety = post_obj['safety'] if 'rating' in post_obj: rating = post_obj['rating'] if 'building_id' in post_obj: building_id = post_obj['building_id'] errors = check_post_review_errors(title, description, safety, rating, building_id, user) if len(errors) > 0: return utils.makeGenericErrorResponse(errors) building = models.Building.objects.get(id=building_id) num_reviews = models.Review.objects.filter(building=building_id).count() review = models.Review(title=title, description=description, safety=safety, rating=rating, user=user, building=building) review.save() building.average_rating = (building.average_rating * num_reviews + review.rating) / float(num_reviews+1) building.save() review_dict = get_review_dict_from_obj(review) return utils.success_response({'status': 1, 'review': review_dict, 'new_rating': building.average_rating})
def get_review(request, http=True): obj = request.GET building_id = obj.get('building_id') if building_id == None: return utils.makeGenericErrorResponse(["Invalid Building ID"]) building = models.Building.objects.filter(id=building_id) reviews_obj = models.Review.objects.filter(building=building) return getValidReviewResponse(reviews_obj)