Skip to content
This repository was archived by the owner on Apr 29, 2022. It is now read-only.

Commit 10d567e

Browse files
committed
Fetch sponsor data synchronously on the homepage.
1 parent d065e2e commit 10d567e

File tree

6 files changed

+13
-72
lines changed

6 files changed

+13
-72
lines changed

conference/homepage.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
from django.conf import settings
2-
from django.http import JsonResponse
32
from django.template.response import TemplateResponse
43
from django.utils.lorem_ipsum import words, paragraphs
54

6-
75
from .models import Sponsor
86

97

@@ -30,15 +28,6 @@ def homepage(request):
3028
)
3129

3230

33-
def homepage_sponsors(request):
34-
# Sponsor data to be rendered on the homepage
35-
sponsors = Sponsor.objects.filter(
36-
sponsorincome__conference=settings.CONFERENCE_CONFERENCE
37-
).values('sponsor', 'url', 'logo', 'alt_text', 'title_text')
38-
39-
return JsonResponse({'sponsors': list(sponsors)})
40-
41-
4231
def generic_content_page(request):
4332
return TemplateResponse(
4433
request, 'conference/content/generic_content_page.html', {

conference/templatetags/conference.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import re
33

44
from django import template
5+
from django.conf import settings
56
from django.contrib.contenttypes.models import ContentType
67
from django.urls import reverse
78

@@ -102,6 +103,13 @@ def profile_data(uid):
102103
return dataaccess.profile_data(uid)
103104

104105

106+
@register.simple_tag()
107+
def sponsor_data():
108+
return models.Sponsor.objects.filter(
109+
sponsorincome__conference=settings.CONFERENCE_CONFERENCE
110+
)
111+
112+
105113
@register.filter
106114
def attrib_(ob, attrib):
107115
try:

pycon/urls.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
from conference.homepage import (
1313
generic_content_page,
1414
generic_content_page_with_sidebar,
15-
homepage_sponsors,
1615
)
1716
from conference.news import news_list
1817
from conference.talk_voting import urlpatterns as talk_voting_urls
@@ -26,7 +25,6 @@
2625
admin.site.index_template = 'p3/admin/index.html'
2726

2827
urlpatterns = [
29-
re_path(r'^sponsors/$', homepage_sponsors, name='homepage_sponsors'),
3028
re_path(r'^generic-content-page/$', generic_content_page),
3129
re_path(r'^generic-content-page/with-sidebar/$', generic_content_page_with_sidebar),
3230
re_path(r'^user-panel/', include((user_panel_urls, 'conference'), namespace="user_panel")),

templates/conference/homepage/_sponsors_cms.html

Lines changed: 0 additions & 52 deletions
This file was deleted.

templates/conference/homepage/home_template.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
{% extends "conference/base.html" %}
22

3+
{% load conference %}
4+
35
{% block body %}
46

57
{% include "conference/header/_with_jumbotron.html" %}
@@ -8,7 +10,8 @@
810

911
{% include "conference/homepage/_venue.html" with CCD_GOOGLEMAPS_URL="https://goo.gl/maps/X57SxAPbiJV3Fcig9" CCD_OSM_URL="https://www.openstreetmap.org/way/60270053" %}
1012

11-
{% include "conference/homepage/_sponsors_cms.html" %}
13+
{% sponsor_data as sponsors %}
14+
{% include "conference/homepage/_sponsors.html" with sponsors=sponsors%}
1215

1316
{% include "conference/footer/footer.html" %}
1417

tests/test_homepage.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import pytest
2-
31
from django.conf import settings
42

53
from tests.common_tools import template_used
@@ -15,7 +13,7 @@ def test_get_homepage(db, client):
1513
assert response.status_code == 200
1614
assert template_used(response, "conference/homepage/home_template.html")
1715
assert template_used(response, "conference/homepage/_venue.html")
18-
assert template_used(response, "conference/homepage/_sponsors_cms.html")
16+
assert template_used(response, "conference/homepage/_sponsors.html")
1917
assert template_used(response, "conference/homepage/_schedule_overview.html")
2018
assert template_used(response, "conference/header/_with_jumbotron.html")
2119
assert b"EuroPython 2020" in response.content
@@ -51,9 +49,6 @@ def test_homepage_doesnt_contain_sponsor_if_income_for_different_conference(
5149
assert sponsor.title_text not in response.content.decode()
5250

5351

54-
@pytest.mark.skip(
55-
reason="Sponsor data is fetched asynchronously via JS; need a different way to tests this"
56-
)
5752
def test_homepage_contains_sponsors_if_income_for_current_conference(
5853
db, client
5954
):

0 commit comments

Comments
 (0)