def get(self): user = users.get_current_user() if user: # Create a new Extension entry newExt = Extension() newExt.developer = user # Give the Extension a random unique ID (I decided on 16 hexadecimal # characters, but other suggestions are welcome). newExt.extID = hashlib.md5(os.urandom(128)).hexdigest()[:16] while Extension.gql('WHERE extID = :1', newExt.extID).count(limit=1) > 0: newExt.extID = hashlib.md5(os.urandom(128)).hexdigest()[:16] newExt.put() # Automatically upvote the extension as the developer # Check if a rating for that extension ID exists # (it should not, but just in case). rating = Rating.gql('WHERE user = :1 AND extID = :2',user,newExt.extID).get() # Create the rating if it does not exist # (which, again, it should not). if not rating: rating = Rating() rating.user = user rating.extID = newExt.extID rating.value = 1 rating.put() # Redirect to the editing page self.redirect('/dev/edit/' + newExt.extID) else: self.redirect(users.create_login_url(self.request.uri))
def get(self,value,extID): user = users.get_current_user() if not user: self.redirect(users.create_login_url(self.request.uri)) else: if Extension.gql('WHERE extID = :1',extID).count(limit=1) == 0: self.error(404) else: rating = Rating.gql('WHERE user = :1 AND extID = :2',user,extID).get() if not rating: rating = Rating() rating.user = user rating.extID = extID if value == 'up': rating.value = 1 elif value == 'down': rating.value = -1 else: rating.value = 0 rating.put() self.redirect('/gallery/info/' + extID)