On Aug 26, 2010, at 6:56 AM, Joe Wakefield wrote: > > Massimo, > > The new code works great! Thanks for the quick fix.
And yes, the comment is helpful. > > Regards, > Joe > > On Aug 25, 10:51 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: >> Please check if this is fixed in trunk and if the comment I added >> makes any sense. >> >> Massimo >> >> On Aug 25, 10:59 am, Jonathan Lundell <jlund...@pobox.com> wrote: >> >>> On Aug 25, 2010, at 8:33 AM, Joe Wakefield wrote: >> >>>> I'll do you one better. The problem is in "sqlhtml.py" at lines >>>> 909-917. It changes ret=False to ret=True if the field already has a >>>> value. >> >>> Good catch. This is a case where a comment documenting the intent of this >>> hunk of code would come in handy for those of us reading it. The error is >>> cancelled under certain conditions, but what's the intent? >> >>>> ======= >>>> ret, errors: False, <Storage {'photo': 'invalid image'}> >>>> new ret:False >>>> ======= >>>> ret, errors: True, <Storage {}> >>>> new ret:True >>>> new: users.photo.8a5327ab32003765.6c6c616d61732e6a7067.jpg old: >>>> ======= >>>> ret, errors: False, <Storage {'photo': 'invalid image'}> >>>> new ret:True >>>> new: users.photo.b6369c7a23ae4813.312e706e67.png old: users.photo. >>>> 8a5327ab32003765.6c6c616d61732e6a7067.jpg >> >>>> On Aug 25, 10:17 am, mdipierro <mdipie...@cs.depaul.edu> wrote: >>>>> can you help me debug? >> >>>>> in gluon/validators.py >> >>>>> classIS_IMAGE: >>>>> def __call__(self,value): >>>>> .... >>>>> except: >>>>> return (value, self.error_message) >> >>>>> replace last two lines with >> >>>>> except Exception, e: >>>>> return (value, str(r)) >> >>>>> what does the error say? >> >>>>> On Aug 23, 4:06 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: >> >>>>>> Something is wrong here >> >>>>>> IS_IMAGE(extensions=('jpeg')) >> >>>>>> should be >> >>>>>> IS_IMAGE(extensions=('jpeg',)) >> >>>>>> A tuple of one element must contain a comma. Not sure if that may be >>>>>> the cause of your problem. >> >>>>>> On Aug 23, 3:16 pm, Joe Wakefield <coffeeburr...@gmail.com> wrote: >> >>>>>>> I was also experiencing this issue, but found that rebuilding the >>>>>>> database only worked until the first valid upload, after which it is >>>>>>> broken again. >> >>>>>>> In my case, I am using: >>>>>>> Field('photo', 'upload', uploadfield='photo_data', >>>>>>> requires=IS_IMAGE(extensions=('jpeg'))), >>>>>>> Field('photo_data', 'blob', requires=IS_IMAGE(extensions=('jpeg'))), >> >>>>>>> And was using SQLFORM to display the update form. >> >>>>>>> When I first added this, it was accepting absolutely everything (pdf, >>>>>>> odt, zip) as an upload. I deleted my database entirely, and had it >>>>>>> rebuilt. I first noticed that it started rejecting non-image uploads. >>>>>>> However, once I had uploaded an image, all subsequent uploads of non- >>>>>>> image types were allowed again. A second database build showed the >>>>>>> exact same behaviour; proper rejection until the first valid upload. >> >>>>>>> I then made a backup of my web2py folder, and extracted today's >>>>>>> nightly build over my folder. Rebuilding my database one last time, it >>>>>>> shows the exact same behaviour. >> >>>>>>> On Jul 11, 2:56 pm, Rob <r...@rmdashr.com> wrote: >> >>>>>>>> I just recently added: >> >>>>>>>> db.Item.image.requires =IS_IMAGE() >> >>>>>>>> The records that existed prior to adding this line does not obey >>>>>>>> theIS_IMAGE() (ie: they still allow me to upload a PDF). All new >>>>>>>> records >>>>>>>> created DO work - they force me to select an image or else they show >>>>>>>> an error. >> >>>>>>>> steps to reproduce (untested) >>>>>>>> 1) create DB >>>>>>>> db.define_table('Item', >>>>>>>> Field('description'), >>>>>>>> Field('need', 'boolean'), >>>>>>>> Field('image', 'upload')) >> >>>>>>>> 2) add rows to the table >>>>>>>> 3) add rules: >>>>>>>> db.Item.category.requires = IS_IN_DB(db, db.Category.id,'%(name)s') >>>>>>>> db.Item.description.requires = IS_NOT_EMPTY() >>>>>>>> db.Item.image.requires =IS_IMAGE() >> >>>>>>>> 4) go back to the rows you added to the Item table and add non-image >>>>>>>> files - notice it works >> >>>>>>>> Does that help? >> >>>>>>>> On Jul 11, 11:42 am, mdipierro <mdipie...@cs.depaul.edu> wrote: >> >>>>>>>>> Please tell us more. When do you get an error? What is the error? >> >>>>>>>>> On 11 Lug, 11:57, Rob <r...@rmdashr.com> wrote: >> >>>>>>>>>> This issue only happens for records that were created before I added >>>>>>>>>> the .requires fields. Error handling on new records works as >>>>>>>>>> expected... so... is it still a bug? >> >>>>>>>>>> On Jul 11, 9:15 am, Rob <r...@rmdashr.com> wrote: >> >>>>>>>>>>> db.define_table('Category', >>>>>>>>>>> Field('name')) >> >>>>>>>>>>> db.define_table('Item', >>>>>>>>>>> Field('category', db.Category), >>>>>>>>>>> Field('description'), >>>>>>>>>>> Field('need', 'boolean'), >>>>>>>>>>> Field('image', 'upload')) >> >>>>>>>>>>> db.Item.category.requires = IS_IN_DB(db, db.Category.id) >>>>>>>>>>> db.Item.description.requires = IS_NOT_EMPTY() >>>>>>>>>>> db.Item.image.requires =IS_IMAGE() >> >>>>>>>>>>> def details(): >>>>>>>>>>> item = request.args(0) >>>>>>>>>>> form = crud.update(db.Item, item, next=URL(r=request, >>>>>>>>>>> args=item)) >>>>>>>>>>> return dict(form=form) >> >>>>>>>>>>> It allows me to upload PDFs and flashes 'record updated' >> >>