Edgewall Software

Ticket #2669: reusable_export_csv.diff

File reusable_export_csv.diff, 2.0 KB (added by cboos, 3 years ago)

Additional changes on top of alect's attachment:ticket:2296:content-converter.diff

  • trac/ticket/query.py

    diff -r 17658dea048d trac/ticket/query.py
    a b  
    613613           self.env.is_component_enabled(ReportModule): 
    614614            req.hdf['query.report_href'] = req.href.report() 
    615615 
    616     def export_csv(self, query, sep=','): 
     616    def export_csv(self, query, sep=',', mimetype='text/plain'): 
    617617        content = StringIO() 
    618618        cols = query.get_columns() 
    619619        content.write(sep.join([col for col in cols]) + CRLF) 
     
    624624                                                        .replace('\n', ' ') 
    625625                                                        .replace('\r', ' ') 
    626626                                    for col in cols]) + CRLF) 
    627         return (content.getvalue(), 'text/plain;charset=utf-8') 
     627        return (content.getvalue(), '%s;charset=utf-8' % mimetype) 
    628628 
    629629    def export_rss(self, req, query): 
    630630        query.verbose = True 
  • trac/ticket/web_ui.py

    diff -r 17658dea048d trac/ticket/web_ui.py
    a b  
    412412 
    413413    # Internal methods 
    414414 
    415     def export_csv(self, ticket, sep=','): 
     415    def export_csv(self, ticket, sep=',', mimetype='text/plain'): 
    416416        content = StringIO() 
    417417        content.write(sep.join(['id'] + [f['name'] for f in ticket.fields]) 
    418418                      + CRLF) 
     
    421421                                 .replace(sep, '_').replace('\\', '\\\\') 
    422422                                 .replace('\n', '\\n').replace('\r', '\\r') 
    423423                                 for f in ticket.fields]) + CRLF) 
    424         return (content.getvalue(), 'text/plain;charset=utf-8') 
     424        return (content.getvalue(), '%s;charset=utf-8' % mimetype) 
    425425         
    426426    def export_rss(self, req, ticket): 
    427427        db = self.env.get_db_cnx()