diff --git a/la_chariotte/order/templates/order/grouped_order_overview.html b/la_chariotte/order/templates/order/grouped_order_overview.html index 0e97afb..5f934f9 100644 --- a/la_chariotte/order/templates/order/grouped_order_overview.html +++ b/la_chariotte/order/templates/order/grouped_order_overview.html @@ -287,10 +287,15 @@ // Download emails list function downloadEmailToCSV() { fetch("{% url 'order:email_list' grouped_order.code %}?format=csv") - .then(response => response.text()) - .then(data => { + .then(response => { + const contentDisposition = response.headers.get('Content-Disposition'); + const filenameMatch = contentDisposition.match(/filename="(.+)"/); + const filename = filenameMatch[1]; + return response.text().then(data => ({data, filename})); + }) + .then(({data, filename}) => { var blob = new Blob([data], {type: "text/csv;charset=utf-8"}); - saveAs(blob, "liste_emails.csv"); + saveAs(blob, filename); }); } diff --git a/la_chariotte/order/views/grouped_order.py b/la_chariotte/order/views/grouped_order.py index ea832ad..51189ad 100644 --- a/la_chariotte/order/views/grouped_order.py +++ b/la_chariotte/order/views/grouped_order.py @@ -338,7 +338,8 @@ class ExportGroupOrderEmailAdressesToDownloadView(UserPassesTestMixin, generic.V format = self.request.GET.get("format", "json") if format == "csv": response = http.HttpResponse(content_type="text/csv") - response['Content-Disposition'] = 'attachment; filename="emails.csv"' + filename = f"commande _{grouped_order.name.replace(' ', '_')}" + response['Content-Disposition'] = f'attachment; filename="{filename}.csv"' writer = csv.writer(response) writer.writerow(['order_name', 'email']) for email in email_list: