1
Fork 0
This repository has been archived on 2023-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
theorangeone.net-legacy/project/pages/views.py
2016-04-05 22:37:37 +01:00

43 lines
1.5 KiB
Python

import os.path
from django.views.generic import FormView
from django.conf import settings
from django.http import HttpResponse, Http404
from django.template.loader import get_template
from .utils import get_context, parse_content, get_title_from_markdown
from project.common.forms import ContactForm
def page_view(request, path):
template = None
if path.endswith('/'):
path = path[:-1]
if os.path.isdir(os.path.join(settings.BASE_DIR, 'templates', path)):
path = os.path.join(path, 'index')
for extension in ['md', 'html']:
try:
template = get_template("{}.{}".format(path, extension))
break
except:
pass
if not template:
raise Http404
context = get_context(path)
parsed_content = parse_content(template.render(context, request), extension)
if extension == 'md':
template = get_template('markdown_content.html')
context['markdown_content'] = parsed_content
context['page_title'] = get_title_from_markdown(parsed_content)
parsed_content = template.render(context, request)
return HttpResponse(parsed_content)
class AboutView(FormView):
template_name = 'about/index.html'
success_url = '/about/?sent'
form_class = ContactForm
def get_context_data(self, **kwargs):
context = dict(super().get_context_data(**kwargs), **get_context('/about'))
context['sent'] = 'sent' not in self.request.GET
return context