from django.shortcuts import render
from django.http import HttpResponse
from django.template import Template
from django.template import Context
import markdown
from bs4 import BeautifulSoup
from .models import Site, Page
_TEMPLATE = """
{{site_header}}
{{page_body}}
"""
_BODY = """
SAVE the DATE
JAMES AND FIONNUALA
"""
_HEADER = """
{{site.title}}
"""
def get_site_header(site):
template = Template(_HEADER)
context = Context({"site": site})
return template.render(context)
def get_index_body(site):
template = Template(_BODY)
context = Context({"site": site})
return template.render(context)
def index(request):
site = Site.objects.get(pk=1)
template = Template(_TEMPLATE)
context = Context({"site": site,
"site_header" : get_site_header(site),
"page_body" : get_index_body(site)})
soup = BeautifulSoup(template.render(context))
return HttpResponse(soup.prettify())
def schedule(request):
return get_page("Schedule")
def things_to_do(request):
return get_page("ThingsToDo")
def travel(request):
return get_page("Travel")
_PAGE_HEADER = """
"""
def get_page_header(site: Site):
pages = site.page_set.filter(navigable=True)
template = Template(_PAGE_HEADER)
context = Context({"pages", pages})
return template.render(context)
def get_page_body(site: Site, page: Page):
header = get_page_header(site)
body = markdown.markdown(page.content)
return header + body
def get_page(name:str):
site = Site.objects.get(pk=1)
page = Page.objects.get(name=name)
template = Template(_TEMPLATE)
context = Context({"site": site,
"site_header" : get_site_header(site),
"page_body" : get_page_body(site, page)})
soup = BeautifulSoup(template.render(context))
return HttpResponse(soup.prettify())