Merge master into task/3530/upgrade_to_django_1.11

This commit is contained in:
M.Ravi 2017-12-21 15:33:48 +01:00
commit 17d95609c6
21 changed files with 782 additions and 614 deletions

View file

@ -1,10 +1,17 @@
Next release: Next:
* #3911: [dcl] Integrate resend activation link into dcl landing payment page
* #3972: [hosting] Add ungleich company info to invoice footer
* #3974: [hosting] Improve invoice number: Show 404 for invoice resources that do not belong to the user
1.2.13: 2017-12-09
* [cms] Introduce UngleichHeaderBackgroundImageAndTextSliderPlugin that allows to have scrolling images and texts
* [cms] Remove <p> tag for ungleich cms customer item template
1.2.12: 2017-12-09
* #3594: [digitalglarus] Remove white scroll bar on the right in mobile
* #3905: [ungleich] Update ungleich.ch header into a slider * #3905: [ungleich] Update ungleich.ch header into a slider
* [all] Enable logging custom modules * [all] Enable logging custom modules
1.2.11: 2017-11-30 1.2.11: 2017-11-30
* [all] TravisCI: Test against python 3.4.2 only * [all] TravisCI: Test against python 3.4.2 only
* [ungleich] Remove data-replaced image in ungleich CMS services item * [ungleich] Remove data-replaced image in ungleich CMS services item plugin template
plugin template
1.2.10: 2017-11-26 1.2.10: 2017-11-26
* #3843: [ungleich] Add generic ungleich CMS template * #3843: [ungleich] Add generic ungleich CMS template
* #3672: [all] Clean existing automated tests * #3672: [all] Clean existing automated tests

View file

@ -39,7 +39,7 @@
<p> <p>
{% trans "Don't have an account yet?" %}<br> {% trans "Don't have an account yet?" %}<br>
{% trans "You can sign up by filling in the information below." %}<br> {% trans "You can sign up by filling in the information below." %}<br>
<a href="{% url 'hosting:reset_password' %}">{% trans "Forgot password?" %}</a> <a href="{% url 'hosting:reset_password' %}" target="_blank">{% trans "Forgot password?" %}</a> or <a href="{% url 'hosting:resend_activation_link' %}" target="_blank">{% trans "Resend activation link" %}?</a>
</p> </p>
{% endif %} {% endif %}
</div> </div>

View file

@ -235,7 +235,7 @@ fieldset[disabled] .btn-xl.active {
.navbar-default .navbar-brand { .navbar-default .navbar-brand {
font-family: "Helvetica Neue", Helvetica, Arial, cursive; font-family: "Helvetica Neue", Helvetica, Arial, cursive;
color: #a1cfd7; color: #a1cfd7;
padding-top: 10px; padding-top: 11px;
} }
.navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:hover,

View file

@ -250,6 +250,7 @@ header.history {
text-align:center; text-align:center;
line-height: 2.5; line-height: 2.5;
color: #fff; color: #fff;
margin-bottom: 100px;
} }
.supporter-intro { .supporter-intro {

View file

@ -1,4 +1,4 @@
#page-top #services .container .row .col-lg-12.text-center .section-heading { #page-top #services .section-heading {
font-style: normal; font-style: normal;
color: #494949; color: #494949;
padding-top: 50px; padding-top: 50px;

View file

@ -4,26 +4,19 @@
{% block content %} {% block content %}
<style type="text/css"> <style type="text/css">
@media screen and (max-width: 600px) {
@media screen and (max-width: 600px) {
#timeline{ #timeline{
display: none; display: none;
} }
h2 {font-size: 2em !important;} h2 {font-size: 2em !important;}
}
}
</style> </style>
<!-- Header --> <!-- Header -->
<header class="history"> <header class="history">
<div class="container header-history"> <div class="container header-history">
<div class="intro-text"> <div class="intro-text">
<p>
</p>
<div class="intro-headline"> <div class="intro-headline">
<span class="intro-headline"> <span class="intro-headline">
Where great minds work Where great minds work
@ -31,66 +24,72 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</header> </header>
<!-- form section ends--> <!-- form section ends-->
<!-- Services Section -->
<!-- Services Section -->
<section id="history"> <section id="history">
<div class="container-fluid"> <div class="container-fluid">
<div class="row-fluid"> <div class="text-center wow fadeInDown">
<div class="col-lg-12 col-md-12 text-center wow fadeInDown">
<span class="glyphicon glyphicon-star glyphicon-inverse"></span> <span class="glyphicon glyphicon-star glyphicon-inverse"></span>
<h2 class="section-heading">the story of Digital Glarus</h2> <h2 class="section-heading">the story of Digital Glarus</h2>
<p class="carousel-text text-center supporter-black"> <p class="carousel-text text-center supporter-black">
In search for a better environment for creativity, ungleich In search for a better environment for creativity, ungleich
arrived at a small village in Glarus. First we were driven by the arrived at a small village in Glarus. First we were driven by the
cheap real estate price, then we were genuinely surprised by the beauty of its nature. People were incredibly friendly as well. Working just became so relaxed and enjoyable in such a beautiful cheap real estate price, then we were genuinely surprised by the
beauty of its nature. People were incredibly friendly as well.
Working just became so relaxed and enjoyable in such a beautiful
surrounding..How come we are the only ones here?! We can't be surrounding..How come we are the only ones here?! We can't be
enjoying this alone, we need to let others know about this great enjoying this alone, we need to let others know about this great
place. That's how it all started... place. That's how it all started...
</p> </p>
<span class="glyphicon glyphicon-heart glyphicon-inverse"></span> <span class="glyphicon glyphicon-heart glyphicon-inverse"></span>
<h2 class="section-heading">we fell in love</h2>
<h2 class="section-heading">we fell in love</h2>
<p class="carousel-text text-center supporter-black"> <p class="carousel-text text-center supporter-black">
We didn't see this coming, but we really fell in love with Glarus. The lakes, the mountains, the mist, the (amazing) snow, We didn't see this coming, but we really fell in love with Glarus.
the fresh air, the stream, the people, the stars...how could we not? And before long, we found an 100 something years old house, The lakes, the mountains, the mist, the (amazing) snow,
the fresh air, the stream, the people, the stars...how could we
not? And before long, we found an 100 something years old house,
formerly a family home, but long time unused, next to a river in formerly a family home, but long time unused, next to a river in
Schwanden. Full of old furniture, the house and the neighborhood Schwanden. Full of old furniture, the house and the neighborhood
was stepping in a time machine. There, we found our first was stepping in a time machine. There, we found our first
coworking space in Glarus.</p> coworking space in Glarus.
</p>
<span class="glyphicon glyphicon-home glyphicon-inverse"></span> <span class="glyphicon glyphicon-home glyphicon-inverse"></span>
<h2 class="section-heading">Our crowdfunding success</h2>
<h2 class="section-heading">Our crowdfunding success</h2>
<p class="carousel-text text-center supporter-black"> <p class="carousel-text text-center supporter-black">
What comes with a very old house? Lots of charm, yes. Great What comes with a very old house? Lots of charm, yes. Great
history, yes. A contract stating that we can park our goats in the history, yes. A contract stating that we can park our goats in the
storage room, yes. And, yes, tons of things to be fixed. We storage room, yes. And, yes, tons of things to be fixed. We
couldn't afford much of renovation-we are a young start up rich couldn't afford much of renovation-we are a young start up rich
with creativity but not much money (yet)-that is why we decided to ask for help. To our surprise, generous people found hope and with creativity but not much money (yet)-that is why we decided to
ask for help. To our surprise, generous people found hope and
inspiration from our project. We got much supports from people we inspiration from our project. We got much supports from people we
know and we don't know. People wrote to us, called us, met us. We know and we don't know. People wrote to us, called us, met us. We
were on the cover of newspaper. We were on TV. We became the talk were on the cover of newspaper. We were on TV. We became the talk
of the town. of the town.
</p> </p>
<div>
<div><iframe class="center-block" frameborder="0" height="330" scrolling="no" src="//www.100-days.net/de/projekt/start-digital-glarus/widget/v2" width="220"></iframe></div> <iframe class="center-block" frameborder="0" height="330" scrolling="no" src="//www.100-days.net/de/projekt/start-digital-glarus/widget/v2" width="220"></iframe>
</div>
<span class="glyphicon glyphicon-road glyphicon-inverse"></span> <span class="glyphicon glyphicon-road glyphicon-inverse"></span>
<h2 class="section-heading text-cente">And the story continues..!</h2> <h2 class="section-heading text-cente">And the story continues..!</h2>
<p class="carousel-text text-center supporter-black"> <p class="carousel-text text-center supporter-black">
With the money we raised from our crowdfunding campaign, we With the money we raised from our crowdfunding campaign, we
started renovating the hourse, ripping floors off and fixing started renovating the hourse, ripping floors off and fixing
walls, giving a fresh coat of paint on old walls. We hired Samuel, walls, giving a fresh coat of paint on old walls. We hired Samuel,
who came to Glarus as a refugee from Eritrea, as our intern to who came to Glarus as a refugee from Eritrea, as our intern to
renovate the house and learn computer science. We opened our door for students to live. Our coworking space is growing slowly but renovate the house and learn computer science. We opened our door
for students to live. Our coworking space is growing slowly but
meaningfully. Our journey only started! meaningfully. Our journey only started!
</p> </p>
<hr class="primary"> <hr class="primary">
</div> </div>
</div> </div>
</div>
</section> </section>
<!-- Half Page Image Background Carousel --> <!-- Half Page Image Background Carousel -->
@ -98,56 +97,55 @@
<div id="timeline"> <div id="timeline">
<iframe frameborder="0" width="100%" height="650" src="//cdn.knightlab.com/libs/timeline3/latest/embed/index.html?source=15clFd1fjnVScVziBlF-X7j5M7V6uNFt9jt9QZVylaYI&amp;font=Default&amp;lang=en&amp;initial_zoom=2&amp;height=650" width="100%"></iframe> <iframe frameborder="0" width="100%" height="650" src="//cdn.knightlab.com/libs/timeline3/latest/embed/index.html?source=15clFd1fjnVScVziBlF-X7j5M7V6uNFt9jt9QZVylaYI&amp;font=Default&amp;lang=en&amp;initial_zoom=2&amp;height=650" width="100%"></iframe>
</div> </div>
</section> </section>
<!-- Supporters --> <!-- Supporters -->
<section id="supporters"> <section id="supporters">
<div class="supporter-bg"> <div class="supporter-bg">
<div class="container"> <div class="container">
<div class="col-lg-12 text-center wow fadeInDown"> <div class="text-center wow fadeInUp">
<h2 class="supporter-headline">Our Supporters</h2> <h2 class="supporter-headline">Our Supporters</h2>
<hr class="primary"> <hr class="primary">
<p class="carousel-text supporter-intro text-muted text-center"> Here are our proud supporters of project Digital Glarus. Thanks to our supporters, the first cowerking space in Glarus <p class="carousel-text supporter-intro text-muted text-center">
is going to have a new look!</p> Here are our proud supporters of project Digital Glarus. Thanks to our supporters,
the first cowerking space in Glarus is going to have a new look!
</p>
<p class="supporter" style="text-transform: uppercase;"> <p class="supporter" style="text-transform: uppercase;">
{% for supporter in supporters %} {% for supporter in supporters %}
{{ supporter.name }} {{ supporter.name }}
<br> <br>
{% endfor %} {% endfor %}
<br> <br>
<a href="{% url 'digitalglarus:supportus' %}" class="btn btn-default btn-primary sr-button">Become a supporter</a> <a href="{% url 'digitalglarus:supportus' %}" class="btn btn-default btn-primary sr-button">Become a supporter</a>
<br> </p>
<br>
<br>
<br>
</div> </div>
</div> </div>
</div> </div>
</section> </section>
<section id="contact"> <section id="contact">
<div class="fill"> <div class="fill">
<div class="row" class="wow fadeInDown"> <div class="container">
<div class="col-lg-12 text-center wow fadeInDown"> <div class="wow fadeInUp text-center">
<div class=" map-wrap"> <h2 class="section-heading" style="margin-top: 40px;">Contact Us</h2>
<iframe style="pointer-events:none;margin-top:20px;" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2721.4267495037207!2d9.070190915609343!3d46.99259307914885!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47852e9322cc1971%3A0xf1558647dfdfaa60!2sIn+der+Au+7%2C+8762+Glarus+S%C3%BCd!5e0!3m2!1sen!2sch!4v1470238006004" width="100%" height="450" frameborder="0" style="border:0"></iframe> <div class="map-wrap">
<iframe style="margin-top:20px;" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2721.4267495037207!2d9.070190915609343!3d46.99259307914885!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47852e9322cc1971%3A0xf1558647dfdfaa60!2sIn+der+Au+7%2C+8762+Glarus+S%C3%BCd!5e0!3m2!1sen!2sch!4v1470238006004" width="100%" height="450" frameborder="0" style="border:0"></iframe>
</div> </div>
</div>
<div class="row">
<div class="col-md-4 map-title"> <div class="col-md-4 map-title">
Digital Glarus<br> Digital Glarus<br>
<span class="map-caption">In der Au 7 Schwanden 8762 Switzerland <span class="map-caption">
In der Au 7 Schwanden 8762 Switzerland
<br>info@digitalglarus.ch <br>info@digitalglarus.ch
<br> <br>
(044) 534-66-22 (044) 534-66-22
<p>&nbsp;</p> <br>
</span> </span>
</div>
<p>&nbsp;</p> <p>&nbsp;</p>
</div> </div>
</div> </div>
</div> </div>
</div>
</section> </section>
{% endblock %} {% endblock %}

View file

@ -3,45 +3,12 @@
{% block content %} {% block content %}
<!-- Header --> <style type="text/css">
<header>
<div class="container">
<div class="intro-text">
<p>
</p>
<div class="intro-headline">
<span class="intro-headline">
Where great minds work
</span>
</div>
</div>
</div>
<div class="container-fluid darkened-container">
<h3 class="intro-small">
Book a date today and dive in</h3>
<a href="{% url 'digitalglarus:booking' %}" class="btn btn-primary">Join now</a>
<!-- <form class="form-inline">
<div class="form-group">
<label class="sr-only" for="exampleInputPassword3">Pick a date</label>
<input type="password" class="form-control" id="exampleInputPassword3" placeholder="Pick a date">
<div class="form-group">
<label class="sr-only" for="exampleInputEmail3">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail3" placeholder="Enter email">
</div>
</div>
<button type="submit" class="btn btn-primary">book a date</button>
</form> -->
</div>
<style type="text/css">
.caption-style-1{ .caption-style-1{
list-style-type: none; list-style-type: none;
margin: 0px; margin: 0px;
padding: 0px; padding: 0px;
} }
.caption-style-1 li{ .caption-style-1 li{
@ -53,10 +20,8 @@
.caption-style-1 li:hover .caption{ .caption-style-1 li:hover .caption{
opacity: 1; opacity: 1;
} }
.caption-style-1 img{ .caption-style-1 img{
margin: 0px; margin: 0px;
padding: 0px; padding: 0px;
@ -64,7 +29,6 @@
z-index: 4; z-index: 4;
} }
.caption-style-1 .caption{ .caption-style-1 .caption{
cursor: pointer; cursor: pointer;
opacity: 0; opacity: 0;
@ -73,7 +37,6 @@
-o-transition:all 0.45s ease-in-out; -o-transition:all 0.45s ease-in-out;
-ms-transition:all 0.45s ease-in-out; -ms-transition:all 0.45s ease-in-out;
transition:all 0.45s ease-in-out; transition:all 0.45s ease-in-out;
} }
.caption-style-1 .blur{ .caption-style-1 .blur{
background-color: rgba(0,0,0,0.65); background-color: rgba(0,0,0,0.65);
@ -94,8 +57,6 @@
height: 200px; height: 200px;
text-align: center; text-align: center;
top:30px; top:30px;
} }
/** content **/ /** content **/
@ -125,6 +86,8 @@
font-size: 30px; font-size: 30px;
font-weight: 600; font-weight: 600;
padding-top: 50px; padding-top: 50px;
display: flex;
justify-content: center;
} }
.section-top-content span{ .section-top-content span{
font-weight: 300; font-weight: 300;
@ -135,101 +98,141 @@
text-align: right; text-align: right;
} }
.section-top-img { .section-top-img {
padding:0px; max-width: 50%;
padding: 0px;
} }
@media(max-width:500px) { @media(max-width:500px) {
.section-top-txt { .section-top-txt {
padding: 55px 5px 0 0px; padding: 55px 5px 0 0px;
} }
.section-top-content { .section-top-content {
font-size: 28px; font-size: 28px;
} }
} }
@media(max-width:360px) { @media(max-width:360px) {
.section-top-txt { .section-top-txt {
padding: 32px 5px 0 0px; padding: 32px 5px 0 0px;
} }
.section-top-content { .section-top-content {
font-size: 18px; font-size: 18px;
} }
} }
@media screen and (min-device-width: 768px) and (max-device-width: 991px) { @media screen and (min-device-width: 768px) and (max-device-width: 991px) {
.section-top-txt { .section-top-txt {
padding-top: 43px; padding-top: 43px;
} }
} }
@media screen and (min-device-width: 992px) and (max-device-width: 1200px) { @media screen and (min-device-width: 992px) and (max-device-width: 1200px) {
.section-top-txt { .section-top-txt {
padding-top: 65px; padding-top: 65px;
} }
} }
@media screen and (min-device-width: 361px) and (max-device-width: 428px) {
.section-top-txt {
padding: 35px 5px 0 0px;
}
.section-top-content {
font-size: 22px;
}
}
</style> </style>
<!-- Header -->
<header>
<div class="container">
<div class="intro-text">
<div class="intro-headline">
<span class="intro-headline">
Where great minds work
</span>
</div>
</div>
</div>
<div class="container-fluid darkened-container">
<h3 class="intro-small">Book a date today and dive in</h3>
<a href="{% url 'digitalglarus:booking' %}" class="btn btn-primary">Join now</a>
{% comment %}
<form class="form-inline">
<div class="form-group">
<label class="sr-only" for="exampleInputPassword3">Pick a date</label>
<input type="password" class="form-control" id="exampleInputPassword3" placeholder="Pick a date">
<div class="form-group">
<label class="sr-only" for="exampleInputEmail3">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail3" placeholder="Enter email">
</div>
</div>
<button type="submit" class="btn btn-primary">book a date</button>
</form>
{% endcomment %}
</div>
</header> </header>
<!-- form section ends--> <!-- form section ends-->
<!-- Services Section --> <!-- Services Section -->
<section id="services"> <section id="services">
<div class="container"> <div class="container">
<div class="row"> <div class="text-center wow fadeInUp section-top-content">
<div class="col-lg-12 text-center wow fadeInDown section-top-content"> <div class="section-top-txt">Partner <span>of</span></div>
<div class="col-lg-3 col-sm-2 col-xs-12"></div> <div class="section-top-img">
<div class="col-lg-6 col-sm-10 col-xs-12"> <a href="https://zurich.impacthub.ch" target="_blank">
<div class="col-lg-5 col-sm-5 col-xs-6 section-top-txt">Partner <span>of</span></div> <img src="{% static 'digitalglarus/img/impacthub_logo.jpg' %}" class="img-responsive" alt="">
<div class="col-lg-7 col-sm-4 col-xs-6 section-top-img"><a href="https://zurich.impacthub.ch" target="_blank"><img src="{% static 'digitalglarus/img/impacthub_logo.jpg' %}" class="img-responsive" alt=""></a></div> </a>
</div> </div>
<div class="col-lg-3 col-sm-12 col-xs-12"></div>
</div> </div>
<div class="col-lg-12 col-xs-12 text-center wow fadeInDown"> <div class="text-center wow fadeInUp">
<h2 class="section-heading">In Digital Glarus you can..</h2> <h2 class="section-heading">In Digital Glarus you can..</h2>
<hr class="primary"> <hr class="primary">
</div> </div>
</div>
<!--dropdown icons--> <!--dropdown icons-->
<div class="row text-center"> <div class="row text-center">
<div class="col-xs-6 col-sm-3"> <div class="col-xs-6 col-sm-3">
<div class="team-member wow fadeInDown" data-wow-delay="0.3s"> <div class="team-member wow fadeInUp" data-wow-delay="0.3s">
<img src="{% static 'digitalglarus/img/services/sleep.svg' %}" class="img-responsive img-toggle" alt=""> <img src="{% static 'digitalglarus/img/services/sleep.svg' %}" class="img-responsive img-toggle" alt="">
</div> </div>
</div> </div>
<div class="col-xs-6 col-sm-3"> <div class="col-xs-6 col-sm-3">
<div class="team-member wow fadeInDown" data-wow-delay="0.5s"> <div class="team-member wow fadeInUp" data-wow-delay="0.5s">
<img src="{% static 'digitalglarus/img/services/eat.svg' %}" class="img-responsive img-toggle" alt=""> <img src="{% static 'digitalglarus/img/services/eat.svg' %}" class="img-responsive img-toggle" alt="">
</div> </div>
</div> </div>
<div class="col-xs-6 col-sm-3"> <div class="col-xs-6 col-sm-3">
<div class="team-member wow fadeInDown" data-wow-delay="0.7s"> <div class="team-member wow fadeInUp" data-wow-delay="0.7s">
<img src="{% static 'digitalglarus/img/services/freshenup.svg' %}" class="img-responsive img-toggle cursor-pointer" alt=""> <img src="{% static 'digitalglarus/img/services/freshenup.svg' %}" class="img-responsive img-toggle cursor-pointer" alt="">
</div> </div>
</div> </div>
<div class="col-xs-6 col-sm-3"> <div class="col-xs-6 col-sm-3">
<div class="team-member wow fadeInDown" data-wow-delay="0.8s"> <div class="team-member wow fadeInUp" data-wow-delay="0.8s">
<img src="{% static 'digitalglarus/img/services/work.svg' %}" class="img-responsive img-toggle" alt=""> <img src="{% static 'digitalglarus/img/services/work.svg' %}" class="img-responsive img-toggle" alt="">
</div> </div>
</div> </div>
<div class="row text-center" style="margin-left: 0px; margin-right: 0px;"> <div class="row text-center" style="margin-left: 0px; margin-right: 0px;">
<div class="col-xs-6 col-sm-3"> <div class="col-xs-6 col-sm-3">
<div class="team-member wow fadeInDown" data-wow-delay="0.9s"> <div class="team-member wow fadeInUp" data-wow-delay="0.9s">
<img src="{% static 'digitalglarus/img/services/enjoy.svg' %}" class="img-responsive img-toggle" alt=""> <img src="{% static 'digitalglarus/img/services/enjoy.svg' %}" class="img-responsive img-toggle" alt="">
</div> </div>
</div> </div>
<div class="col-xs-6 col-sm-3"> <div class="col-xs-6 col-sm-3">
<div class="team-member wow fadeInDown" data-wow-delay="1s"> <div class="team-member wow fadeInUp" data-wow-delay="1s">
<img src="{% static 'digitalglarus/img/services/network.svg' %}" class="img-responsive img-toggle" alt=""> <img src="{% static 'digitalglarus/img/services/network.svg' %}" class="img-responsive img-toggle" alt="">
</div> </div>
</div> </div>
<div class="col-xs-6 col-sm-3"> <div class="col-xs-6 col-sm-3">
<div class="team-member wow fadeInDown" data-wow-delay="1.1s"> <div class="team-member wow fadeInUp" data-wow-delay="1.1s">
<img src="{% static 'digitalglarus/img/services/lightbulb.svg' %}" class="img-responsive img-toggle cursor-pointer" alt=""> <img src="{% static 'digitalglarus/img/services/lightbulb.svg' %}" class="img-responsive img-toggle cursor-pointer" alt="">
</div> </div>
</div> </div>
<div class="col-xs-6 col-sm-3"> <div class="col-xs-6 col-sm-3">
<div class="team-member wow fadeInDown" data-wow-delay="1.2s"> <div class="team-member wow fadeInUp" data-wow-delay="1.2s">
<img src="{% static 'digitalglarus/img/services/beinspired.svg' %}" class="img-responsive img-toggle" alt=""> <img src="{% static 'digitalglarus/img/services/beinspired.svg' %}" class="img-responsive img-toggle" alt="">
</div> </div>
</div> </div>
</div> </div>
</div>
</div>
<!-- start:recommendationSlider --> <!-- start:recommendationSlider -->
<hr class="primary"> <hr class="primary">
<div id="carousel-recommendation-ungleich" class="carousel slide ungleich ungleich-gallery ungleich-gallery-text-carousel" data-ride="carousel" data-interval="false"> <div id="carousel-recommendation-ungleich" class="carousel slide ungleich ungleich-gallery ungleich-gallery-text-carousel" data-ride="carousel" data-interval="false">
@ -284,79 +287,67 @@
</div> </div>
</div> </div>
<!-- end:recommendationSlider --> <!-- end:recommendationSlider -->
</div></section> </section>
<!-- Portfolio Grid Section --> <!-- Portfolio Grid Section -->
<section id="portfolio" class="no-padding"> <section id="portfolio" class="no-padding">
<div class="container-fluid"> <div class="container-fluid">
<!--<div class="row"> <!--<div class="row">
<div class="col-lg-12 text-center wow fadeInDown"> <div class="col-lg-12 text-center wow fadeInUp">
<h2 class="section-heading">here you can</h2> <h2 class="section-heading">here you can</h2>
<h3 class="section-subheading text-muted">Join our community. Inspire and be inspired.</h3> <h3 class="section-subheading text-muted">Join our community. Inspire and be inspired.</h3>
</div>--> </div>-->
</div>
<div class="row no-gutter popup-gallery"> <div class="row no-gutter popup-gallery">
<div class="col-lg-4 col-md-4 col-sm-6 portfolio-item wow fadeInUp text-center" data-wow-delay="0.5s">
<div class="col-lg-4 col-md-4 col-sm-6 portfolio-item wow fadeInDown text-center" data-wow-delay="0.5s">
<ul class="caption-style-1"> <ul class="caption-style-1">
<li> <li>
<img src="{% static 'digitalglarus/img/portfolio/excursion.png' %}" class="img-responsive inline-block" alt=""> <img src="{% static 'digitalglarus/img/portfolio/excursion.png' %}" class="img-responsive inline-block" alt="">
<div class="caption"> <div class="caption">
<div class="blur"></div> <div class="blur"></div>
</div> </div>
</li> </li>
</ul> </ul>
<div class="caption portfolio-caption-white">excursions</div> <div class="caption portfolio-caption-white">excursions</div>
</div> </div>
<div class="col-lg-4 col-md-4 col-sm-6 portfolio-item wow fadeInDown text-center" data-wow-delay="0.8s"> <div class="col-lg-4 col-md-4 col-sm-6 portfolio-item wow fadeInUp text-center" data-wow-delay="0.8s">
<ul class="caption-style-1"> <ul class="caption-style-1">
<li> <li>
<img src="{% static 'digitalglarus/img/portfolio/ski.png' %}" class="img-responsive inline-block" alt=""> <img src="{% static 'digitalglarus/img/portfolio/ski.png' %}" class="img-responsive inline-block" alt="">
<div class="caption"> <div class="caption">
<div class="blur"></div> <div class="blur"></div>
</div> </div>
</li> </li>
</ul> </ul>
<div class="caption portfolio-caption-white">enjoy the great outdoors</div> <div class="caption portfolio-caption-white">enjoy the great outdoors</div>
</div> </div>
<div class="col-lg-4 col-md-4 col-sm-6 portfolio-item wow fadeInUp text-center" data-wow-delay="1.1s">
<div class="col-lg-4 col-md-4 col-sm-6 portfolio-item wow fadeInDown text-center" data-wow-delay="1.1s">
<ul class="caption-style-1"> <ul class="caption-style-1">
<li> <li>
<img src="{% static 'digitalglarus/img/portfolio/concert.png' %}" class="img-responsive inline-block" alt=""> <img src="{% static 'digitalglarus/img/portfolio/concert.png' %}" class="img-responsive inline-block" alt="">
<div class="caption"> <div class="caption">
<div class="blur"></div> <div class="blur"></div>
</div> </div>
</li> </li>
</ul> </ul>
<div class="caption portfolio-caption-white">cultural events</div> <div class="caption portfolio-caption-white">cultural events</div>
</div> </div>
<div class="col-lg-4 col-md-4 col-sm-6 portfolio-item wow fadeInDown text-center" data-wow-delay="1.2s"> <div class="col-lg-4 col-md-4 col-sm-6 portfolio-item wow fadeInUp text-center" data-wow-delay="1.2s">
<ul class="caption-style-1"> <ul class="caption-style-1">
<li> <li>
<img src="{% static 'digitalglarus/img/portfolio/inspire.png' %}" class="img-responsive inline-block" alt=""> <img src="{% static 'digitalglarus/img/portfolio/inspire.png' %}" class="img-responsive inline-block" alt="">
<div class="caption"> <div class="caption">
<div class="blur"></div> <div class="blur"></div>
</div> </div>
</li> </li>
</ul> </ul>
<div class="caption portfolio-caption-white">be inspired</div> <div class="caption portfolio-caption-white">be inspired</div>
</div> </div>
<div class="col-lg-4 col-md-4 col-sm-6 portfolio-item wow fadeInUp text-center" data-wow-delay="1.3s">
<div class="col-lg-4 col-md-4 col-sm-6 portfolio-item wow fadeInDown text-center" data-wow-delay="1.3s">
<ul class="caption-style-1"> <ul class="caption-style-1">
<li> <li>
<img src="{% static 'digitalglarus/img/portfolio/workshop.png' %}" class="img-responsive inline-block" alt=""> <img src="{% static 'digitalglarus/img/portfolio/workshop.png' %}" class="img-responsive inline-block" alt="">
@ -368,7 +359,7 @@
<div class="caption portfolio-caption-white">workshops</div> <div class="caption portfolio-caption-white">workshops</div>
</div> </div>
<div class="col-lg-4 col-md-4 col-sm-6 portfolio-item wow fadeInDown text-center" data-wow-delay="1.4s"> <div class="col-lg-4 col-md-4 col-sm-6 portfolio-item wow fadeInUp text-center" data-wow-delay="1.4s">
<ul class="caption-style-1"> <ul class="caption-style-1">
<li> <li>
<img src="{% static 'digitalglarus/img/portfolio/recharge.png' %}" class="img-responsive inline-block" alt=""> <img src="{% static 'digitalglarus/img/portfolio/recharge.png' %}" class="img-responsive inline-block" alt="">
@ -379,15 +370,10 @@
</ul> </ul>
<div class="caption portfolio-caption-white">recharge</div> <div class="caption portfolio-caption-white">recharge</div>
</div> </div>
</div>
</div> </div>
</section> </section>
<!--aside--> <!--aside-->
<aside class="bg-dark"> <aside class="bg-dark">
<div class="container text-center"> <div class="container text-center">
@ -399,6 +385,7 @@
</div> </div>
</div> </div>
</aside> </aside>
<!-- Half Page Image Background Carousel --> <!-- Half Page Image Background Carousel -->
<section id="myCarousel" class="carousel slide"> <section id="myCarousel" class="carousel slide">
<!-- Indicators --> <!-- Indicators -->
@ -446,22 +433,22 @@
<!-- Controls --> <!-- Controls -->
<a class="left carousel-control" href="#myCarousel" data-slide="prev"> <a class="left carousel-control" href="#myCarousel" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span> <span class="glyphicon glyphicon-chevron-left"></span>
</a> </a>
<a class="right carousel-control" href="#myCarousel" data-slide="next"> <a class="right carousel-control" href="#myCarousel" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span> <span class="glyphicon glyphicon-chevron-right"></span>
</a> </a>
</section> </section>
<section id="contact"> <section id="contact">
<div class="fill"> <div class="fill">
<div class="row" class="wow fadeInDown"> <div class="container">
<div class="col-lg-12 text-center wow fadeInDown"> <div class="wow fadeInUp">
<div class="text-center">
<h2 class="section-heading">Contact Us</h2> <h2 class="section-heading">Contact Us</h2>
<div class=" map-wrap"> <div class="map-wrap">
<iframe style="pointer-events:none" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2721.4267495037207!2d9.070190915609343!3d46.99259307914885!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47852e9322cc1971%3A0xf1558647dfdfaa60!2sIn+der+Au+7%2C+8762+Glarus+S%C3%BCd!5e0!3m2!1sen!2sch!4v1470238006004" width="100%" height="450" frameborder="0" style="border:0"></iframe></div> <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2721.4267495037207!2d9.070190915609343!3d46.99259307914885!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47852e9322cc1971%3A0xf1558647dfdfaa60!2sIn+der+Au+7%2C+8762+Glarus+S%C3%BCd!5e0!3m2!1sen!2sch!4v1470238006004" width="100%" height="450" frameborder="0" style="border:0"></iframe>
<div class="col-md-4 map-title"> </div>
<div class="map-title">
Digital Glarus<br> Digital Glarus<br>
<span class="map-caption">In der Au 7 Schwanden 8762 Switzerland <span class="map-caption">In der Au 7 Schwanden 8762 Switzerland
<br>info@digitalglarus.ch <br>info@digitalglarus.ch
@ -478,10 +465,6 @@
</section> </section>
<!-- <!--
<div class="row"> <div class="row">
<div class="box"> <div class="box">

View file

@ -7,7 +7,7 @@
@media(min-width: 768px) { @media(min-width: 768px) {
.order-detail-container { .order-detail-container {
padding: 30px; padding: 30px 30px 20px;
} }
} }
@ -53,7 +53,7 @@
} }
.order-detail-container .order-details { .order-detail-container .order-details {
margin-bottom: 30px; margin-bottom: 15px;
} }
.order-detail-container .order-details strong { .order-detail-container .order-details strong {
@ -90,3 +90,18 @@
width: 16px; width: 16px;
} }
} }
.order_detail_footer {
font-size: 9px;
letter-spacing: 1px;
color: #333333;
}
.order_detail_footer strong {
font-size: 11px;
}
#virtual_machine_create_form {
padding: 15px 0;
}

View file

@ -135,9 +135,7 @@
</div> </div>
</div> </div>
</div> </div>
{% if not order %}
<hr> <hr>
{% endif %}
</div> </div>
{% if not order %} {% if not order %}
{% block submit_btn %} {% block submit_btn %}
@ -155,6 +153,11 @@
</div> </div>
</form> </form>
{% endblock submit_btn %} {% endblock submit_btn %}
{% else %}
<div class="order_detail_footer">
<strong>ungleich glarus ag</strong>&nbsp;&nbsp;Bahnhotstrasse 1, 8783 Linthal, Switzerland<br>
www.datacenterlight.ch&nbsp;&nbsp;|&nbsp;&nbsp;info@datacenterlight.ch
</div>
{% endif %} {% endif %}
{% endif %} {% endif %}
</div> </div>

View file

@ -41,10 +41,8 @@
{% for vm in vms %} {% for vm in vms %}
<tr> <tr>
<td data-header="ID">{{vm.vm_id}}</td> <td data-header="ID">{{vm.vm_id}}</td>
{% if vm.ipv6 %} <td data-header="IPv4">{% if vm.ipv4 %}{{vm.ipv4}}{% endif %}</td>
<td data-header="IPv4">{{vm.ipv4}}</td> <td data-header="IPv6">{% if vm.ipv6 %}{{vm.ipv6}}{% endif %}</td>
<td data-header="IPv6">{{vm.ipv6}}</td>
{% endif %}
<td data-header="{% trans 'Status' %}"> <td data-header="{% trans 'Status' %}">
<strong> <strong>
{% if vm.state == 'ACTIVE' %} {% if vm.state == 'ACTIVE' %}

View file

@ -8,7 +8,8 @@ from .views import (
MarkAsReadNotificationView, PasswordResetView, PasswordResetConfirmView, MarkAsReadNotificationView, PasswordResetView, PasswordResetConfirmView,
HostingPricingView, CreateVirtualMachinesView, HostingBillListView, HostingPricingView, CreateVirtualMachinesView, HostingBillListView,
HostingBillDetailView, SSHKeyDeleteView, SSHKeyCreateView, SSHKeyListView, HostingBillDetailView, SSHKeyDeleteView, SSHKeyCreateView, SSHKeyListView,
SSHKeyChoiceView, DashboardView, SettingsView, ResendActivationEmailView) SSHKeyChoiceView, DashboardView, SettingsView, ResendActivationEmailView
)
urlpatterns = [ urlpatterns = [

View file

@ -672,13 +672,25 @@ class OrdersHostingDetailView(LoginRequiredMixin,
permission_required = ['view_hostingorder'] permission_required = ['view_hostingorder']
model = HostingOrder model = HostingOrder
def get_object(self): def get_object(self, queryset=None):
return HostingOrder.objects.get( order_id = self.kwargs.get('pk')
pk=self.kwargs.get('pk')) if self.kwargs.get('pk') else None try:
hosting_order_obj = HostingOrder.objects.get(pk=order_id)
logger.debug("Found HostingOrder for id {order_id}".format(
order_id=order_id
))
except HostingOrder.DoesNotExist:
logger.debug("HostingOrder not found for id {order_id}".format(
order_id=order_id
))
hosting_order_obj = None
return hosting_order_obj
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
# Get context # Get context
context = super(DetailView, self).get_context_data(**kwargs) context = super(
OrdersHostingDetailView, self
).get_context_data(**kwargs)
obj = self.get_object() obj = self.get_object()
owner = self.request.user owner = self.request.user
stripe_api_cus_id = self.request.session.get('customer') stripe_api_cus_id = self.request.session.get('customer')
@ -692,6 +704,17 @@ class OrdersHostingDetailView(LoginRequiredMixin,
context['page_header_text'] = _('Confirm Order') context['page_header_text'] = _('Confirm Order')
else: else:
context['page_header_text'] = _('Invoice') context['page_header_text'] = _('Invoice')
if not self.request.user.has_perm(
self.permission_required[0], obj
):
logger.debug(
"User {user} does not have permission on HostingOrder "
"{order_id}. Raising 404 error now.".format(
user=self.request.user.email,
order_id=obj.id if obj else 'None'
)
)
raise Http404
if obj is not None: if obj is not None:
# invoice for previous order # invoice for previous order

View file

@ -1,11 +1,11 @@
Babel==2.3.4 Babel==2.3.4
Django==1.11.8 Django==1.9.4
Django-Select2==4.3.2 Django-Select2==4.3.2
Pillow==4.3.0 Pillow==3.2.0
URLObject==2.4.0 URLObject==2.4.0
Unidecode==0.04.21 Unidecode==0.04.19
YURL==0.13 YURL==0.13
aldryn-apphooks-config==0.3.3 aldryn-apphooks-config==0.2.7
aldryn-boilerplates==0.7.4 aldryn-boilerplates==0.7.4
aldryn-categories==1.0.3 aldryn-categories==1.0.3
aldryn-common==1.0.1 aldryn-common==1.0.1
@ -14,48 +14,41 @@ aldryn-people==1.2.0
aldryn-reversion==1.0.8 aldryn-reversion==1.0.8
aldryn-search==0.2.11 aldryn-search==0.2.11
aldryn-translation-tools==0.2.1 aldryn-translation-tools==0.2.1
amqp==2.2.1
backport-collections==0.1 backport-collections==0.1
billiard==3.5.0.3
cdist==4.7.0
celery==4.0.2
cmsplugin-filer==1.0.1 cmsplugin-filer==1.0.1
coverage==4.3.4
django-admin-honeypot==1.0.0
django-appconf==1.0.2 django-appconf==1.0.2
django-appdata==0.1.6 django-appdata==0.1.5
django-bootstrap3==9.1.0 django-bootstrap3==7.0.1
django-celery-results==1.0.1 django-classy-tags==0.7.2
django-classy-tags==0.8.0 django-cms==3.2.5
django-cms==3.4.5
django-compressor==2.0 django-compressor==2.0
django-debug-toolbar==1.4 django-debug-toolbar==1.4
django-dotenv==1.4.1 django-dotenv==1.4.1
django-extensions==1.6.7 django-extensions==1.6.7
django-filer==1.3.0 django-filer==1.2.0
django-filter==0.13.0 django-filter==0.13.0
django-formtools==2.1 django-formtools==1.0
django-guardian==1.4.9 django-guardian==1.4.4
django-haystack==2.4.1 django-haystack==2.4.1
django-meta==1.2 django-meta==1.2
django-meta-mixin==0.3.0 django-meta-mixin==0.3.0
django-model-utils==2.5 django-model-utils==2.5
django-mptt==0.8.7 django-mptt==0.8.4
django-parler==1.6.3 django-parler==1.6.3
django-phonenumber-field==1.1.0 django-phonenumber-field==1.1.0
django-polymorphic==1.3 django-polymorphic==0.9.2
django-reversion==1.10.2 django-reversion==1.10.2
django-sekizai==0.10.0 django-sekizai==0.9.0
django-sortedm2m==1.2.2 django-sortedm2m==1.2.2
django-spurl==0.6.4 django-spurl==0.6.4
django-standard-form==1.1.1 django-standard-form==1.1.1
django-stored-messages==1.4.0 django-stored-messages==1.4.0
django-taggit==0.22.1 django-taggit==0.18.3
django-taggit-autosuggest==0.3.1 django-taggit-autosuggest==0.2.8
django-taggit-templatetags==0.2.5 django-taggit-templatetags==0.2.5
django-templatetag-sugar==1.0 django-templatetag-sugar==1.0
django-treebeard==4.1.2 django-treebeard==4.0.1
djangocms-admin-style==1.2.7 djangocms-admin-style==1.1.1
djangocms-apphook-setup==0.1.2 djangocms-apphook-setup==0.1.2
djangocms-blog==0.7.0 djangocms-blog==0.7.0
djangocms-file==1.0 djangocms-file==1.0
@ -68,33 +61,39 @@ djangocms-picture==1.0.0
djangocms-teaser==0.2.0 djangocms-teaser==0.2.0
djangocms-text-ckeditor==2.9.3 djangocms-text-ckeditor==2.9.3
djangocms-video==1.0.0 djangocms-video==1.0.0
djangorestframework==3.6.3 easy-thumbnails==2.3
easy-thumbnails==2.4.2
flake8==3.3.0
html5lib==0.9999999 html5lib==0.9999999
kombu==4.1.0
lxml==3.6.0 lxml==3.6.0
mccabe==0.6.1
model-mommy==1.2.6 model-mommy==1.2.6
git+https://github.com/ungleich/python-oca.git#egg=python-oca
olefile==0.44
phonenumbers==7.4.0 phonenumbers==7.4.0
phonenumberslite==7.4.0 phonenumberslite==7.4.0
psycopg2==2.6.1 psycopg2==2.7.1
pycodestyle==2.3.1
pycryptodome==3.4 pycryptodome==3.4
pyflakes==1.5.0
pylibmc==1.5.1 pylibmc==1.5.1
python-dateutil==2.5.3 python-dateutil==2.5.3
python-memcached==1.58
python-slugify==1.2.0 python-slugify==1.2.0
pytz==2017.3 pytz==2016.4
rcssmin==1.0.6 rcssmin==1.0.6
redis==2.10.5
requests==2.10.0 requests==2.10.0
rjsmin==1.0.12 rjsmin==1.0.12
six==1.10.0 six==1.10.0
sqlparse==0.1.19 sqlparse==0.1.19
stripe==1.33.0 stripe==1.33.0
vine==1.1.4
wheel==0.29.0 wheel==0.29.0
django-admin-honeypot==1.0.0
coverage==4.3.4
git+https://github.com/ungleich/python-oca.git#egg=python-oca
djangorestframework==3.6.3
flake8==3.3.0
python-memcached==1.58
celery==4.0.2
redis==2.10.5
django-celery-results==1.0.1
kombu==4.1.0
mccabe==0.6.1
pycodestyle==2.3.1
pyflakes==1.5.0
billiard==3.5.0.3
amqp==2.2.1
vine==1.1.4
cdist==4.7.0

View file

@ -5,7 +5,9 @@ from .models import (
UngelichContactUsSection, UngelichTextSection, Service, ServiceItem, UngelichContactUsSection, UngelichTextSection, Service, ServiceItem,
About, AboutItem, SectionWithImage, UngleichServiceItem, UngleichHeader, About, AboutItem, SectionWithImage, UngleichServiceItem, UngleichHeader,
UngleichHeaderItem, UngleichProductItem, UngleichProduct, UngleichCustomer, UngleichHeaderItem, UngleichProductItem, UngleichProduct, UngleichCustomer,
UngleichCustomerItem, UngleichHTMLOnly, UngleichSimpleHeader UngleichCustomerItem, UngleichHTMLOnly, UngleichSimpleHeader,
UngleichHeaderWithBackgroundImageSlider,
UngleichHeaderWithBackgroundImageSliderItem
) )
@ -224,6 +226,41 @@ class UngleichHeaderItemPlugin(CMSPluginBase):
return context return context
@plugin_pool.register_plugin
class UngleichHeaderBackgroundImageAndTextSliderPlugin(CMSPluginBase):
name = "ungleich Header with Background and Image Slider Plugin"
model = UngleichHeaderWithBackgroundImageSlider
render_template = (
'ungleich_page/ungleich/header_with_background_image_slider.html'
)
cache = False
allow_children = True
child_classes = ['UngleichHeaderBackgroundImageAndTextItemPlugin']
def render(self, context, instance, placeholder):
context['instance'] = instance
return context
@plugin_pool.register_plugin
class UngleichHeaderBackgroundImageAndTextItemPlugin(CMSPluginBase):
name = "ungleich Header with Background and Image and Text Item Plugin"
model = UngleichHeaderWithBackgroundImageSliderItem
render_template = (
'ungleich_page/ungleich/_header_with_background_image_slider_item.html'
)
cache = False
require_parent = True
parent_classes = ['UngleichHeaderBackgroundImageAndTextSliderPlugin']
def render(self, context, instance, placeholder):
context = super(
UngleichHeaderBackgroundImageAndTextItemPlugin, self
).render(context, instance, placeholder)
context['instance'] = instance
return context
@plugin_pool.register_plugin @plugin_pool.register_plugin
class UngleichProductsPlugin(CMSPluginBase): class UngleichProductsPlugin(CMSPluginBase):
name = "ungleich Products Plugin" name = "ungleich Products Plugin"

View file

@ -22,7 +22,7 @@ msgid "Glasfaser menu"
msgstr "" msgstr ""
msgid "\"Sorry, we could not find the page you are looking for!\"" msgid "\"Sorry, we could not find the page you are looking for!\""
msgstr "" msgstr "\"Leider konnten wir die von dir gesuchte Seite nicht finden!\""
msgid "Toggle navigation" msgid "Toggle navigation"
msgstr "Umschalten" msgstr "Umschalten"

View file

@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2017-12-02 07:30
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import djangocms_text_ckeditor.fields
import filer.fields.image
class Migration(migrations.Migration):
dependencies = [
('filer', '0004_auto_20160328_1434'),
('cms', '0014_auto_20160404_1908'),
('ungleich_page', '0015_ungleichsimpleheader'),
]
operations = [
migrations.CreateModel(
name='UngleichHeaderWithBackgroundImageSlider',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('carousel_data_interval', models.IntegerField(default=2000)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='UngleichHeaderWithBackgroundImageSliderItem',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='cms.CMSPlugin')),
('description', djangocms_text_ckeditor.fields.HTMLField(default='<div class="intro-cap">We Design, Configure &amp; Maintain <br>Your Linux Infrastructure</div><p class="intro_lead">Ruby on Rails, Django, Java, Webserver, Mailserver, any infrastructure that needs to configured, we provide comprehensive solutions. Amazon, rackspace or bare metal servers, we configure for you.</p><p style="text-align: right;"><a class="btn btn-trans" href="">Learn More</a></p>')),
('background_image', filer.fields.image.FilerImageField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='ungleich_header_slider_item_image', to='filer.Image')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
]

View file

@ -124,6 +124,27 @@ class UngleichHeader(CMSPlugin):
carousel_data_interval = models.IntegerField(default=5000) carousel_data_interval = models.IntegerField(default=5000)
class UngleichHeaderWithBackgroundImageSliderItem(CMSPlugin):
background_image = FilerImageField(
null=True, blank=True,
related_name="ungleich_header_slider_item_image",
on_delete=models.SET_NULL
)
description = HTMLField(
default='<div class="intro-cap">We Design, Configure &amp; Maintain '
'<br>Your Linux Infrastructure</div><p class="intro_lead">'
'Ruby on Rails, Django, Java, Webserver, Mailserver, any '
'infrastructure that needs to configured, we provide '
'comprehensive solutions. Amazon, rackspace or bare metal '
'servers, we configure for you.</p><p style="text-align: '
'right;"><a class="btn btn-trans" href="">Learn More</a></p>'
)
class UngleichHeaderWithBackgroundImageSlider(CMSPlugin):
carousel_data_interval = models.IntegerField(default=2000)
class UngleichHeaderItem(CMSPlugin): class UngleichHeaderItem(CMSPlugin):
image = FilerImageField( image = FilerImageField(
null=True, null=True,

View file

@ -280,7 +280,10 @@ fieldset[disabled] .btn-xl.active {
} }
.navbar-default .navbar-brand { .navbar-default .navbar-brand {
padding: 8px; padding: 4px 8px 12px;
}
.navbar-default.navbar-shrink .navbar-brand {
padding: 6px 8px 10px;
} }
} }
@ -440,6 +443,7 @@ section h3.section-subheading {
max-width: 400px; max-width: 400px;
text-align: center; text-align: center;
background-color: #fff; background-color: #fff;
width: 100%;
} }
#portfolio .portfolio-item .portfolio-caption h4 { #portfolio .portfolio-item .portfolio-caption h4 {

View file

@ -1,2 +1,2 @@
<a href="{{ instance.url }}"><img class="center-block img-client img-responsive" src="{{ instance.image.url}}"></a> <a href="{{ instance.url }}"><img class="center-block img-client img-responsive" src="{{ instance.image.url}}"></a>
<p class="carousel-text text-muted text-center">{{ instance.description }}</p> {{ instance.description }}

View file

@ -0,0 +1,4 @@
<div class="bg_img" style="background-image:url({{ instance.background_image.url }})"></div>
<div class="container">
{{ instance.description }}
</div>

View file

@ -0,0 +1,31 @@
{% load cms_tags %}
<header class="header_slider">
<div id="carousel-header-ungleich" class="carousel slide" data-interval="{{ instance.carousel_data_interval}}">
<!-- Indicators -->
{% if instance.child_plugin_instances|length > 1 %}
<ol class="carousel-indicators">
{% for plugin in instance.child_plugin_instances %}
<li data-target="#carousel-header-ungleich" data-slide-to="{{forloop.counter0}}" {% if forloop.counter0 == 0 %}class="active" {% endif %}></li>
{% endfor %}
</ol>
{% endif %}
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
{% for plugin in instance.child_plugin_instances %}
<div class="item {% if forloop.counter0 == 0 %}active{% endif %}">
{% render_plugin plugin %}
</div>
{% endfor %}
</div>
{% if instance.child_plugin_instances|length > 1 %}
<a class="left carousel-control" href="#carousel-header-ungleich" role="button" data-slide="prev">
<span class="fa fa-angle-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#carousel-header-ungleich" role="button" data-slide="next">
<span class="fa fa-angle-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
{% endif %}
</div>
</header>