예제 #1
0
    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,
                    }
                )
            )
        )
예제 #2
0
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
예제 #3
0
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