Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ def clean_bid(self):
raise forms.ValidationError(
"This bid not open for new donations anymore.")
except Exception as e:
raise forms.ValidationError("Bid does not exist.")
raise forms.ValidationError("Bid does not exist or is closed.")
return bid

def clean_amount(self):
Expand Down
2 changes: 1 addition & 1 deletion static/adminprocessing.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ function makeEditButton(row, obj, text, resultText, fields) {
if (status == 200) {
$(row).children(".statuscell").html(resultText);

values = eval(response)[0];
values = JSON.parse(response)[0];

for (var field in values['fields'])
{
Expand Down
2 changes: 1 addition & 1 deletion templates/admin/process_donations.html
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@
"</thread>" +
"<tbody");

var donations = eval(responseText);
var donations = JSON.parse(responseText);

var language = $(partitionLanguageElem).val();

Expand Down
1 change: 0 additions & 1 deletion templates/admin/read_donations.html
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,6 @@
row.append($("<td class='amount-column'>").append(makeAnchor(asMoney(donation['fields']['amount']), trackerAPI.createAdminEditURL('donation', id))));
row.append($("<td class='donation-comment'>").append(safeHtml(donation['fields']['comment'])));
row.append($("<td class='mod-comment'>").append(safeHtml(donation['fields']['modcomment'])));

row.append($("<td class='button-column'>")
.append(makeEditButton(row, donation, "Read", "Read on the Air", { readstate: "READ", commentstate: "APPROVED" }))
.append(makeEditButton(row, donation, "Ignore", "Ignored", { readstate: "IGNORED", commentstate: "APPROVED" }))
Expand Down
3 changes: 1 addition & 2 deletions templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@
<script type="application/javascript">
$(document).ready(function() {
$(".datetime").each(function() {
timestamp = Date.parse($(this).html());
time = new Date(timestamp);
var time = new Date(Date.parse($(this).html()));
$(this).html(time.format("mmmm dS, yyyy, h:MM:ss TT"));
});
});
Expand Down
46 changes: 32 additions & 14 deletions views/donateviews.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,21 +44,22 @@ def paypal_cancel(request):
def paypal_return(request):
return views_common.tracker_response(request, "tracker/paypal_return.html")

@csrf_exempt
def donate(request, event):
event = viewutil.get_event(event)
if event.locked:
raise Http404
def process_form(request, event):
bidsFormPrefix = "bidsform"
prizeFormPrefix = "prizeForm"
if request.method == 'POST':
commentform = forms.DonationEntryForm(event=event,data=request.POST)
commentform = forms.DonationEntryForm(event=event, data=request.POST)
if commentform.is_valid():
prizesform = forms.PrizeTicketFormSet(amount=commentform.cleaned_data['amount'], data=request.POST, prefix=prizeFormPrefix)
bidsform = forms.DonationBidFormSet(amount=commentform.cleaned_data['amount'], data=request.POST, prefix=bidsFormPrefix)
prizesform = forms.PrizeTicketFormSet(amount=commentform.cleaned_data['amount'], data=request.POST,
prefix=prizeFormPrefix)
bidsform = forms.DonationBidFormSet(amount=commentform.cleaned_data['amount'], data=request.POST,
prefix=bidsFormPrefix)
if bidsform.is_valid() and prizesform.is_valid():
with transaction.atomic():
donation = models.Donation(amount=commentform.cleaned_data['amount'], timereceived=pytz.utc.localize(datetime.datetime.utcnow()), domain='PAYPAL', domainId=str(random.getrandbits(128)), event=event, testdonation=event.usepaypalsandbox)
donation = models.Donation(amount=commentform.cleaned_data['amount'],
timereceived=pytz.utc.localize(datetime.datetime.utcnow()), domain='PAYPAL',
domainId=str(random.getrandbits(128)), event=event,
testdonation=event.usepaypalsandbox)
if commentform.cleaned_data['comment']:
donation.comment = commentform.cleaned_data['comment']
donation.commentstate = "PENDING"
Expand All @@ -80,9 +81,12 @@ def donate(request, event):
# suggest the same option at the exact same time
# also, I want to do case-insensitive comparison on the name
try:
bid = models.Bid.objects.get(event=bid.event, speedrun=bid.speedrun, name__iexact=bidform.cleaned_data['customoptionname'], parent=bid)
bid = models.Bid.objects.get(event=bid.event, speedrun=bid.speedrun,
name__iexact=bidform.cleaned_data['customoptionname'], parent=bid)
except models.Bid.DoesNotExist:
bid = models.Bid.objects.create(event=bid.event, speedrun=bid.speedrun, name=bidform.cleaned_data['customoptionname'], parent=bid, state='PENDING', istarget=True)
bid = models.Bid.objects.create(event=bid.event, speedrun=bid.speedrun,
name=bidform.cleaned_data['customoptionname'], parent=bid,
state='PENDING', istarget=True)
donation.bids.add(models.DonationBid(bid=bid, amount=Decimal(bidform.cleaned_data['amount'])), bulk=False)
for prizeform in prizesform:
if 'prize' in prizeform.cleaned_data and prizeform.cleaned_data['prize']:
Expand All @@ -107,18 +111,31 @@ def donate(request, event):
}
# Create the form instance
form = PayPalPaymentsForm(button_type="donate", sandbox=donation.event.usepaypalsandbox, initial=paypal_dict)
context = {"event": donation.event, "form": form }
return views_common.tracker_response(request, "tracker/paypal_redirect.html", context)
context = {"event": donation.event, "form": form}
return views_common.tracker_response(request, "tracker/paypal_redirect.html", context), None, None
else:
bidsform = forms.DonationBidFormSet(amount=Decimal('0.00'), data=request.POST, prefix=bidsFormPrefix)
bidsform.is_valid()
prizesform = forms.PrizeTicketFormSet(amount=Decimal('0.00'), data=request.POST, prefix=prizeFormPrefix)
prizesform.is_valid()
else:
steamid = request.session.get('uid', None)
donation_total = sum(models.Donation.objects.filter(steamid=steamid, transactionstate='COMPLETED', event=event).values_list('amount', flat=True)) if steamid else None
request.session['steam_donation_total'] = unicode(donation_total)
commentform = forms.DonationEntryForm(event=event)
bidsform = forms.DonationBidFormSet(amount=Decimal('0.00'), prefix=bidsFormPrefix)
prizesform = forms.PrizeTicketFormSet(amount=Decimal('0.00'), prefix=prizeFormPrefix)
return commentform, bidsform, prizesform

@csrf_exempt
@cache_page(300)
def donate(request, event):
event = viewutil.get_event(event)
if event.locked:
raise Http404
commentform, bidsform, prizesform = process_form(request, event)
if not bidsform: # redirect
return commentform

def bid_parent_info(bid):
if bid != None:
Expand Down Expand Up @@ -223,7 +240,8 @@ def ipn(request):
'amount': donation.amount,
'donor__visibility': donation.donor.visibility,
'donor__visiblename': donation.donor.visible_name(),
'new_total': agg['amount']
'new_total': agg['amount'],
'domain': donation.domain
}
postbackJSon = json.dumps(postbackData, ensure_ascii=False, cls=serializers.json.DjangoJSONEncoder).encode('utf-8')
postbacks = models.PostbackURL.objects.filter(event=donation.event)
Expand Down