diff options
author | Andrew Godwin | 2022-12-17 15:30:51 -0700 |
---|---|---|
committer | Andrew Godwin | 2022-12-17 15:30:51 -0700 |
commit | 4d71da7ae1c961f9ecc59b449f5c5d6661931988 (patch) | |
tree | e5fb5820db21070760c58fabdd50d40db9a065a3 /core | |
parent | d08324e1590df4a7da19b70430e4abe364850d9b (diff) | |
download | takahe-4d71da7ae1c961f9ecc59b449f5c5d6661931988.tar.gz takahe-4d71da7ae1c961f9ecc59b449f5c5d6661931988.tar.bz2 takahe-4d71da7ae1c961f9ecc59b449f5c5d6661931988.zip |
Allow for remote policy pages
Diffstat (limited to 'core')
-rw-r--r-- | core/views.py | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/core/views.py b/core/views.py index 71db5fd..462a041 100644 --- a/core/views.py +++ b/core/views.py @@ -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), |