Delete traffic viewers.

This commit is contained in:
Brian Simpson
2014-02-11 19:25:39 -05:00
parent 8df7d74af8
commit d74b0baa85
9 changed files with 2 additions and 125 deletions

View File

@@ -341,7 +341,6 @@ def make_map():
mc('/api/:action', controller='promote',
requirements=dict(action=("promote|unpromote|edit_promo|link_thumb|"
"freebie|promote_note|update_pay|refund|"
"traffic_viewer|rm_traffic_viewer|"
"edit_campaign|delete_campaign|meta_promo|"
"add_roadblock|rm_roadblock|check_inventory|"
"refund_campaign|terminate_campaign")))

View File

@@ -1080,7 +1080,7 @@ class FrontController(RedditController):
@require_oauth2_scope("modtraffic")
@validate(VTrafficViewer('link'),
@validate(VSponsor('link'),
link=VLink('link'),
campaign=VPromoCampaign('campaign'),
before=VDate('before', format='%Y%m%d%H'),

View File

@@ -50,7 +50,6 @@ from r2.lib.pages import (
Roadblocks,
UploadedImage,
)
from r2.lib.pages.trafficpages import TrafficViewerList
from r2.lib.pages.things import wrap_links
from r2.lib.system_messages import user_added_messages
from r2.lib.utils import make_offset_date, to_date, to36
@@ -691,46 +690,6 @@ class PromoteController(ListingController):
rc = RenderableCampaign.from_campaigns(link, campaign)
jquery.update_campaign(campaign._fullname, rc.render_html())
@validatedForm(VSponsor('container'),
VModhash(),
user=VExistingUname('name'),
thing=VByName('container'))
def POST_traffic_viewer(self, form, jquery, user, thing):
"""
Adds a user to the list of users allowed to view a promoted
link's traffic page.
"""
if not form.has_errors("name",
errors.USER_DOESNT_EXIST, errors.NO_USER):
form.set_inputs(name="")
form.set_html(".status:first", _("added"))
if promote.add_traffic_viewer(thing, user):
user_row = TrafficViewerList(thing).user_row('traffic_viewer', user)
jquery(".traffic_viewer-table").show(
).find("table").insert_table_rows(user_row)
# send the user a message
msg = user_added_messages['traffic']['pm']['msg']
subj = user_added_messages['traffic']['pm']['subject']
if msg and subj:
d = dict(url=thing.make_permalink_slow(),
traffic_url=promote.promo_traffic_url(thing),
title=thing.title)
msg = msg % d
item, inbox_rel = Message._new(c.user, user,
subj, msg, request.ip)
queries.new_message(item, inbox_rel)
@validatedForm(VSponsor('container'),
VModhash(),
iuser=VByName('id'),
thing=VByName('container'))
def POST_rm_traffic_viewer(self, form, jquery, iuser, thing):
if thing and iuser:
promote.rm_traffic_viewer(thing, iuser)
@validatedForm(VSponsor('link'),
VModhash(),
link=VByName("link"),

View File

@@ -2926,14 +2926,6 @@ class UserTableItem(Templated):
def __repr__(self):
return '<UserTableItem "%s">' % self.user.name
class TrafficTableItem(UserTableItem):
type = "traffic_viewer"
remove_action = "rm_traffic_viewer"
@property
def container_name(self):
return self.link._fullname
class RelTableItem(UserTableItem):
def __init__(self, rel, **kw):
self._id = rel._id

View File

@@ -36,8 +36,7 @@ from r2.lib import promote
from r2.lib.db.sorts import epoch_seconds
from r2.lib.menus import menu
from r2.lib.menus import NavButton, NamedButton, PageNameNav, NavMenu
from r2.lib.pages.pages import Reddit, TimeSeriesChart, UserList, TabbedPane
from r2.lib.pages import TrafficTableItem
from r2.lib.pages.pages import Reddit, TimeSeriesChart, TabbedPane
from r2.lib.promote import cost_per_mille, cost_per_click
from r2.lib.template_helpers import format_number
from r2.lib.utils import Storage, to_date, timedelta_by_name
@@ -535,8 +534,6 @@ class PromotedLinkTraffic(Templated):
else 'all campaigns')
editable = c.user_is_sponsor or c.user._id == thing.author_id
self.viewer_list = TrafficViewerList(thing, editable)
self.traffic_last_modified = traffic.get_traffic_last_modified()
self.traffic_lag = (datetime.datetime.utcnow() -
self.traffic_last_modified)
@@ -739,36 +736,6 @@ class PromotedLinkTraffic(Templated):
return out.getvalue()
class TrafficViewerList(UserList):
"""Traffic share list on /traffic/*"""
destination = "traffic_viewer"
remove_action = "rm_traffic_viewer"
type = "traffic_viewer"
def __init__(self, link, editable=True):
self.link = link
UserList.__init__(self, editable=editable)
@property
def form_title(self):
return _("share traffic")
@property
def table_title(self):
return _("current viewers")
def user_ids(self):
return promote.traffic_viewers(self.link)
@property
def container_name(self):
return self.link._fullname
def user_row(self, row_type, user, editable=True):
return TrafficTableItem(user)
class SubredditTrafficReport(Templated):
def __init__(self):
self.srs, self.invalid_srs, self.report = [], [], []

View File

@@ -152,34 +152,6 @@ def is_live_on_sr(link, sr):
return bool(live_campaigns_by_link(link, sr=sr))
# These could be done with relationships, but that seeks overkill as
# we never query based on user and only check per-thing
def is_traffic_viewer(thing, user):
return (c.user_is_sponsor or user._id == thing.author_id or
user._id in getattr(thing, "promo_traffic_viewers", set()))
def add_traffic_viewer(thing, user):
viewers = getattr(thing, "promo_traffic_viewers", set()).copy()
if user._id not in viewers:
viewers.add(user._id)
thing.promo_traffic_viewers = viewers
thing._commit()
return True
return False
def rm_traffic_viewer(thing, user):
viewers = getattr(thing, "promo_traffic_viewers", set()).copy()
if user._id in viewers:
viewers.remove(user._id)
thing.promo_traffic_viewers = viewers
thing._commit()
return True
return False
def traffic_viewers(thing):
return sorted(getattr(thing, "promo_traffic_viewers", set()))
def update_promote_status(link, status):
set_promote_status(link, status)
hooks.get_hook('promote.edit_promotion').call(link=link)

View File

@@ -993,11 +993,6 @@ class VEmployee(VVerifiedUser):
VVerifiedUser.run(self)
class VTrafficViewer(VSponsor):
def user_test(self, thing):
return (VSponsor.user_test(self, thing) or
promote.is_traffic_viewer(thing, c.user))
class VSrModerator(Validator):
def __init__(self, fatal=True, perms=(), *a, **kw):
# If True, abort rather than setting an error

View File

@@ -4907,11 +4907,6 @@ div.timeseries span.title {
}
}
.traffic_viewer-table {
margin-bottom: 2em;
margin-left: 1em;
}
.promo-traffic .content .tabmenu li {
font-size: 1.3em;
}

View File

@@ -152,8 +152,6 @@ ${unsafe(safemarkdown(strings.traffic_promoted_link_explanation))}
${unsafe(safemarkdown(strings.traffic_help_email % dict(email=g.selfserve_support_email)))}
${thing.viewer_list}
${make_campaign_table()}
${make_traffic_table()}