def get(self, username): """ Render a user page. """ publicuser = UserPrefs.all().filter('name =', username).get() if not publicuser: self.abort(404) recipes = Recipe.all()\ .filter('owner =', publicuser)\ .order('name')\ .run(limit=25) actions = UserAction.all()\ .filter('owner =', publicuser)\ .order('-created')\ .fetch(15) object_ids = UserAction.gather_object_ids(actions) user_map = {publicuser.key().id(): publicuser} for user in UserPrefs.get_by_id(object_ids['users']): user_map[user.key().id()] = user recipes = [r for r in recipes] recipe_ids = [recipe.key().id() for recipe in recipes] object_ids['recipes'] = [ id for id in object_ids['recipes'] if id not in recipe_ids ] recipe_map = {} for recipe in recipes: recipe.owner = publicuser recipe_map[recipe.key().id()] = recipe for recipe in Recipe.get_by_id(object_ids['recipes']): recipe_map[recipe.key().id()] = recipe brew_map = {} for brew in Brew.get_by_id(object_ids['brews']): brew_map[brew.key().id()] = brew self.render( 'user.html', { 'publicuser': publicuser, 'recipes': recipes, 'actions': actions, 'user_map': user_map, 'recipe_map': recipe_map, 'brew_map': brew_map })
def get(self, username): """ Render a user page. """ publicuser = UserPrefs.all().filter('name =', username).get() if not publicuser: self.abort(404) recipes = Recipe.all()\ .filter('owner =', publicuser)\ .order('name')\ .run(limit=25) actions = UserAction.all()\ .filter('owner =', publicuser)\ .order('-created')\ .fetch(15) object_ids = UserAction.gather_object_ids(actions) user_map = { publicuser.key().id(): publicuser } for user in UserPrefs.get_by_id(object_ids['users']): user_map[user.key().id()] = user recipes = [r for r in recipes] recipe_ids = [recipe.key().id() for recipe in recipes] object_ids['recipes'] = [id for id in object_ids['recipes'] if id not in recipe_ids] recipe_map = {} for recipe in recipes: recipe.owner = publicuser recipe_map[recipe.key().id()] = recipe for recipe in Recipe.get_by_id(object_ids['recipes']): recipe_map[recipe.key().id()] = recipe brew_map = {} for brew in Brew.get_by_id(object_ids['brews']): brew_map[brew.key().id()] = brew self.render('user.html', { 'publicuser': publicuser, 'recipes': recipes, 'actions': actions, 'user_map': user_map, 'recipe_map': recipe_map, 'brew_map': brew_map })
def object(self): if self.type in [self.TYPE_USER_FOLLOWED]: return UserPrefs.get_by_id(self.object_id) elif self.type in [ self.TYPE_RECIPE_CREATED, self.TYPE_RECIPE_EDITED, self.TYPE_RECIPE_CLONED, self.TYPE_RECIPE_LIKED ]: from models.recipe import Recipe return Recipe.get_by_id(self.object_id) elif self.type in [self.TYPE_BREW_CREATED, self.TYPE_BREW_UPDATED]: from models.brew import Brew return Brew.get_by_id(self.object_id)
def object(self): if self.type in [self.TYPE_USER_FOLLOWED]: return UserPrefs.get_by_id(self.object_id) elif self.type in [self.TYPE_RECIPE_CREATED, self.TYPE_RECIPE_EDITED, self.TYPE_RECIPE_CLONED, self.TYPE_RECIPE_LIKED]: from models.recipe import Recipe return Recipe.get_by_id(self.object_id) elif self.type in [self.TYPE_BREW_CREATED, self.TYPE_BREW_UPDATED]: from models.brew import Brew return Brew.get_by_id(self.object_id)