def post(self, confid): user = users.get_current_user() if not user: login_url = users.create_login_url(self.request.url) self.redirect(login_url) return # get the conference if confid.startswith('new:'): confid = confid[4:] conference = Conference.get_by_id(confid) # check if the user is an admin if user.email() not in conference.reviewers: self.response.out.write("You are not authorized") return # get proposal id & proposal proposal_id = long(self.request.get('proposal_id')) proposal = Proposal.get_by_id(id=proposal_id, parent=conference.key) if not proposal: self.response.out.write("No proposal found for this id (" + str(proposal_id) + ")") return # get existing review by this user review = Review.get_by_id(id=user.email(), parent=proposal.key) if not review: review = Review(id=user.email(), parent=proposal.key) # store value for the review review.comment = self.request.get('comment') if self.request.get('rating'): review.rating = int(self.request.get('rating')) # store in Data Store review.put() # redirect to get self.redirect(self.request.url)
def post(self, serialised_key): if users.is_current_user_admin(): #Either fetch review or create one review = None if serialised_key: review = db.get(db.Key(encoded=serialised_key)) if not review: review = Review() #Add/update contents review.title = self.request.get('title') review.content = self.request.get('content') category = self.request.get('category') if category in Review.categories: review.category = category else: review.category = Review.categories[-1] #i.e Other rating = self.request.get('rating') if rating in Review.ratings: review.rating = rating else: review.rating = Review.ratings[-1] #i.e. N/A review.editDate = dt.datetime.now() review.put() self.redirect("/") else: self.redirect("/")
def edit_hotel_review(hotel_id): if request.method == 'POST': hotel = Hotel.get_by_id(hotel_id) data = request.json review = Review(**data) review.hotel = hotel review.put() return hotel_reviews(hotel_id)
def post(self): # We set the same parent key on the 'review' to ensure each review is in # the same entity group. Queries across the single entity group will be # consistent. However, the write rate to a single entity group should # be limited to ~1/second. food_name = self.request.get('stall_name') review = Review(parent=stall_key(stall_name), content = self.request.get('content')) if users.get_current_user(): author = users.get_current_user().nickname() review.put() self.redirect('/?' + urllib.urlencode({'stall_name': stall_name}))
def post(self, url_name): company = Company.all().filter('urlname = ', url_name).fetch(1) company = company[0] review = Review() review.company = company review.text = self.request.get('content') rating = Rating() rating.overall = self.GetIntOrDefault('overall') rating.benefits = self.GetIntOrDefault('benefits') rating.salary = self.GetIntOrDefault('salary') rating.environment = self.GetIntOrDefault('environment') rating.peers = self.GetIntOrDefault('peers') rating.location = self.GetIntOrDefault('location') rating.growth = self.GetIntOrDefault('growth') rating.put() review.rating = rating review.put() self.redirect('/companies/view/' + company.urlname)
def postReview(self, request): """Post a review for a session""" self._checkLoggedIn() if not request.conference_name: raise endpoints.BadRequestException( "Conference session 'conference_name' field required") if not request.session_name: raise endpoints.BadRequestException( "Conference session 'name' field required") if not request.review: raise endpoints.BadRequestException( "Conference session 'review' review required") # Check to make sure conference exists and get for parent key parent = self._getSessionByName(session_name=request.session_name) # Get Parent key parent_key = parent.key # Check to make sure speaker has a profile: using displayName if request.speaker_name: self._checkSpeakerProfile(displayName=request.speaker_name) # copy ConferenceForm/ProtoRPC Message into dict data = {field.name: getattr(request, field.name) for field in request.all_fields()} # convert review to string for database put data = self._convertReview(data) # Set session as child of user supplied conference # Associate data and put session object review = Review(parent=parent_key, **data) review.put() msg = "Thank you for your feedback" return StringMessage(data=msg)
from models import Company from models import Rating from models import Review # Create some companies company1 = Company(name='Google',urlname='google') company2 = Company(name='Jobber',urlname='jobber') company1.put() company2.put() #Create some ratings rating1 = Rating(overall=4,salary=3,benefits=4,growth=5,peers=4,environment=5,location=5) rating2 = Rating(overall=5,salary=3,benefits=3,growth=4,peers=5,environment=5,location=4) rating1.put() rating2.put() #Create some reviews review1 = Review(company=company1,text='Google is amazing!',rating=rating1) review2 = Review(company=company2,text='Jobber is a wonderful start-up to work for!',rating=rating2) review1.put() review2.put()