Skip to content
Open
Show file tree
Hide file tree
Changes from 3 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
43 changes: 30 additions & 13 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