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())