Hi, I send you the application that you request me. I develop that for
my wife business.

    I use ubuntu 10.04, mysql, python 2.6 and web2py version in trunk
and in web2py 1.89.5 it works.

    I hope this help you.

On Dec 9, 11:18 am, mdipierro <[email protected]> wrote:
> can you email me (confidentially) a minimalist app to reproduce the
> problem?
>
> On Dec 9, 9:08 am, drayco <[email protected]> wrote:
>
> > Hi, in web2py 1.89.5 works but in trunk no
>
> > This is in the controller
>
> > def realizar_venta():
> >     return dict(form=crud.create(db.notas, next=URL(r=request,
> > f='leer_ventas'), onvalidation=procesing_nota,
> > onaccept=procesing_taller))
>
> > This is in the model
>
> > db.define_table("notas",
> >     audit,
> >     Field("store_id",db.stores, default=store.store_id,
> > writable=False, label='Sucursal',comment='A la que se encuentra
> > asignado'),
> >     Field('nota', 'integer', default=None,
> > writable=False,label='No.Nota(Sistema)',comment='Remisión generada por
> > el Sistema'),
> >     Field('notaFisica','integer', default=None,
> > requires=IS_NULL_OR(IS_INT_IN_RANGE(2500,66500,error_message='Debe ser
> > Numero positivo entre 2500 y
> > 66500')),label='No.Nota(Elaborada)',comment='Remision'),
> >     Field('vale', 'integer', default=None,
> > requires=IS_NULL_OR(IS_INT_IN_RANGE(1,500,error_message='Debe ser
> > Numero positivo entre 1 y 500')),label='Num.Vale',comment='Descuento
> > para Arm1/Len1'),
> >     Field('folio', 'integer', default=None,
> > requires=IS_NULL_OR(IS_INT_IN_RANGE(110000,191999,error_message='Debe
> > ser Numero positivo entre 110000 y 191999')),label='Num.Folio'),
> >     Field('first_name','string', default=None,
> > requires=IS_NULL_OR(IS_UPPER()),label='Nombre(s)'),
> >     Field('last_name','string', default=None,
> > requires=IS_NULL_OR(IS_UPPER()),label='Apellido Paterno'),
> >     Field('end_name','string', default=None,
> > requires=IS_NULL_OR(IS_UPPER()),label='Apellido Materno'),
> >     Field('tel','double', default=None,
> > requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(0,1e1000,error_message='Debe ser
> > Numero positivo')), label='Tel.Casa'),
> >     Field('tel1','double', default=None,
> > requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(0,1e1000,error_message='Debe ser
> > Numero positivo')), label='Tel.Trabajo'),
> >     Field('cel','double', default=None,
> > requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(0,1e1000,error_message='Debe ser
> > Numero positivo')), label='Tel.Celular',comment='Sin 044'),
> >     Field('email','string', default=None,
> > requires=IS_NULL_OR(IS_EMAIL()),comment='Para enviar copia(pdf)'),
> >     Field('armazon1',db.eyewear,
> > default=None,requires=IS_NULL_OR(IS_IN_DB(db,'eyewear.id','%(marca)s %
> > (modelo)s %(color)s %(caract1)s $%(promo)s'))),
> >     Field('modelo1','string', default=None,
> > requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos, sin espacios en blanco ó ñ!')),label='Modelo
> > armazon1'),
> >     Field('color1','string', default=None,
> > requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos, sin espacios en blanco ó
> > ñ!')),label='Color(es) armazon1'),
> >     Field('lente1',db.lentes,
> > default=None,requires=IS_NULL_OR(IS_IN_DB(db,'lentes.id','%
> > (tecnoGradua)s %(material)s %(tipo)s %(tecnoVisual)s %(tratamiento)s $%
> > (promo)s'))),
> >     Field('soloLoC1','string',
> > default=None,requires=IS_NULL_OR(IS_IN_SET(['Solo para cerca','Solo
> > para lejos'])), label='Lejos ó Cerca 1'),
> >     Field('tinte1','string', default=None,
> > requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos, sin espacios en blanco ó ñ!'))),
> >     Field('armazon2',db.eyewear,
> > default=None,requires=IS_NULL_OR(IS_IN_DB(db,'eyewear.id','%(marca)s %
> > (modelo)s %(color)s %(caract1)s $%(promo)s'))),
> >     Field('modelo2','string', default=None,
> > requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos, sin espacios en blanco ó ñ!')),label='Modelo
> > armazon2'),
> >     Field('color2','string', default=None,
> > requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos, sin espacios en blanco ó
> > ñ!')),label='Color(es) armazon2'),
> >     Field('lente2',db.lentes,
> > default=None,requires=IS_NULL_OR(IS_IN_DB(db,'lentes.id','%
> > (tecnoGradua)s %(material)s %(tipo)s %(tecnoVisual)s %(tratamiento)s $%
> > (promo)s'))),
> >     Field('soloLoC2','string',
> > default=None,requires=IS_NULL_OR(IS_IN_SET(['Solo para cerca','Solo
> > para lejos'])), label='Lejos ó Cerca 2'),
> >     Field('tinte2','string', default=None,
> > requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos, sin espacios en blanco ó ñ!'))),
> >     Field('armazon3',db.eyewear,
> > default=None,requires=IS_NULL_OR(IS_IN_DB(db,'eyewear.id','%(marca)s %
> > (modelo)s %(color)s %(caract1)s $%(promo)s'))),
> >     Field('modelo3','string', default=None,
> > requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos, sin espacios en blanco ó ñ!')),label='Modelo
> > armazon3'),
> >     Field('color3','string', default=None,
> > requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos, sin espacios en blanco ó
> > ñ!')),label='Color(es) armazon3'),
> >     Field('lente3',db.lentes,
> > default=None,requires=IS_NULL_OR(IS_IN_DB(db,'lentes.id','%
> > (tecnoGradua)s %(material)s %(tipo)s %(tecnoVisual)s %(tratamiento)s $%
> > (promo)s'))),
> >     Field('soloLoC3','string',
> > default=None,requires=IS_NULL_OR(IS_IN_SET(['Solo para cerca','Solo
> > para lejos'])), label='Lejos ó Cerca 3'),
> >     Field('tinte3','string', default=None,
> > requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos, sin espacios en blanco ó ñ!'))),
> >     Field('lc4',db.lc,
> > default=None,requires=IS_NULL_OR(IS_IN_DB(db,'lc.id','%(tecnoGradua)s %
> > (marca)s %(duracion)s %(oftalmico)s %(cosmetico)s $%
> > (promo)s')),label='L/C (4)'),
> >     Field('color4','string',default=None,
> > requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos, sin espacios en blanco ó ñ!'))),
> >     Field('lc5',db.lc,
> > default=None,requires=IS_NULL_OR(IS_IN_DB(db,'lc.id','%(tecnoGradua)s %
> > (marca)s %(duracion)s %(oftalmico)s %(cosmetico)s $%
> > (promo)s')),label='L/C (5)'),
> >     Field('color5','string',default=None,
> > requires=IS_NULL_OR(IS_ALPHANUMERIC(error_message='¡Deben ser
> > caracteres alfanumericos, sin espacios en blanco ó ñ!'))),
> >     Field("producto6",db.productos,
> > default=None,requires=IS_NULL_OR(IS_IN_DB(db,'productos.id','%
> > (producto)s %(modelo)s %(caract1)s %(caract2)s %(caract3)s %(caract4)s
> > $%(promo)s'))),
> >     Field('cantidad6','integer',default=None,
> > requires=IS_NULL_OR(IS_INT_IN_RANGE(0,1e100,error_message='Debe ser
> > Numero positivo')),label='Cantidad producto6',comment='más de 1'),
> >     Field("producto7",db.productos,
> > default=None,requires=IS_NULL_OR(IS_IN_DB(db,'productos.id','%
> > (producto)s %(modelo)s %(caract1)s %(caract2)s %(caract3)s %(caract4)s
> > $%(promo)s'))),
> >     Field('cantidad7','integer',default=None,
> > requires=IS_NULL_OR(IS_INT_IN_RANGE(0,1e100,error_message='Debe ser
> > Numero positivo')),label='Cantidad producto7',comment='más de 1'),
> >     Field("vendedor",db.auth_user, default=user_id,
> > requires=IS_NULL_OR(IS_IN_DB(vendedores,'auth_user.id','%(first_name)s
> > %(last_name)s %(end_name)s'))),
> >     Field("total", "double", default=0, writable=False),
> >     Field("anticipo", "double", default=0,
> > requires=[IS_NOT_EMPTY(error_message='No puede estar
> > vacio'),IS_FLOAT_IN_RANGE(0,10000,error_message='Debe ser un numero
> > positivo entre 0 y 10000')]),
> >     Field("pagos", "double", default=0, writable=False),
> >     Field("saldo", "double", default=0, writable=False),
> >     Field("fechaEntrega", "date",default=(request.now
> > +datetime.timedelta(14)), label='Fecha de Entrega'),
> >     Field("optometrista",db.auth_user,
> > default=None,requires=IS_NULL_OR(IS_IN_DB(optometristas,'auth_user.id','%
> > (first_name)s %(last_name)s %(end_name)s'))),
> >     Field('retiOdEsf','double',
> > default=None,requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(-20.1,20.1)),label='Ojo
> > Der.Esf.'),
> >     Field('retiOdCil','double',
> > default=None,requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(-12.1,0)),label='Ojo
> > Der.Cil.'),
> >     Field('retiOdEje','integer',
> > default=None,requires=IS_NULL_OR(IS_INT_IN_RANGE(0,181)),label='Ojo
> > Der.Eje'),
> >     Field('retiOiEsf','double',
> > default=None,requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(-20.1,20.1)),label='Ojo
> > Izq.Esf.'),
> >     Field('retiOiCil','double',
> > default=None,requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(-12.1,0)),label='Ojo
> > Izq.Cil.'),
> >     Field('retiOiEje','integer',
> > default=None,requires=IS_NULL_OR(IS_INT_IN_RANGE(0,181)),label='Ojo
> > Izq Eje'),
> >     Field('adicion','double',
> > default=None,requires=IS_NULL_OR(IS_FLOAT_IN_RANGE(0.75,3.51)),label='Adición'),
> >     Field('dipC','integer', default=None,
> > requires=IS_NULL_OR(IS_INT_IN_RANGE(35,85)), label='D.I.P.
> > Cerca(mm)'),
> >     Field('dipL','integer', default=None,
> > requires=IS_NULL_OR(IS_INT_IN_RANGE(35,85)), label='D.I.P.
> > Lejos(mm)'),
> >     Field('alt','integer', default=None,
> > requires=IS_NULL_OR(IS_INT_IN_RANGE(10,30)), label='Altura Centro
> > Óptico(mm)'),
> >     Field('observaciones','string', default=None),
> >     Field('diabetes','string', default=None),
> >     Field('hipertension','string', default=None),
> >     Field('garantia', 'integer', default=None, label='Garantia de la
> > Nota'),
> >     Field('entregado','boolean', default=False, writable=False),
> >     Field('entregadoEl', 'datetime', default=None, label='Entregado
> > el', writable=False))
>
> > This is the new track
>
> > Traceback (most recent call last):
> >   File "/home/drayco/web2py/gluon/restricted.py", line 188, in
> > restricted
> >     exec ccode in environment
> >   File "/home/drayco/web2py/applications/opticaluz/models/db.py", line
> > 444, in <module>
> >     import webgrid
> >   File
>
> ...
>
> read more »

Reply via email to