def get(self): user_id = self.request.path.split('/')[-1] curr_profile = get_current_user_profile() is_user_page = user_id == curr_profile.user_id if is_user_page: profile = curr_profile else: profile = gae_model.get_model(gae_model.UserProfile, 'user_id', user_id) if profile is None: self.error(500) return is_admin = users.is_current_user_admin() if not is_admin and not is_user_page: self.error(500) return views = [] for view in gae_model.get_user_views(profile.user_id): data = json.loads(view.json) name = '%s#%s' % (data['pdb_id'], data['view_id']) views.append({ 'url': '/pdb/%s' % name, 'name': name, 'text': data['text'][:40], }) pdbs = [] for pdb_text in gae_model.PdbText.all().filter('user_id', profile.user_id): pdbs.append({ 'pdb_id': pdb_text.pdb_id, 'name': pdb_text.description, }) self.response.out.write( make_page( self.request.path, jinja_it( 'templates/user.jinja2.html', { 'nickname': profile.nickname, 'upload_url': blobstore.create_upload_url('/upload'), 'views': views, 'pdbs': pdbs, } ) ) )
def get_current_user_profile(): user = users.get_current_user() if user is None: return None user_id = user.user_id() profile = gae_model.get_model(gae_model.UserProfile, 'user_id', user_id) if profile is None: profile = gae_model.UserProfile(user_id=user.user_id(), nickname=user.nickname()) profile.put() if profile.nickname is None: profile.nickname = user.nickname() profile.put() return profile
def get_current_user_profile(): user = users.get_current_user() if user is None: return None user_id = user.user_id() profile = gae_model.get_model( gae_model.UserProfile, 'user_id', user_id) if profile is None: profile = gae_model.UserProfile( user_id=user.user_id(), nickname=user.nickname()) profile.put() if profile.nickname is None: profile.nickname = user.nickname() profile.put() return profile