Simplify oversold message.

Only show the total available for given target and dates, rather than
breaking it down by date.
This commit is contained in:
Brian Simpson
2013-08-20 11:10:43 -04:00
parent 421dd824b0
commit 3f4ac47b16
3 changed files with 19 additions and 16 deletions

View File

@@ -551,8 +551,14 @@ class PromoteController(ListingController):
oversold = inventory.get_oversold(sr or Frontpage, start, end,
daily_request, ignore)
if oversold:
msg_params = {'daily_request': format_number(daily_request,
locale=c.locale)}
min_daily = min(oversold.values())
available = min_daily * ndays
msg_params = {
'available': format_number(available, locale=c.locale),
'target': sr.name if sr else 'the frontpage',
'start': start.strftime('%m/%d/%Y'),
'end': end.strftime('%m/%d/%Y'),
}
c.errors.add(errors.OVERSOLD_DETAIL, field='bid',
msg_params=msg_params)
form.has_errors('bid', errors.OVERSOLD_DETAIL)

View File

@@ -79,7 +79,7 @@ error_list = dict((
('NO_EMAILS', _('please enter at least one email address')),
('TOO_MANY_EMAILS', _('please only share to %(num)s emails at a time.')),
('OVERSOLD', _('that subreddit has already been oversold on %(start)s to %(end)s. Please pick another subreddit or date.')),
('OVERSOLD_DETAIL', _('We have insufficient inventory to fulfill your requested budget, target, and dates. Requested %(daily_request)s impressions per day.')),
('OVERSOLD_DETAIL', _("We have insufficient inventory to fulfill your requested budget, target, and dates. Only %(available)s impressions available on %(target)s from %(start)s to %(end)s.")),
('BAD_DATE', _('please provide a date of the form mm/dd/yyyy')),
('BAD_DATE_RANGE', _('the dates need to be in order and not identical')),
('DATE_RANGE_TOO_LARGE', _('you must choose a date range of less than %(days)s days')),

View File

@@ -95,24 +95,21 @@ r.sponsored = {
})
if (!_.isEmpty(oversold)) {
var oversold_dates = _.keys(oversold)
var minDaily = _.min(_.values(oversold)),
available = minDaily * ndays
var message = r._("We have insufficient inventory to fulfill" +
" your requested budget, target, and dates." +
" Requested %(daily_request)s impressions " +
"per day."
).format({daily_request: r.utils.prettyNumber(daily_request)})
" Only %(available)s impressions available" +
" on %(target)s from %(start)s to %(end)s."
).format({
available: r.utils.prettyNumber(available),
target: targeted ? srname : 'the frontpage',
start: startdate,
end: enddate
})
$(".OVERSOLD_DETAIL").text(message).show()
var available_list = $('<ul>').appendTo(".OVERSOLD_DETAIL")
_.each(oversold, function(num, datestr) {
var available_msg = r._("%(num)s available on %(date)s").format({
num: r.utils.prettyNumber(num),
date: datestr
})
available_list.append($('<li>').text(available_msg))
})
r.sponsored.disable_form($form)
} else {
$(".OVERSOLD_DETAIL").hide()