def post(self): template_values = get_template_values(self) user = users.get_current_user() try: entity_query = Entity.query(Entity.id == user.user_id()).fetch() entity = entity_query[0] except IndexError: # This user must not exist yet, so create one entity = Entity( user=user, id=user.user_id(), created=datetime.datetime.now(), test_groups=[], ) if not entity.display_name: posted_name = self.request.get('display_name') else: posted_name = entity.display_name # Show an error if the name isn't formatted properly. if re.match('^[a-z0-9]{3,16}$', posted_name) is None: template_values[ 'error'] = "Usernames must be 16 or fewer alphanumeric characters [a-z0-9]." path = os.path.join(os.path.dirname(__file__), os.path.join(template_dir, 'register.html')) self.response.out.write(template.render(path, template_values)) return users_with_name = Entity.query( Entity.display_name == posted_name).count() if users_with_name == 0 or entity.display_name == posted_name: # Update values entity.display_name = posted_name if posted_name else entity.display_name entity.bio = self.request.get('bio') if len( self.request.get('bio')) > 0 else "I am mysterious." # Save and visit entity.put() time.sleep( 0.1 ) # The user doesn't exist for a short period of time after put() self.redirect('/u/%s' % entity.display_name) else: template_values[ 'error'] = "That username is in use. Please choose again." path = os.path.join(os.path.dirname(__file__), os.path.join(template_dir, 'register.html')) self.response.out.write(template.render(path, template_values)) return
def post(self): template_values = get_template_values( self ) user = users.get_current_user() try: entity_query = Entity.query( Entity.id == user.user_id() ).fetch() entity = entity_query[0] except IndexError: # This user must not exist yet, so create one entity = Entity( user = user, id = user.user_id(), created = datetime.datetime.now(), test_groups = [], ) if not entity.display_name: posted_name = self.request.get( 'display_name' ) else: posted_name = entity.display_name # Show an error if the name isn't formatted properly. if re.match('^[a-z0-9]{3,16}$', posted_name) is None: template_values['error'] = "Usernames must be 16 or fewer alphanumeric characters [a-z0-9]." path = os.path.join( os.path.dirname(__file__), os.path.join( template_dir, 'register.html' ) ) self.response.out.write( template.render( path, template_values )) return users_with_name = Entity.query( Entity.display_name == posted_name ).count() if users_with_name == 0 or entity.display_name == posted_name: # Update values entity.display_name = posted_name if posted_name else entity.display_name entity.bio = self.request.get( 'bio' ) if len(self.request.get( 'bio' )) > 0 else "I am mysterious." # Save and visit entity.put() time.sleep(0.1) # The user doesn't exist for a short period of time after put() self.redirect('/u/%s' % entity.display_name ) else: template_values['error'] = "That username is in use. Please choose again." path = os.path.join( os.path.dirname(__file__), os.path.join( template_dir, 'register.html' ) ) self.response.out.write( template.render( path, template_values )) return