This means that stylesheets can have all the advantages of other static
files, such as not having session cookies in the request. In addition,
it also means that subreddit objects are drastically smaller in memcache
which saves internal bandwidth and increases cache capacity.
Previously, if the current extension were not in allowed_render_styles,
the error's HTTP status code would be swallowed and turned into a 200.
This meant that 404ing stylesheets were actually sending back the text
"404" as an "OK" stylesheet.
To view information about a user, one must visit
/user/{username}/overview.json, etc., but the documentation had said one
should visit /{username}/overview.json, etc.
This patch makes us use the new DenormalizedRelation-based
CommentVotesByAccount for reads.
This continues dual-writing of votes to LinkVote/CommentVote.
This is a short-term solution until we figure out a better place to
store this information. Currently, the property-getters are generating
way too much traffic to Cassandra and we should continue using the old
storage location for the latest revision.
This change will make it possible to track traffic by campaign instead of just
by link.
Note that, as is, this change will cause the campaign fullname to be included
as part of the subreddit string in traffic_thingtarget and traffic_clicktarget,
two tables that are not currently used anywhere in the app.
To complete campaign traffic, the TargetedClickthroughsByCodename and
TargetedImpressionsByCodename in lib/traffic.py:make_report() will need to
be updated to store the campaign codename instead of link codename when
available.
This fixes a bug where get_promotions_cached was returning the same campaign
id (the last one in the loop) for all promoted links. This bug doesn't affect
anything on the live site, but it means the per-campaign traffic data logged
prior to the fix will be inaccurate.