PromoCampaign: add ndays property.

This commit is contained in:
Brian Simpson
2013-08-08 12:27:09 -04:00
parent 704902b6f5
commit 0d7736ac39
4 changed files with 8 additions and 7 deletions

View File

@@ -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

View File

@@ -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,

View File

@@ -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

View File

@@ -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