Start moving personal site into db
This commit is contained in:
parent
fc7943f327
commit
f482cb562b
13 changed files with 211 additions and 53 deletions
BIN
wedding_site/primary/static/primary/fonts/Emitha-Script.otf
Executable file
BIN
wedding_site/primary/static/primary/fonts/Emitha-Script.otf
Executable file
Binary file not shown.
BIN
wedding_site/primary/static/primary/fonts/GlacialIndifference-Bold.otf
Executable file
BIN
wedding_site/primary/static/primary/fonts/GlacialIndifference-Bold.otf
Executable file
Binary file not shown.
BIN
wedding_site/primary/static/primary/fonts/GlacialIndifference-Regular.otf
Executable file
BIN
wedding_site/primary/static/primary/fonts/GlacialIndifference-Regular.otf
Executable file
Binary file not shown.
BIN
wedding_site/primary/static/primary/images/Background.png
Executable file
BIN
wedding_site/primary/static/primary/images/Background.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 491 KiB |
BIN
wedding_site/primary/static/primary/images/Blob1.png
Executable file
BIN
wedding_site/primary/static/primary/images/Blob1.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 737 KiB |
BIN
wedding_site/primary/static/primary/images/Blob2.png
Executable file
BIN
wedding_site/primary/static/primary/images/Blob2.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 577 KiB |
BIN
wedding_site/primary/static/primary/images/Flowers.png
Executable file
BIN
wedding_site/primary/static/primary/images/Flowers.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 533 KiB |
165
wedding_site/primary/static/primary/style.css
Executable file
165
wedding_site/primary/static/primary/style.css
Executable file
|
@ -0,0 +1,165 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: 'GlacialIndifference';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
src: local('GlacialIndifference'),
|
||||||
|
url('fonts/GlacialIndifference-Regular.otf') format('opentype');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'GlacialIndifference';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
src: local('GlacialIndifference'),
|
||||||
|
url('fonts/GlacialIndifference-Bold.otf') format('opentype');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Emitha-Script';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
src: local('Emitha-Script'),
|
||||||
|
url('fonts/Emitha-Script.otf') format('opentype');
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
width: 100%;
|
||||||
|
height: 600px;
|
||||||
|
margin: 0 auto;
|
||||||
|
background:
|
||||||
|
top right / 40% no-repeat url('images/Flowers.png'),
|
||||||
|
bottom -150px left -400px / 1000px no-repeat url('images/Blob1.png'),
|
||||||
|
top -300px right -250px / 700px no-repeat url('images/Blob2.png'),
|
||||||
|
url('images/Background.png');
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-tagline{
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 140px;
|
||||||
|
font-family: GlacialIndifference;
|
||||||
|
font-size: 74px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-names{
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 20px;
|
||||||
|
font-family: GlacialIndifference;
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-tagline-span{
|
||||||
|
font-family: Emitha-Script;
|
||||||
|
font-size: 184px;
|
||||||
|
position:relative;
|
||||||
|
bottom: -30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
display: inline;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-nav {
|
||||||
|
margin:0 auto;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-button {
|
||||||
|
display: block;
|
||||||
|
color: black;
|
||||||
|
text-align: center;
|
||||||
|
padding: 14px 16px;
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: 24px;
|
||||||
|
font-family: GlacialIndifference;
|
||||||
|
}
|
||||||
|
|
||||||
|
.standard-a {
|
||||||
|
color: black;
|
||||||
|
text-decoration: none;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.standard-a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biglink-a {
|
||||||
|
color: black;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.biglink-a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
li a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-input{
|
||||||
|
margin-top: 30px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 20px;
|
||||||
|
font-family: GlacialIndifference;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=password] {
|
||||||
|
padding:5px;
|
||||||
|
border:2px solid #ccc;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=password]:autofill {
|
||||||
|
background: #bdc4c2; /* or any other */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
input[type=password]:focus {
|
||||||
|
border-color:#333;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=submit] {
|
||||||
|
padding:5px 15px;
|
||||||
|
background:#b9b9b9;
|
||||||
|
border:0 none;
|
||||||
|
cursor:pointer;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-content{
|
||||||
|
margin-top: 30px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 20px;
|
||||||
|
width: 50%;
|
||||||
|
margin:0 auto;
|
||||||
|
font-family: GlacialIndifference;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jumbo-image {
|
||||||
|
margin:0 auto;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
max-height:300px;
|
||||||
|
border-radius: 8px;
|
||||||
|
box-shadow: 0 4px 8px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.signature{
|
||||||
|
font-family: Emitha-Script;
|
||||||
|
font-size: 50px;
|
||||||
|
width: 70%;
|
||||||
|
text-align: center;
|
||||||
|
margin:0 auto;
|
||||||
|
}
|
6
wedding_site/primary/templates/header.html
Normal file
6
wedding_site/primary/templates/header.html
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<title>{{site.title}}</title>
|
||||||
|
<meta name="viewport"
|
||||||
|
content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
{% load static %}
|
||||||
|
<link rel="stylesheet" href="{% static 'primary/style.css' %}">
|
11
wedding_site/primary/templates/index_body.html
Normal file
11
wedding_site/primary/templates/index_body.html
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<div class="site-tagline">SAVE <span class="site-tagline-span">the</span> DATE</div>
|
||||||
|
|
||||||
|
<div class="site-names">JAMES AND FIONNUALA</div>
|
||||||
|
|
||||||
|
<div class="login-input">
|
||||||
|
<form method="put" action="login">
|
||||||
|
<label for="pwd">Password:</label>
|
||||||
|
<input type="password" id="pwd" value="" name="token">
|
||||||
|
<input type="submit" value="Submit">
|
||||||
|
</form>
|
||||||
|
</div>
|
10
wedding_site/primary/templates/page_header.html
Normal file
10
wedding_site/primary/templates/page_header.html
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<header>
|
||||||
|
<div class="main-nav">
|
||||||
|
<ul>
|
||||||
|
{% for page in pages %}
|
||||||
|
<li><a class="nav-button"
|
||||||
|
href="/{{page.name | lower}}">{{page.pretty_name}}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</header>
|
|
@ -5,7 +5,7 @@ from . import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("", views.index, name="index"),
|
path("", views.index, name="index"),
|
||||||
path("schedule", views.schedule, name="schedule"),
|
path('schedule', views.schedule, name="schedule"),
|
||||||
path("thingstodo", views.things_to_do, name="thingstodo"),
|
path("thingstodo", views.things_to_do, name="thingstodo"),
|
||||||
path("travel", views.travel, name="travel"),
|
path("travel", views.travel, name="travel"),
|
||||||
]
|
]
|
||||||
|
|
|
@ -12,43 +12,22 @@ _TEMPLATE = """
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
{{site_header}}
|
{{site_header | safe}}
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
{{page_body}}
|
{{page_body | safe}}
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
_BODY = """
|
|
||||||
<div class="site-tagline">SAVE <span class="site-tagline-span">the</span> DATE</div>
|
|
||||||
|
|
||||||
<div class="site-names">JAMES AND FIONNUALA</div>
|
|
||||||
|
|
||||||
<div class="login-input">
|
|
||||||
<form method="put" action="login">
|
|
||||||
<label for="pwd">Password:</label>
|
|
||||||
<input type="password" id="pwd" value="" name="token">
|
|
||||||
<input type="submit" value="Submit">
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
"""
|
|
||||||
|
|
||||||
_HEADER = """
|
|
||||||
<title>{{site.title}}</title>
|
|
||||||
<meta name="viewport"
|
|
||||||
content="width=device-width, initial-scale=1">
|
|
||||||
<link rel="stylesheet" href="/static/css/styles.css">
|
|
||||||
"""
|
|
||||||
|
|
||||||
def get_site_header(site):
|
def get_site_header(site):
|
||||||
template = Template(_HEADER)
|
template = Template(site.header)
|
||||||
context = Context({"site": site})
|
context = Context({"site": site})
|
||||||
return template.render(context)
|
return template.render(context)
|
||||||
|
|
||||||
def get_index_body(site):
|
def get_index_body(site):
|
||||||
template = Template(_BODY)
|
template = Template(site.index)
|
||||||
context = Context({"site": site})
|
context = Context({"site": site})
|
||||||
return template.render(context)
|
return template.render(context)
|
||||||
|
|
||||||
|
@ -63,34 +42,11 @@ def index(request):
|
||||||
soup = BeautifulSoup(template.render(context))
|
soup = BeautifulSoup(template.render(context))
|
||||||
return HttpResponse(soup.prettify())
|
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 = """
|
|
||||||
<header>
|
|
||||||
<div class="main-nav">
|
|
||||||
<ul>
|
|
||||||
{% for page in pages %}
|
|
||||||
<li><a class="nav-button"
|
|
||||||
href="/{{page.pretty_name}}">{{page.name}}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
"""
|
|
||||||
|
|
||||||
def get_page_header(site: Site):
|
def get_page_header(site: Site):
|
||||||
|
|
||||||
pages = site.page_set.filter(navigable=True)
|
pages = site.page_set.filter(navigable=True)
|
||||||
template = Template(_PAGE_HEADER)
|
template = Template(site.page_header)
|
||||||
context = Context({"pages", pages})
|
context = Context({"pages" : pages})
|
||||||
return template.render(context)
|
return template.render(context)
|
||||||
|
|
||||||
def get_page_body(site: Site, page: Page):
|
def get_page_body(site: Site, page: Page):
|
||||||
|
@ -108,5 +64,15 @@ def get_page(name:str):
|
||||||
"site_header" : get_site_header(site),
|
"site_header" : get_site_header(site),
|
||||||
"page_body" : get_page_body(site, page)})
|
"page_body" : get_page_body(site, page)})
|
||||||
|
|
||||||
soup = BeautifulSoup(template.render(context))
|
content = template.render(context)
|
||||||
return HttpResponse(soup.prettify())
|
soup = BeautifulSoup(content, features="html.parser")
|
||||||
|
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")
|
Loading…
Reference in a new issue