Compare commits

...

5 Commits

6 changed files with 222 additions and 130 deletions

View File

@ -10,6 +10,7 @@ pylint = "*"
django = "*"
django-thumbs-v2 = "*"
image = "*"
django-widget-tweaks = "*"
# Commented out to not explicitly specify Python3 subversion.
# [requires]
# python_version = "3.8"

View File

@ -41,7 +41,8 @@ INSTALLED_APPS = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_thumbs'
'django_thumbs',
'widget_tweaks',
]
MIDDLEWARE = [

View File

@ -62,7 +62,9 @@
font-weight: bold; }
.LP-Button:active {
background-color: #76323F;
color: #C09F80; }
color: #f9f9f9; }
.LP-Button--cancel {
background-color: #f9f9f9; }
.LP-Form .LP-Form__Checkbox {
display: none; }
@ -84,11 +86,12 @@
border-bottom: 1px solid #565656;
padding: 8px;
margin-bottom: 30px; }
.LP-Input .LP-Input__Field:focus, .LP-Input .LP-Input__Field:active {
.LP-Input .LP-Input__Field:focus, .LP-Input .LP-Input__Field:active, .LP-Input .LP-Input__Field:invalid {
margin-bottom: 29px;
border-bottom: 2px solid #76323F;
background-color: #f9f9f9;
border-radius: 3px 3px 0 0; }
border-radius: 3px 3px 0 0;
box-shadow: none; }
.LP-Input .LP-Input__Label {
font-family: Montserrat, Helvetica, sans-serif;
font-size: 16px; }
@ -99,8 +102,6 @@
padding: 3px;
position: relative;
top: -30px; }
.LP-Input .LP-Input__Message:before {
content: '* '; }
.LP-Input--error .LP-Input__Field {
margin-bottom: 25px;
border-bottom: 2px solid #76323F;
@ -122,8 +123,10 @@
color: #565656; }
.LP-Image {
max-width: 100%;
max-height: 100%; }
object-fit: cover;
width: 100%;
height: auto;
vertical-align: top; }
.LP-Logo {
max-width: 100%;
@ -131,6 +134,18 @@
width: auto;
object-fit: contain; }
.LP-Tag {
padding: 8px 14px;
background-color: #D7CEC7;
border-radius: 2px;
width: max-content; }
.LP-Tag .LP-Paragraph {
padding: 0;
margin: 0;
font-family: Montserrat, Helvetica, sans-serif;
font-size: 1em;
display: inline; }
.LP-Content {
padding: 35px; }
@ -141,68 +156,90 @@
.LP-TextSection .LP-Text {
line-height: 1.4rem; }
.LP-Place {
.LP-PlaceTeaser {
width: 280px; }
.LP-Place .LP-Place__Image {
.LP-PlaceTeaser .LP-PlaceTeaser__Image {
height: 165px;
object-fit: fill; }
.LP-Place .LP-Place__Meta {
width: 280px;
overflow: hidden; }
.LP-PlaceTeaser .LP-PlaceTeaser__Image .LP-Image {
max-width: unset;
max-height: unset;
object-fit: cover; }
.LP-PlaceTeaser .LP-PlaceTeaser__Meta {
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 10px; }
.LP-Place .LP-Place__Meta .LP-Paragraph {
.LP-PlaceTeaser .LP-PlaceTeaser__Meta .LP-Paragraph {
font-family: Montserrat, Helvetica, sans-serif;
padding: 0;
margin: 0;
margin-top: 5px;
font-size: 0.9rem; }
.LP-Place .LP-Place__Meta .LP-Headline {
.LP-PlaceTeaser .LP-PlaceTeaser__Meta .LP-Headline {
font-family: Montserrat, Helvetica, sans-serif;
color: #565656;
font-size: 1rem;
padding: 0px;
margin: 0px; }
.LP-Place .LP-Place__Description {
.LP-PlaceTeaser .LP-PlaceTeaser__Description {
font-family: Roboto, Arial, sans-serif;
color: #565656;
display: none; }
.LP-SecurityMeasure__List {
@media (min-width: 650px) {
.LP-PlaceTeaser--extended {
display: flex;
flex-direction: row;
width: auto;
padding-right: 25px;
height: 165px; }
.LP-PlaceTeaser--extended .LP-PlaceTeaser__Meta {
margin: 0;
padding: 5px;
padding-left: 25px;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-start; }
.LP-PlaceTeaser--extended .LP-PlaceTeaser__Meta .LP-PlaceTeaser__Info .LP-Headline {
font-size: 28px; }
.LP-PlaceTeaser--extended .LP-PlaceTeaser__Meta .LP-PlaceTeaser__Icons {
margin-top: auto; }
.LP-PlaceTeaser--extended .LP-PlaceTeaser__Meta .LP-PlaceTeaser__Icons ul {
padding: 0;
margin: 0; }
.LP-PlaceTeaser--extended .LP-PlaceTeaser__Description {
display: block;
max-height: 55px;
overflow: hidden; }
.LP-PlaceTeaser--extended .LP-PlaceTeaser__Image {
height: 165px;
width: 280px;
flex-shrink: 0;
flex-grow: 0; } }
.LP-TagList .LP-TagList__List {
list-style-type: none;
display: flex;
flex-wrap: wrap;
padding: 0;
margin: 0; }
.LP-SecurityMeasure__List .LP-SecurityMeasure__Item {
margin: 5px 5px;
padding: 5px 8px;
background-color: #D7CEC7;
border-radius: 2px; }
.LP-SecurityMeasure__List .LP-SecurityMeasure__Item .LP-Text {
font-family: Montserrat, Helvetica, sans-serif;
font-size: 1.2rem; }
.LP-TagList .LP-TagList__List .LP-TagList__Item {
margin: 6px; }
.LP-Header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 70px; }
.LP-Header__Logo {
max-width: 300px;
width: 35%;
object-fit: contain; }
.LP-Header .LP-Header__Logo {
margin: 25px; }
.LP-Menu__List {
.LP-Menu .LP-Menu__List {
list-style-type: none;
display: inline-flex;
justify-content: space-around; }
display: flex;
flex-direction: row;
justify-content: space-between;
padding: 0;
margin: 0; }
.LP-Menu__Item {
padding: 10px 15px;
margin: 0 15px;
.LP-Menu .LP-Menu__Item {
padding: 15px 0;
margin: 0;
width: 100px;
text-align: center;
background-color: transparent; }
@ -214,72 +251,80 @@
.LP-Menu .LP-Link__Text:hover {
color: #76323F; }
.LP-Introduction .LP-Headline {
font-size: 2rem; }
@media (max-width: 750px) {
.LP-Menu .LP-Menu__List {
display: flex;
flex-direction: row;
justify-content: flex-start; } }
.LP-Introduction .LP-Text {
font-size: 1.3rem; }
@media (max-width: 450px) {
.LP-Menu .LP-Menu__List {
justify-content: space-between; } }
.LP-Place__Grid {
.LP-Header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 70px;
height: 60px; }
.LP-Header__Logo {
height: 60px;
margin: 25px;
object-fit: cover;
max-height: 100%;
overflow: hidden; }
.LP-Header__Logo .LP-Image {
height: 60px; }
@media (max-width: 750px) {
.LP-Header__Logo {
width: 60px; }
.LP-Header__Logo .LP-Image {
object-position: 0 0;
object-fit: cover; } }
@media (max-width: 450px) {
.LP-Header__Logo {
display: none; }
.LP-Header__Navigation {
width: 100%; } }
.LP-PlaceGrid .LP-PlaceGrid__Grid {
margin: 0;
padding: 0;
list-style-type: none;
display: flex;
flex-direction: row;
flex-wrap: wrap; }
.LP-Place__Grid > .LP-Place__Item {
margin: 0 15px;
margin-bottom: 50px; }
.LP-Place__Grid .LP-Link .LP-Place__Description {
display: none; }
.LP-Place__Grid .LP-Link .LP-Place:hover {
box-shadow: 0 0 8px #565656; }
.LP-PlaceGrid .LP-PlaceGrid__Grid .LP-PlaceGrid__Item {
margin: 18px; }
.LP-PlaceGrid .LP-PlaceGrid__Grid .LP-Link .LP-PlaceTeaser:hover {
box-shadow: 0 0 2px #565656; }
.LP-Place__List {
.LP-PlaceList .LP-PlaceList__List {
list-style-type: none; }
.LP-Place__List .LP-Link .LP-Place:hover {
.LP-PlaceList .LP-PlaceList__List .LP-Link .LP-Place:hover {
color: #565656;
background-color: #f9f9f9;
position: relative;
left: -2px; }
.LP-Place__List .LP-Link .LP-Place:hover > .LP-Place__Image {
.LP-PlaceList .LP-PlaceList__List .LP-Link .LP-Place:hover > .LP-Place__Image {
border-left: 2px #565656 solid; }
.LP-Place__List .LP-Place__Item {
.LP-PlaceList .LP-PlaceList__List .LP-PlaceList__Item {
max-width: 900px;
min-width: 450px;
margin: 18px 0; }
.LP-Place__List .LP-Place__Item .LP-Place {
display: flex;
flex-direction: row;
width: auto;
padding-right: 25px; }
.LP-Place__List .LP-Place__Item .LP-Place .LP-Place__Assets {
margin: 0;
padding: 0;
padding-left: 25px;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-start; }
.LP-Place__List .LP-Place__Item .LP-Place .LP-Place__Assets .LP-Place__Info .LP-Place__Title {
font-size: 28px; }
.LP-Place__List .LP-Place__Item .LP-Place .LP-Place__Assets .LP-Icon__List {
justify-self: flex-end; }
.LP-Place__List .LP-Place__Item .LP-Place > .LP-Place__Image {
height: 168px;
width: 280px; }
.LP-LinkList__List {
list-style-type: none;
display: grid;
grid-template-columns: repeat(auto-fit, 300px);
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
margin: 0;
padding: 0; }
.LP-LinkList__List .LP-LinkList__Item {
border-left: 1px solid #C09F80;
width: 100%;
margin-top: 12px;
height: 55px; }
margin-top: 12px; }
.LP-LinkList__List .LP-LinkList__Item .LP-Link {
padding: 1em 0 1em 1em;
width: calc(100% - $-link-padding);
@ -330,30 +375,28 @@
.LP-Footer .LP-LinkList__List .LP-LinkList__Item .LP-Link:hover {
background-color: inherit; }
.LP-Form {
max-width: 900px; }
.LP-Form .LP-Form__Fieldset {
border: none; }
.LP-Form .LP-Form__Fieldset .LP-Form__Legend {
margin: 0;
padding: 0; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition {
display: flex;
flex-direction: row;
justify-content: space-between; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition .LP-Form__Field {
flex: 3 1 100px;
padding: 6px 15px; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition .LP-Form__Field--wider {
flex: 5 1 200px; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition .LP-Form__Field--wide {
flex: 4 1 150px; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition .LP-Form__Field--narrow {
flex: 2 0 50px; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition .LP-Form__Field--narrower {
flex: 1 0 25px; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition .LP-Form__Field input {
width: 100%; }
.LP-Form .LP-Form__Fieldset {
border: none; }
.LP-Form .LP-Form__Fieldset .LP-Form__Legend {
margin: 0;
padding: 0;
font-family: Montserrat, Helvetica, sans-serif;
font-size: 21px; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition {
display: flex;
flex-direction: row;
justify-content: space-between; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition .LP-Form__Field {
flex: 3 1 100px;
padding: 6px 15px; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition .LP-Form__Field--wider {
flex: 5 1; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition .LP-Form__Field--wide {
flex: 4 1; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition .LP-Form__Field--narrow {
flex: 2 0; }
.LP-Form .LP-Form__Fieldset .LP-Form__Composition .LP-Form__Field--narrower {
flex: 1 0; }
@media (max-width: 650px) {
.LP-Form .LP-Form__Fieldset .LP-Form__Composition--breakable {
@ -377,45 +420,50 @@
.LP-HorizontalLine {
color: #565656; }
@media (max-width: 650px) {
.LP-MainContainer {
width: 100%; } }
.LP-PlaceOverview .LP-PlaceOverview__Info .LP-PlaceOveriew__Image {
width: 700px;
height: 450px;
box-shadow: 0 0 10px #565656;
object-fit: cover;
object-position: 0 0;
float: right;
margin-left: 35px;
margin-bottom: 35px; }
margin-bottom: 35px;
overflow: hidden; }
.LP-PlaceOverview .LP-PlaceOverview__Info .LP-PlaceOverView__Description {
padding: 0px;
position: relative;
top: -15px; }
.LP-PlaceOverview .LP-PlaceOverview__Info .LP-PlaceOverView__Description .LP-Headline {
position: relative;
top: 15px; }
.LP-PlaceOverview .LP-PlaceOverView__ImageList {
list-style-type: none;
display: grid;
grid-template-columns: repeat(auto-fit, 300px);
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
margin: 0px;
padding: 0px; }
.LP-PlaceOverview .LP-PlaceOverView__ImageList .LP-PlaceOverView__ImageItem img {
box-shadow: 0 0 5px #565656;
height: 200px;
width: 290px;
object-fit: cover;
.LP-PlaceOverview .LP-PlaceOverView__ImageList .LP-PlaceOverView__ImageItem {
margin-top: 10px; }
.LP-PlaceOverview .LP-PlaceOverView__ImageList .LP-PlaceOverView__ImageItem .LP-Link {
overflow: hidden; }
.LP-PlaceOverview .LP-PlaceOverView__ImageList .LP-PlaceOverView__ImageItem .LP-Image {
box-shadow: 0 0 5px #565656;
height: 200px;
width: 290px;
object-fit: cover; }
@media (max-width: 1290px) {
@media (max-width: 1000px) {
.LP-PlaceOverview .LP-PlaceOverview__Info .LP-TextSection {
margin-top: -100px; }
.LP-PlaceOverview .LP-PlaceOverview__Info .LP-Headline {
position: relative;
top: -400px;
margin-bottom: 100px;
width: 100vw;
display: block; }
margin-top: 30px; }
.LP-PlaceOverview .LP-PlaceOverview__Info .LP-PlaceOveriew__Image {
float: none;
width: calc(100vw - 30px);
width: 100%;
height: auto;
margin: 0;
padding: 0;
margin-left: 7px; } }
padding: 0; } }

View File

@ -0,0 +1,16 @@
{% load widget_tweaks %}
<div class="LP-Input {% if field.errors %} LP-Input--error {% endif %}">
<label for="{{field.id_for_label}}" class="LP-Input__Label">{{field.label}}</label>
{% render_field field class="LP-Input__Field"%}
<span class="LP-Input__Message">
{% if field.errors %}
{% for error in field.errors%}
{{error}}
{% endfor %}
{% elif field.help_text%}
{{ field.help_text }}
{% endif %}
</span>
</div>

View File

@ -1,6 +1,6 @@
from django.urls import path
from .views import (
hello_world,
hello_world,
place_detail_view,
place_list_view,
SignUpView,
@ -10,6 +10,7 @@ from .views import (
urlpatterns = [
path('hello_world/', hello_world), # You know what this is :P
path('voucher/', VoucherVerifyView.as_view(), name='enter_voucher'),
path('signup/', SignUpView.as_view(), name='signup'),
path('place/<int:pk>/', place_detail_view, name='place_detail'),
path('place/create/', PlaceCreateView.as_view(), name='place_create'),

View File

@ -1,15 +1,40 @@
{% extends 'global.html'%}
{% load static %}
{% load widget_tweaks %}
# {% block title %}Registrierung{% endblock %}
{% block maincontent %}
<h2>Registrierung</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Sign up</button>
<form class="LP-Form" method="POST">
<fieldset class="LP-Form__Fieldset">
<legend class="LP-Form__Legend">Registrierung</legend>
{% csrf_token %}
<div class="LP-Form__Composition LP-Form__Composition--breakable">
<div class="LP-Form__Field">
{% include 'partials/form/inputField.html' with field=form.username %}
</div>
<div class="LP-Form__Field">
{% include 'partials/form/inputField.html' with field=form.email %}
</div>
</div>
<div class="LP-Form__Composition">
<div class="LP-Form__Field">
{% include 'partials/form/inputField.html' with field=form.password1 %}
</div>
</div>
<div class="LP-Form__Composition">
<div class="LP-Form__Field">
{% include 'partials/form/inputField.html' with field=form.password2 %}
</div>
</div>
<div class="LP-Form__Composition">
<input type="submit" class="LP-Button" value="Registrieren"/>
</div>
</fieldset>
</form>
{% endblock maincontent %}