Exemple #1
0
    def edit(self, id):
        recipe = Recipe.get_by_id(id)

        if not recipe:
            abort(404)

        c.update_url = url.current(action='update', id=id)

        html = render('/recipe_edit.mako')
        return htmlfill.render(html, model_dict(recipe))
Exemple #2
0
    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')
Exemple #3
0
    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')
Exemple #4
0
    def index(self):
        user = users.get_current_user()
        if user:
            greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>)" %
                        (user.nickname(), users.create_logout_url("/")))
        else:
            greeting = ("<a href=\"%s\">Sign in or register</a>." %
                        users.create_login_url("."))

        c.greeting = greeting

        return render('/recipe.mako')
Exemple #5
0
    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')
Exemple #6
0
    def view(self, id=None):
        c.message = request.params.get('message', None)

        if not id:
            abort(404)

        c.recipe = Recipe.get_by_id(id)

        if not c.recipe:
            abort(404)

        c.rm_url = url(controller='recipe', action='delete', id=id)
        c.edit_url = url(controller='recipe', action='edit', id=id)
        c.list_url = url(controller='recipe', action='browse')
        c.add_url = url(controller='recipe', action='add')

        return render('/recipe_view.mako')
Exemple #7
0
    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')
Exemple #8
0
 def add(self):
     c.save_url = url.current(action='save')
     return render('/recipe_add.mako')