@@ -57,72 +57,65 @@ def export_orders_csv(orders):
57
57
return rows
58
58
59
59
60
- def export_attendees_csv (attendees , custom_forms ):
60
+ def export_attendees_csv (attendees , custom_forms , attendee_form_dict ):
61
+ return_dict_list = []
61
62
62
- headers = [
63
- 'Order#' ,
64
- 'Order Date' ,
65
- 'Status' ,
66
- 'Payment Type' ,
67
- 'Payment Mode' ,
68
- 'Ticket Name' ,
69
- 'Ticket Price' ,
70
- 'Ticket Type' ,
71
- 'Tax ID' ,
72
- 'Address' ,
73
- 'Company' ,
74
- 'Country' ,
75
- 'State' ,
76
- 'City' ,
77
- 'Zipcode' ,
78
- ]
79
-
80
- for fields in custom_forms :
81
- headers .append (fields .name )
82
-
83
- rows = [headers ]
84
63
for attendee in attendees :
85
- column = [
86
- str (attendee .order .get_invoice_number ()) if attendee .order else '-' ,
87
- str (attendee .order .created_at .strftime ('%B %-d, %Y %H:%M %z' ))
64
+ data = {
65
+ 'Order#' : str (attendee .order .get_invoice_number ()) if attendee .order else '-' ,
66
+ 'Order Date' : str (attendee .order .created_at .strftime ('%B %-d, %Y %H:%M %z' ))
88
67
if attendee .order and attendee .order .created_at
89
68
else '-' ,
90
- str (attendee .order .status )
69
+ 'Status' : str (attendee .order .status )
91
70
if attendee .order and attendee .order .status
92
71
else '-' ,
93
- str (attendee .order .paid_via )
72
+ 'Payment Type' : str (attendee .order .paid_via )
94
73
if attendee .order and attendee .order .paid_via
95
74
else '' ,
96
- str (attendee .order .payment_mode )
75
+ 'Payment Mode' : str (attendee .order .payment_mode )
97
76
if attendee .order and attendee .order .payment_mode
98
77
else '' ,
99
- str (attendee .ticket .name ) if attendee .ticket and attendee .ticket .name else '' ,
100
- str (attendee .ticket .price )
78
+ 'Ticket Name' : str (attendee .ticket .name )
79
+ if attendee .ticket and attendee .ticket .name else '' ,
80
+ 'Ticket Price' : str (attendee .ticket .price )
101
81
if attendee .ticket and attendee .ticket .price
102
82
else '0' ,
103
- str (attendee .ticket .type ) if attendee .ticket and attendee .ticket .type else '' ,
104
- str (attendee .order .tax_business_info )
83
+ 'Ticket Type' : str (attendee .ticket .type )
84
+ if attendee .ticket and attendee .ticket .type else '' ,
85
+ 'Tax ID' : str (attendee .order .tax_business_info )
105
86
if attendee .order .tax_business_info
106
87
else '' ,
107
- str (attendee .order .address ) if attendee .order .address else '' ,
108
- str (attendee .order .company ) if attendee .order .company else '' ,
109
- str (attendee .order .country ) if attendee .order .country else '' ,
110
- str (attendee .order .state ) if attendee .order .state else '' ,
111
- str (attendee .order .city ) if attendee .order .city else '' ,
112
- str (attendee .order .zipcode ) if attendee .order .zipcode else '' ,
113
- ]
88
+ 'Address' : str (attendee .order .address ) if attendee .order .address else '' ,
89
+ 'Company' : str (attendee .order .company ) if attendee .order .company else '' ,
90
+ 'Country' : str (attendee .order .country ) if attendee .order .country else '' ,
91
+ 'State' : str (attendee .order .state ) if attendee .order .state else '' ,
92
+ 'City' : str (attendee .order .city ) if attendee .order .city else '' ,
93
+ 'Zipcode' : str (attendee .order .zipcode ) if attendee .order .zipcode else '' ,
94
+ }
95
+
114
96
for field in custom_forms :
97
+ # keys don't match up, for keys like
98
+ # acceptVideoRecording vs accept_video_recording ..
99
+ key_mapping = {}
100
+
101
+ for k in attendee_form_dict .keys ():
102
+ key_mapping [k .replace ("_" , "" ).lower ()] = k
103
+
104
+ field_raw = field .identifier .replace ("_" , "" ).lower ()
105
+ key = key_mapping .get (field_raw )
106
+ converted_header = attendee_form_dict .get (key )
115
107
if field .is_complex :
116
108
fields_dict = attendee .complex_field_values
117
- column .append (
118
- fields_dict .get (field .identifier , '' ) if fields_dict else ''
119
- )
109
+ data [converted_header ] = fields_dict .get (
110
+ field .identifier , '' ) if fields_dict else ''
120
111
else :
121
- column .append (getattr (attendee , field .identifier , '' ))
112
+ dict_value = (getattr (attendee , field .identifier , '' ))
113
+ dict_value = "Yes" if str (dict_value ) == "True" \
114
+ else "No" if str (dict_value ) == "False" else dict_value
115
+ data [converted_header ] = dict_value
116
+ return_dict_list .append (data )
122
117
123
- rows .append (column )
124
-
125
- return rows
118
+ return return_dict_list
126
119
127
120
128
121
def export_sessions_csv (sessions ):
0 commit comments