[web2py] Re: SQLFORM and read-only references
Yes, the nightly built works fine. Thanks. On 7 feb, 15:44, Massimo Di Pierro wrote: > Should be fixed in trunk already. Try the nightly built. > > On Feb 7, 4:46 am, Juan Antonio wrote: > > > I have > > > db.define_table('article', Field('name'),,format='%(name)s') > > db.define_table('lote', Field('name'),, Field('article', > > db.article) > > db.lote.article.requires = IS_IN_DB(db, db.article.id, '%(name)s') > > > AndSQLFORM(db.lote,..,readonly=True) shows 'None' in field articulo > > > I think it is the same proble discussed here, or what am I doing > > wrong? > > > I am using 1.91.6 > > > Cheers, > > > Juan. > > > On 4 feb, 13:46, Kenneth wrote: > > > > I´m having the same problem. In aSQLFORMI have a Field that is > > > sometimes writable and sometimes not. If you are admin you can modify > > > this field but not as user. Field is a reference to and other table, > > > so admin gets a dropdown but the user gets None but he should get the > > > selection that admin has made. > > > > Kenneth > > > > On Jan 26, 11:48 pm, Pawel Jasinski wrote: > > > > > Hi, > > > > > > Are you sure you want the formreadonly? > > > > > Yes > > > > > > What if you removereadonly? > > > > > The 'None' changes into drop down with ids or whatever is in the > > > > format argument of the field. > > > > > > If you wantreadonlyyou do not need accepts > > > > > Good point, changed. It does not help with the main problem. > > > > > I also have another use case, where form is used on the confirmation > > > > screen. Kind of "are you really sure ..." > > > > All fields are maderead onlywith db.table.filed.writable=False. > > > > Thereferencesare also rendered as None. > > > > > Cheers, > > > > Pawel
[web2py] Re: SQLFORM and read-only references
Should be fixed in trunk already. Try the nightly built. On Feb 7, 4:46 am, Juan Antonio wrote: > I have > > db.define_table('article', Field('name'),,format='%(name)s') > db.define_table('lote', Field('name'),, Field('article', > db.article) > db.lote.article.requires = IS_IN_DB(db, db.article.id, '%(name)s') > > And SQLFORM(db.lote,..,readonly=True) shows 'None' in field articulo > > I think it is the same proble discussed here, or what am I doing > wrong? > > I am using 1.91.6 > > Cheers, > > Juan. > > On 4 feb, 13:46, Kenneth wrote: > > > > > > > > > I´m having the same problem. In a SQLFORM I have a Field that is > > sometimes writable and sometimes not. If you are admin you can modify > > this field but not as user. Field is a reference to and other table, > > so admin gets a dropdown but the user gets None but he should get the > > selection that admin has made. > > > Kenneth > > > On Jan 26, 11:48 pm, Pawel Jasinski wrote: > > > > Hi, > > > > > Are you sure you want the form readonly? > > > > Yes > > > > > What if you remove readonly? > > > > The 'None' changes into drop down with ids or whatever is in the > > > format argument of the field. > > > > > If you want readonly you do not need accepts > > > > Good point, changed. It does not help with the main problem. > > > > I also have another use case, where form is used on the confirmation > > > screen. Kind of "are you really sure ..." > > > All fields are made read only with db.table.filed.writable=False. > > > The references are also rendered as None. > > > > Cheers, > > > Pawel
[web2py] Re: SQLFORM and read-only references
I have db.define_table('article', Field('name'),,format='%(name)s') db.define_table('lote', Field('name'),, Field('article', db.article) db.lote.article.requires = IS_IN_DB(db, db.article.id, '%(name)s') And SQLFORM(db.lote,..,readonly=True) shows 'None' in field articulo I think it is the same proble discussed here, or what am I doing wrong? I am using 1.91.6 Cheers, Juan. On 4 feb, 13:46, Kenneth wrote: > I´m having the same problem. In a SQLFORM I have a Field that is > sometimes writable and sometimes not. If you are admin you can modify > this field but not as user. Field is a reference to and other table, > so admin gets a dropdown but the user gets None but he should get the > selection that admin has made. > > Kenneth > > On Jan 26, 11:48 pm, Pawel Jasinski wrote: > > > Hi, > > > > Are you sure you want the form readonly? > > > Yes > > > > What if you remove readonly? > > > The 'None' changes into drop down with ids or whatever is in the > > format argument of the field. > > > > If you want readonly you do not need accepts > > > Good point, changed. It does not help with the main problem. > > > I also have another use case, where form is used on the confirmation > > screen. Kind of "are you really sure ..." > > All fields are made read only with db.table.filed.writable=False. > > The references are also rendered as None. > > > Cheers, > > Pawel
[web2py] Re: SQLFORM and read-only references
I´m having the same problem. In a SQLFORM I have a Field that is sometimes writable and sometimes not. If you are admin you can modify this field but not as user. Field is a reference to and other table, so admin gets a dropdown but the user gets None but he should get the selection that admin has made. Kenneth On Jan 26, 11:48 pm, Pawel Jasinski wrote: > Hi, > > > Are you sure you want the form readonly? > > Yes > > > What if you remove readonly? > > The 'None' changes into drop down with ids or whatever is in the > format argument of the field. > > > If you want readonly you do not need accepts > > Good point, changed. It does not help with the main problem. > > I also have another use case, where form is used on the confirmation > screen. Kind of "are you really sure ..." > All fields are made read only with db.table.filed.writable=False. > The references are also rendered as None. > > Cheers, > Pawel
[web2py] Re: SQLFORM and read-only references
Hi, > Are you sure you want the form readonly? Yes > What if you remove readonly? The 'None' changes into drop down with ids or whatever is in the format argument of the field. > If you want readonly you do not need accepts Good point, changed. It does not help with the main problem. I also have another use case, where form is used on the confirmation screen. Kind of "are you really sure ..." All fields are made read only with db.table.filed.writable=False. The references are also rendered as None. Cheers, Pawel
[web2py] Re: SQLFORM and read-only references
Are you sure you want the form readonly? What id you remove readonly? If you want readonly you do not need accepts On Jan 26, 12:40 pm, Pawel Jasinski wrote: > hi, > > hi, > i had the same idea in a mean time. Same effect :-( > --pawel > > On Jan 26, 6:25 pm, Massimo Di Pierro > wrote: > > > > > > > > > I will double check because clearly something is wrong. Meanwhile, how > > about this: > > > db.define_table('foo', Field('x'), format='%(x)s') > > db.define_table('bar', Field('label'), Field('ref',db.foo)) > > in controller: > > def insertone(): > > id=db.foo.insert(x="xxx") > > db.bar.insert(label="label",ref=id) > > def index(): > > record=db.bar(id=1) > > form=SQLFORM(db.bar,record,readonly=True) > > if form.accepts(request.vars,session): > > session.flash="accepted" > > return dict(form=form) > > > On Jan 26, 10:37 am, Pawel Jasinski wrote: > > > > Hi, > > > > I just hit the same problem and can reproduce in trivial case > > > > in model: > > > db.define_table('foo', Field('x')) > > > db.define_table('bar', Field('label'), Field('ref',db.foo)) > > > > in controller: > > > def insertone(): > > > id=db.foo.insert(x="xxx") > > > db.bar.insert(label="label",ref=id) > > > > def index(): > > > record=db.bar(id=1) > > > form=SQLFORM(db.bar,record,readonly=True) > > > if form.accepts(request.vars,session): > > > session.flash="accepted" > > > return dict(form=form) > > > > this will produce 'None' on the ref field > > > if I change index to be: > > > > def index(): > > > record=db.bar(id=1) > > > db.bar.ref.represent=lambda val: db.foo[val].x > > > form=SQLFORM(db.bar,record,readonly=True) > > > if form.accepts(request.vars,session): > > > session.flash="accepted" > > > return dict(form=form) > > > > everything is tiptop > > > web2py version: 1.91.6 > > > > Cheers, > > > Pawel
[web2py] Re: SQLFORM and read-only references
hi, hi, i had the same idea in a mean time. Same effect :-( --pawel On Jan 26, 6:25 pm, Massimo Di Pierro wrote: > I will double check because clearly something is wrong. Meanwhile, how > about this: > > db.define_table('foo', Field('x'), format='%(x)s') > db.define_table('bar', Field('label'), Field('ref',db.foo)) > in controller: > def insertone(): > id=db.foo.insert(x="xxx") > db.bar.insert(label="label",ref=id) > def index(): > record=db.bar(id=1) > form=SQLFORM(db.bar,record,readonly=True) > if form.accepts(request.vars,session): > session.flash="accepted" > return dict(form=form) > > On Jan 26, 10:37 am, Pawel Jasinski wrote: > > > Hi, > > > I just hit the same problem and can reproduce in trivial case > > > in model: > > db.define_table('foo', Field('x')) > > db.define_table('bar', Field('label'), Field('ref',db.foo)) > > > in controller: > > def insertone(): > > id=db.foo.insert(x="xxx") > > db.bar.insert(label="label",ref=id) > > > def index(): > > record=db.bar(id=1) > > form=SQLFORM(db.bar,record,readonly=True) > > if form.accepts(request.vars,session): > > session.flash="accepted" > > return dict(form=form) > > > this will produce 'None' on the ref field > > if I change index to be: > > > def index(): > > record=db.bar(id=1) > > db.bar.ref.represent=lambda val: db.foo[val].x > > form=SQLFORM(db.bar,record,readonly=True) > > if form.accepts(request.vars,session): > > session.flash="accepted" > > return dict(form=form) > > > everything is tiptop > > web2py version: 1.91.6 > > > Cheers, > > Pawel > >
[web2py] Re: SQLFORM and read-only references
I will double check because clearly something is wrong. Meanwhile, how about this: db.define_table('foo', Field('x'), format='%(x)s') db.define_table('bar', Field('label'), Field('ref',db.foo)) in controller: def insertone(): id=db.foo.insert(x="xxx") db.bar.insert(label="label",ref=id) def index(): record=db.bar(id=1) form=SQLFORM(db.bar,record,readonly=True) if form.accepts(request.vars,session): session.flash="accepted" return dict(form=form) On Jan 26, 10:37 am, Pawel Jasinski wrote: > Hi, > > I just hit the same problem and can reproduce in trivial case > > in model: > db.define_table('foo', Field('x')) > db.define_table('bar', Field('label'), Field('ref',db.foo)) > > in controller: > def insertone(): > id=db.foo.insert(x="xxx") > db.bar.insert(label="label",ref=id) > > def index(): > record=db.bar(id=1) > form=SQLFORM(db.bar,record,readonly=True) > if form.accepts(request.vars,session): > session.flash="accepted" > return dict(form=form) > > this will produce 'None' on the ref field > if I change index to be: > > def index(): > record=db.bar(id=1) > db.bar.ref.represent=lambda val: db.foo[val].x > form=SQLFORM(db.bar,record,readonly=True) > if form.accepts(request.vars,session): > session.flash="accepted" > return dict(form=form) > > everything is tiptop > web2py version: 1.91.6 > > Cheers, > Pawel
[web2py] Re: SQLFORM and read-only references
Hi, I just hit the same problem and can reproduce in trivial case in model: db.define_table('foo', Field('x')) db.define_table('bar', Field('label'), Field('ref',db.foo)) in controller: def insertone(): id=db.foo.insert(x="xxx") db.bar.insert(label="label",ref=id) def index(): record=db.bar(id=1) form=SQLFORM(db.bar,record,readonly=True) if form.accepts(request.vars,session): session.flash="accepted" return dict(form=form) this will produce 'None' on the ref field if I change index to be: def index(): record=db.bar(id=1) db.bar.ref.represent=lambda val: db.foo[val].x form=SQLFORM(db.bar,record,readonly=True) if form.accepts(request.vars,session): session.flash="accepted" return dict(form=form) everything is tiptop web2py version: 1.91.6 Cheers, Pawel
[web2py] Re: SQLFORM and read-only references
it seems that upon further testing this is not a problem. i don't know what i was doing when this showed up. sorry for the noise. cfh
[web2py] Re: SQLFORM and read-only references
my own forms created with SQLFORM.
[web2py] Re: SQLFORM and read-only references
Is this in appadmin or your own forms? On Jan 10, 5:44 pm, howesc wrote: > It seems that in the latest version of web2py (1.91.6 and today's trunk) > that if you have a table (say auth_user), with a format string, and then you > refer to it in another table as read-only like: > Field('updated_by', 'reference '+auth.settings.table_user_name, > default=auth.user_id,update=auth.user_id,writable=False), > > when the form is rendered we see 'None' rather than the format of the > referenced table. I can adjust the read-only field to have a represent > like: > Field('created_by', 'reference '+auth.settings.table_user_name, > default=auth.user_id, writable=False, > represent=lambda x: auth_user_table[x].first_name + " " + \ > auth_user_table[x].last_name+" ("+str(auth_user_table[x].id)+")" \ > if x else None), > (which matches my format string on my auth_user table). Is this a > regression, or was i making broken assumptions previously? > > thanks, > > christian