10
10
from payment .models import PaymentDiscount , PaymentRequest
11
11
from core .models import Event
12
12
13
-
14
13
# Register your models here.
15
14
16
15
class CsvImportForm (forms .Form ):
17
16
csv_file = forms .FileField ()
18
17
19
-
20
18
class PaymentDiscountAdmin (admin .ModelAdmin , ExportCSVMixin ):
21
19
search_fields = ('code' ,)
22
20
list_display = ('code' , 'percentage' , 'amount' , 'count' )
@@ -51,33 +49,23 @@ def get_urls(self):
51
49
]
52
50
return my_urls + urls
53
51
54
-
55
52
admin .site .register (PaymentDiscount , PaymentDiscountAdmin )
56
53
57
-
58
54
class DiscountCodesImportForm (forms .Form ):
59
55
file = forms .FileField ()
60
56
61
-
62
57
class PaymentRequestAdmin (admin .ModelAdmin , ExportCSVMixin ):
63
- list_display = ('participant' , 'timestamp' , 'paid' , 'discount__code ' , 'order_id' , 'base_price' , 'paid_price' )
58
+ list_display = ('participant' , 'timestamp' , 'paid' , 'discount_code ' , 'order_id' , 'base_price' , 'paid_price' )
64
59
list_filter = ('paid' , 'discount__code' )
65
60
actions = ["export_as_csv" , "calculate_discount_usage" ]
66
61
change_list_template = "payment_request_changelist.html"
67
- search_fields = (
68
- 'participant__user__email' ,
69
- 'participant__info__first_name' ,
70
- 'participant__info__last_name' ,
71
- 'order_id' ,
72
- 'discount__code' ,
73
- )
74
62
75
63
def base_price (self , obj ):
76
64
return obj .get_price ()[0 ]
77
-
65
+
78
66
def paid_price (self , obj ):
79
67
return obj .get_price ()[1 ]
80
-
68
+
81
69
def discount_code (self , obj ):
82
70
return obj .discount .code if obj .discount is not None else None
83
71
@@ -100,7 +88,7 @@ def calculate_discount_usage(self, request, queryset):
100
88
101
89
for discount in discount_codes :
102
90
total_usage = queryset .filter (discount = discount ).count ()
103
-
91
+
104
92
successful_payments = queryset .filter (
105
93
discount = discount ,
106
94
paid = True
@@ -123,7 +111,7 @@ def import_discount_codes(self, request):
123
111
file = request .FILES ["file" ]
124
112
content = file .read ().decode ('utf-8' )
125
113
discount_codes = [code .strip () for code in content .split ('\n ' ) if code .strip ()]
126
-
114
+
127
115
response = HttpResponse (content_type = 'text/csv' )
128
116
response ['Content-Disposition' ] = 'attachment; filename=discount_usage_report.csv'
129
117
writer = csv .writer (response )
@@ -171,5 +159,4 @@ def get_urls(self):
171
159
]
172
160
return my_urls + urls
173
161
174
-
175
- admin .site .register (PaymentRequest , PaymentRequestAdmin )
162
+ admin .site .register (PaymentRequest , PaymentRequestAdmin )
0 commit comments