From b7174070fe5f3331c12a2ed06d60d71730bf8bc0 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Thu, 14 Jun 2018 16:19:05 +0200 Subject: [PATCH] Check-in list export: Excel dialect --- src/pretix/plugins/checkinlists/exporters.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/pretix/plugins/checkinlists/exporters.py b/src/pretix/plugins/checkinlists/exporters.py index 8fb4159bd0..6243c1d28e 100644 --- a/src/pretix/plugins/checkinlists/exporters.py +++ b/src/pretix/plugins/checkinlists/exporters.py @@ -244,9 +244,25 @@ class CSVCheckinList(BaseCheckinList): identifier = 'checkinlistcsv' verbose_name = ugettext_lazy('Check-in list (CSV)') + @property + def export_form_fields(self): + d = super().export_form_fields + d['dialect'] = forms.ChoiceField( + label=_('CSV dialect'), + choices=( + ('default', 'Default'), + ('excel', 'Excel') + ) + ) + return d + def render(self, form_data: dict): output = io.StringIO() - writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC, delimiter=",") + if form_data.get('dialect', '-') in csv.list_dialects(): + writer = csv.writer(output, dialect=form_data.get('dialect')) + else: + writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC, delimiter=",") + cl = self.event.checkin_lists.get(pk=form_data['list']) questions = list(Question.objects.filter(event=self.event, id__in=form_data['questions']))