Allow for remote policy pages
This commit is contained in:
parent
d08324e159
commit
4d71da7ae1
|
@ -1,5 +1,6 @@
|
|||
import markdown_it
|
||||
from django.http import JsonResponse
|
||||
from django.shortcuts import redirect
|
||||
from django.templatetags.static import static
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.utils.safestring import mark_safe
|
||||
|
@ -79,13 +80,21 @@ class FlatPage(TemplateView):
|
|||
config_option = None
|
||||
title = None
|
||||
|
||||
def get_context_data(self):
|
||||
def get(self, request, *args, **kwargs):
|
||||
if self.config_option is None:
|
||||
raise ValueError("No config option provided")
|
||||
# Get raw content
|
||||
content = getattr(Config.system, self.config_option)
|
||||
# Render it
|
||||
html = markdown_it.MarkdownIt().render(content)
|
||||
self.content = getattr(Config.system, self.config_option)
|
||||
# If the content is a plain URL, then redirect to it instead
|
||||
if (
|
||||
"\n" not in self.content
|
||||
and " " not in self.content
|
||||
and "://" in self.content
|
||||
):
|
||||
return redirect(self.content)
|
||||
return super().get(request, *args, **kwargs)
|
||||
|
||||
def get_context_data(self):
|
||||
html = markdown_it.MarkdownIt().render(self.content)
|
||||
return {
|
||||
"title": self.title,
|
||||
"content": mark_safe(html),
|
||||
|
|
|
@ -174,17 +174,17 @@ class PoliciesSettings(AdminSettingsPage):
|
|||
options = {
|
||||
"policy_terms": {
|
||||
"title": "Terms of Service Page",
|
||||
"help_text": "Will only be shown if it has content. Use Markdown for formatting.",
|
||||
"help_text": "Will only be shown if it has content. Use Markdown for formatting.\nIf you would like to redirect elsewhere, enter just a URL.",
|
||||
"display": "textarea",
|
||||
},
|
||||
"policy_privacy": {
|
||||
"title": "Privacy Policy Page",
|
||||
"help_text": "Will only be shown if it has content. Use Markdown for formatting.",
|
||||
"help_text": "Will only be shown if it has content. Use Markdown for formatting.\nIf you would like to redirect elsewhere, enter just a URL.",
|
||||
"display": "textarea",
|
||||
},
|
||||
"policy_rules": {
|
||||
"title": "Server Rules Page",
|
||||
"help_text": "Will only be shown if it has content. Use Markdown for formatting.",
|
||||
"help_text": "Will only be shown if it has content. Use Markdown for formatting.\nIf you would like to redirect elsewhere, enter just a URL.",
|
||||
"display": "textarea",
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue