diff --git a/readthedocs/donate/models.py b/readthedocs/donate/models.py index dcdfaae1f..de87d44bf 100644 --- a/readthedocs/donate/models.py +++ b/readthedocs/donate/models.py @@ -148,6 +148,15 @@ class SupporterPromo(models.Model): (float(self.total_clicks()) / float(self.total_views())) * 100 ) + def report_html_text(self): + """ + Include the link in the html text. + + Only used for reporting, + doesn't include any click fruad protection! + """ + return self.text.replace('', "" % self.link) + class BaseImpression(models.Model): date = models.DateField(_('Date')) @@ -178,18 +187,22 @@ class BaseImpression(models.Model): class PromoImpressions(BaseImpression): - """Track stats around how successful this promo has been. + """ + Track stats around how successful this promo has been. - Indexed one per promo per day.""" + Indexed one per promo per day. + """ promo = models.ForeignKey(SupporterPromo, related_name='impressions', blank=True, null=True) class ProjectImpressions(BaseImpression): - """Track stats for a specific project and promo. + """ + Track stats for a specific project and promo. - Indexed one per project per promo per day""" + Indexed one per project per promo per day + """ promo = models.ForeignKey(SupporterPromo, related_name='project_impressions', blank=True, null=True) diff --git a/readthedocs/donate/templates/donate/promo_detail.html b/readthedocs/donate/templates/donate/promo_detail.html index 46fc257fa..714d192a7 100644 --- a/readthedocs/donate/templates/donate/promo_detail.html +++ b/readthedocs/donate/templates/donate/promo_detail.html @@ -15,6 +15,7 @@ Total Clicks for all shown promos: {{ total_clicks }}

+
{% for promo in promos %}

@@ -22,14 +23,38 @@ Results for {{ promo.name }} ({{ promo.analytics_id }}) over last {{ days }} day

- -
-{{ promo.text|safe }} + +
+ {% if promo.programming_language %} +

+ Filtered Language: {{ promo.programming_language }} +

+ {% endif %} + + {% if promo.geo_filters.count %} +

+ Filtered Geos: + {% for geo in promo.geo_filters.all %} + {{ geo.countries.all|join:", " }} + {% endfor %} +

+ {% endif %} +
+ + + + + +
+ +
+ {{ promo.report_html_text|safe }} +
+ +
-
- @@ -56,6 +81,7 @@ Results for {{ promo.name }} ({{ promo.analytics_id }}) over last {{ days }} day
Day (UTC)
{% endfor %} +
{% else %} diff --git a/readthedocs/donate/views.py b/readthedocs/donate/views.py index bcc82f215..badb7fe5c 100644 --- a/readthedocs/donate/views.py +++ b/readthedocs/donate/views.py @@ -152,7 +152,7 @@ def view_proxy(request, promo_id, hash): return redirect(promo.image) -def add_promo_data(display_type): +def _add_promo_data(display_type): promo_queryset = SupporterPromo.objects.filter(live=True, display_type=display_type) promo_obj = promo_queryset.order_by('?').first() if promo_obj: @@ -164,7 +164,7 @@ def add_promo_data(display_type): def promo_500(request, template_name='donate/promo_500.html', **kwargs): """A simple 500 handler so we get media""" - promo_dict = add_promo_data(display_type='error') + promo_dict = _add_promo_data(display_type='error') r = render_to_response(template_name, context_instance=RequestContext(request), context={ @@ -176,7 +176,7 @@ def promo_500(request, template_name='donate/promo_500.html', **kwargs): def promo_404(request, template_name='donate/promo_404.html', **kwargs): """A simple 404 handler so we get media""" - promo_dict = add_promo_data(display_type='error') + promo_dict = _add_promo_data(display_type='error') response = get_redirect_response(request, path=request.get_full_path()) if response: return response