There is a possible problem in gluon/contrib/fpsf/fpdf.py when the user
leaves an entry blank.
What is the process for submitting this issue in the new reporting
procedure?
51. filler = False
52. for row in db_rows:
53. pdf.cell(25,5,row.case_number,1, fill=filler)
54.
55. pdf.cell(35,5,row.member_id.last_name,1,fill=filler)
56. pdf.cell(25,5,str(row.date_assigned),1,fill=filler)
57. pdf.multi_cell(95,5,*row.description*,border=1,fill=filler )
*<------*
58. pdf.ln(5)
59. filler = not filler
If the description field is empty then the the preceding innocent looking
code results in the following error:
Traceback (most recent call last):
File "/home/www-data/web2py/gluon/restricted.py", line 220, in restricted
exec ccode in environment
File "/home/www-data/web2py/applications/indep/controllers/reports.py",
line 139, in <module>
File "/home/www-data/web2py/gluon/globals.py", line 385, in <lambda>
self._caller = lambda f: f()
File "/home/www-data/web2py/applications/indep/controllers/reports.py",
line 57, in cases_pdf
pdf.multi_cell(95,5,row.description,border=1,fill=filler )
File "/home/www-data/web2py/gluon/contrib/fpdf/fpdf.py", line 730, in
multi_cell
if txt == Null:
AttributeError: 'NoneType' object has no attribute 'replace'
The problem is the following line 730 in fpdf.py
729 wmax=(w-2*self.c_margin)*1000.0/self.font_size
*730 s=txt.replace("\r",'')* <----------------
731 nb=len(s)
732 if(nb>0 and s[nb-1]=="\n"):
733
My BFI (brute force and ignorance) fix was the following:
729 wmax=(w-2*self.c_margin)*1000.0/self.font_size
730 if txt == None:
731 s = ""
732 else:
733 s=txt.replace("\r",'')
734 nb=len(s)
735 if(nb>0 and s[nb-1]=="\n"):
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.