From d386fb7071cf6e61b2270947a5c58db1002490a8 Mon Sep 17 00:00:00 2001 From: Brian Simpson Date: Thu, 22 Aug 2013 17:03:50 -0400 Subject: [PATCH] Campaigns can be pending in addition to being live or complete. Campaigns are charged 24 hours before going live, so checking whether a campaign is complete requires more than just checking that it's not live. --- r2/r2/lib/promote.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/r2/r2/lib/promote.py b/r2/r2/lib/promote.py index ff227e8f2..a10c27f16 100644 --- a/r2/r2/lib/promote.py +++ b/r2/r2/lib/promote.py @@ -200,6 +200,7 @@ class RenderableCampaign(): transactions = get_transactions(link, campaigns) live_campaigns = scheduled_campaigns_by_link(link) user_is_sponsor = c.user_is_sponsor + today = promo_datetime_now().date() r = [] for camp in campaigns: transaction = transactions.get(camp._id) @@ -214,9 +215,10 @@ class RenderableCampaign(): cpm = getattr(camp, 'cpm', g.cpm_selfserve.pennies) sr = camp.sr_name live = camp._id in live_campaigns + pending = today < to_date(camp.start_date) complete = (transaction and (transaction.is_charged() or transaction.is_refund()) and - not live) + not (live or pending)) status = {'paid': bool(transaction), 'complete': complete,