On Thu, Nov 3, 2011 at 4:51 AM, Tom Campbell <tomcampb...@gmail.com> wrote:

> ...but I'm too much of a noob to get it.
>
> # file models/db_todo.py
> db.define_table('todo',
>        Field('summary','string',requires=IS_NOT_EMPTY()),
>        Field('priority',requires=IS_IN_SET([1,2,3,4,5])),
>        Field('complete','boolean',default=False))
>
> # file views/main/index.html
> {{extend 'layout.html'}}
> <h2>Current tasks</h2>
> {{=grid}}
>
> # file controllers/main.py
> @auth.requires_login()
> def index():
>        # Show only remaining tasks
>        todos = db(db.todo.complete==False).select()
>        grid=SQLFORM.smartgrid(db.todo,todos)
>        return dict(grid=grid)
>
> 1. The main/index.html view is meant to show only completed tasks
> (completed==False). It shows all of them.
>

smartgird does not receives a Rows object as second param, it expects a
dict of table:query

grid=SQLFORM.smartgrid(db.todo,{'todo',db.todo.complete==False})



>
> 2. The dropdowns for Priority start with a blank slot, not 1.


pass zero=None to field requires

Field('priority',requires=IS_IN_SET([1,2,3,4,5], zero=None))

-- 

Bruno Rocha
[http://rochacbruno.com.br]

Reply via email to