From 0d7736ac39d555d54a64800d3472b0631e799a1d Mon Sep 17 00:00:00 2001 From: Brian Simpson Date: Thu, 8 Aug 2013 12:27:09 -0400 Subject: [PATCH] PromoCampaign: add ndays property. --- r2/r2/lib/inventory.py | 3 +-- r2/r2/lib/pages/pages.py | 6 ++---- r2/r2/lib/promote.py | 2 +- r2/r2/models/promo.py | 4 ++++ 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/r2/r2/lib/inventory.py b/r2/r2/lib/inventory.py index e86f5e04d..6453d4d3f 100644 --- a/r2/r2/lib/inventory.py +++ b/r2/r2/lib/inventory.py @@ -114,8 +114,7 @@ def get_sold_pageviews(srs, start, end): continue sr_name = camp.sr_name or DefaultSR.name - ndays = (camp.end_date - camp.start_date).days - daily_impressions = camp.impressions / ndays + daily_impressions = camp.impressions / camp.ndays camp_dates = set(get_date_range(camp.start_date, camp.end_date)) for date in camp_dates.intersection(dates): ret[sr_name][date] += daily_impressions diff --git a/r2/r2/lib/pages/pages.py b/r2/r2/lib/pages/pages.py index 7b6e364ae..7ec61b7c5 100755 --- a/r2/r2/lib/pages/pages.py +++ b/r2/r2/lib/pages/pages.py @@ -3411,8 +3411,7 @@ class PromoAdminTool(Reddit): accounts = Account._byID(account_ids, data=True, return_dict=True) for link, campaign_id, scheduled_start, scheduled_end in scheduled: campaign = campaigns[campaign_id] - days = (campaign.end_date - campaign.start_date).days - bid_per_day = float(campaign.bid) / days + bid_per_day = float(campaign.bid) / campaign.ndays account = accounts[campaign.owner_id] promo_info[campaign._id] = { 'username': account.name, @@ -3990,10 +3989,9 @@ class PromoteReport(Templated): for camp in campaigns: link = links_by_id[camp.link_id] fullname = camp._fullname - camp_duration = (camp.end_date - camp.start_date).days effective_duration = (min(camp.end_date, self.end) - max(camp.start_date, self.start)).days - bid = camp.bid * (float(effective_duration) / camp_duration) + bid = camp.bid * (float(effective_duration) / camp.ndays) row = { 'link': link._id36, 'owner': owners[link.author_id].name, diff --git a/r2/r2/lib/promote.py b/r2/r2/lib/promote.py index 67a1243ad..7f908f8d8 100644 --- a/r2/r2/lib/promote.py +++ b/r2/r2/lib/promote.py @@ -193,7 +193,7 @@ class RenderableCampaign(): campaign_id36 = camp._id36 start_date = camp.start_date.strftime("%m/%d/%Y") end_date = camp.end_date.strftime("%m/%d/%Y") - ndays = (camp.end_date - camp.start_date).days + ndays = camp.ndays duration = strings.time_label % dict(num=ndays, time=ungettext("day", "days", ndays)) bid = "%.2f" % camp.bid diff --git a/r2/r2/models/promo.py b/r2/r2/models/promo.py index 0abf4ce2b..1cf5b5756 100644 --- a/r2/r2/models/promo.py +++ b/r2/r2/models/promo.py @@ -95,6 +95,10 @@ class PromoCampaign(Thing): ''' return cls._query(PromoCampaign.c.owner_id == account_id, data=True) + @property + def ndays(self): + return (self.end_date - self.start_date).days + def is_freebie(self): return self.trans_id < 0