fixed in trunk. Can you please check again?

On Dec 1, 9:40 am, rfx_labs <l...@reproflex.de> wrote:
> Hi Massimo,
>
> with version 1472 a bug in sql.py is introduced:
>
>   File "/Applications/cherokee.app/Contents/MacOS/web2py/gluon/
> sql.py", line 1234, in define_table
>     t = self[tablename] = Table(self, tablename, *fields)
>   File "/Applications/cherokee.app/Contents/MacOS/web2py/gluon/
> sql.py", line 1506, in __init__
>     field.requires = sqlhtml_validators(field)
>   File "/Applications/cherokee.app/Contents/MacOS/web2py/gluon/
> sql.py", line 467, in sqlhtml_validators
>     requires[-1]=validators.IS_EMPTY_OR(requires[-1])
> IndexError: list index out of range
>
> I have reverted to 1471 and all my models works again.
> Some of my apps are a little bit older, should I rewrite the models?
>
> proof=SQLDB("sqlite://proof.db")
>
> proof.define_table('reference',
>                                 SQLField('name'),
>                                 SQLField('l', 'double'),
>                                 SQLField('a', 'double'),
>                                 SQLField('b', 'double'),
>                                 SQLField('opacity', 'integer', default=0),
>                                 SQLField('preview'))
>
> proof.define_table('file',
>                                 SQLField('name', length=64),
>                                 SQLField('kind'),
>                                 SQLField('data','upload'))
>
> proof.define_table('match',
>                                 SQLField('name'),
>                                 SQLField('press', proof.file),
>                                 SQLField('proof', proof.file),
>                                 SQLField('intent'),
>                                 SQLField('spotcolor', proof.file),
>                                 SQLField('optimize', proof.file),
>                                 SQLField('fmcal', proof.file),
>                                 SQLField('cal', proof.file),
>                                 SQLField('bump', proof.file),
>                                 SQLField('keep_black', 'boolean'),
>                                 SQLField('proofer'),
>                                 SQLField('pos', 'integer'))
>
> proof.define_table('color',
>                                 SQLField('name'),
>                                 SQLField('reference', proof.reference),
>                                 SQLField('match', proof.match),
>                                 SQLField('c', 'integer', default=0),
>                                 SQLField('m', 'integer', default=0),
>                                 SQLField('y', 'integer', default=0),
>                                 SQLField('k', 'integer', default=0),
>                                 SQLField('opacity', 'integer', default=0),
>                                 SQLField('preview'))
>
> proof.reference.name.requires  = [IS_NOT_EMPTY("Muss angeben
> werden!"), IS_NOT_IN_DB(proof, "reference.name", "Name bereits
> vorhanden!")]
> proof.reference.l.requires     = IS_FLOAT_IN_RANGE(0,101,"Muss imm
> Bereich von 0-100 sein!")
> proof.reference.a.requires     = IS_FLOAT_IN_RANGE(-255,255,"Muss imm
> Bereich von -255 bis 255 sein!")
> proof.reference.b.requires     = IS_FLOAT_IN_RANGE(-255,255,"Muss imm
> Bereich von -255 bis 255 sein!")
> proof.reference.opacity.requires = IS_INT_IN_RANGE(0,101,"Muss imm
> Bereich von 0-100 sein!")
>
> proof.file.name.requires       = IS_NOT_EMPTY("Eine Datei muss
> ausgewählt sein!")
> proof.file.kind.requires       = IS_IN_SET(("profile", "cal", "bump"))
>
> proof.match.press.requires     = IS_IN_DB(proof(proof.file.kind ==
> "profile"), "file.id", "%(name)s")
> proof.match.proof.requires     = IS_IN_DB(proof(proof.file.kind ==
> "profile"), "file.id", "%(name)s")
> proof.match.spotcolor.requires = IS_IN_DB(proof(proof.file.kind ==
> "profile"), "file.id", "%(name)s")
> proof.match.optimize.requires  = IS_NULL_OR(IS_IN_DB(proof
> (proof.file.kind == "profile"), "file.id", "%(name)s"))
> proof.match.fmcal.requires     = IS_IN_DB(proof(proof.file.kind ==
> "cal"), "file.id", "%(name)s")
> proof.match.cal.requires       = IS_IN_DB(proof(proof.file.kind ==
> "cal"), "file.id", "%(name)s")
> proof.match.bump.requires      = IS_IN_DB(proof(proof.file.kind ==
> "bump"), "file.id", "%(name)s")
> proof.match.intent.requires    = IS_IN_SET(("absolute", "relative"))
> proof.match.proofer.requires   = IS_IN_SET(("Epson9900", "Epson9600"))
>
> proof.color.name.requires      = IS_NOT_EMPTY("Muss angeben werden!")
> proof.color.reference.requires = IS_NULL_OR
> (proof.color.reference.requires)
> proof.color.match.requires     = IS_IN_DB(proof, "match.id", "%(name)
> s",orderby=proof.match.pos)
> proof.color.c.requires         = IS_INT_IN_RANGE(0,101,"Muss im
> Bereich von 0-100 sein!")
> proof.color.m.requires         = IS_INT_IN_RANGE(0,101,"Muss im
> Bereich von 0-100 sein!")
> proof.color.y.requires         = IS_INT_IN_RANGE(0,101,"Muss im
> Bereich von 0-100 sein!")
> proof.color.k.requires         = IS_INT_IN_RANGE(0,101,"Muss im
> Bereich von 0-100 sein!")
> proof.color.opacity.requires   = IS_INT_IN_RANGE(0,101,"Muss imm
> Bereich von 0-100 sein!")
>
> Martin

--

You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.


Reply via email to