Skip to content
This repository was archived by the owner on Jan 15, 2019. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions knowledge/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,13 @@ def internal(self, save=True):


class Question(KnowledgeBase):

QBODY_HELP_TEXT = 'Please offer details.'
if settings.DJANGO_KNOWLEDGE_MARKUP == 'Markdown':
QBODY_HELP_TEXT += ' Markdown enabled.'
elif settings.DJANGO_KNOWLEDGE_MARKUP == 'Textile':
QBODY_HELP_TEXT += ' Textile enabled.'

is_question = True
_requesting_user = None

Expand All @@ -152,7 +159,7 @@ class Question(KnowledgeBase):
help_text=_('Enter your question or suggestion.'))
body = models.TextField(blank=True, null=True,
verbose_name=_('Description'),
help_text=_('Please offer details. Markdown enabled.'))
help_text=_(QBODY_HELP_TEXT))

status = models.CharField(
verbose_name=_('Status'),
Expand Down Expand Up @@ -249,14 +256,21 @@ def url(self):


class Response(KnowledgeBase):

RBODY_HELP_TEXT = 'Please enter your response.'
if settings.DJANGO_KNOWLEDGE_MARKUP == 'Markdown':
RBODY_HELP_TEXT += ' Markdown enabled.'
elif settings.DJANGO_KNOWLEDGE_MARKUP == 'Textile':
RBODY_HELP_TEXT += ' Textile enabled.'

is_response = True

question = models.ForeignKey('knowledge.Question',
related_name='responses')

body = models.TextField(blank=True, null=True,
verbose_name=_('Response'),
help_text=_('Please enter your response. Markdown enabled.'))
help_text=_(RBODY_HELP_TEXT))
status = models.CharField(
verbose_name=_('Status'),
max_length=32, choices=STATUSES_EXTENDED,
Expand Down
2 changes: 2 additions & 0 deletions knowledge/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@
SLUG_URLS = getattr(settings, 'KNOWLEDGE_SLUG_URLS', True)

BASE_TEMPLATE = getattr(settings, 'KNOWLEDGE_BASE_TEMPLATE', 'django_knowledge/base.html')

DJANGO_KNOWLEDGE_MARKUP = getattr(settings, 'KNOWLEDGE_BASE_MARKUP', False)
5 changes: 2 additions & 3 deletions knowledge/templates/django_knowledge/thread.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{% extends 'django_knowledge/inner.html' %}

{% load i18n %}
{% load markup %}
{% load knowledge_tags %}
{% load url from future %}

Expand All @@ -23,7 +22,7 @@ <h5>{{ question.get_name }} <span class="quiet">
&nbsp;{{ question.added }}
</span></h5>

{{ question.body|striptags|markdown }}
{% render_markup question.body|striptags %}

{% include "django_knowledge/mod_bar.html" with allowed_mods=allowed_mods.question type="question" node=question %}
</div>
Expand All @@ -48,7 +47,7 @@ <h5>{{ response.get_name }} <span class="quiet">
&nbsp;{{ response.added }}
</span></h5>

{{ response.body|striptags|markdown }}
{% render_markup response.body|striptags %}

{% include "django_knowledge/mod_bar.html" with allowed_mods=allowed_mods.response type="response" node=response %}
</div>
Expand Down
20 changes: 20 additions & 0 deletions knowledge/templatetags/knowledge_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@

from django import template

from knowledge import settings

if settings.DJANGO_KNOWLEDGE_MARKUP == 'Markdown':
import markdown
elif settings.DJANGO_KNOWLEDGE_MARKUP == 'Textile':
import textile

register = template.Library()


Expand All @@ -25,3 +32,16 @@ def page_query(request, page_num):
qs = request.GET.copy()
qs['page'] = page_num
return qs.urlencode().replace('&', '&amp;')

@register.simple_tag
def render_markup(bodyblock):
"""
Based on setting value, convert body text using
the correct renderer, else just return string
"""
if settings.DJANGO_KNOWLEDGE_MARKUP == 'Markdown':
return markdown.markdown(bodyblock)
elif settings.DJANGO_KNOWLEDGE_MARKUP == 'Textile':
return textile.textile(bodyblock)
else:
return bodyblock