コード例 #1
0
ファイル: recipe.py プロジェクト: stefanv/aandete
    def save(self):
        self.form_result['owner'] = users.get_current_user()

        r = Recipe(**self.form_result)
        r.put()

        redirect(url.current(action='view', id=r.key().id(),
                                message='Recipe saved.'))
コード例 #2
0
ファイル: recipe.py プロジェクト: stefanv/aandete
    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))
コード例 #3
0
ファイル: recipe.py プロジェクト: stefanv/aandete
    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')
コード例 #4
0
ファイル: recipe.py プロジェクト: stefanv/aandete
    def delete(self, id):
        recipe = Recipe.get_by_id(id)
        if not recipe:
            abort(404) # Not found

        self._own_recipe(recipe)

        title = recipe.title
        recipe.delete()
        redirect(url.current(action='mine',
                                message='Recipe "%s" deleted.' % title))
コード例 #5
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')
コード例 #6
0
ファイル: recipe.py プロジェクト: stefanv/aandete
    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')
コード例 #7
0
ファイル: recipe.py プロジェクト: stefanv/aandete
    def update(self, id):
        recipe = Recipe.get_by_id(id)
        if not recipe:
            abort(404) # Not found

        self._own_recipe(recipe)

        for k, v in self.form_result.iteritems():
            setattr(recipe, k, v)
        recipe.put()

        redirect(url.current(action='view', id=id,
                                message="Recipe updated."))
コード例 #8
0
ファイル: recipe.py プロジェクト: stefanv/aandete
    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')
コード例 #9
0
ファイル: recipe.py プロジェクト: stefanv/aandete
    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')