diff --git a/src/pretix/plugins/checkinlists/exporters.py b/src/pretix/plugins/checkinlists/exporters.py index 76a5cf4e27..d7a4a8ec65 100644 --- a/src/pretix/plugins/checkinlists/exporters.py +++ b/src/pretix/plugins/checkinlists/exporters.py @@ -426,6 +426,7 @@ class CSVCheckinList(CheckInListMixin, ListExporter): headers.append(_('Company')) headers.append(_('Voucher code')) headers.append(_('Order date')) + headers.append(_('Order time')) headers.append(_('Requires special attention')) headers.append(_('Comment')) headers.append(_('Seat ID')) @@ -524,6 +525,7 @@ class CSVCheckinList(CheckInListMixin, ListExporter): row.append(op.company or ia.company) row.append(op.voucher.code if op.voucher else "") row.append(op.order.datetime.astimezone(self.event.timezone).strftime('%Y-%m-%d')) + row.append(op.order.datetime.astimezone(self.event.timezone).strftime('%H:%M:%S')) row.append(_('Yes') if op.order.checkin_attention or op.item.checkin_attention else _('No')) row.append(op.order.comment or "") diff --git a/src/tests/plugins/test_checkinlist.py b/src/tests/plugins/test_checkinlist.py index 150663dc20..716408609c 100644 --- a/src/tests/plugins/test_checkinlist.py +++ b/src/tests/plugins/test_checkinlist.py @@ -69,12 +69,12 @@ def test_csv_simple(event): }) assert clean(content.decode()) == clean(""""Order code","Attendee name","Attendee name: Title","Attendee name: First name","Attendee name: Middle name","Attendee name: Family name","Product","Price","Checked in","Checked out","Automatically - checked in","Secret","E-mail","Company","Voucher code","Order date","Requires special attention","Comment","Seat ID","Seat name", + checked in","Secret","E-mail","Company","Voucher code","Order date","Order time","Requires special attention","Comment","Seat ID","Seat name", "Seat zone","Seat row","Seat number","Address","ZIP code","City","Country","State" "FOO","Mr Peter A Jones","Mr","Peter","A","Jones","Ticket","23.00","","","No","hutjztuxhkbtwnesv2suqv26k6ttytxx", -"dummy@dummy.test","","","2019-02-22","No","","","","","","","","","","","" +"dummy@dummy.test","","","2019-02-22","14:00:00","No","","","","","","","","","","","" "FOO","Mrs Andrea J Zulu","Mrs","Andrea","J","Zulu","Ticket","13.00","","","No","ggsngqtnmhx74jswjngw3fk8pfwz2a7k", -"dummy@dummy.test","","","2019-02-22","No","","","","","","","","","","","" +"dummy@dummy.test","","","2019-02-22","14:00:00","No","","","","","","","","","","","" """) @@ -93,12 +93,12 @@ def test_csv_order_by_name_parts(event): # noqa }) assert clean(content.decode()) == clean(""""Order code","Attendee name","Attendee name: Title", "Attendee name: First name","Attendee name: Middle name","Attendee name: Family name","Product","Price", -"Checked in","Checked out","Automatically checked in","Secret","E-mail","Company","Voucher code","Order date","Requires special +"Checked in","Checked out","Automatically checked in","Secret","E-mail","Company","Voucher code","Order date","Order time","Requires special attention","Comment","Seat ID","Seat name","Seat zone","Seat row","Seat number","Address","ZIP code","City","Country","State" "FOO","Mrs Andrea J Zulu","Mrs","Andrea","J","Zulu","Ticket","13.00","","","No","ggsngqtnmhx74jswjngw3fk8pfwz2a7k", -"dummy@dummy.test","","","2019-02-22","No","","","","","","","","","","","" +"dummy@dummy.test","","","2019-02-22","14:00:00","No","","","","","","","","","","","" "FOO","Mr Peter A Jones","Mr","Peter","A","Jones","Ticket","23.00","","","No","hutjztuxhkbtwnesv2suqv26k6ttytxx", -"dummy@dummy.test","","","2019-02-22","No","","","","","","","","","","","" +"dummy@dummy.test","","","2019-02-22","14:00:00","No","","","","","","","","","","","" """) c = CSVCheckinList(event) _, _, content = c.render({ @@ -110,12 +110,12 @@ def test_csv_order_by_name_parts(event): # noqa }) assert clean(content.decode()) == clean(""""Order code","Attendee name","Attendee name: Title", "Attendee name: First name","Attendee name: Middle name","Attendee name: Family name","Product","Price", -"Checked in","Checked out","Automatically checked in","Secret","E-mail","Company","Voucher code","Order date","Requires special +"Checked in","Checked out","Automatically checked in","Secret","E-mail","Company","Voucher code","Order date","Order time","Requires special attention","Comment","Seat ID","Seat name","Seat zone","Seat row","Seat number","Address","ZIP code","City","Country","State" "FOO","Mr Peter A Jones","Mr","Peter","A","Jones","Ticket","23.00","","","No","hutjztuxhkbtwnesv2suqv26k6ttytxx", -"dummy@dummy.test","","","2019-02-22","No","","","","","","","","","","","" +"dummy@dummy.test","","","2019-02-22","14:00:00","No","","","","","","","","","","","" "FOO","Mrs Andrea J Zulu","Mrs","Andrea","J","Zulu","Ticket","13.00","","","No","ggsngqtnmhx74jswjngw3fk8pfwz2a7k", -"dummy@dummy.test","","","2019-02-22","No","","","","","","","","","","","" +"dummy@dummy.test","","","2019-02-22","14:00:00","No","","","","","","","","","","","" """) @@ -165,12 +165,12 @@ def test_csv_order_by_inherited_name_parts(event): # noqa }) assert clean(content.decode()) == clean(""""Order code","Attendee name","Attendee name: Title", "Attendee name: First name","Attendee name: Middle name","Attendee name: Family name","Product","Price", -"Checked in","Checked out","Automatically checked in","Secret","E-mail","Company","Voucher code","Order date","Requires special +"Checked in","Checked out","Automatically checked in","Secret","E-mail","Company","Voucher code","Order date","Order time","Requires special attention","Comment","Seat ID","Seat name","Seat zone","Seat row","Seat number","Address","ZIP code","City","Country","State" "BAR","Mr Albert J Zulu","Mr","Albert","J","Zulu","Ticket","23.00","","","No","hutjztuxhkbtwnesv2suqv26k6ttytyy", -"dummy@dummy.test","BARCORP","","2019-02-22","No","","","","","","","","","","","" +"dummy@dummy.test","BARCORP","","2019-02-22","14:00:00","No","","","","","","","","","","","" "FOO","Mr Paul A Jones","Mr","Paul","A","Jones","Ticket","23.00","","","No","hutjztuxhkbtwnesv2suqv26k6ttytxx", -"dummy@dummy.test","FOOCORP","","2019-02-22","No","","","","","","","","","","","" +"dummy@dummy.test","FOOCORP","","2019-02-22","14:00:00","No","","","","","","","","","","","" """) c = CSVCheckinList(event) _, _, content = c.render({ @@ -182,12 +182,12 @@ def test_csv_order_by_inherited_name_parts(event): # noqa }) assert clean(content.decode()) == clean(""""Order code","Attendee name","Attendee name: Title", "Attendee name: First name","Attendee name: Middle name","Attendee name: Family name","Product","Price", -"Checked in","Checked out","Automatically checked in","Secret","E-mail","Company","Voucher code","Order date","Requires special +"Checked in","Checked out","Automatically checked in","Secret","E-mail","Company","Voucher code","Order date","Order time","Requires special attention","Comment","Seat ID","Seat name","Seat zone","Seat row","Seat number","Address","ZIP code","City","Country","State" "BAR","Mr Albert J Zulu","Mr","Albert","J","Zulu","Ticket","23.00","","","No","hutjztuxhkbtwnesv2suqv26k6ttytyy", -"dummy@dummy.test","BARCORP","","2019-02-22","No","","","","","","","","","","","" +"dummy@dummy.test","BARCORP","","2019-02-22","14:00:00","No","","","","","","","","","","","" "FOO","Mr Paul A Jones","Mr","Paul","A","Jones","Ticket","23.00","","","No","hutjztuxhkbtwnesv2suqv26k6ttytxx", -"dummy@dummy.test","FOOCORP","","2019-02-22","No","","","","","","","","","","","" +"dummy@dummy.test","FOOCORP","","2019-02-22","14:00:00","No","","","","","","","","","","","" """) c = CSVCheckinList(event) _, _, content = c.render({ @@ -199,10 +199,10 @@ def test_csv_order_by_inherited_name_parts(event): # noqa }) assert clean(content.decode()) == clean(""""Order code","Attendee name","Attendee name: Title", "Attendee name: First name","Attendee name: Middle name","Attendee name: Family name","Product","Price", -"Checked in","Checked out","Automatically checked in","Secret","E-mail","Company","Voucher code","Order date","Requires special +"Checked in","Checked out","Automatically checked in","Secret","E-mail","Company","Voucher code","Order date","Order time","Requires special attention","Comment","Seat ID","Seat name","Seat zone","Seat row","Seat number","Address","ZIP code","City","Country","State" "FOO","Mr Paul A Jones","Mr","Paul","A","Jones","Ticket","23.00","","","No","hutjztuxhkbtwnesv2suqv26k6ttytxx", -"dummy@dummy.test","FOOCORP","","2019-02-22","No","","","","","","","","","","","" +"dummy@dummy.test","FOOCORP","","2019-02-22","14:00:00","No","","","","","","","","","","","" "BAR","Mr Albert J Zulu","Mr","Albert","J","Zulu","Ticket","23.00","","","No","hutjztuxhkbtwnesv2suqv26k6ttytyy", -"dummy@dummy.test","BARCORP","","2019-02-22","No","","","","","","","","","","","" +"dummy@dummy.test","BARCORP","","2019-02-22","14:00:00","No","","","","","","","","","","","" """)