parent
7aa3fd4715
commit
f79628ac31
@ -0,0 +1,133 @@ |
|||||||
|
/* FEO GmbH Custom Bootstrap Theme |
||||||
|
* An elegant, lightweight, and modern design |
||||||
|
*/ |
||||||
|
|
||||||
|
:root { |
||||||
|
--bs-primary: #72c02c; |
||||||
|
--bs-primary-rgb: 114, 192, 44; |
||||||
|
} |
||||||
|
|
||||||
|
/* Override Bootstrap primary color */ |
||||||
|
.btn-primary { |
||||||
|
background-color: var(--bs-primary); |
||||||
|
border-color: var(--bs-primary); |
||||||
|
} |
||||||
|
|
||||||
|
.btn-primary:hover, .btn-primary:focus, .btn-primary:active { |
||||||
|
background-color: #65ab27; |
||||||
|
border-color: #65ab27; |
||||||
|
} |
||||||
|
|
||||||
|
.btn-outline-primary { |
||||||
|
color: var(--bs-primary); |
||||||
|
border-color: var(--bs-primary); |
||||||
|
} |
||||||
|
|
||||||
|
.btn-outline-primary:hover, .btn-outline-primary:focus, .btn-outline-primary:active { |
||||||
|
background-color: var(--bs-primary); |
||||||
|
border-color: var(--bs-primary); |
||||||
|
} |
||||||
|
|
||||||
|
.text-primary { |
||||||
|
color: var(--bs-primary) !important; |
||||||
|
} |
||||||
|
|
||||||
|
.bg-primary { |
||||||
|
background-color: var(--bs-primary) !important; |
||||||
|
} |
||||||
|
|
||||||
|
.border-primary { |
||||||
|
border-color: var(--bs-primary) !important; |
||||||
|
} |
||||||
|
|
||||||
|
/* Navigation styling */ |
||||||
|
.navbar { |
||||||
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); |
||||||
|
} |
||||||
|
|
||||||
|
.navbar-light .navbar-nav .nav-link { |
||||||
|
color: #333; |
||||||
|
font-weight: 500; |
||||||
|
padding: 0.5rem 1rem; |
||||||
|
transition: color 0.3s ease; |
||||||
|
} |
||||||
|
|
||||||
|
.navbar-light .navbar-nav .nav-link:hover, |
||||||
|
.navbar-light .navbar-nav .nav-link:focus, |
||||||
|
.navbar-light .navbar-nav .active > .nav-link { |
||||||
|
color: var(--bs-primary); |
||||||
|
} |
||||||
|
|
||||||
|
/* Card styling */ |
||||||
|
.card { |
||||||
|
border: none; |
||||||
|
border-radius: 8px; |
||||||
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); |
||||||
|
transition: transform 0.3s ease, box-shadow 0.3s ease; |
||||||
|
} |
||||||
|
|
||||||
|
.card:hover { |
||||||
|
transform: translateY(-5px); |
||||||
|
box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1); |
||||||
|
} |
||||||
|
|
||||||
|
/* Button styling */ |
||||||
|
.btn { |
||||||
|
border-radius: 4px; |
||||||
|
padding: 0.5rem 1.5rem; |
||||||
|
font-weight: 500; |
||||||
|
transition: all 0.3s ease; |
||||||
|
} |
||||||
|
|
||||||
|
/* Footer styling */ |
||||||
|
.footer { |
||||||
|
background-color: #f8f9fa; |
||||||
|
padding: 4rem 0; |
||||||
|
border-top: 1px solid #eee; |
||||||
|
} |
||||||
|
|
||||||
|
.copyright { |
||||||
|
background-color: #333; |
||||||
|
color: white; |
||||||
|
padding: 1.5rem 0; |
||||||
|
} |
||||||
|
|
||||||
|
.copyright a { |
||||||
|
color: #ccc; |
||||||
|
text-decoration: none; |
||||||
|
transition: color 0.3s ease; |
||||||
|
} |
||||||
|
|
||||||
|
.copyright a:hover { |
||||||
|
color: white; |
||||||
|
} |
||||||
|
|
||||||
|
/* Typography improvements */ |
||||||
|
body { |
||||||
|
font-family: 'Roboto', 'Segoe UI', sans-serif; |
||||||
|
color: #333; |
||||||
|
line-height: 1.6; |
||||||
|
} |
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 { |
||||||
|
font-weight: 600; |
||||||
|
margin-bottom: 1rem; |
||||||
|
} |
||||||
|
|
||||||
|
/* Link styling */ |
||||||
|
a { |
||||||
|
color: var(--bs-primary); |
||||||
|
text-decoration: none; |
||||||
|
transition: color 0.3s ease; |
||||||
|
} |
||||||
|
|
||||||
|
a:hover { |
||||||
|
color: #65ab27; |
||||||
|
text-decoration: underline; |
||||||
|
} |
||||||
|
|
||||||
|
/* Form controls */ |
||||||
|
.form-control:focus { |
||||||
|
border-color: var(--bs-primary); |
||||||
|
box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25); |
||||||
|
} |
@ -1,59 +1,174 @@ |
|||||||
{% extends "core/base.html" %} |
{% extends "core/base.html" %} |
||||||
{% load core_tags menu_tags static wagtailuserbar wagtailcore_tags wagtailimages_tags %} |
{% load core_tags menu_tags static wagtailuserbar wagtailcore_tags wagtailimages_tags %} |
||||||
|
|
||||||
|
{% block extra_css %} |
||||||
|
<style> |
||||||
|
/* Timeline styling */ |
||||||
|
.timeline { |
||||||
|
position: relative; |
||||||
|
padding: 0; |
||||||
|
list-style: none; |
||||||
|
} |
||||||
|
|
||||||
|
.timeline:before { |
||||||
|
content: ''; |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
bottom: 0; |
||||||
|
left: 40px; |
||||||
|
width: 4px; |
||||||
|
background-color: var(--bs-primary); |
||||||
|
} |
||||||
|
|
||||||
|
.timeline-item { |
||||||
|
position: relative; |
||||||
|
margin-bottom: 50px; |
||||||
|
} |
||||||
|
|
||||||
|
.timeline-badge { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
left: 40px; |
||||||
|
width: 60px; |
||||||
|
height: 60px; |
||||||
|
margin-left: -30px; |
||||||
|
border-radius: 50%; |
||||||
|
text-align: center; |
||||||
|
background-color: var(--bs-primary); |
||||||
|
color: white; |
||||||
|
z-index: 100; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); |
||||||
|
padding: 5px; |
||||||
|
} |
||||||
|
|
||||||
|
.timeline-badge-day { |
||||||
|
font-size: 1.25rem; |
||||||
|
font-weight: bold; |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
|
||||||
|
.timeline-badge-month { |
||||||
|
font-size: 0.8rem; |
||||||
|
text-transform: uppercase; |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
|
||||||
|
.timeline-month-header { |
||||||
|
position: relative; |
||||||
|
margin-bottom: 30px; |
||||||
|
list-style: none; |
||||||
|
} |
||||||
|
|
||||||
|
.timeline-month-header h3 { |
||||||
|
position: relative; |
||||||
|
padding-left: 60px; |
||||||
|
border-bottom: 2px solid var(--bs-primary); |
||||||
|
padding-bottom: 10px; |
||||||
|
} |
||||||
|
|
||||||
|
.timeline-panel { |
||||||
|
position: relative; |
||||||
|
width: calc(100% - 90px); |
||||||
|
float: right; |
||||||
|
border-radius: 8px; |
||||||
|
} |
||||||
|
|
||||||
|
.timeline-panel:before { |
||||||
|
content: ''; |
||||||
|
position: absolute; |
||||||
|
top: 26px; |
||||||
|
left: -15px; |
||||||
|
border-top: 15px solid transparent; |
||||||
|
border-right: 15px solid #fff; |
||||||
|
border-bottom: 15px solid transparent; |
||||||
|
} |
||||||
|
|
||||||
|
.timeline-date { |
||||||
|
display: block; |
||||||
|
margin-bottom: 10px; |
||||||
|
font-weight: bold; |
||||||
|
color: var(--bs-primary); |
||||||
|
} |
||||||
|
|
||||||
|
@media (max-width: 767px) { |
||||||
|
.timeline-badge { |
||||||
|
margin-left: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
||||||
|
{% endblock %} |
||||||
|
|
||||||
{% block content %} |
{% block content %} |
||||||
<div class="container"> |
<div class="container"> |
||||||
{% for event in self.get_events %} |
<ul class="timeline"> |
||||||
<div class="card mb-4 border-0 shadow-sm"> |
{% regroup self.get_events by start_date|date:"F Y" as events_by_month %} |
||||||
<div class="card-header bg-light"> |
{% for month_group in events_by_month %} |
||||||
<div class="d-flex justify-content-between align-items-center"> |
<li class="timeline-month-header"> |
||||||
<div> |
<h3 class="text-primary mb-4">{{ month_group.grouper }}</h3> |
||||||
<span class="fs-5">{{ event.start_date|date:"SHORT_DATE_FORMAT" }}{% if event.end_date %} - {{ event.end_date|date:"SHORT_DATE_FORMAT" }}{% endif %}</span> |
</li> |
||||||
</div> |
{% for event in month_group.list %} |
||||||
<div> |
<li class="timeline-item clearfix"> |
||||||
<span class="text-muted">{{ event.start_date|date:"F Y" }}</span> |
<div class="timeline-badge"> |
||||||
</div> |
<span class="timeline-badge-day">{{ event.start_date|date:"d" }}</span> |
||||||
|
<span class="timeline-badge-month">{{ event.start_date|date:"b" }}</span> |
||||||
</div> |
</div> |
||||||
</div> |
<div class="timeline-panel card border-0 shadow-sm"> |
||||||
<div class="card-body"> |
<div class="card-header bg-light"> |
||||||
<h3 class="card-title mb-3"><a href="{{ event.url }}" class="text-decoration-none">{{ event.title }}</a> |
<div class="d-flex justify-content-between align-items-center"> |
||||||
{% if event.subtitle %}<br><small class="text-muted">{{ event.subtitle }}</small>{% endif %}</h3> |
<div> |
||||||
<div class="row"> |
<span class="fs-5">{{ event.start_date|date:"SHORT_DATE_FORMAT" }}{% if event.end_date %} - {{ event.end_date|date:"SHORT_DATE_FORMAT" }}{% endif %}</span> |
||||||
<div class="col-md-4 mb-3 mb-md-0"> |
</div> |
||||||
{% if event.img1_img %} |
<div> |
||||||
{% image event.img1_img max-250x250 class="img-fluid rounded" %} |
<span class="text-muted">{{ event.start_date|date:"F Y" }}</span> |
||||||
{% endif %} |
</div> |
||||||
|
</div> |
||||||
</div> |
</div> |
||||||
<div class="col-md-4 mb-3 mb-md-0"> |
<div class="card-body"> |
||||||
<h5 class="mb-3"> |
<h3 class="card-title mb-3"><a href="{{ event.url }}" class="text-decoration-none">{{ event.title }}</a> |
||||||
{{ event.start_date }}{% if event.end_date %} - {{ event.end_date }}{% endif %} |
{% if event.subtitle %}<br><small class="text-muted">{{ event.subtitle }}</small>{% endif %}</h3> |
||||||
</h5> |
<div class="row"> |
||||||
{% if event.location_name %} |
<div class="col-md-4 mb-3 mb-md-0"> |
||||||
<p> |
{% if event.img1_img %} |
||||||
<strong>{{ event.location_name }}</strong><br> |
{% image event.img1_img max-250x250 class="img-fluid rounded" %} |
||||||
{% if event.location_street %}{{ event.location_street }}<br>{% endif %} |
{% endif %} |
||||||
{% if event.location_city %}{{ event.location_city }}{% endif %} |
</div> |
||||||
</p> |
<div class="col-md-4 mb-3 mb-md-0"> |
||||||
{% endif %} |
<h5 class="mb-3"> |
||||||
|
{{ event.start_date }}{% if event.end_date %} - {{ event.end_date }}{% endif %} |
||||||
|
</h5> |
||||||
|
{% if event.location_name %} |
||||||
|
<p> |
||||||
|
<strong>{{ event.location_name }}</strong><br> |
||||||
|
{% if event.location_street %}{{ event.location_street }}<br>{% endif %} |
||||||
|
{% if event.location_city %}{{ event.location_city }}{% endif %} |
||||||
|
</p> |
||||||
|
{% endif %} |
||||||
|
</div> |
||||||
|
<div class="col-md-4"> |
||||||
|
{% if event.is_registration_active %} |
||||||
|
<p> |
||||||
|
<a class="btn btn-outline-primary w-100 mb-2" href="{{ event.url }}"><i class="bi bi-people"></i> Zur Anmeldung</a> |
||||||
|
</p> |
||||||
|
{% endif %} |
||||||
|
{% if event.flyer.url %} |
||||||
|
<p> |
||||||
|
<a class="btn btn-outline-primary w-100 mb-2" href="{{ event.flyer.url }}" target="_blank"><i class="bi bi-cloud-download"></i> Programm herunterladen</a> |
||||||
|
</p> |
||||||
|
{% endif %} |
||||||
|
<p> |
||||||
|
<a class="btn btn-outline-primary w-100 mb-2" href="{{ event.url }}"><i class="bi bi-search"></i> Mehr Informationen</a> |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
</div> |
</div> |
||||||
<div class="col-md-4"> |
</div> |
||||||
{% if event.is_registration_active %} |
</li> |
||||||
<p> |
{% endfor %} |
||||||
<a class="btn btn-outline-primary w-100 mb-2" href="{{ event.url }}"><i class="bi bi-people"></i> Zur Anmeldung</a> |
{% endfor %} |
||||||
</p> |
</ul> |
||||||
{% endif %} |
|
||||||
{% if event.flyer.url %} |
|
||||||
<p> |
|
||||||
<a class="btn btn-outline-primary w-100 mb-2" href="{{ event.flyer.url }}" target="_blank"><i class="bi bi-cloud-download"></i> Programm herunterladen</a> |
|
||||||
</p> |
|
||||||
{% endif %} |
|
||||||
<p> |
|
||||||
<a class="btn btn-outline-primary w-100 mb-2" href="{{ event.url }}"><i class="bi bi-search"></i> Mehr Informationen</a> |
|
||||||
</p> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
{% endfor %} |
|
||||||
</div> |
</div> |
||||||
{% endblock content %} |
{% endblock content %} |
||||||
|
@ -1,56 +0,0 @@ |
|||||||
{% load wagtailimages_tags %} |
|
||||||
<!-- SLIDE --> |
|
||||||
<li class="revolution-mch-1" data-transition="fade" data-slotamount="5" data-masterspeed="1000"> |
|
||||||
<!-- MAIN IMAGE --> |
|
||||||
{% image img fill-2000x500 data-bgfit="cover" data-bgposition="left top" data-bgrepeat="no-repeat" %} |
|
||||||
|
|
||||||
{% if headline %} |
|
||||||
<div class="tp-caption revolution-ch1 sft start" |
|
||||||
data-x="center" |
|
||||||
data-hoffset="0" |
|
||||||
data-y="100" |
|
||||||
data-speed="1500" |
|
||||||
data-start="500" |
|
||||||
data-easing="Back.easeInOut" |
|
||||||
data-endeasing="Power1.easeIn" |
|
||||||
data-endspeed="300"> |
|
||||||
{{ headline }} |
|
||||||
</div> |
|
||||||
{% endif %} |
|
||||||
|
|
||||||
{% if subline %} |
|
||||||
<!-- LAYER --> |
|
||||||
<div class="tp-caption revolution-ch2 sft" |
|
||||||
data-x="center" |
|
||||||
data-hoffset="0" |
|
||||||
data-y="190" |
|
||||||
data-speed="1400" |
|
||||||
data-start="2000" |
|
||||||
data-easing="Power4.easeOut" |
|
||||||
data-endspeed="300" |
|
||||||
data-endeasing="Power1.easeIn" |
|
||||||
data-captionhidden="off" |
|
||||||
style="z-index: 6"> |
|
||||||
{{ subline }} |
|
||||||
</div> |
|
||||||
{% endif %} |
|
||||||
|
|
||||||
{% if link_url and link_text %} |
|
||||||
<!-- LAYER --> |
|
||||||
<div class="tp-caption sft" |
|
||||||
data-x="center" |
|
||||||
data-hoffset="0" |
|
||||||
data-y="310" |
|
||||||
data-speed="1600" |
|
||||||
data-start="2800" |
|
||||||
data-easing="Power4.easeOut" |
|
||||||
data-endspeed="300" |
|
||||||
data-endeasing="Power1.easeIn" |
|
||||||
data-captionhidden="off" |
|
||||||
style="z-index: 6"> |
|
||||||
<a href="{{ link_url }}" class="btn-u btn-brd btn-brd-hover btn-u-light">{{ link_text }}</a> |
|
||||||
</div> |
|
||||||
{% endif %} |
|
||||||
</li> |
|
||||||
<!-- END SLIDE --> |
|
||||||
|
|
@ -1,9 +1,9 @@ |
|||||||
{% load menu_tags wagtailcore_tags %} |
{% load menu_tags wagtailcore_tags %} |
||||||
|
|
||||||
<ul class="dropdown-menu" aria-labelledby="navbarDropdown"> |
<ul class="dropdown-menu shadow-sm border-0" aria-labelledby="navbarDropdown"> |
||||||
{# Include link to parent because the parent link is a drop down #} |
{# Include link to parent because the parent link is a drop down #} |
||||||
<li><a class="dropdown-item" href="{% pageurl parent %}">{{ parent.title }}</a></li> |
<li><a class="dropdown-item" href="{% pageurl parent %}">{{ parent.title }}</a></li> |
||||||
{% for child in menuitems_children %} |
{% for child in menuitems_children %} |
||||||
<li><a class="dropdown-item{% if child.active %} active{% endif %}" href="{% pageurl child %}">{{ child.title }}</a></li> |
<li><a class="dropdown-item{% if child.active %} active text-primary{% endif %}" href="{% pageurl child %}">{{ child.title }}</a></li> |
||||||
{% endfor %} |
{% endfor %} |
||||||
</ul> |
</ul> |
||||||
|
Loading…
Reference in new issue