Skip to content

Commit 3453ef8

Browse files
renzonrenzon
authored andcommitted
Implemented Discourse embedding on topics
close #279
1 parent d296c39 commit 3453ef8

File tree

6 files changed

+28
-1
lines changed

6 files changed

+28
-1
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
from django.contrib.auth.decorators import login_required
12
from django.shortcuts import render
23

34
from pythonpro.modules import facade
45

56

7+
@login_required
68
def detail(request, slug):
79
ctx = {'chapter': facade.get_chapter_with_contents(slug=slug)}
810
return render(request, 'chapters/chapter_detail.html', context=ctx)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
from django.contrib.auth.decorators import login_required
12
from django.shortcuts import render
23

34
from pythonpro.modules import facade
45

56

7+
@login_required
68
def detail(request, slug):
79
ctx = {'section': facade.get_section_with_contents(slug=slug)}
810
return render(request, 'sections/section_detail.html', ctx)

pythonpro/modules/templates/topics/topic_detail.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,22 @@ <h1 class="mt-4 mb-3">{{ topic.title }}</h1>
2424
<iframe src="https://player.vimeo.com/video/{{ topic.vimeo_id }}" width="640" height="360" frameborder="0"
2525
webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
2626
</div>
27+
28+
<div id='discourse-comments'></div>
29+
<script type="text/javascript">
30+
DiscourseEmbed = {
31+
discourseUrl: '{{ DISCOURSE_BASE_URL }}',
32+
discourseEmbedUrl: '{{ request.build_absolute_uri }}' };
33+
34+
(function () {
35+
var d = document.createElement('script');
36+
d.type = 'text/javascript';
37+
d.async = true;
38+
d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
39+
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
40+
})();
41+
</script>
42+
2743
</div>
2844
</div>
2945
</div>

pythonpro/modules/tests/test_topics_view.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import pytest
2+
from django.conf import settings
23
from django.urls import reverse
34
from model_mommy import mommy
45

@@ -94,3 +95,7 @@ def test_breadcrumb_current(resp, topic):
9495
resp,
9596
f'<li class="breadcrumb-item active" aria-current="page">{topic.title}</li>'
9697
)
98+
99+
100+
def test_discourse_url(resp, topic):
101+
dj_assert_contains(resp, f"discourseUrl: '{settings.DISCOURSE_BASE_URL}'")

pythonpro/modules/topics_views.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
from django.contrib.auth.decorators import login_required
12
from django.shortcuts import render
23

34
from pythonpro.modules import facade
45

56

7+
@login_required
68
def detail(request, slug):
79
ctx = {'topic': facade.get_topic_with_contents(slug=slug)}
810
return render(request, 'topics/topic_detail.html', context=ctx)

pythonpro/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
]
7474

7575
# Discourse config
76-
DISCOURSE_BASE_URL = 'https://forum.python.pro.br'
76+
DISCOURSE_BASE_URL = 'https://forum.python.pro.br/'
7777
DISCOURSE_SSO_SECRET = config('DISCOURSE_SSO_SECRET')
7878

7979
ROOT_URLCONF = 'pythonpro.urls'

0 commit comments

Comments
 (0)