def browse(self): c.message = request.params.get('message', None) query = Recipe.all() query.order('title') c.page = int(request.params.get('page', 1)) c.recipes, c.pages = paginate(query, c.page, limit=20) c.page_url = url(controller='recipe', action='browse', id=None) return render('/recipes.mako')
def home(self): latest = Recipe.all().order('-modified').fetch(5) c.latest = [(r, url(controller='recipe', action='view', id=r.key().id()), url(controller='recipe', action='search', user=r.owner)) for r in latest] return render('home.mako')
def mine(self): c.message = request.params.get('message', None) query = Recipe.all() query.filter('owner =', users.get_current_user()) query.order('title') c.page = int(request.params.get('page', 1)) c.recipes, c.pages = paginate(query, c.page, limit=5) c.page_url = url(controller='recipe', action='mine', id=None) return render('/recipes.mako')
def search(self): c.page = int(request.params.get('page', 1)) user = request.params.get('user', None) if user == 'None': user = None keywords = request.params.get('keywords', None) if keywords == 'None': keywords = '' query = Recipe.all() query.order('title') if user is not None: if user and not '@' in user: user += '@gmail.com' query.filter('owner =', users.User(user)) results = query elif keywords is not None: kwds = keywords.split(' ') results = [r for r in query if \ [k for k in kwds if k.lower() in r.title.lower() or k.lower() in str(r.owner).lower()]] else: redirect(request.headers.get('REFERER', '/')) c.user = user c.keywords = keywords c.recipes, c.pages = paginate(results, c.page, limit=5) page_url_params = dict(controller='recipe', action='search', id=None) if user is not None: page_url_params['user'] = user if keywords is not None: page_url_params['keywords'] = keywords c.page_url = url(**page_url_params) return render('/recipes.mako')