Revision 377a9c23
Export alertes CSV dans VigiBoard
Le type MIME text/csv ne doit pas être exposé directement car il pose
des problèmes sur certaines versions d'Internet Explorer (8/9 au moins).
A la place, il faut modifier dynamiquement le type de la réponse lorsque
cela est nécessaire (en fonction du type de la requête).
Testé sous Firefox 30 et Internet Explorer 8.0.7061.17514.
Change-Id: Ia3b845a253ca363ea90755fd06471a4d0027d26d
Reviewed-on: https://vigilo-dev.si.c-s.fr/review/1443
Tested-by: Build system <qa@vigilo-dev.si.c-s.fr>
Reviewed-by: Thomas BURGUIERE <thomas.burguiere@c-s.fr>
vigiboard/controllers/root.py | ||
---|---|---|
26 | 26 |
from pkg_resources import resource_filename, working_set |
27 | 27 |
|
28 | 28 |
from tg.exceptions import HTTPNotFound |
29 |
from tg.controllers import CUSTOM_CONTENT_TYPE |
|
29 | 30 |
from tg import expose, validate, require, flash, url, \ |
30 | 31 |
tmpl_context, request, response, config, session, redirect |
31 | 32 |
from webhelpers import paginate |
... | ... | |
153 | 154 |
@validate( |
154 | 155 |
validators=IndexSchema(), |
155 | 156 |
error_handler = process_form_errors) |
156 |
@expose('events_table.html') |
|
157 |
@expose('events_table.html', content_type='text/csv') |
|
157 |
@expose('events_table.html', content_type=CUSTOM_CONTENT_TYPE) |
|
158 | 158 |
@require(access_restriction) |
159 | 159 |
def index(self, page, sort=None, order=None, **search): |
160 | 160 |
""" |
... | ... | |
256 | 256 |
response.headers['Pragma'] = 'public' # Nécessaire pour IE. |
257 | 257 |
response.headers['Cache-Control'] = 'max-age=0' # Nécessaire pour IE. |
258 | 258 |
|
259 |
response.headers["Content-Type"] = "text/csv" |
|
259 | 260 |
response.headers['Content-Disposition'] = \ |
260 | 261 |
'attachment;filename="alerts.csv"' |
261 | 262 |
return export_csv.export(page, plugins_data) |
Also available in: Unified diff