On Thursday, March 3, 2011 1:19:14 PM UTC-5, Eduardo wrote: 
>
> Thank you all. Editing appadmin will do. I am, however, having a hard 
> time identifying export_to_csv( ) either in views/appadmin.html or 
> appadmin.py. While import_from_csv is clearly called from within 
> appadmin.import_csv, I am unable to identify how export_to_csv is 
> called there.

 
The export is done by the csv() function in appadmin.py: 
http://code.google.com/p/web2py/source/browse/applications/welcome/controllers/appadmin.py#142
 
That function returns:
 
str(db(query).select())
 
The db(query).select() is a DAL Rows object, and since it is passed to 
str(), the __str__ method of the Rows class is applied. You can see the 
__str__ method of the Rows class in dal.py here: 
http://code.google.com/p/web2py/source/browse/gluon/dal.py#4850
 
<http://code.google.com/p/web2py/source/browse/gluon/dal.py#4850As> 
As you can see, the __str__ method ultimately calls the export_to_csv_file 
method, which is here: 
http://code.google.com/p/web2py/source/browse/gluon/dal.py#4947
 
I suppose you could write your own export_tab_delimited function that works 
like __str__ but passes delimiter='\t' to export_to_csv_file. Maybe 
something like this added to appadmin.py:
 
import cStringIO
def export_tab_delimited(rows):
    s = cStringIO.StringIO()
    rows.export_to_csv_file(s, delimiter='\t')
    return s.getvalue()
 
And then change the last line of the csv() function to:
 
    return export_tab_delimited(db(query).select())
 
 
Anthony

Reply via email to