def useSchool(self, schoolData): self.school = Schools.gql("WHERE school_id = :1", schoolData["id"]).get() if self.school == None: # not found, insert it self.school = Schools( school_id=schoolData["id"], name=schoolData["name"], lat=schoolData["lat"], lng=schoolData["lng"] ) self.school.put() # create a new up/downvote key in memcache key = "SchoolUpvote." + self.school.school_id memcache.add(key, 0) key = "SchoolDownvote." + self.school.school_id memcache.add(key, 0)
def schoolUpvote(self, schoolID, userID): upvotes = memcache.get("UserSchoolUpvote.%s" % userID) user = User.get_by_id(int(userID)) if upvotes == None: upvotes = user.upvotes key = "SchoolUpvote." + schoolID vote = memcache.get(key) # search if school already included if schoolID not in upvotes: self.school = Schools.gql("WHERE school_id = :1", schoolID).get() if vote == None: vote = self.school.upvote memcache.add(key, vote) vote = memcache.incr(key) self.school.upvote = vote self.school.put() logging.info("upvoted school %s" % schoolID) # store user upvoted school key = "UserSchoolUpvote.%s" % userID if upvotes != "": upvotes = "%s,%s" % (upvotes, schoolID) else: upvotes = "%s" % schoolID logging.info("storing upvote for key %s" % key) memcache.set(key, upvotes) user.upvotes = upvotes user.put() return vote