Should be fixed now.
On Dec 9, 9:08 am, drayco <antrod...@gmail.com> 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 "/home/drayco/web2py/site-packages/webgrid.py", line 15, in > <module> > from gluon.sql import Rows, Field, Set > ImportError: cannot import name Rows