mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-04-27 03:00:12 -04:00
Future date limit on creating campaigns.
This commit is contained in:
@@ -327,6 +327,7 @@ authorizenetkey =
|
||||
min_promote_bid = 20
|
||||
max_promote_bid = 9999
|
||||
min_promote_future = 2
|
||||
max_promote_future = 93
|
||||
|
||||
# traffic log processing
|
||||
TRAFFIC_ACCESS_KEY =
|
||||
|
||||
@@ -509,10 +509,11 @@ class PromoteController(ListingController):
|
||||
@validatedForm(VSponsor('link_id'),
|
||||
VModhash(),
|
||||
dates=VDateRange(['startdate', 'enddate'],
|
||||
earliest=promote.promo_datetime_now(offset=1),
|
||||
reference_date=promote.promo_datetime_now,
|
||||
business_days=True,
|
||||
sponsor_override=True),
|
||||
earliest=promote.promo_datetime_now(offset=1),
|
||||
latest=promote.promo_datetime_now(offset=g.max_promote_future),
|
||||
reference_date=promote.promo_datetime_now,
|
||||
business_days=True,
|
||||
sponsor_override=True),
|
||||
link=VLink('link_id'),
|
||||
bid=VBid('bid', min=0, max=g.max_promote_bid,
|
||||
coerce=False, error=errors.BAD_BID),
|
||||
@@ -545,9 +546,9 @@ class PromoteController(ListingController):
|
||||
field="startdate")
|
||||
|
||||
if (form.has_errors('startdate', errors.BAD_DATE,
|
||||
errors.DATE_TOO_EARLY) or
|
||||
form.has_errors('enddate', errors.BAD_DATE,
|
||||
errors.DATE_TOO_EARLY, errors.BAD_DATE_RANGE)):
|
||||
errors.DATE_TOO_EARLY, errors.DATE_TOO_LATE) or
|
||||
form.has_errors('enddate', errors.BAD_DATE, errors.DATE_TOO_EARLY,
|
||||
errors.DATE_TOO_LATE, errors.BAD_DATE_RANGE)):
|
||||
return
|
||||
|
||||
# Limit the number of PromoCampaigns a Link can have
|
||||
|
||||
@@ -128,6 +128,7 @@ class Globals(object):
|
||||
'wiki_max_page_name_length',
|
||||
'wiki_max_page_separators',
|
||||
'min_promote_future',
|
||||
'max_promote_future',
|
||||
],
|
||||
|
||||
ConfigValue.float: [
|
||||
|
||||
@@ -3345,23 +3345,26 @@ class PromoteLinkForm(Templated):
|
||||
)
|
||||
self.bids.append(row)
|
||||
|
||||
# reference "now" to what we use for promtions
|
||||
# determine date range
|
||||
now = promote.promo_datetime_now()
|
||||
|
||||
# min date is the day before the first possible start date.
|
||||
self.promote_date_today = now
|
||||
mindate = make_offset_date(now, g.min_promote_future,
|
||||
business_days=True)
|
||||
mindate -= datetime.timedelta(1)
|
||||
if c.user_is_sponsor:
|
||||
mindate = now
|
||||
elif promote.is_accepted(link):
|
||||
mindate = make_offset_date(now, 1, business_days=True)
|
||||
else:
|
||||
mindate = make_offset_date(now, g.min_promote_future,
|
||||
business_days=True)
|
||||
|
||||
startdate = mindate + datetime.timedelta(1)
|
||||
enddate = startdate + datetime.timedelta(3)
|
||||
maxstart = now + datetime.timedelta(days=g.max_promote_future-1)
|
||||
self.maxstart = maxstart.strftime("%m/%d/%Y")
|
||||
maxend = now + datetime.timedelta(days=g.max_promote_future)
|
||||
self.maxend = maxend.strftime("%m/%d/%Y")
|
||||
|
||||
self.startdate = startdate.strftime("%m/%d/%Y")
|
||||
self.startdate = mindate.strftime("%m/%d/%Y")
|
||||
enddate = mindate + datetime.timedelta(days=2)
|
||||
self.enddate = enddate.strftime("%m/%d/%Y")
|
||||
|
||||
self.mindate = mindate.strftime("%m/%d/%Y")
|
||||
|
||||
self.subreddit_selector = SubredditSelector()
|
||||
|
||||
self.link = promote.wrap_promoted(link)
|
||||
@@ -3378,8 +3381,8 @@ class PromoteLinkForm(Templated):
|
||||
srnames.update(names)
|
||||
srs = Subreddit._by_name(srnames)
|
||||
srs[''] = Frontpage
|
||||
inv_start = startdate
|
||||
inv_end = startdate + datetime.timedelta(days=14)
|
||||
inv_start = mindate
|
||||
inv_end = mindate + datetime.timedelta(days=14)
|
||||
sr_inventory = inventory.get_available_pageviews(
|
||||
srs.values(), inv_start, inv_end, datestr=True)
|
||||
|
||||
|
||||
@@ -275,14 +275,12 @@ ${self.javascript_setup()}
|
||||
<tr>
|
||||
<th>${_("start")}</th>
|
||||
<td class="prefright">
|
||||
<%
|
||||
mindate = thing.startdate
|
||||
if c.user_is_sponsor:
|
||||
mindate = thing.promote_date_today.strftime('%m/%d/%Y')
|
||||
%>
|
||||
<input type="hidden" id="date-min" name="date-min" value="${mindate}" />
|
||||
<input type="hidden" id="date-min" name="date-min" value="${thing.startdate}">
|
||||
<input type="hidden" id="date-start-max" name="date-start-max" value="${thing.maxstart}">
|
||||
<input type="hidden" id="date-end-max" name="date-end-max" value="${thing.maxend}">
|
||||
<%self:datepicker name="startdate", value="${thing.startdate}"
|
||||
minDateSrc="date-min" initfuncname="init_startdate">
|
||||
minDateSrc="date-min" maxDateSrc="date-start-max"
|
||||
initfuncname="init_startdate">
|
||||
function(elem) {
|
||||
check_enddate(elem, $("#enddate"));
|
||||
r.sponsored.on_date_change();
|
||||
@@ -294,8 +292,8 @@ ${self.javascript_setup()}
|
||||
<th>${_("end")}</th>
|
||||
<td class="prefright">
|
||||
<%self:datepicker name="enddate", value="${thing.enddate}"
|
||||
minDateSrc="startdate" initfuncname="init_enddate"
|
||||
min_date_offset="86400000">
|
||||
minDateSrc="startdate" maxDateSrc="date-end-max"
|
||||
initfuncname="init_enddate" min_date_offset="86400000">
|
||||
function(elem) { r.sponsored.on_date_change(); }
|
||||
</%self:datepicker>
|
||||
${error_field("BAD_DATE_RANGE", "enddate", "div")}
|
||||
|
||||
Reference in New Issue
Block a user