Edgewall Software

Ticket #2669: tickets_to_excel_tsv.py

File tickets_to_excel_tsv.py, 1.2 KB (added by cboos, 3 years ago)

Simple but effective plugin implementing the requested feature (take 2)

Line 
1"""Converts `application/x-trac-ticket` data to `application/vnd.ms-excel`."""
2
3from trac.core import *
4from trac.mimeview.api import IContentConverter
5from trac.ticket.web_ui import TicketModule
6from trac.ticket.query import QueryModule
7
8EXCEL_MIMETYPE = 'application/vnd.ms-excel'
9
10class TicketsToExcelConverter(Component):
11    implements (IContentConverter)
12
13    # IContentConverter methods
14    def get_conversions(self): 
15        yield ('exceltsv', 'Excel',
16               'application/x-trac-ticket', EXCEL_MIMETYPE, 8) 
17        yield ('exceltsv', 'Excel',
18               'application/x-trac-query', EXCEL_MIMETYPE, 8) 
19         
20    def convert_content(self, req, mimetype, content, key, filename=None,
21                        url=None):
22        output = '%s; name=%s.xls' % (EXCEL_MIMETYPE, filename)
23        if mimetype == 'application/x-trac-ticket': 
24            return TicketModule(self.env).export_csv(content, sep='\t',
25                                                     mimetype=output) 
26        elif mimetype == 'application/x-trac-query': 
27            return QueryModule(self.env).export_csv(content, sep='\t',
28                                                    mimetype=output)