|
@ -41,7 +41,7 @@ configure the values for the ssh host, user, port and target directory.
|
|||
Run:
|
||||
|
||||
$ python manage.py makemigratoins
|
||||
$ python manage.py syncdb
|
||||
$ python manage.py migrate
|
||||
|
||||
7. Setup a circus configuration.
|
||||
|
||||
|
|
49
design_membership/confirm.html
Normal file
|
@ -0,0 +1,49 @@
|
|||
<html><head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="http://netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
<link href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="membership.css" rel="stylesheet" type="text/css">
|
||||
</head><body>
|
||||
<div class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-2"></div>
|
||||
<div class="col-md-8">
|
||||
<div class="col-md-12 text-left">
|
||||
<h2 class="text-center text-muted">Your membership is almost ready!</h2>
|
||||
<h5 class="text-center text-muted">If this is correct information, click CONFIRM</h5>
|
||||
<br>
|
||||
<h4 class="text-center text-muted">Name: Nico Schottelius</h4>
|
||||
<h4 class="text-center text-muted">Email: nico.schottelius@digitalglarus.ch</h4>
|
||||
<h4 class="text-center text-muted">Membership requested for:
|
||||
<br><br>01.01.2016-31.12.2016</h4>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2"></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-center">
|
||||
<p class="text-center text-muted">Have probelm? Contact
|
||||
<a href="">help@digitalglarus.ch.</a>
|
||||
<br>
|
||||
</p>
|
||||
<a class="btn btn-primary">GO BACK</a>
|
||||
<a class="btn btn-primary">CONFIRM</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body></html>
|
66
design_membership/creditcard.html
Normal file
|
@ -0,0 +1,66 @@
|
|||
<html><head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="http://netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
<link href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="membership.css" rel="stylesheet" type="text/css">
|
||||
</head><body>
|
||||
<div class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-2"></div>
|
||||
<div class="col-md-8">
|
||||
<h3 class="text-left text-muted">Payment details</h3>
|
||||
<hr>
|
||||
<div class="page-header text-muted" contenteditable="true">
|
||||
<h5>1 Year coworking membership (360 CHF)</h5>
|
||||
<h5> +2 free working days included (0 CHF)</h5>
|
||||
<div class="page-header text-muted">
|
||||
<h5>Valid 01.01.2016 - 31.12.2016 </h5>
|
||||
<h5>Coworker Name : Nico Schottelius </h5>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-header text-muted">
|
||||
<h3 class="text-right">Total : 360 CHF</h3>
|
||||
</div>
|
||||
<form role="form">
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="exampleInputEmail1">Name*</label>
|
||||
<input class="form-control" id="exampleInputEmail1" placeholder="Enter name on card" type="email">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="exampleInputPassword1">Card Number*</label>
|
||||
<input class="form-control" id="exampleInputPassword1" placeholder="Card Number" type="text">
|
||||
</div>
|
||||
</form>
|
||||
<form role="form">
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="exampleInputEmail1">Expiry Date*</label>
|
||||
<input class="form-control" id="exampleInputEmail1" placeholder="MM/YY" type="email">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="exampleInputPassword1">CCV*</label>
|
||||
<input class="form-control" id="exampleInputPassword1" placeholder="CVV" type="password">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-block btn-primary">Submit</button>
|
||||
</form>
|
||||
<a class="btn btn-block btn-info">Cancel</a>
|
||||
</div>
|
||||
<div class="col-md-2"></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-11">
|
||||
<br>
|
||||
<p class="text-center text-muted">Have probelm? Contact
|
||||
<a href="">help@digitalglarus.ch.</a>
|
||||
<br>
|
||||
<br>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body></html>
|
44
design_membership/error.html
Normal file
|
@ -0,0 +1,44 @@
|
|||
<html><head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="http://netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
<link href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="membership.css" rel="stylesheet" type="text/css">
|
||||
</head><body>
|
||||
<div class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h1 class="text-center">Oops! Something went wrong..</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<p class="text-center">Your last action was not complete.
|
||||
<br>Have problems? contact us at
|
||||
<a href="">help@digitalglarus.ch</a>
|
||||
</p>
|
||||
<p></p>
|
||||
</div>
|
||||
<a hrefhelp@digitalglarus.ch<="" p="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-center">
|
||||
<a class="btn btn-primary">Back</a>
|
||||
</div>
|
||||
</div>
|
||||
<a hrefhelp@digitalglarus.ch<="" p="">
|
||||
</a>
|
||||
</div>
|
||||
<a hrefhelp@digitalglarus.ch<="" p="">
|
||||
</a>
|
||||
</div>
|
||||
<a hrefhelp@digitalglarus.ch<="" p="">
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
</body></html>
|
109
design_membership/login.html
Normal file
|
@ -0,0 +1,109 @@
|
|||
<html><head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="http://netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
<link href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="membership.css" rel="stylesheet" type="text/css">
|
||||
</head><body>
|
||||
<div class="navbar navbar-default navbar-static-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-ex-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="#"><span>Brand</span></a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="navbar-ex-collapse">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="active">
|
||||
<a href="#">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Contacts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h1>I'm already a member!</h1>
|
||||
<p>To book you need to be logged in.</p>
|
||||
<h2>Log in</h2>
|
||||
<hr>
|
||||
<form role="form">
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="exampleInputEmail1">Email address</label>
|
||||
<input class="form-control" id="exampleInputEmail1" placeholder="Enter email" type="email">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="exampleInputPassword1">Password</label>
|
||||
<input class="form-control" id="exampleInputPassword1" placeholder="Password" type="password">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-default">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h1></h1>
|
||||
<h1>Not yet a member?</h1>
|
||||
<p>It only takes your email to register!
|
||||
You'll get a mail from us for confirmation.</p>
|
||||
<h2>Register</h2>
|
||||
<hr>
|
||||
<form role="form">
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="exampleInputEmail1">Name</label>
|
||||
<input class="form-control" id="exampleInputEmail1" placeholder="Enter name" type="text">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="exampleInputPassword1">Email address</label>
|
||||
<input class="form-control" id="exampleInputPassword1" placeholder="Enter email" type="email">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-default">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="section section-primary">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<h1>Digital Glarus</h1>
|
||||
<p>In der Au 7 8762 Schwanden
|
||||
<br>Copyright © ungleich GmbH 2016</p>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<p class="text-info text-right">
|
||||
<br>
|
||||
<br>
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col-md-12 hidden-lg hidden-md hidden-sm text-left">
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-instagram text-inverse"></i></a>
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-twitter text-inverse"></i></a>
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-facebook text-inverse"></i></a>
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-github text-inverse"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12 hidden-xs text-right">
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-instagram text-inverse"></i></a>
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-twitter text-inverse"></i></a>
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-facebook text-inverse"></i></a>
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-github text-inverse"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
</body></html>
|
6778
design_membership/membership.css
Normal file
193
design_membership/membership.html
Normal file
|
@ -0,0 +1,193 @@
|
|||
<html><head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="http://netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
<link href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="membership.css" rel="stylesheet" type="text/css">
|
||||
</head><body>
|
||||
<div class="cover">
|
||||
<div class="navbar">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-ex-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="#"><span>Digital Glarus</span></a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="navbar-ex-collapse">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="active">
|
||||
<a href="#">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">Contacts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cover-image" style="background-image : url('photo-1418479631014-8cbf89db3431 2.jpg')"></div>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-center">
|
||||
<h2 class="text-inverse">When do you want to cowork?</h2>
|
||||
<p class="text-inverse">Pick a date!</p>
|
||||
<a class="btn btn-lg btn-primary">Calender</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2 class="text-center">Become a member!</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<p class="text-center">Become our member of Digital Glarus! </p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<img src="https://ununsplash.imgix.net/photo-1423753623104-718aaace6772?w=1024&q=50&fm=jpg&s=1ffa61419561b5c796bca3158e7c704c" class="img-responsive">
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h2 class="text-muted">The Spontaneous</h2>
|
||||
<h3>35CHF/Month (1 day pass included)</h3>
|
||||
<p>Do you dream of having a place to be inspired in the middle of the Alps?
|
||||
With only 35CHF a month, you can enjoy the full benefit of a Digital Chalet
|
||||
Schwanden membership! You can enjoy high speed network connection and comfortable
|
||||
working desks where you can come up with best ideas for your project surrounded
|
||||
by friendly coworkers. And if your work gets too productive to leave, you
|
||||
can crash on our guest bed for the night, the house has everything a coworker
|
||||
needs from an equipped kitchen to a shower. The Spontaneous includes 1
|
||||
day pass included, it is perfect for you if you are planning a retreat
|
||||
month of a coworking in the nature, or coming for a limited period to Switzerland
|
||||
for coworking. It is a perfect try-out package!
|
||||
<br>
|
||||
</p>
|
||||
<a class="btn btn-primary">Buy Now</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h2 class="text-muted">The Committed</h2>
|
||||
<h3>360CHF/Year (2 free day per month included)</h3>
|
||||
<p>Be a regular coworker in our Digital Chalet Schwanden! With only 360CHF,
|
||||
you can enjoy the full coworking space for the whole year, with additional
|
||||
2 free day passes for each month. It is an ideal deal for our busy and
|
||||
active coworkers who would like to save time(and nerve)for requesting new
|
||||
membership every month. Signifiantly discounted price is applied for yearly
|
||||
membership.
|
||||
<br>
|
||||
</p>
|
||||
<a class="btn btn-primary">Buy Now</a>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<img src="https://unsplash.imgix.net/photo-1413834932717-29e7d4714192?w=1024&q=50&fm=jpg&s=d9d6cbc32dd4968d0c21e331436a6af6" class="img-responsive">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2 class="text-center text-primary">A Quick Glance..</h2>
|
||||
<p class="text-center">A short guide for membership features.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>The Spontaneous</th>
|
||||
<th>The Committed</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Includes</td>
|
||||
<td>1 work day included</td>
|
||||
<td>2 free work days per month</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fits for</td>
|
||||
<td>Great for trial, see how it goes</td>
|
||||
<td>Perfect for coworking with great price</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Price</td>
|
||||
<td>Decicde every month</td>
|
||||
<td>Pay once per year</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Membership price</td>
|
||||
<td>35CHF/Month</td>
|
||||
<td>360CHF/Year</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Price per additional day</td>
|
||||
<td>20 CHF</td>
|
||||
<td>15 CHF</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="section section-primary">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<h1>Digital Glarus</h1>
|
||||
<p>In der Au 7 8762 Schwanden
|
||||
<br>Copyright © ungleich GmbH 2016</p>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<p class="text-info text-right">
|
||||
<br>
|
||||
<br>
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col-md-12 hidden-lg hidden-md hidden-sm text-left">
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-instagram text-inverse"></i></a>
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-twitter text-inverse"></i></a>
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-facebook text-inverse"></i></a>
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-github text-inverse"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12 hidden-xs text-right">
|
||||
<a href="https://twitter.com/DigitalGlarus"><i class="fa fa-twitter"></i></a>
|
||||
<i class="fa fa-3x fa-fw fa-instagram text-inverse"></i>
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-twitter text-inverse"></i></a>
|
||||
<a href="#"><i class="fa fa-3x fa-fw fa-facebook text-inverse"></i></a>
|
||||
<a href="https://github.com/ungleich"><i class="fa fa-github"></i></a>
|
||||
<i class="fa fa-3x fa-fw fa-github text-inverse"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
</body></html>
|
733
design_membership/membership.less
Normal file
|
@ -0,0 +1,733 @@
|
|||
/*!
|
||||
* Default theme for Pingendo
|
||||
* Homepage: http://pingendo.com
|
||||
* Copyright 2015 Pingendo
|
||||
* Licensed under MIT
|
||||
* Based on Bootstrap v3.3.4
|
||||
*/
|
||||
|
||||
|
||||
/* Add custom CSS classes here
|
||||
*
|
||||
* img {
|
||||
* box-shadow : 0px 0px 10px black !important;
|
||||
* }
|
||||
*/
|
||||
|
||||
//
|
||||
// Variables
|
||||
// --------------------------------------------------
|
||||
//== Colors
|
||||
//
|
||||
//## Gray and brand colors for use across Bootstrap.
|
||||
@gray-base : #000;
|
||||
@gray-darker : lighten(@gray-base, 13.5%); // #222
|
||||
@gray-dark : lighten(@gray-base, 20%); // #333
|
||||
@gray : lighten(@gray-base, 33.5%); // #555
|
||||
@gray-light : lighten(@gray-base, 46.7%); // #777
|
||||
@gray-lighter : lighten(@gray-base, 93.5%); // #eee
|
||||
@brand-primary : #a0ced7;
|
||||
@brand-success : #5cb85c;
|
||||
@brand-info : #5bc0de;
|
||||
@brand-warning : #f0ad4e;
|
||||
@brand-danger : #d9534f;
|
||||
//== Scaffolding
|
||||
//
|
||||
//## Settings for some of the most global styles.
|
||||
//** Background color for `<body>`.
|
||||
@body-bg : white;
|
||||
//** Global text color on `<body>`.
|
||||
@text-color : black;
|
||||
//** Global textual link color.
|
||||
@link-color : @brand-primary;
|
||||
//** Link hover color set via `darken()` function.
|
||||
@link-hover-color : darken(@link-color, 15%);
|
||||
//** Link hover decoration.
|
||||
@link-hover-decoration : underline;
|
||||
//== Typography
|
||||
//
|
||||
//## Font, line-height, and color for body text, headings, and more.
|
||||
@font-family-sans-serif : "Helvetica Neue",
|
||||
Helvetica,
|
||||
Arial,
|
||||
sans-serif;
|
||||
@font-family-serif : Georgia,
|
||||
"Times New Roman",
|
||||
Times,
|
||||
serif;
|
||||
//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
|
||||
@font-family-monospace : Menlo,
|
||||
Monaco,
|
||||
Consolas,
|
||||
"Courier New",
|
||||
monospace;
|
||||
@font-family-base : Lato;
|
||||
@font-size-base : 14px;
|
||||
@font-size-large : ceil((@font-size-base * 1.25)); // ~18px
|
||||
@font-size-small : ceil((@font-size-base * 0.85)); // ~12px
|
||||
@font-size-h1 : floor((@font-size-base * 2.6)); // ~36px
|
||||
@font-size-h2 : floor((@font-size-base * 2.15)); // ~30px
|
||||
@font-size-h3 : ceil((@font-size-base * 1.7)); // ~24px
|
||||
@font-size-h4 : ceil((@font-size-base * 1.25)); // ~18px
|
||||
@font-size-h5 : @font-size-base;
|
||||
@font-size-h6 : ceil((@font-size-base * 0.85)); // ~12px
|
||||
//** Unit-less `line-height` for use in components like buttons.
|
||||
@line-height-base : 1.428571429; // 20/14
|
||||
//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
|
||||
@line-height-computed : floor((@font-size-base * @line-height-base)); // ~20px
|
||||
//** By default, this inherits from the `<body>`.
|
||||
@headings-font-family : Lato;
|
||||
@headings-font-weight : 500;
|
||||
@headings-line-height : 1.1;
|
||||
@headings-color : inherit;
|
||||
//== Iconography
|
||||
//
|
||||
//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
|
||||
//** Load fonts from this directory.
|
||||
@icon-font-path : "../fonts/";
|
||||
//** File name for all font files.
|
||||
@icon-font-name : "glyphicons-halflings-regular";
|
||||
//** Element ID within SVG icon file.
|
||||
@icon-font-svg-id : "glyphicons_halflingsregular";
|
||||
//== Components
|
||||
//
|
||||
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
|
||||
@padding-base-vertical : 6px;
|
||||
@padding-base-horizontal : 12px;
|
||||
@padding-large-vertical : 10px;
|
||||
@padding-large-horizontal : 16px;
|
||||
@padding-small-vertical : 5px;
|
||||
@padding-small-horizontal : 10px;
|
||||
@padding-xs-vertical : 1px;
|
||||
@padding-xs-horizontal : 5px;
|
||||
@line-height-large : 1.3333333; // extra decimals for Win 8.1 Chrome
|
||||
@line-height-small : 1.5;
|
||||
@border-radius-base : 4px;
|
||||
@border-radius-large : 6px;
|
||||
@border-radius-small : 3px;
|
||||
//** Global color for active items (e.g., navs or dropdowns).
|
||||
@component-active-color : contrast(@component-active-bg, @text-color, @text-inverse, 43%);
|
||||
//** Global background color for active items (e.g., navs or dropdowns).
|
||||
@component-active-bg : @brand-primary;
|
||||
//** Width of the `border` for generating carets that indicator dropdowns.
|
||||
@caret-width-base : 4px;
|
||||
//** Carets increase slightly in size for larger components.
|
||||
@caret-width-large : 5px;
|
||||
//== Tables
|
||||
//
|
||||
//## Customizes the `.table` component with basic values, each used across all table variations.
|
||||
//** Padding for `<th>`s and `<td>`s.
|
||||
@table-cell-padding : 8px;
|
||||
//** Padding for cells in `.table-condensed`.
|
||||
@table-condensed-cell-padding : 5px;
|
||||
//** Default background color used for all tables.
|
||||
@table-bg : transparent;
|
||||
//** Background color used for `.table-striped`.
|
||||
@table-bg-accent : #f9f9f9;
|
||||
//** Background color used for `.table-hover`.
|
||||
@table-bg-hover : #f5f5f5;
|
||||
@table-bg-active : @table-bg-hover;
|
||||
//** Border color for table and cell borders.
|
||||
@table-border-color : #ddd;
|
||||
//== Buttons
|
||||
//
|
||||
//## For each of Bootstrap's buttons, define text, background and border color.
|
||||
@btn-font-weight : normal;
|
||||
@btn-default-color : @text-color;
|
||||
@btn-default-bg : @body-bg;
|
||||
@btn-default-border :;
|
||||
@btn-primary-color : white;
|
||||
@btn-primary-bg : @brand-primary; #a0ced7
|
||||
@btn-primary-border : darken(@btn-primary-bg, 5%);
|
||||
@btn-success-color : white;
|
||||
@btn-success-bg : @brand-success;
|
||||
@btn-success-border : darken(@btn-success-bg, 5%);
|
||||
@btn-info-color : white;
|
||||
@btn-info-bg : @brand-info;
|
||||
@btn-info-border : darken(@btn-info-bg, 5%);
|
||||
@btn-warning-color : white;
|
||||
@btn-warning-bg : @brand-warning;
|
||||
@btn-warning-border : darken(@btn-warning-bg, 5%);
|
||||
@btn-danger-color : contrast(@btn-danger-bg, @text-color, @text-inverse, 43%);
|
||||
@btn-danger-bg : @brand-danger;
|
||||
@btn-danger-border : darken(@btn-danger-bg, 5%);
|
||||
@btn-link-disabled-color : @gray-light;
|
||||
//== Forms
|
||||
//
|
||||
//##
|
||||
//** `<input>` background color
|
||||
@input-bg : #fff;
|
||||
//** `<input disabled>` background color
|
||||
@input-bg-disabled : @gray-lighter;
|
||||
//** Text color for `<input>`s
|
||||
@input-color : @gray;
|
||||
//** `<input>` border color
|
||||
@input-border : #ccc;
|
||||
// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4
|
||||
//** Default `.form-control` border radius
|
||||
@input-border-radius : @border-radius-base;
|
||||
//** Large `.form-control` border radius
|
||||
@input-border-radius-large : @border-radius-large;
|
||||
//** Small `.form-control` border radius
|
||||
@input-border-radius-small : @border-radius-small;
|
||||
//** Border color for inputs on focus
|
||||
@input-border-focus : #66afe9;
|
||||
//** Placeholder text color
|
||||
@input-color-placeholder : #999;
|
||||
//** Default `.form-control` height
|
||||
@input-height-base : (@line-height-computed + (@padding-base-vertical * 2) + 2);
|
||||
//** Large `.form-control` height
|
||||
@input-height-large : (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
|
||||
//** Small `.form-control` height
|
||||
@input-height-small : (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
|
||||
//** `.form-group` margin
|
||||
@form-group-margin-bottom: 15px;
|
||||
@legend-color : @gray-dark;
|
||||
@legend-border-color : #e5e5e5;
|
||||
//** Background color for textual input addons
|
||||
@input-group-addon-bg : @gray-lighter;
|
||||
//** Border color for textual input addons
|
||||
@input-group-addon-border-color : @input-border;
|
||||
//** Disabled cursor for form controls and buttons.
|
||||
@cursor-disabled : not-allowed;
|
||||
//== Dropdowns
|
||||
//
|
||||
//## Dropdown menu container and contents.
|
||||
//** Background for the dropdown menu.
|
||||
@dropdown-bg : #fff;
|
||||
//** Dropdown menu `border-color`.
|
||||
@dropdown-border : rgba(0, 0, 0, .15);
|
||||
//** Dropdown menu `border-color` **for IE8**.
|
||||
@dropdown-fallback-border : #ccc;
|
||||
//** Divider color for between dropdown items.
|
||||
@dropdown-divider-bg : #e5e5e5;
|
||||
//** Dropdown link text color.
|
||||
@dropdown-link-color : @gray-dark;
|
||||
//** Hover color for dropdown links.
|
||||
@dropdown-link-hover-color : darken(@gray-dark, 5%);
|
||||
//** Hover background for dropdown links.
|
||||
@dropdown-link-hover-bg : #f5f5f5;
|
||||
//** Active dropdown menu item text color.
|
||||
@dropdown-link-active-color : @component-active-color;
|
||||
//** Active dropdown menu item background color.
|
||||
@dropdown-link-active-bg : @component-active-bg;
|
||||
//** Disabled dropdown menu item background color.
|
||||
@dropdown-link-disabled-color : @gray-light;
|
||||
//** Text color for headers within dropdown menus.
|
||||
@dropdown-header-color : @gray-light;
|
||||
//** Deprecated `@dropdown-caret-color` as of v3.1.0
|
||||
@dropdown-caret-color : #000;
|
||||
//-- Z-index master list
|
||||
//
|
||||
// Warning: Avoid customizing these values. They're used for a bird's eye view
|
||||
// of components dependent on the z-axis and are designed to all work together.
|
||||
//
|
||||
// Note: These variables are not generated into the Customizer.
|
||||
@zindex-navbar : 1000;
|
||||
@zindex-dropdown : 1000;
|
||||
@zindex-popover : 1060;
|
||||
@zindex-tooltip : 1070;
|
||||
@zindex-navbar-fixed : 1030;
|
||||
@zindex-modal-background: 1040;
|
||||
@zindex-modal: 1050;
|
||||
//== Media queries breakpoints
|
||||
//
|
||||
//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
|
||||
// Extra small screen / phone
|
||||
//** Deprecated `@screen-xs` as of v3.0.1
|
||||
@screen-xs : 480px;
|
||||
//** Deprecated `@screen-xs-min` as of v3.2.0
|
||||
@screen-xs-min : @screen-xs;
|
||||
//** Deprecated `@screen-phone` as of v3.0.1
|
||||
@screen-phone : @screen-xs-min;
|
||||
// Small screen / tablet
|
||||
//** Deprecated `@screen-sm` as of v3.0.1
|
||||
@screen-sm : 768px;
|
||||
@screen-sm-min : @screen-sm;
|
||||
//** Deprecated `@screen-tablet` as of v3.0.1
|
||||
@screen-tablet : @screen-sm-min;
|
||||
// Medium screen / desktop
|
||||
//** Deprecated `@screen-md` as of v3.0.1
|
||||
@screen-md : 992px;
|
||||
@screen-md-min : @screen-md;
|
||||
//** Deprecated `@screen-desktop` as of v3.0.1
|
||||
@screen-desktop : @screen-md-min;
|
||||
// Large screen / wide desktop
|
||||
//** Deprecated `@screen-lg` as of v3.0.1
|
||||
@screen-lg : 1200px;
|
||||
@screen-lg-min : @screen-lg;
|
||||
//** Deprecated `@screen-lg-desktop` as of v3.0.1
|
||||
@screen-lg-desktop : @screen-lg-min;
|
||||
// So media queries don't overlap when required, provide a maximum
|
||||
@screen-xs-max : (@screen-sm-min - 1);
|
||||
@screen-sm-max : (@screen-md-min - 1);
|
||||
@screen-md-max : (@screen-lg-min - 1);
|
||||
//== Grid system
|
||||
//
|
||||
//## Define your custom responsive grid.
|
||||
//** Number of columns in the grid.
|
||||
@grid-columns : 12;
|
||||
//** Padding between columns. Gets divided in half for the left and right.
|
||||
@grid-gutter-width : 30px;
|
||||
// Navbar collapse
|
||||
//** Point at which the navbar becomes uncollapsed.
|
||||
@grid-float-breakpoint : @screen-sm-min;
|
||||
//** Point at which the navbar begins collapsing.
|
||||
@grid-float-breakpoint-max : (@grid-float-breakpoint - 1);
|
||||
//== Container sizes
|
||||
//
|
||||
//## Define the maximum width of `.container` for different screen sizes.
|
||||
// Small screen / tablet
|
||||
@container-tablet : (720px + @grid-gutter-width);
|
||||
//** For `@screen-sm-min` and up.
|
||||
@container-sm : @container-tablet;
|
||||
// Medium screen / desktop
|
||||
@container-desktop : (940px + @grid-gutter-width);
|
||||
//** For `@screen-md-min` and up.
|
||||
@container-md : @container-desktop;
|
||||
// Large screen / wide desktop
|
||||
@container-large-desktop : (1140px + @grid-gutter-width);
|
||||
//** For `@screen-lg-min` and up.
|
||||
@container-lg : @container-large-desktop;
|
||||
//== Navbar
|
||||
//
|
||||
//##
|
||||
// Basics of a navbar
|
||||
@navbar-height : 50px;
|
||||
@navbar-margin-bottom : @line-height-computed;
|
||||
@navbar-border-radius : @border-radius-base;
|
||||
@navbar-padding-horizontal : floor((@grid-gutter-width / 2));
|
||||
@navbar-padding-vertical : ((@navbar-height - @line-height-computed) / 2);
|
||||
@navbar-collapse-max-height : 340px;
|
||||
@navbar-default-color : black;
|
||||
@navbar-default-bg : #f8f8f8;
|
||||
@navbar-default-border : darken(@navbar-default-bg, 6.5%);
|
||||
// Navbar links
|
||||
@navbar-default-link-color : contrast(@navbar-default-bg, @text-color, @text-inverse, 43%);
|
||||
@navbar-default-link-hover-color : @navbar-default-color;
|
||||
@navbar-default-link-hover-bg : transparent;
|
||||
@navbar-default-link-active-color : @navbar-default-color;
|
||||
@navbar-default-link-active-bg : darken(@navbar-default-bg, 6.5%);
|
||||
@navbar-default-link-disabled-color : #ccc;
|
||||
@navbar-default-link-disabled-bg : transparent;
|
||||
// Navbar brand label
|
||||
@navbar-default-brand-color : @navbar-default-link-color;
|
||||
@navbar-default-brand-hover-color : darken(@navbar-default-brand-color, 10%);
|
||||
@navbar-default-brand-hover-bg : transparent;
|
||||
// Navbar toggle
|
||||
@navbar-default-toggle-hover-bg : #ddd;
|
||||
@navbar-default-toggle-icon-bar-bg : #888;
|
||||
@navbar-default-toggle-border-color : #ddd;
|
||||
// Inverted navbar
|
||||
// Reset inverted navbar basics
|
||||
@navbar-inverse-color : lighten(@gray-light, 15%);
|
||||
@navbar-inverse-bg : #222;
|
||||
@navbar-inverse-border : darken(@navbar-inverse-bg, 10%);
|
||||
// Inverted navbar links
|
||||
@navbar-inverse-link-color : lighten(@gray-light, 15%);
|
||||
@navbar-inverse-link-hover-color : #fff;
|
||||
@navbar-inverse-link-hover-bg : transparent;
|
||||
@navbar-inverse-link-active-color : @navbar-inverse-link-hover-color;
|
||||
@navbar-inverse-link-active-bg : darken(@navbar-inverse-bg, 10%);
|
||||
@navbar-inverse-link-disabled-color : #444;
|
||||
@navbar-inverse-link-disabled-bg : transparent;
|
||||
// Inverted navbar brand label
|
||||
@navbar-inverse-brand-color : @navbar-inverse-link-color;
|
||||
@navbar-inverse-brand-hover-color : #fff;
|
||||
@navbar-inverse-brand-hover-bg : transparent;
|
||||
// Inverted navbar toggle
|
||||
@navbar-inverse-toggle-hover-bg : #333;
|
||||
@navbar-inverse-toggle-icon-bar-bg : #fff;
|
||||
@navbar-inverse-toggle-border-color : #333;
|
||||
//== Navs
|
||||
//
|
||||
//##
|
||||
//=== Shared nav styles
|
||||
@nav-link-padding : 10px 15px;
|
||||
@nav-link-hover-bg : @gray-lighter;
|
||||
@nav-disabled-link-color : @gray-light;
|
||||
@nav-disabled-link-hover-color : @gray-light;
|
||||
//== Tabs
|
||||
@nav-tabs-border-color : #ddd;
|
||||
@nav-tabs-link-hover-border-color : @gray-lighter;
|
||||
@nav-tabs-active-link-hover-bg : @body-bg;
|
||||
@nav-tabs-active-link-hover-color : @gray;
|
||||
@nav-tabs-active-link-hover-border-color : #ddd;
|
||||
@nav-tabs-justified-link-border-color : #ddd;
|
||||
@nav-tabs-justified-active-link-border-color : @body-bg;
|
||||
//== Pills
|
||||
@nav-pills-border-radius : @border-radius-base;
|
||||
@nav-pills-active-link-hover-bg : @component-active-bg;
|
||||
@nav-pills-active-link-hover-color : @component-active-color;
|
||||
//== Pagination
|
||||
//
|
||||
//##
|
||||
@pagination-color : @link-color;
|
||||
@pagination-bg : #fff;
|
||||
@pagination-border : #ddd;
|
||||
@pagination-hover-color : @link-hover-color;
|
||||
@pagination-hover-bg : @gray-lighter;
|
||||
@pagination-hover-border : #ddd;
|
||||
@pagination-active-color : #fff;
|
||||
@pagination-active-bg : @brand-primary;
|
||||
@pagination-active-border : @brand-primary;
|
||||
@pagination-disabled-color : @gray-light;
|
||||
@pagination-disabled-bg : #fff;
|
||||
@pagination-disabled-border : #ddd;
|
||||
//== Pager
|
||||
//
|
||||
//##
|
||||
@pager-bg : @pagination-bg;
|
||||
@pager-border : @pagination-border;
|
||||
@pager-border-radius : 15px;
|
||||
@pager-hover-bg : @pagination-hover-bg;
|
||||
@pager-active-bg : @pagination-active-bg;
|
||||
@pager-active-color : @pagination-active-color;
|
||||
@pager-disabled-color : @pagination-disabled-color;
|
||||
//== Jumbotron
|
||||
//
|
||||
//##
|
||||
@jumbotron-padding : 30px;
|
||||
@jumbotron-color : inherit;
|
||||
@jumbotron-bg : @gray-lighter;
|
||||
@jumbotron-heading-color : inherit;
|
||||
@jumbotron-font-size : ceil((@font-size-base * 1.5));
|
||||
@jumbotron-heading-font-size: ceil((@font-size-base * 4.5));
|
||||
//== Form states and alerts
|
||||
//
|
||||
//## Define colors for form feedback states and, by default, alerts.
|
||||
@state-success-text : @brand-success;
|
||||
@state-success-bg : lighten(@brand-success, 20%);
|
||||
@state-success-border : darken(spin(@state-success-bg, -10), 5%);
|
||||
@state-info-text : @brand-info;
|
||||
@state-info-bg : lighten(@brand-info, 20%);
|
||||
@state-info-border : darken(spin(@state-info-bg, -10), 7%);
|
||||
@state-warning-text : @brand-warning;
|
||||
@state-warning-bg : lighten(@brand-warning, 20%);
|
||||
@state-warning-border : darken(spin(@state-warning-bg, -10), 5%);
|
||||
@state-danger-text : @brand-danger;
|
||||
@state-danger-bg : lighten(@brand-danger, 20%);
|
||||
@state-danger-border : darken(spin(@state-danger-bg, -10), 5%);
|
||||
//== Tooltips
|
||||
//
|
||||
//##
|
||||
//** Tooltip max width
|
||||
@tooltip-max-width : 200px;
|
||||
//** Tooltip text color
|
||||
@tooltip-color : #fff;
|
||||
//** Tooltip background color
|
||||
@tooltip-bg : #000;
|
||||
@tooltip-opacity : .9;
|
||||
//** Tooltip arrow width
|
||||
@tooltip-arrow-width : 5px;
|
||||
//** Tooltip arrow color
|
||||
@tooltip-arrow-color : @tooltip-bg;
|
||||
//== Popovers
|
||||
//
|
||||
//##
|
||||
//** Popover body background color
|
||||
@popover-bg : #fff;
|
||||
//** Popover maximum width
|
||||
@popover-max-width : 276px;
|
||||
//** Popover border color
|
||||
@popover-border-color : rgba(0, 0, 0, .2);
|
||||
//** Popover fallback border color
|
||||
@popover-fallback-border-color : #ccc;
|
||||
//** Popover title background color
|
||||
@popover-title-bg : darken(@popover-bg, 3%);
|
||||
//** Popover arrow width
|
||||
@popover-arrow-width : 10px;
|
||||
//** Popover arrow color
|
||||
@popover-arrow-color : @popover-bg;
|
||||
//** Popover outer arrow width
|
||||
@popover-arrow-outer-width : (@popover-arrow-width + 1);
|
||||
//** Popover outer arrow color
|
||||
@popover-arrow-outer-color : fadein(@popover-border-color, 5%);
|
||||
//** Popover outer arrow fallback color
|
||||
@popover-arrow-outer-fallback-color : darken(@popover-fallback-border-color, 20%);
|
||||
//== Labels
|
||||
//
|
||||
//##
|
||||
//** Default label background color
|
||||
@label-default-bg : @gray-light;
|
||||
//** Primary label background color
|
||||
@label-primary-bg : @brand-primary;
|
||||
//** Success label background color
|
||||
@label-success-bg : @brand-success;
|
||||
//** Info label background color
|
||||
@label-info-bg : @brand-info;
|
||||
//** Warning label background color
|
||||
@label-warning-bg : @brand-warning;
|
||||
//** Danger label background color
|
||||
@label-danger-bg : @brand-danger;
|
||||
//** Default label text color
|
||||
@label-color : #fff;
|
||||
//** Default text color of a linked label
|
||||
@label-link-hover-color : #fff;
|
||||
//== Modals
|
||||
//
|
||||
//##
|
||||
//** Padding applied to the modal body
|
||||
@modal-inner-padding : 15px;
|
||||
//** Padding applied to the modal title
|
||||
@modal-title-padding : 15px;
|
||||
//** Modal title line-height
|
||||
@modal-title-line-height : @line-height-base;
|
||||
//** Background color of modal content area
|
||||
@modal-content-bg : #fff;
|
||||
//** Modal content border color
|
||||
@modal-content-border-color : rgba(0, 0, 0, .2);
|
||||
//** Modal content border color **for IE8**
|
||||
@modal-content-fallback-border-color : #999;
|
||||
//** Modal backdrop background color
|
||||
@modal-backdrop-bg : #000;
|
||||
//** Modal backdrop opacity
|
||||
@modal-backdrop-opacity : .5;
|
||||
//** Modal header border color
|
||||
@modal-header-border-color : #e5e5e5;
|
||||
//** Modal footer border color
|
||||
@modal-footer-border-color : @modal-header-border-color;
|
||||
@modal-lg : 900px;
|
||||
@modal-md : 600px;
|
||||
@modal-sm : 300px;
|
||||
//== Alerts
|
||||
//
|
||||
//## Define alert colors, border radius, and padding.
|
||||
@alert-padding : 15px;
|
||||
@alert-border-radius : @border-radius-base;
|
||||
@alert-link-font-weight : bold;
|
||||
@alert-success-bg : @state-success-bg;
|
||||
@alert-success-text : @state-success-text;
|
||||
@alert-success-border : @state-success-border;
|
||||
@alert-info-bg : @state-info-bg;
|
||||
@alert-info-text : @state-info-text;
|
||||
@alert-info-border : @state-info-border;
|
||||
@alert-warning-bg : @state-warning-bg;
|
||||
@alert-warning-text : @state-warning-text;
|
||||
@alert-warning-border : @state-warning-border;
|
||||
@alert-danger-bg : @state-danger-bg;
|
||||
@alert-danger-text : @state-danger-text;
|
||||
@alert-danger-border : @state-danger-border;
|
||||
//== Progress bars
|
||||
//
|
||||
//##
|
||||
//** Background color of the whole progress component
|
||||
@progress-bg : #f5f5f5;
|
||||
//** Progress bar text color
|
||||
@progress-bar-color : #fff;
|
||||
//** Variable for setting rounded corners on progress bar.
|
||||
@progress-border-radius : @border-radius-base;
|
||||
//** Default progress bar color
|
||||
@progress-bar-bg : @brand-primary;
|
||||
//** Success progress bar color
|
||||
@progress-bar-success-bg : @brand-success;
|
||||
//** Warning progress bar color
|
||||
@progress-bar-warning-bg : @brand-warning;
|
||||
//** Danger progress bar color
|
||||
@progress-bar-danger-bg : @brand-danger;
|
||||
//** Info progress bar color
|
||||
@progress-bar-info-bg : @brand-info;
|
||||
//== List group
|
||||
//
|
||||
//##
|
||||
//** Background color on `.list-group-item`
|
||||
@list-group-bg : @body-bg;
|
||||
//** `.list-group-item` border color
|
||||
@list-group-border : darken(@list-group-bg, 40%);
|
||||
//** List group border radius
|
||||
@list-group-border-radius : @border-radius-base;
|
||||
//** Background color of single list items on hover
|
||||
@list-group-hover-bg : #f5f5f5;
|
||||
//** Text color of active list items
|
||||
@list-group-active-color : @component-active-color;
|
||||
//** Background color of active list items
|
||||
@list-group-active-bg : @component-active-bg;
|
||||
//** Border color of active list elements
|
||||
@list-group-active-border : @list-group-active-bg;
|
||||
//** Text color for content within active list items
|
||||
@list-group-active-text-color : darken(@list-group-active-bg, 40%);
|
||||
//** Text color of disabled list items
|
||||
@list-group-disabled-color : @gray-light;
|
||||
//** Background color of disabled list items
|
||||
@list-group-disabled-bg : @gray-lighter;
|
||||
//** Text color for content within disabled list items
|
||||
@list-group-disabled-text-color : @list-group-disabled-color;
|
||||
@list-group-link-color : #555;
|
||||
@list-group-link-hover-color : @list-group-link-color;
|
||||
@list-group-link-heading-color : #333;
|
||||
//== Panels
|
||||
//
|
||||
//##
|
||||
@panel-bg : @body-bg;
|
||||
@panel-body-padding : 15px;
|
||||
@panel-heading-padding : 10px 15px;
|
||||
@panel-footer-padding : @panel-heading-padding;
|
||||
@panel-border-radius : @border-radius-base;
|
||||
//** Border color for elements within panels
|
||||
@panel-inner-border : #ddd;
|
||||
@panel-footer-bg : #f5f5f5;
|
||||
@panel-default-text : @gray-dark;
|
||||
@panel-default-border : #ddd;
|
||||
@panel-default-heading-bg : #f5f5f5;
|
||||
@panel-primary-text : contrast(@brand-primary, @text-color, @text-inverse, 43%);
|
||||
@panel-primary-border : @brand-primary;
|
||||
@panel-primary-heading-bg : @brand-primary;
|
||||
@panel-success-text : @state-success-text;
|
||||
@panel-success-border : @state-success-border;
|
||||
@panel-success-heading-bg : @state-success-bg;
|
||||
@panel-info-text : @state-info-text;
|
||||
@panel-info-border : @state-info-border;
|
||||
@panel-info-heading-bg : @state-info-bg;
|
||||
@panel-warning-text : @state-warning-text;
|
||||
@panel-warning-border : @state-warning-border;
|
||||
@panel-warning-heading-bg : @state-warning-bg;
|
||||
@panel-danger-text : @state-danger-text;
|
||||
@panel-danger-border : @state-danger-border;
|
||||
@panel-danger-heading-bg : @state-danger-bg;
|
||||
//== Thumbnails
|
||||
//
|
||||
//##
|
||||
//** Padding around the thumbnail image
|
||||
@thumbnail-padding : 4px;
|
||||
//** Thumbnail background color
|
||||
@thumbnail-bg : @body-bg;
|
||||
//** Thumbnail border color
|
||||
@thumbnail-border : #ddd;
|
||||
//** Thumbnail border radius
|
||||
@thumbnail-border-radius : @border-radius-base;
|
||||
//** Custom text color for thumbnail captions
|
||||
@thumbnail-caption-color : @text-color;
|
||||
//** Padding around the thumbnail caption
|
||||
@thumbnail-caption-padding : 9px;
|
||||
//== Wells
|
||||
//
|
||||
//##
|
||||
@well-bg : #f5f5f5;
|
||||
@well-border : darken(@well-bg, 7%);
|
||||
//== Badges
|
||||
//
|
||||
//##
|
||||
@badge-color : #fff;
|
||||
//** Linked badge text color on hover
|
||||
@badge-link-hover-color : #fff;
|
||||
@badge-bg : @gray-light;
|
||||
//** Badge text color in active nav link
|
||||
@badge-active-color : @link-color;
|
||||
//** Badge background color in active nav link
|
||||
@badge-active-bg : #fff;
|
||||
@badge-font-weight : bold;
|
||||
@badge-line-height : 1;
|
||||
@badge-border-radius : 10px;
|
||||
//== Breadcrumbs
|
||||
//
|
||||
//##
|
||||
@breadcrumb-padding-vertical : 8px;
|
||||
@breadcrumb-padding-horizontal : 15px;
|
||||
//** Breadcrumb background color
|
||||
@breadcrumb-bg : #f5f5f5;
|
||||
//** Breadcrumb text color
|
||||
@breadcrumb-color : #ccc;
|
||||
//** Text color of current page in the breadcrumb
|
||||
@breadcrumb-active-color : @gray-light;
|
||||
//** Textual separator for between breadcrumb elements
|
||||
@breadcrumb-separator : "/";
|
||||
//== Carousel
|
||||
//
|
||||
//##
|
||||
@carousel-text-shadow : 0 1px 2px rgba(0, 0, 0, .6);
|
||||
@carousel-control-color : #fff;
|
||||
@carousel-control-width : 15%;
|
||||
@carousel-control-opacity : .5;
|
||||
@carousel-control-font-size : 20px;
|
||||
@carousel-indicator-active-bg : #fff;
|
||||
@carousel-indicator-border-color : #fff;
|
||||
@carousel-caption-color : #fff;
|
||||
//== Close
|
||||
//
|
||||
//##
|
||||
@close-font-weight : bold;
|
||||
@close-color : #000;
|
||||
@close-text-shadow : 0 1px 0 #fff;
|
||||
//== Code
|
||||
//
|
||||
//##
|
||||
@code-color : #c7254e;
|
||||
@code-bg : #f9f2f4;
|
||||
@kbd-color : #fff;
|
||||
@kbd-bg : #333;
|
||||
@pre-bg : #f5f5f5;
|
||||
@pre-color : @gray-dark;
|
||||
@pre-border-color : #ccc;
|
||||
@pre-scrollable-max-height : 340px;
|
||||
//== Type
|
||||
//
|
||||
//##
|
||||
//** Horizontal offset for forms and lists.
|
||||
@component-offset-horizontal : 180px;
|
||||
//** Text muted color
|
||||
@text-muted : @gray-light;
|
||||
//** Abbreviations and acronyms border color
|
||||
@abbr-border-color : @gray-light;
|
||||
//** Headings small color
|
||||
@headings-small-color : @gray-light;
|
||||
//** Blockquote small color
|
||||
@blockquote-small-color : @gray-light;
|
||||
//** Blockquote font size
|
||||
@blockquote-font-size : (@font-size-base * 1.25);
|
||||
//** Blockquote border color
|
||||
@blockquote-border-color : @gray-lighter;
|
||||
//** Page header border color
|
||||
@page-header-border-color: @gray-lighter;
|
||||
//** Width of horizontal description list titles
|
||||
@dl-horizontal-offset : @component-offset-horizontal;
|
||||
//** Horizontal line color.
|
||||
@hr-border : @gray-lighter;
|
||||
// Pingendo variables
|
||||
@section-spacing : 35px;
|
||||
// Core variables and mixins
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/mixins.less";
|
||||
// Reset and dependencies
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/normalize.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/print.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/glyphicons.less";
|
||||
// Core CSS
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/scaffolding.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/type.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/code.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/grid.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/tables.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/forms.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/buttons.less";
|
||||
// Components
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/component-animations.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/dropdowns.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/button-groups.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/input-groups.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/navs.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/navbar.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/breadcrumbs.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/pagination.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/pager.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/labels.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/badges.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/jumbotron.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/thumbnails.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/alerts.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/progress-bars.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/media.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/list-group.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/panels.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/responsive-embed.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/wells.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/close.less";
|
||||
// Components w/ JavaScript
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/modals.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/tooltip.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/popovers.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/carousel.less";
|
||||
// Utility classes
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/utilities.less";
|
||||
@import "https://raw.githubusercontent.com/twbs/bootstrap/v3.3.4/less/responsive-utilities.less";
|
||||
@import "https://raw.githubusercontent.com/Pingendo/pingendo-bootstrap/gh-pages/less/pingendo-custom.less";
|
||||
|
||||
/* PINGENDO COMMENT DO NOT REMOVE */
|
BIN
design_membership/photo-1418479631014-8cbf89db3431 2.jpg
Normal file
After Width: | Height: | Size: 473 KiB |
BIN
design_membership/photo-1418479631014-8cbf89db3431 2@2x.png
Normal file
After Width: | Height: | Size: 2.5 MiB |
BIN
design_membership/photo-1418479631014-8cbf89db3431.jpeg
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
design_membership/photo-1418479631014-8cbf89db3431.sketch
Normal file
26
design_membership/success.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<html><head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="http://netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
<link href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="http://pingendo.github.io/pingendo-bootstrap/themes/default/bootstrap.css" rel="stylesheet" type="text/css">
|
||||
</head><body>
|
||||
<div class="section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h1 class="text-center text-muted">You're successfully registered!</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<p class="text-center text-muted">Your password is sent to your email!
|
||||
<br>Check your email to activate your account.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body></html>
|
|
@ -1,12 +1,12 @@
|
|||
from django.contrib import admin
|
||||
from .models import Message, Supporter, DGGallery, DGPicture
|
||||
# from .models import Message, Supporter, DGGallery, DGPicture
|
||||
|
||||
class DGPictureInline(admin.StackedInline):
|
||||
model = DGPicture
|
||||
|
||||
class DGGalleryAdmin(admin.ModelAdmin):
|
||||
inlines = [DGPictureInline]
|
||||
|
||||
admin.site.register(DGGallery, DGGalleryAdmin)
|
||||
admin.site.register(Message)
|
||||
admin.site.register(Supporter)
|
||||
# class DGPictureInline(admin.StackedInline):
|
||||
# model = DGPicture
|
||||
#
|
||||
# class DGGalleryAdmin(admin.ModelAdmin):
|
||||
# inlines = [DGPictureInline]
|
||||
#
|
||||
# admin.site.register(DGGallery, DGGalleryAdmin)
|
||||
# admin.site.register(Message)
|
||||
# admin.site.register(Supporter)
|
||||
|
|
|
@ -1,33 +1,36 @@
|
|||
from cms.plugin_base import CMSPluginBase
|
||||
from cms.plugin_pool import plugin_pool
|
||||
from .models import DGGalleryPlugin, DGSupportersPlugin, Supporter
|
||||
from django.utils.translation import ugettext as _
|
||||
# from cms.plugin_base import CMSPluginBase
|
||||
# from cms.plugin_pool import plugin_pool
|
||||
# from cms.wizards import wizard_base
|
||||
# from .models import DGGalleryPlugin, DGSupportersPlugin, Supporter
|
||||
# from django.utils.translation import ugettext as _
|
||||
|
||||
class CMSGalleryPlugin(CMSPluginBase):
|
||||
model = DGGalleryPlugin
|
||||
name = _("Digital Glarus Gallery")
|
||||
render_template = "digitalglarus/gallery.html"
|
||||
# class CMSGalleryPlugin(CMSPluginBase):
|
||||
# model = DGGalleryPlugin
|
||||
# name = _("Digital Glarus Gallery")
|
||||
# render_template = "digitalglarus/gallery.html"
|
||||
#
|
||||
# def render(self, context, instance, placeholder):
|
||||
# context.update({
|
||||
# 'gallery':instance.dgGallery,
|
||||
# 'object':instance,
|
||||
# 'placeholder':placeholder
|
||||
# })
|
||||
# return context
|
||||
#
|
||||
# class CMSSupportersPlugin(CMSPluginBase):
|
||||
# name = _("Digital Glarus Supporters")
|
||||
# model = DGSupportersPlugin
|
||||
# render_template = "digitalglarus/supporters_plugin.html"
|
||||
#
|
||||
# def render(self, context, instance, placeholder):
|
||||
# context.update({
|
||||
# 'supporters': Supporter.objects.all().order_by('name'),
|
||||
# 'object': instance,
|
||||
# 'placeholder':placeholder
|
||||
# })
|
||||
# return context
|
||||
|
||||
def render(self, context, instance, placeholder):
|
||||
context.update({
|
||||
'gallery':instance.dgGallery,
|
||||
'object':instance,
|
||||
'placeholder':placeholder
|
||||
})
|
||||
return context
|
||||
|
||||
class CMSSupportersPlugin(CMSPluginBase):
|
||||
name = _("Digital Glarus Supporters")
|
||||
model = DGSupportersPlugin
|
||||
render_template = "digitalglarus/supporters_plugin.html"
|
||||
|
||||
def render(self, context, instance, placeholder):
|
||||
context.update({
|
||||
'supporters': Supporter.objects.all().order_by('name'),
|
||||
'object': instance,
|
||||
'placeholder':placeholder
|
||||
})
|
||||
return context
|
||||
|
||||
plugin_pool.register_plugin(CMSGalleryPlugin)
|
||||
plugin_pool.register_plugin(CMSSupportersPlugin)
|
||||
# plugin_pool.register_plugin(CMSGalleryPlugin)
|
||||
# plugin_pool.register_plugin(CMSSupportersPlugin)
|
||||
|
|
|
@ -1,19 +1,67 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.4 on 2016-03-13 21:39
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import filer.fields.image
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('filer', '0002_auto_20150606_2003'),
|
||||
('cms', '0013_urlconfrevision'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='DGGallery',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=30)),
|
||||
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='digitalglarus.DGGallery')),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'dgGallery',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='DGGalleryPlugin',
|
||||
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')),
|
||||
('dgGallery', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='digitalglarus.DGGallery')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
bases=('cms.cmsplugin',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='DGPicture',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('description', models.CharField(max_length=60)),
|
||||
('gallery', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='digitalglarus.DGGallery')),
|
||||
('image', filer.fields.image.FilerImageField(on_delete=django.db.models.deletion.CASCADE, related_name='dg_gallery', to='filer.Image')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='DGSupportersPlugin',
|
||||
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')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
bases=('cms.cmsplugin',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Message',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, primary_key=True, auto_created=True)),
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=200)),
|
||||
('email', models.EmailField(max_length=254)),
|
||||
('phone_number', models.CharField(max_length=200)),
|
||||
|
@ -21,4 +69,12 @@ class Migration(migrations.Migration):
|
|||
('received_date', models.DateTimeField(verbose_name='date received')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Supporter',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=200)),
|
||||
('description', models.TextField(blank=True, null=True)),
|
||||
],
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('digitalglarus', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='message',
|
||||
name='email',
|
||||
field=models.EmailField(max_length=75),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -1,19 +1,16 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.4 on 2016-03-24 23:21
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cms', '0013_urlconfrevision'),
|
||||
('digitalglarus', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='message',
|
||||
name='email',
|
||||
field=models.EmailField(max_length=75),
|
||||
),
|
||||
]
|
55
digitalglarus/migrations/0003_auto_20160325_1659.py
Normal file
|
@ -0,0 +1,55 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.4 on 2016-03-25 16:59
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cms', '0013_urlconfrevision'),
|
||||
('digitalglarus', '0002_auto_20160324_2321'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='dggallery',
|
||||
name='parent',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='dggalleryplugin',
|
||||
name='cmsplugin_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='dggalleryplugin',
|
||||
name='dgGallery',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='dgpicture',
|
||||
name='gallery',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='dgpicture',
|
||||
name='image',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='dgsupportersplugin',
|
||||
name='cmsplugin_ptr',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='Supporter',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='DGGallery',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='DGGalleryPlugin',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='DGPicture',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='DGSupportersPlugin',
|
||||
),
|
||||
]
|
|
@ -1,25 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('digitalglarus', '0003_merge'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Supporter',
|
||||
fields=[
|
||||
('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)),
|
||||
('name', models.CharField(max_length=200)),
|
||||
('description', models.CharField(max_length=500)),
|
||||
],
|
||||
options={
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
]
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('digitalglarus', '0004_supporter'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='supporter',
|
||||
name='description',
|
||||
field=models.TextField(),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -1,51 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
import filer.fields.image
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cms', '0012_auto_20150607_2207'),
|
||||
('digitalglarus', '0005_auto_20160208_0218'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='DGGallery',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)),
|
||||
('name', models.CharField(max_length=30)),
|
||||
('parent', models.ForeignKey(blank=True, to='digitalglarus.DGGallery', null=True)),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'dgGallery',
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='DGGalleryPlugin',
|
||||
fields=[
|
||||
('cmsplugin_ptr', models.OneToOneField(primary_key=True, to='cms.CMSPlugin', auto_created=True, parent_link=True, serialize=False)),
|
||||
('dgGallery', models.ForeignKey(to='digitalglarus.DGGallery')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
bases=('cms.cmsplugin',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='DGPicture',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)),
|
||||
('description', models.CharField(max_length=60)),
|
||||
('gallery', models.ForeignKey(to='digitalglarus.DGGallery')),
|
||||
('image', filer.fields.image.FilerImageField(related_name='dg_gallery', to='filer.Image')),
|
||||
],
|
||||
options={
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
]
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('digitalglarus', '0006_dggallery_dggalleryplugin_dgpicture'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='supporter',
|
||||
name='description',
|
||||
field=models.TextField(blank=True, null=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -1,26 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cms', '0012_auto_20150607_2207'),
|
||||
('digitalglarus', '0007_auto_20160208_1031'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='DGSupportersPlugin',
|
||||
fields=[
|
||||
('cmsplugin_ptr', models.OneToOneField(primary_key=True, auto_created=True, parent_link=True, to='cms.CMSPlugin', serialize=False)),
|
||||
('dgSupporters', models.ManyToManyField(to='digitalglarus.Supporter')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
bases=('cms.cmsplugin',),
|
||||
),
|
||||
]
|
|
@ -1,18 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('digitalglarus', '0008_dgsupportersplugin'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='dgsupportersplugin',
|
||||
name='dgSupporters',
|
||||
),
|
||||
]
|
|
@ -15,40 +15,40 @@ class Message(models.Model):
|
|||
return "%s - %s - %s" % (self.name, self.email, self.received_date)
|
||||
|
||||
|
||||
class Supporter(models.Model):
|
||||
name = models.CharField(max_length=200)
|
||||
description = models.TextField(null=True, blank=True)
|
||||
# class Supporter(models.Model):
|
||||
# name = models.CharField(max_length=200)
|
||||
# description = models.TextField(null=True, blank=True)
|
||||
#
|
||||
# def __str__(self):
|
||||
# return "%s" % (self.name)
|
||||
#
|
||||
# def get_absolute_url(self):
|
||||
# return reverse('dgSupporters_view', args=[self.pk])
|
||||
#
|
||||
#
|
||||
# class DGGallery(models.Model):
|
||||
# parent = models.ForeignKey('self', blank=True, null=True)
|
||||
# name = models.CharField(max_length=30)
|
||||
#
|
||||
# def __str__(self):
|
||||
# return "%s" % (self.name)
|
||||
#
|
||||
# def get_absolute_url(self):
|
||||
# return reverse('dgGallery_view', args=[self.pk])
|
||||
#
|
||||
# class Meta:
|
||||
# verbose_name_plural = 'dgGallery'
|
||||
|
||||
def __str__(self):
|
||||
return "%s" % (self.name)
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse('dgSupporters_view', args=[self.pk])
|
||||
|
||||
|
||||
class DGGallery(models.Model):
|
||||
parent = models.ForeignKey('self', blank=True, null=True)
|
||||
name = models.CharField(max_length=30)
|
||||
|
||||
def __str__(self):
|
||||
return "%s" % (self.name)
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse('dgGallery_view', args=[self.pk])
|
||||
|
||||
class Meta:
|
||||
verbose_name_plural = 'dgGallery'
|
||||
|
||||
class DGPicture(models.Model):
|
||||
gallery = models.ForeignKey(DGGallery)
|
||||
image = FilerImageField(related_name='dg_gallery')
|
||||
description = models.CharField(max_length=60)
|
||||
|
||||
def __str__(self):
|
||||
return "%s" % (self.image.name)
|
||||
|
||||
class DGGalleryPlugin(CMSPlugin):
|
||||
dgGallery = models.ForeignKey(DGGallery)
|
||||
|
||||
class DGSupportersPlugin(CMSPlugin):
|
||||
pass
|
||||
# class DGPicture(models.Model):
|
||||
# gallery = models.ForeignKey(DGGallery)
|
||||
# image = FilerImageField(related_name='dg_gallery')
|
||||
# description = models.CharField(max_length=60)
|
||||
#
|
||||
# def __str__(self):
|
||||
# return "%s" % (self.image.name)
|
||||
#
|
||||
# class DGGalleryPlugin(CMSPlugin):
|
||||
# dgGallery = models.ForeignKey(DGGallery)
|
||||
#
|
||||
# class DGSupportersPlugin(CMSPlugin):
|
||||
# pass
|
||||
|
|
BIN
digitalglarus/static/blog.tar.gz
Normal file
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 169 KiB |
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
BIN
digitalglarus/static/digitalglarus/img/img_2.psd
Normal file
|
@ -1,4 +1,4 @@
|
|||
{% extends "cms/digitalglarus/base.html" %}
|
||||
{% extends "digitalglarus/base.html" %}
|
||||
{% load staticfiles cms_tags %}
|
||||
{% block title %}About{% endblock %}
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
{% cms_toolbar %}
|
||||
<div class="brand">Digital Glarus</div>
|
||||
<div class="address-bar">
|
||||
{% placeholder 'digital_glarus_legend' %}
|
||||
{# {% placeholder 'digital_glarus_legend' %}#}
|
||||
</div>
|
||||
<div class="center-block">
|
||||
<ul class="list-inline center-block language-chooser-list">
|
|
@ -1,4 +1,4 @@
|
|||
{% extends "cms/digitalglarus/base.html" %}
|
||||
{% extends "digitalglarus/base.html" %}
|
||||
{% load cms_tags %}
|
||||
{% block title %}Contact{% endblock %}
|
||||
|
106
digitalglarus/templates/cms/digitalglarus/index.html
Normal file
|
@ -0,0 +1,106 @@
|
|||
{% extends "digitalglarus/base.html" %}
|
||||
{% load staticfiles %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="box">
|
||||
<div class="col-lg-12 text-center">
|
||||
<div id="carousel-example-generic" class="carousel slide">
|
||||
<!-- Indicators --><!-- Wrapper for slides -->
|
||||
<div class="carousel-inner">
|
||||
<div class="item active">
|
||||
<img class="img-responsive img-full" src="{% static 'digitalglarus/img/slide-1.jpg' %}" alt="">
|
||||
</div>
|
||||
<div class="item">
|
||||
<img class="img-responsive img-full" src="{% static 'digitalglarus/img/slide-2.jpg' %}" alt="">
|
||||
</div>
|
||||
<div class="item">
|
||||
<img class="img-responsive img-full" src="{% static 'digitalglarus/img/slide-3.jpg' %}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Controls -->
|
||||
<a class="left carousel-control" href="#carousel-example-generic" data-slide="prev">
|
||||
<span class="icon-prev"></span>
|
||||
</a>
|
||||
<a class="right carousel-control" href="#carousel-example-generic" data-slide="next">
|
||||
<span class="icon-next"></span>
|
||||
</a>
|
||||
</div>
|
||||
<h2 class="brand-before">
|
||||
<small>WELCOME TO</small>
|
||||
</h2>
|
||||
<h1 class="brand-name">Digital Glarus</h1>
|
||||
<hr class="tagline-divider">
|
||||
<h2>
|
||||
<small>By
|
||||
<strong><a href="http://ungleich.ch">ungleich gmbh</a></strong>
|
||||
</small>
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="box">
|
||||
<div class="col-lg-12">
|
||||
<hr>
|
||||
<h2 class="intro-text text-center">Build a tech valley <strong>in the heart of switzerland</strong></h2>
|
||||
<hr>
|
||||
<img class="img-responsive img-border img-left" src="{% static 'digitalglarus/img/intro-pic.jpg' %}" alt="">
|
||||
<hr class="visible-xs">
|
||||
<p>Digital Glarus, this is how we call the new home for high tech companies. Located south of Zurich, it has unique features you can not find anywhere else in Switzerland.</p>
|
||||
<p> The combination of beautiful landscape, recreational areas as well as having high speed Internet connections and huge variety of great food offers forms what we call "Digital Glarus".</p>
|
||||
<p>The valley also known as "Glarnerland" has many gorgeous, eye-catching buildings from former industrial area.</p>
|
||||
<p>In fact, Glarnerland may be the valley to contain most well preserved antique houses equipped with high quality old age furniture (those you always look at in expensive stores, but never buy - this is how people live here).</p>
|
||||
<p> </p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="box">
|
||||
<div class="col-lg-12">
|
||||
<hr>
|
||||
<h2 class="intro-text text-center">a new <strong>area</strong>
|
||||
</h2>
|
||||
<hr>
|
||||
<p>While you can imagine that the old factories, many of them being weaving mills, are not running anymore, their heritage suits exactly what the tech society of Switzerland requires: Great and affordable place for computer scientists.</p>
|
||||
<p>We are building the new tech centre of Switzerland by converting old, abandoned buidings into attractive co-working spaces.</p>
|
||||
<p>But what is attractive to a computer scientist? Pizza, Coke and fast Internet? The latter is a still true, though computer scientists in Switzerland are more orientated on living healthy, which is exactly what Glarnerland can provide.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="box">
|
||||
<div class="col-lg-12">
|
||||
<hr>
|
||||
<h2 class="intro-text text-center">Why would anyone be <strong>interested</strong> in it?</h2>
|
||||
<hr>
|
||||
<p>The current de-facto tech centre of Switzerland, Zurich, is overpopulated with an average of less than 0.1% free apartments.Crowded, expensive and loud, to be exact.. Although the density of population is helpful for businesses in finding customers, most tech companies are making their business on the Internet and are flexible in change of location. Why not start from beautiful, empty buildings so many available in Glarus? We are aware of the fact that some investment of time, money and passion will be required to be actually attractive for tech companies to come here. Nonetheless, the overall cost required will be significantly lower than staying in an already overcrowded city. </p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="box">
|
||||
<div class="col-lg-12">
|
||||
<hr>
|
||||
<h2 class="intro-text text-center"><strong>Where</strong>we are</h2>
|
||||
<hr>
|
||||
<p>At the moment we at <a href="http://www.ungleich.ch"> ungleich</a> are talking to authorities and sponsors. It is crucial to build up some basic infrastructure and attract early adopters. Building a community (<a href=http://www.meetup.ch>meetup</a> alike) can be helpful, but competitive pricing as well as superior infrastructure are crucial for success.</p>
|
||||
<p>The great first step we (<a href="http://www.ungleich.ch">ungleich</a>) took is purchasing a charming old house in Schwanden, Glarus. This is our prototype for reviving Glarus and bringing in talents here. We plan to open this place up for Tech companies as a co-working space. We are working tightly with local authorities and supporters. It is crucial to build up some basic infrastructure, and also welcome early adopters. We want Glarus and the IT communities in Switzerland to get on this train, to a great journey we plan through the beautiful valley of Glarus.</p>
|
||||
<p>Have you become interested in the project?
|
||||
<p>Contact us at<br>
|
||||
<br>
|
||||
<a href="mailto:digitalglarus@ungleich.ch">
|
||||
digitalglarus@ungleich.ch
|
||||
</a> // <a href="tel:%2B41%20%280%29%2044%20534%2066%2022" value="+41445346622">+41 (0) 44 534 66 22</a>
|
||||
</p>
|
||||
</p>
|
||||
<p> </p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
|
@ -1,4 +1,4 @@
|
|||
{% extends "cms/digitalglarus/base.html" %}
|
||||
{% extends "digitalglarus/base.html" %}
|
||||
{% load staticfiles cms_tags %}
|
||||
{% block title %}crowdfunding{% endblock %}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{% extends "cms/digitalglarus/base.html" %}
|
||||
{% extends "digitalglarus/base.html" %}
|
||||
{% load staticfiles cms_tags %}
|
||||
{% block title %}About{% endblock %}
|
||||
|
|
@ -18,9 +18,6 @@
|
|||
<ul class="nav navbar-nav">
|
||||
{% show_menu 0 0 0 1 %}
|
||||
{% show_menu_below_id "digital-glarus-page" 0 %}
|
||||
<li>
|
||||
<a href="{% url 'digitalglarus:blog' %}">Blog</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.navbar-collapse -->
|
|
@ -23,8 +23,10 @@
|
|||
<link href="{% static 'digitalglarus/css/business-casual.css' %}" rel="stylesheet">
|
||||
|
||||
<!-- Fonts -->
|
||||
<link href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet" type="text/css">
|
||||
<link href="//fonts.googleapis.com/css?family=Josefin+Slab:100,300,400,600,700,100italic,300italic,400italic,600italic,700italic" rel="stylesheet" type="text/css">
|
||||
<link href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
|
||||
rel="stylesheet" type="text/css">
|
||||
<link href="//fonts.googleapis.com/css?family=Josefin+Slab:100,300,400,600,700,100italic,300italic,400italic,600italic,700italic"
|
||||
rel="stylesheet" type="text/css">
|
||||
|
||||
{% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %}
|
||||
{% render_block "js" postprocessor "compressor.contrib.sekizai.compress" %}
|
||||
|
@ -35,29 +37,37 @@
|
|||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
<script>
|
||||
(function (i, s, o, g, r, a, m) {
|
||||
i['GoogleAnalyticsObject'] = r;
|
||||
i[r] = i[r] || function () {
|
||||
(i[r].q = i[r].q || []).push(arguments)
|
||||
}, i[r].l = 1 * new Date();
|
||||
a = s.createElement(o),
|
||||
m = s.getElementsByTagName(o)[0];
|
||||
a.async = 1;
|
||||
a.src = g;
|
||||
m.parentNode.insertBefore(a, m)
|
||||
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
|
||||
|
||||
ga('create', 'UA-62285904-2', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% cms_toolbar %}
|
||||
<div class="brand">Digital Glarus</div>
|
||||
<div class="address-bar">The Swiss IT Valley | Schwanden, 8762 GL Switzerland | From 2015.10.13</div>
|
||||
{% cms_toolbar %}
|
||||
<div class="brand">Digital Glarus</div>
|
||||
<div class="address-bar">The Swiss IT Valley | Schwanden, 8762 GL Switzerland | From 2015.10.13</div>
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-default" role="navigation">
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-default" role="navigation">
|
||||
<div class="container">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse"
|
||||
data-target="#bs-example-navbar-collapse-1">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
|
@ -73,45 +83,43 @@
|
|||
{% show_menu_below_id "digital-glarus-page" 0 %}
|
||||
<li>
|
||||
<a href="{% url 'digitalglarus:supporters' %}">Supporters</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{% url 'digitalglarus:blog' %}">Blog</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /.navbar-collapse -->
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</nav>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="container">
|
||||
{% block content %} {% endblock %}
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
|
||||
<footer>
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-center">
|
||||
<p class="text-center">Copyright © <a href="http://www.ungleich.ch">ungleich GmbH 2015</a></p>
|
||||
<p class="text-center">Copyright © <a href="http://www.ungleich.ch">ungleich GmbH
|
||||
2015</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</footer>
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="{% static 'digitalglarus/js/jquery.js' %}"></script>
|
||||
<!-- jQuery -->
|
||||
<script src="{% static 'digitalglarus/js/jquery.js' %}"></script>
|
||||
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="{% static 'digitalglarus/js/bootstrap.min.js' %}"></script>
|
||||
<script src="{% static 'digitalglarus/js/digital.glarus.js' %}"></script>
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="{% static 'digitalglarus/js/bootstrap.min.js' %}"></script>
|
||||
<script src="{% static 'digitalglarus/js/digital.glarus.js' %}"></script>
|
||||
|
||||
<!-- Script to Activate the Carousel -->
|
||||
<script>
|
||||
<!-- Script to Activate the Carousel -->
|
||||
<script>
|
||||
$('.carousel').carousel({
|
||||
interval: 5000 //changes the speed
|
||||
})
|
||||
</script>
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{% load i18n thumbnail %}
|
||||
|
||||
<article id="post-{{ post.slug }}" class="post-item col-lg-12 text-center">
|
||||
{% if post.main_image %}
|
||||
<div class="blog-visual">
|
||||
|
@ -10,7 +9,7 @@
|
|||
<header>
|
||||
<hr></hr>
|
||||
<h2 class="text-center intro-text">
|
||||
<a href="{% url 'digitalglarus:blog-detail' post.slug %}" class="post-title center-block">
|
||||
<a href="{% url 'djangocms_blog:post-detail' post.slug %}" class="post-title center-block">
|
||||
<b>{{ post.title }}</b>
|
||||
</a>
|
||||
<small>
|
||||
|
@ -28,6 +27,6 @@
|
|||
</p>
|
||||
</div>
|
||||
<div class="read-more">
|
||||
<a class="lead" href="{% url 'digitalglarus:blog-detail' post.slug %}">{% trans "read more" %} »</a>
|
||||
<a class="lead" href="{% url 'djangocms_blog:post-detail' post.slug %}">{% trans "read more" %} »</a>
|
||||
</div>
|
||||
</article>
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
{% block title %}{{ post.get_title }}{% endblock %}
|
||||
|
||||
{% block content_blog %}{% spaceless %}
|
||||
{% debug %}
|
||||
<article id="post-{{ post.slug }}" class="post-item post-detail">
|
||||
{% if post.main_image_id %}
|
||||
<div class="blog-visual">
|
||||
|
@ -17,7 +18,7 @@
|
|||
<header class="text-center">
|
||||
<hr></hr>
|
||||
<h2 class="text-center intro-text">
|
||||
<a href="{% url 'digitalglarus:blog-detail' post.slug %}" class="post-title center-block">
|
||||
<a href="{% url 'djangocms_blog:post-detail' post.slug %}" class="post-title center-block">
|
||||
<b>{{ post.title }}</b>
|
||||
</a>
|
||||
<small>
|
||||
|
@ -26,7 +27,7 @@
|
|||
</h2>
|
||||
<hr></hr>
|
||||
{% block blog_meta %}
|
||||
{# include "glarus_blog/includes/blog_meta.html" #}
|
||||
include "glarus_blog/includes/blog_meta.html"
|
||||
{% endblock %}
|
||||
</header>
|
||||
{% endspaceless %}
|
||||
|
|
|
@ -9,6 +9,7 @@ urlpatterns = [
|
|||
url(r'old_letscowork$', views.letscowork, name='letscowork'),
|
||||
url(r'old_home$', views.home, name='home'),
|
||||
url(r'supporters/$', views.supporters, name='supporters'),
|
||||
url(r'blog/$', views.blog, name='blog'),
|
||||
url(r'', views.index, name='index'),
|
||||
url(r'blog/',views.blog,name='blog'),
|
||||
url(r'^blog/(?P<slug>\w[-\w]*)/$', views.blog_detail, name='blog-detail'),
|
||||
]
|
||||
|
|
|
@ -6,8 +6,9 @@ from django.http import HttpResponseRedirect
|
|||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import get_language
|
||||
from djangocms_blog.models import Post
|
||||
from django.core.urlresolvers import resolve
|
||||
|
||||
from .models import Message, Supporter
|
||||
from .models import Message#, Supporter
|
||||
|
||||
class MessageForm(ModelForm):
|
||||
required_css_class = 'form-control'
|
||||
|
|
437
dynamicweb/settings-test/__init__.py
Normal file
|
@ -0,0 +1,437 @@
|
|||
"""
|
||||
Copyright 2015 ungleich.
|
||||
"""
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||
import os
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
# dotenv
|
||||
import dotenv
|
||||
|
||||
gettext = lambda s: s
|
||||
|
||||
|
||||
def env(env_name):
|
||||
return os.environ.get(env_name)
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
PROJECT_DIR = os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), "../.."),
|
||||
)
|
||||
|
||||
# load .env file
|
||||
dotenv.read_dotenv("{0}/.env".format(PROJECT_DIR))
|
||||
|
||||
# Quick-start development settings - unsuitable for production
|
||||
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
|
||||
|
||||
SITE_ID = 1
|
||||
|
||||
APP_ROOT_ENDPOINT = "/"
|
||||
|
||||
LOGIN_URL = None
|
||||
LOGOUT_URL = None
|
||||
LOGIN_REDIRECT_URL = None
|
||||
|
||||
EMAIL_HOST = "localhost"
|
||||
EMAIL_PORT = 25
|
||||
|
||||
SECRET_KEY = env('DJANGO_SECRET_KEY')
|
||||
|
||||
# Application definition
|
||||
|
||||
INSTALLED_APPS = (
|
||||
'djangocms_admin_style',
|
||||
'django.contrib.admin',
|
||||
'django.contrib.auth',
|
||||
'django.contrib.contenttypes',
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'django.contrib.sites',
|
||||
'cms', # django CMS itself
|
||||
'treebeard', # utilities for implementing a tree
|
||||
'menus', # helper for model independent hierarchical website navigation
|
||||
'sekizai', # for javascript and css management
|
||||
# django-cms plugins
|
||||
'djangocms_flash',
|
||||
'djangocms_googlemap',
|
||||
'djangocms_inherit',
|
||||
'djangocms_link',
|
||||
'djangocms_snippet',
|
||||
'djangocms_teaser',
|
||||
'djangocms_page_meta',
|
||||
# django-filer
|
||||
'cmsplugin_filer_file',
|
||||
'cmsplugin_filer_folder',
|
||||
'cmsplugin_filer_link',
|
||||
'cmsplugin_filer_teaser',
|
||||
'cmsplugin_filer_video',
|
||||
# versioning
|
||||
'reversion',
|
||||
# ck-editor
|
||||
'djangocms_text_ckeditor',
|
||||
# djangocms-blog
|
||||
'filer',
|
||||
'easy_thumbnails',
|
||||
'cmsplugin_filer_image',
|
||||
'parler',
|
||||
'taggit',
|
||||
'taggit_autosuggest',
|
||||
'django_select2',
|
||||
'meta',
|
||||
'meta_mixin',
|
||||
# 'admin_enhancer',
|
||||
'djangocms_blog',
|
||||
'bootstrap3',
|
||||
'compressor',
|
||||
# ungleich
|
||||
'ungleich',
|
||||
'hosting',
|
||||
'digitalglarus',
|
||||
)
|
||||
|
||||
MIDDLEWARE_CLASSES = (
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
'django.middleware.locale.LocaleMiddleware',
|
||||
# django-cms middlewares
|
||||
'cms.middleware.user.CurrentUserMiddleware',
|
||||
'cms.middleware.page.CurrentPageMiddleware',
|
||||
'cms.middleware.toolbar.ToolbarMiddleware',
|
||||
'cms.middleware.language.LanguageCookieMiddleware',
|
||||
)
|
||||
|
||||
ROOT_URLCONF = 'dynamicweb.urls'
|
||||
|
||||
TEMPLATES = [
|
||||
{
|
||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||
'DIRS': [],
|
||||
'APP_DIRS': True,
|
||||
'OPTIONS': {
|
||||
'context_processors': [
|
||||
'django.template.context_processors.debug',
|
||||
'django.template.context_processors.request',
|
||||
'django.contrib.auth.context_processors.auth',
|
||||
'django.contrib.messages.context_processors.messages',
|
||||
],
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
WSGI_APPLICATION = 'dynamicweb.wsgi.application'
|
||||
|
||||
# Deprecated since version 1.8.
|
||||
# callables take a request object as their argument and return a dictionary of
|
||||
# items to be merged into the context.
|
||||
TEMPLATE_CONTEXT_PROCESSORS = (
|
||||
"django.contrib.auth.context_processors.auth",
|
||||
"django.core.context_processors.debug",
|
||||
"django.core.context_processors.i18n",
|
||||
"django.core.context_processors.media",
|
||||
"django.core.context_processors.static",
|
||||
"django.core.context_processors.tz",
|
||||
"django.contrib.messages.context_processors.messages",
|
||||
"django.core.context_processors.request",
|
||||
'sekizai.context_processors.sekizai',
|
||||
'cms.context_processors.cms_settings',
|
||||
)
|
||||
|
||||
TEMPLATE_DIRS = (
|
||||
os.path.join(PROJECT_DIR, 'templates'),
|
||||
)
|
||||
|
||||
CMS_TEMPLATES_DIR = {
|
||||
1: os.path.join(TEMPLATE_DIRS[0], 'cms/'),
|
||||
}
|
||||
|
||||
# Database
|
||||
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||
'NAME': 'app',
|
||||
}
|
||||
}
|
||||
|
||||
# Internationalization
|
||||
# https://docs.djangoproject.com/en/1.7/topics/i18n/
|
||||
|
||||
TIME_ZONE = 'UTC'
|
||||
|
||||
USE_I18N = True
|
||||
|
||||
USE_L10N = True
|
||||
|
||||
USE_TZ = True
|
||||
|
||||
LANGUAGES = (
|
||||
('en-us', _('English')),
|
||||
('de', _('Deutsch')),
|
||||
)
|
||||
|
||||
LANGUAGE_CODE = 'en-us'
|
||||
|
||||
CMS_PLACEHOLDER_CONF = {
|
||||
'logo_image': {
|
||||
'name': 'Logo Image',
|
||||
'plugins': ['FilerImagePlugin'],
|
||||
'limits': {
|
||||
'global': 1,
|
||||
}
|
||||
},
|
||||
'page-title': {
|
||||
'name': 'Page Title',
|
||||
'plugins': ['TextPlugin'],
|
||||
'default_plugins': [
|
||||
{
|
||||
'plugin_type': 'TextPlugin',
|
||||
'values': {
|
||||
'body': 'Page Title...'
|
||||
}
|
||||
}
|
||||
],
|
||||
'limits': {
|
||||
'global': 1,
|
||||
}
|
||||
},
|
||||
'page-subtitle': {
|
||||
'name': 'Page Subtitle',
|
||||
'inherit': 'page-title',
|
||||
'default_plugins': [
|
||||
{
|
||||
'plugin_type': 'TextPlugin',
|
||||
'values': {
|
||||
'body': 'Page subtitle...'
|
||||
}
|
||||
}
|
||||
],
|
||||
},
|
||||
'footer_copyright': {
|
||||
'name': 'Copyright',
|
||||
'inherit': 'page-title',
|
||||
'default_plugins': [
|
||||
{
|
||||
'plugin_type': 'TextPlugin',
|
||||
'values': {
|
||||
'body': 'Copyright...'
|
||||
}
|
||||
}
|
||||
],
|
||||
},
|
||||
'content': {
|
||||
'name': _('Content'),
|
||||
'default_plugins': [
|
||||
{
|
||||
'plugin_type': 'TextPlugin',
|
||||
'values': {'body': '<p></p>'},
|
||||
},
|
||||
]
|
||||
},
|
||||
'post_content': {
|
||||
'name': _('Content'),
|
||||
'default_plugins': [
|
||||
{
|
||||
'plugin_type': 'TextPlugin',
|
||||
'values': {'body': '<p></p>'},
|
||||
},
|
||||
]
|
||||
},
|
||||
}
|
||||
|
||||
CACHES = {
|
||||
'default': {
|
||||
'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
|
||||
'LOCATION': '127.0.0.1:11211',
|
||||
}
|
||||
}
|
||||
|
||||
if LOGIN_URL is None:
|
||||
LOGIN_URL = APP_ROOT_ENDPOINT + 'accounts/login/'
|
||||
if LOGOUT_URL is None:
|
||||
LOGOUT_URL = APP_ROOT_ENDPOINT + 'accounts/logout/'
|
||||
if LOGIN_REDIRECT_URL is None:
|
||||
LOGIN_REDIRECT_URL = APP_ROOT_ENDPOINT
|
||||
|
||||
# Static files (CSS, JavaScript, Images)
|
||||
# https://docs.djangoproject.com/en/1.7/howto/static-files/
|
||||
|
||||
STATIC_URL = '/static/'
|
||||
|
||||
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
|
||||
|
||||
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')
|
||||
MEDIA_URL = APP_ROOT_ENDPOINT + 'media/'
|
||||
FILE_UPLOAD_PERMISSIONS = 0o644
|
||||
|
||||
# Templates confs
|
||||
TEMPLATE_DIRS = (
|
||||
os.path.join(PROJECT_DIR, "templates"),
|
||||
)
|
||||
|
||||
META_SITE_PROTOCOL = 'http'
|
||||
META_USE_SITES = True
|
||||
|
||||
MIGRATION_MODULES = {
|
||||
'cms': 'cms.migrations',
|
||||
'filer': 'filer.migrations_django',
|
||||
'menus': 'menus.migrations_django',
|
||||
'djangocms_flash': 'djangocms_flash.migrations_django',
|
||||
'djangocms_googlemap': 'djangocms_googlemap.migrations_django',
|
||||
'djangocms_inherit': 'djangocms_inherit.migrations_django',
|
||||
'djangocms_link': 'djangocms_link.migrations_django',
|
||||
'djangocms_snippet': 'djangocms_snippet.migrations_django',
|
||||
'djangocms_teaser': 'djangocms_teaser.migrations_django',
|
||||
'djangocms_column': 'djangocms_column.migrations_django',
|
||||
'djangocms_flash': 'djangocms_flash.migrations_django',
|
||||
'djangocms_googlemap': 'djangocms_googlemap.migrations_django',
|
||||
'djangocms_inherit': 'djangocms_inherit.migrations_django',
|
||||
'djangocms_style': 'djangocms_style.migrations_django',
|
||||
'cmsplugin_filer_image': 'cmsplugin_filer_image.migrations_django',
|
||||
'cmsplugin_filer_file': 'cmsplugin_filer_file.migrations_django',
|
||||
'cmsplugin_filer_folder': 'cmsplugin_filer_folder.migrations_django',
|
||||
'cmsplugin_filer_link': 'cmsplugin_filer_link.migrations_django',
|
||||
'cmsplugin_filer_teaser': 'cmsplugin_filer_teaser.migrations_django',
|
||||
'cmsplugin_filer_utils': 'cmsplugin_filer_utils.migrations_django',
|
||||
'cmsplugin_filer_video': 'cmsplugin_filer_video.migrations_django',
|
||||
'djangocms_text_ckeditor': 'djangocms_text_ckeditor.migrations',
|
||||
}
|
||||
|
||||
STATICFILES_FINDERS = (
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||
'compressor.finders.CompressorFinder',
|
||||
)
|
||||
|
||||
COMPRESS_PRECOMPILERS = (
|
||||
('text/less', 'lesscpy {infile}'),
|
||||
)
|
||||
|
||||
THUMBNAIL_PROCESSORS = (
|
||||
'easy_thumbnails.processors.colorspace',
|
||||
'easy_thumbnails.processors.autocrop',
|
||||
'filer.thumbnail_processors.scale_and_crop_with_subject_location',
|
||||
'easy_thumbnails.processors.filters',
|
||||
)
|
||||
|
||||
# django-cms-text-ckeditor
|
||||
TEXT_SAVE_IMAGE_FUNCTION = (
|
||||
'cmsplugin_filer_image.integrations.ckeditor.create_image_plugin'
|
||||
)
|
||||
TEXT_ADDITIONAL_TAGS = ('iframe',)
|
||||
TEXT_ADDITIONAL_ATTRIBUTES = ('scrolling', 'allowfullscreen', 'frameborder')
|
||||
USE_X_FORWARDED_HOST = True
|
||||
|
||||
# Django Bootstrap - Settings
|
||||
# Added Configuration for bootstrap static files to load over https.
|
||||
BOOTSTRAP3 = {
|
||||
|
||||
# The URL to the jQuery JavaScript file
|
||||
'jquery_url': '//code.jquery.com/jquery.min.js',
|
||||
|
||||
# The Bootstrap base URL
|
||||
'base_url': '//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/',
|
||||
|
||||
# The complete URL to the Bootstrap CSS file
|
||||
# (None means derive it from base_url)
|
||||
'css_url': None,
|
||||
|
||||
# The complete URL to the Bootstrap CSS file (None means no theme)
|
||||
'theme_url': None,
|
||||
|
||||
# The complete URL to the Bootstrap JavaScript file
|
||||
# (None means derive it from base_url)
|
||||
'javascript_url': None,
|
||||
|
||||
# Put JavaScript in the HEAD section of the HTML document
|
||||
# (only relevant if you use bootstrap3.html)
|
||||
'javascript_in_head': False,
|
||||
|
||||
# Include jQuery with Bootstrap JavaScript
|
||||
# (affects django-bootstrap3 template tags)
|
||||
'include_jquery': False,
|
||||
|
||||
# Label class to use in horizontal forms
|
||||
'horizontal_label_class': 'col-md-3',
|
||||
|
||||
# Field class to use in horizontal forms
|
||||
'horizontal_field_class': 'col-md-9',
|
||||
|
||||
# Set HTML required attribute on required fields
|
||||
'set_required': True,
|
||||
|
||||
# Set HTML disabled attribute on disabled fields
|
||||
'set_disabled': False,
|
||||
|
||||
# Set placeholder attributes to label if no placeholder is provided
|
||||
'set_placeholder': True,
|
||||
|
||||
# Class to indicate required (better to set this in your Django form)
|
||||
'required_css_class': '',
|
||||
|
||||
# Class to indicate error (better to set this in your Django form)
|
||||
'error_css_class': 'has-error',
|
||||
|
||||
# Class to indicate success, meaning the field has valid input
|
||||
# (better to set this in your Django form)
|
||||
'success_css_class': 'has-success',
|
||||
|
||||
# Renderers (only set these if you have studied the source and understand
|
||||
# the inner workings)
|
||||
'formset_renderers': {
|
||||
'default': 'bootstrap3.renderers.FormsetRenderer',
|
||||
},
|
||||
'form_renderers': {
|
||||
'default': 'bootstrap3.renderers.FormRenderer',
|
||||
},
|
||||
'field_renderers': {
|
||||
'default': 'bootstrap3.renderers.FieldRenderer',
|
||||
'inline': 'bootstrap3.renderers.InlineFieldRenderer',
|
||||
},
|
||||
}
|
||||
|
||||
# djangocms_blog config
|
||||
|
||||
BLOG_ENABLE_COMMENTS = False
|
||||
BLOG_USE_PLACEHOLDER = True
|
||||
BLOG_IMAGE_THUMBNAIL_SIZE = {'size': '120x120', 'crop': True, 'upscale': False}
|
||||
BLOG_IMAGE_FULL_SIZE = {'size': '640x120', 'crop': True, 'upscale': False}
|
||||
BLOG_PAGINATION = 4
|
||||
BLOG_LATEST_POSTS = BLOG_PAGINATION
|
||||
BLOG_POSTS_LIST_TRUNCWORDS_COUNT = 100
|
||||
BLOG_MULTISITE = True
|
||||
BLOG_AUTHOR_DEFAULT = True
|
||||
|
||||
# django-meta
|
||||
META_SITE_PROTOCOL = "https"
|
||||
META_SITE_DOMAIN = "ungleich.ch"
|
||||
META_SITE_TYPE = "website"
|
||||
META_SITE_NAME = "ungleich"
|
||||
META_INCLUDE_KEYWORDS = ["ungleich", "hosting", "switzerland",
|
||||
"Schweiz", "Swiss", "cdist"]
|
||||
META_USE_SITES = True
|
||||
|
||||
PARLER_LANGUAGES = {1: ({'code': 'en-us'}, {'code': 'de'}, )}
|
||||
|
||||
DEBUG = False
|
||||
|
||||
ADMINS = (
|
||||
('Nico Schottelius', 'nico.schottelius@ungleich.ch'),
|
||||
)
|
||||
# ('Sanghee Kim', 'sanghee.kim@ungleich.ch'),
|
||||
|
||||
MANAGERS = ADMINS
|
||||
|
||||
ALLOWED_HOSTS = [
|
||||
".ungleich.ch",
|
||||
"digital.glarus.ungleich.ch" ,
|
||||
]
|
|
@ -0,0 +1 @@
|
|||
from .base import *
|
423
dynamicweb/settings/__init__old.py
Normal file
|
@ -0,0 +1,423 @@
|
|||
"""
|
||||
Copyright 2015 ungleich.
|
||||
"""
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||
import os
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
# dotenv
|
||||
import dotenv
|
||||
|
||||
gettext = lambda s: s
|
||||
|
||||
|
||||
def env(env_name):
|
||||
return os.environ.get(env_name)
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
PROJECT_DIR = os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), "../.."),
|
||||
)
|
||||
|
||||
# load .env file
|
||||
dotenv.read_dotenv("{0}/.env".format(PROJECT_DIR))
|
||||
|
||||
# Quick-start development settings - unsuitable for production
|
||||
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
|
||||
|
||||
SITE_ID = 1
|
||||
|
||||
APP_ROOT_ENDPOINT = "/"
|
||||
|
||||
LOGIN_URL = None
|
||||
LOGOUT_URL = None
|
||||
LOGIN_REDIRECT_URL = None
|
||||
|
||||
EMAIL_HOST = "localhost"
|
||||
EMAIL_PORT = 25
|
||||
|
||||
SECRET_KEY = env('DJANGO_SECRET_KEY')
|
||||
|
||||
# Application definition
|
||||
|
||||
INSTALLED_APPS = (
|
||||
'djangocms_admin_style',
|
||||
'django.contrib.admin',
|
||||
'django.contrib.auth',
|
||||
'django.contrib.contenttypes',
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'django.contrib.sites',
|
||||
'cms', # django CMS itself
|
||||
'treebeard', # utilities for implementing a tree
|
||||
'menus', # helper for model independent hierarchical website navigation
|
||||
'sekizai', # for javascript and css management
|
||||
# django-cms plugins
|
||||
'djangocms_flash',
|
||||
'djangocms_googlemap',
|
||||
'djangocms_inherit',
|
||||
'djangocms_link',
|
||||
'djangocms_snippet',
|
||||
'djangocms_teaser',
|
||||
'djangocms_page_meta',
|
||||
# django-filer
|
||||
'cmsplugin_filer_file',
|
||||
'cmsplugin_filer_folder',
|
||||
'cmsplugin_filer_link',
|
||||
'cmsplugin_filer_teaser',
|
||||
'cmsplugin_filer_video',
|
||||
# versioning
|
||||
'reversion',
|
||||
# ck-editor
|
||||
'djangocms_text_ckeditor',
|
||||
# djangocms-blog
|
||||
'filer',
|
||||
'easy_thumbnails',
|
||||
'cmsplugin_filer_image',
|
||||
'parler',
|
||||
'taggit',
|
||||
'taggit_autosuggest',
|
||||
'django_select2',
|
||||
'meta',
|
||||
'meta_mixin',
|
||||
# 'admin_enhancer',
|
||||
'djangocms_blog',
|
||||
'bootstrap3',
|
||||
'compressor',
|
||||
# ungleich
|
||||
'ungleich',
|
||||
'hosting',
|
||||
'digitalglarus',
|
||||
)
|
||||
|
||||
MIDDLEWARE_CLASSES = (
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
'django.middleware.locale.LocaleMiddleware',
|
||||
# django-cms middlewares
|
||||
'cms.middleware.user.CurrentUserMiddleware',
|
||||
'cms.middleware.page.CurrentPageMiddleware',
|
||||
'cms.middleware.toolbar.ToolbarMiddleware',
|
||||
'cms.middleware.language.LanguageCookieMiddleware',
|
||||
)
|
||||
|
||||
ROOT_URLCONF = 'dynamicweb.urls'
|
||||
|
||||
TEMPLATES = [
|
||||
{
|
||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||
'DIRS': [],
|
||||
'APP_DIRS': True,
|
||||
'OPTIONS': {
|
||||
'context_processors': [
|
||||
'django.template.context_processors.debug',
|
||||
'django.template.context_processors.request',
|
||||
'django.contrib.auth.context_processors.auth',
|
||||
'django.contrib.messages.context_processors.messages',
|
||||
],
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
WSGI_APPLICATION = 'dynamicweb.wsgi.application'
|
||||
|
||||
# Deprecated since version 1.8.
|
||||
# callables take a request object as their argument and return a dictionary of
|
||||
# items to be merged into the context.
|
||||
TEMPLATE_CONTEXT_PROCESSORS = (
|
||||
"django.contrib.auth.context_processors.auth",
|
||||
"django.core.context_processors.debug",
|
||||
"django.core.context_processors.i18n",
|
||||
"django.core.context_processors.media",
|
||||
"django.core.context_processors.static",
|
||||
"django.core.context_processors.tz",
|
||||
"django.contrib.messages.context_processors.messages",
|
||||
"django.core.context_processors.request",
|
||||
'sekizai.context_processors.sekizai',
|
||||
'cms.context_processors.cms_settings',
|
||||
)
|
||||
|
||||
TEMPLATE_DIRS = (
|
||||
os.path.join(PROJECT_DIR, 'templates'),
|
||||
)
|
||||
|
||||
CMS_TEMPLATES_DIR = {
|
||||
1: os.path.join(TEMPLATE_DIRS[0], 'cms/'),
|
||||
}
|
||||
|
||||
# Database
|
||||
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||
'NAME': 'app',
|
||||
}
|
||||
}
|
||||
|
||||
# Internationalization
|
||||
# https://docs.djangoproject.com/en/1.7/topics/i18n/
|
||||
|
||||
TIME_ZONE = 'UTC'
|
||||
|
||||
USE_I18N = True
|
||||
|
||||
USE_L10N = True
|
||||
|
||||
USE_TZ = True
|
||||
|
||||
LANGUAGES = (
|
||||
('en-us', _('English')),
|
||||
('de', _('Deutsch')),
|
||||
)
|
||||
|
||||
LANGUAGE_CODE = 'en-us'
|
||||
|
||||
CMS_PLACEHOLDER_CONF = {
|
||||
'logo_image': {
|
||||
'name': 'Logo Image',
|
||||
'plugins': ['FilerImagePlugin'],
|
||||
'limits': {
|
||||
'global': 1,
|
||||
}
|
||||
},
|
||||
'page-title': {
|
||||
'name': 'Page Title',
|
||||
'plugins': ['TextPlugin'],
|
||||
'default_plugins': [
|
||||
{
|
||||
'plugin_type': 'TextPlugin',
|
||||
'values': {
|
||||
'body': 'Page Title...'
|
||||
}
|
||||
}
|
||||
],
|
||||
'limits': {
|
||||
'global': 1,
|
||||
}
|
||||
},
|
||||
'page-subtitle': {
|
||||
'name': 'Page Subtitle',
|
||||
'inherit': 'page-title',
|
||||
'default_plugins': [
|
||||
{
|
||||
'plugin_type': 'TextPlugin',
|
||||
'values': {
|
||||
'body': 'Page subtitle...'
|
||||
}
|
||||
}
|
||||
],
|
||||
},
|
||||
'footer_copyright': {
|
||||
'name': 'Copyright',
|
||||
'inherit': 'page-title',
|
||||
'default_plugins': [
|
||||
{
|
||||
'plugin_type': 'TextPlugin',
|
||||
'values': {
|
||||
'body': 'Copyright...'
|
||||
}
|
||||
}
|
||||
],
|
||||
},
|
||||
'content': {
|
||||
'name': _('Content'),
|
||||
'default_plugins': [
|
||||
{
|
||||
'plugin_type': 'TextPlugin',
|
||||
'values': {'body': '<p></p>'},
|
||||
},
|
||||
]
|
||||
},
|
||||
'post_content': {
|
||||
'name': _('Content'),
|
||||
'default_plugins': [
|
||||
{
|
||||
'plugin_type': 'TextPlugin',
|
||||
'values': {'body': '<p></p>'},
|
||||
},
|
||||
]
|
||||
},
|
||||
}
|
||||
|
||||
CACHES = {
|
||||
'default': {
|
||||
'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
|
||||
'LOCATION': '127.0.0.1:11211',
|
||||
}
|
||||
}
|
||||
|
||||
if LOGIN_URL is None:
|
||||
LOGIN_URL = APP_ROOT_ENDPOINT + 'accounts/login/'
|
||||
if LOGOUT_URL is None:
|
||||
LOGOUT_URL = APP_ROOT_ENDPOINT + 'accounts/logout/'
|
||||
if LOGIN_REDIRECT_URL is None:
|
||||
LOGIN_REDIRECT_URL = APP_ROOT_ENDPOINT
|
||||
|
||||
# Static files (CSS, JavaScript, Images)
|
||||
# https://docs.djangoproject.com/en/1.7/howto/static-files/
|
||||
|
||||
STATIC_URL = '/static/'
|
||||
|
||||
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
|
||||
|
||||
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')
|
||||
MEDIA_URL = APP_ROOT_ENDPOINT + 'media/'
|
||||
FILE_UPLOAD_PERMISSIONS = 0o644
|
||||
|
||||
# Templates confs
|
||||
TEMPLATE_DIRS = (
|
||||
os.path.join(PROJECT_DIR, "templates"),
|
||||
)
|
||||
|
||||
META_SITE_PROTOCOL = 'http'
|
||||
META_USE_SITES = True
|
||||
|
||||
MIGRATION_MODULES = {
|
||||
'cms': 'cms.migrations',
|
||||
'filer': 'filer.migrations_django',
|
||||
'menus': 'menus.migrations_django',
|
||||
'djangocms_flash': 'djangocms_flash.migrations_django',
|
||||
'djangocms_googlemap': 'djangocms_googlemap.migrations_django',
|
||||
'djangocms_inherit': 'djangocms_inherit.migrations_django',
|
||||
'djangocms_link': 'djangocms_link.migrations_django',
|
||||
'djangocms_snippet': 'djangocms_snippet.migrations_django',
|
||||
'djangocms_teaser': 'djangocms_teaser.migrations_django',
|
||||
'djangocms_column': 'djangocms_column.migrations_django',
|
||||
'djangocms_flash': 'djangocms_flash.migrations_django',
|
||||
'djangocms_googlemap': 'djangocms_googlemap.migrations_django',
|
||||
'djangocms_inherit': 'djangocms_inherit.migrations_django',
|
||||
'djangocms_style': 'djangocms_style.migrations_django',
|
||||
'cmsplugin_filer_image': 'cmsplugin_filer_image.migrations_django',
|
||||
'cmsplugin_filer_file': 'cmsplugin_filer_file.migrations_django',
|
||||
'cmsplugin_filer_folder': 'cmsplugin_filer_folder.migrations_django',
|
||||
'cmsplugin_filer_link': 'cmsplugin_filer_link.migrations_django',
|
||||
'cmsplugin_filer_teaser': 'cmsplugin_filer_teaser.migrations_django',
|
||||
'cmsplugin_filer_utils': 'cmsplugin_filer_utils.migrations_django',
|
||||
'cmsplugin_filer_video': 'cmsplugin_filer_video.migrations_django',
|
||||
'djangocms_text_ckeditor': 'djangocms_text_ckeditor.migrations',
|
||||
}
|
||||
|
||||
STATICFILES_FINDERS = (
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||
'compressor.finders.CompressorFinder',
|
||||
)
|
||||
|
||||
COMPRESS_PRECOMPILERS = (
|
||||
('text/less', 'lesscpy {infile}'),
|
||||
)
|
||||
|
||||
THUMBNAIL_PROCESSORS = (
|
||||
'easy_thumbnails.processors.colorspace',
|
||||
'easy_thumbnails.processors.autocrop',
|
||||
'filer.thumbnail_processors.scale_and_crop_with_subject_location',
|
||||
'easy_thumbnails.processors.filters',
|
||||
)
|
||||
|
||||
# django-cms-text-ckeditor
|
||||
TEXT_SAVE_IMAGE_FUNCTION = (
|
||||
'cmsplugin_filer_image.integrations.ckeditor.create_image_plugin'
|
||||
)
|
||||
TEXT_ADDITIONAL_TAGS = ('iframe',)
|
||||
TEXT_ADDITIONAL_ATTRIBUTES = ('scrolling', 'allowfullscreen', 'frameborder')
|
||||
USE_X_FORWARDED_HOST = True
|
||||
|
||||
# Django Bootstrap - Settings
|
||||
# Added Configuration for bootstrap static files to load over https.
|
||||
BOOTSTRAP3 = {
|
||||
|
||||
# The URL to the jQuery JavaScript file
|
||||
'jquery_url': '//code.jquery.com/jquery.min.js',
|
||||
|
||||
# The Bootstrap base URL
|
||||
'base_url': '//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/',
|
||||
|
||||
# The complete URL to the Bootstrap CSS file
|
||||
# (None means derive it from base_url)
|
||||
'css_url': None,
|
||||
|
||||
# The complete URL to the Bootstrap CSS file (None means no theme)
|
||||
'theme_url': None,
|
||||
|
||||
# The complete URL to the Bootstrap JavaScript file
|
||||
# (None means derive it from base_url)
|
||||
'javascript_url': None,
|
||||
|
||||
# Put JavaScript in the HEAD section of the HTML document
|
||||
# (only relevant if you use bootstrap3.html)
|
||||
'javascript_in_head': False,
|
||||
|
||||
# Include jQuery with Bootstrap JavaScript
|
||||
# (affects django-bootstrap3 template tags)
|
||||
'include_jquery': False,
|
||||
|
||||
# Label class to use in horizontal forms
|
||||
'horizontal_label_class': 'col-md-3',
|
||||
|
||||
# Field class to use in horizontal forms
|
||||
'horizontal_field_class': 'col-md-9',
|
||||
|
||||
# Set HTML required attribute on required fields
|
||||
'set_required': True,
|
||||
|
||||
# Set HTML disabled attribute on disabled fields
|
||||
'set_disabled': False,
|
||||
|
||||
# Set placeholder attributes to label if no placeholder is provided
|
||||
'set_placeholder': True,
|
||||
|
||||
# Class to indicate required (better to set this in your Django form)
|
||||
'required_css_class': '',
|
||||
|
||||
# Class to indicate error (better to set this in your Django form)
|
||||
'error_css_class': 'has-error',
|
||||
|
||||
# Class to indicate success, meaning the field has valid input
|
||||
# (better to set this in your Django form)
|
||||
'success_css_class': 'has-success',
|
||||
|
||||
# Renderers (only set these if you have studied the source and understand
|
||||
# the inner workings)
|
||||
'formset_renderers': {
|
||||
'default': 'bootstrap3.renderers.FormsetRenderer',
|
||||
},
|
||||
'form_renderers': {
|
||||
'default': 'bootstrap3.renderers.FormRenderer',
|
||||
},
|
||||
'field_renderers': {
|
||||
'default': 'bootstrap3.renderers.FieldRenderer',
|
||||
'inline': 'bootstrap3.renderers.InlineFieldRenderer',
|
||||
},
|
||||
}
|
||||
|
||||
# djangocms_blog config
|
||||
|
||||
BLOG_ENABLE_COMMENTS = False
|
||||
BLOG_USE_PLACEHOLDER = True
|
||||
BLOG_IMAGE_THUMBNAIL_SIZE = {'size': '120x120', 'crop': True, 'upscale': False}
|
||||
BLOG_IMAGE_FULL_SIZE = {'size': '640x120', 'crop': True, 'upscale': False}
|
||||
BLOG_PAGINATION = 4
|
||||
BLOG_LATEST_POSTS = BLOG_PAGINATION
|
||||
BLOG_POSTS_LIST_TRUNCWORDS_COUNT = 100
|
||||
BLOG_MULTISITE = True
|
||||
BLOG_AUTHOR_DEFAULT = True
|
||||
|
||||
# django-meta
|
||||
META_SITE_PROTOCOL = "https"
|
||||
META_SITE_DOMAIN = "ungleich.ch"
|
||||
META_SITE_TYPE = "website"
|
||||
META_SITE_NAME = "ungleich"
|
||||
META_INCLUDE_KEYWORDS = ["ungleich", "hosting", "switzerland",
|
||||
"Schweiz", "Swiss", "cdist"]
|
||||
META_USE_SITES = True
|
||||
|
||||
PARLER_LANGUAGES = {1: ({'code': 'en-us'}, {'code': 'de'}, )}
|
|
@ -5,7 +5,9 @@ Copyright 2015 ungleich.
|
|||
# -*- coding: utf-8 -*-
|
||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||
import os
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
# dotenv
|
||||
import dotenv
|
||||
|
||||
|
@ -15,6 +17,7 @@ gettext = lambda s: s
|
|||
def env(env_name):
|
||||
return os.environ.get(env_name)
|
||||
|
||||
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
PROJECT_DIR = os.path.abspath(
|
||||
|
@ -37,13 +40,13 @@ LOGIN_REDIRECT_URL = None
|
|||
|
||||
EMAIL_HOST = "localhost"
|
||||
EMAIL_PORT = 25
|
||||
|
||||
SECRET_KEY = env('DJANGO_SECRET_KEY')
|
||||
|
||||
# Application definition
|
||||
|
||||
INSTALLED_APPS = (
|
||||
'djangocms_admin_style',
|
||||
#1st migrate
|
||||
'membership',
|
||||
'django.contrib.admin',
|
||||
'django.contrib.auth',
|
||||
'django.contrib.contenttypes',
|
||||
|
@ -51,46 +54,60 @@ INSTALLED_APPS = (
|
|||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'django.contrib.sites',
|
||||
'easy_thumbnails',
|
||||
'mptt',
|
||||
'parler',
|
||||
'taggit',
|
||||
'taggit_autosuggest',
|
||||
# 'django_select2',
|
||||
'meta',
|
||||
'meta_mixin',
|
||||
'bootstrap3',
|
||||
'compressor',
|
||||
'filer',
|
||||
'djangocms_blog',
|
||||
'cms', # django CMS itself
|
||||
'aldryn_apphooks_config',
|
||||
'aldryn_boilerplates',
|
||||
'aldryn_categories',
|
||||
'aldryn_common',
|
||||
'aldryn_newsblog',
|
||||
'aldryn_people',
|
||||
'aldryn_reversion',
|
||||
'aldryn_translation_tools',
|
||||
'treebeard', # utilities for implementing a tree
|
||||
'menus', # helper for model independent hierarchical website navigation
|
||||
'sekizai', # for javascript and css management
|
||||
'menus', # helper for model independent hierarchical website navigation
|
||||
'cmsplugin_filer_image',
|
||||
|
||||
#2nd migrate
|
||||
# django-cms plugins
|
||||
'djangocms_file',
|
||||
'djangocms_picture',
|
||||
'djangocms_video',
|
||||
'djangocms_flash',
|
||||
'djangocms_googlemap',
|
||||
'djangocms_inherit',
|
||||
'djangocms_link',
|
||||
'djangocms_snippet',
|
||||
'djangocms_teaser',
|
||||
'djangocms_page_meta',
|
||||
# django-filer
|
||||
'djangocms_text_ckeditor',
|
||||
'djangocms_admin_style',
|
||||
'cmsplugin_filer_file',
|
||||
'cmsplugin_filer_folder',
|
||||
'cmsplugin_filer_link',
|
||||
'cmsplugin_filer_teaser',
|
||||
'cmsplugin_filer_video',
|
||||
#
|
||||
#blog
|
||||
# versioning
|
||||
'reversion',
|
||||
# ck-editor
|
||||
'djangocms_text_ckeditor',
|
||||
# djangocms-blog
|
||||
'filer',
|
||||
'easy_thumbnails',
|
||||
'cmsplugin_filer_image',
|
||||
'parler',
|
||||
'taggit',
|
||||
'taggit_autosuggest',
|
||||
'django_select2',
|
||||
'meta',
|
||||
'meta_mixin',
|
||||
'admin_enhancer',
|
||||
'djangocms_blog',
|
||||
'bootstrap3',
|
||||
'compressor',
|
||||
# ungleich
|
||||
'ungleich',
|
||||
'hosting',
|
||||
'digitalglarus',
|
||||
'django_extensions',
|
||||
'debug_toolbar'
|
||||
)
|
||||
|
||||
MIDDLEWARE_CLASSES = (
|
||||
|
@ -114,7 +131,13 @@ ROOT_URLCONF = 'dynamicweb.urls'
|
|||
TEMPLATES = [
|
||||
{
|
||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||
'DIRS': [],
|
||||
'DIRS': [
|
||||
os.path.join(PROJECT_DIR, 'membership/'), # membership template
|
||||
os.path.join(PROJECT_DIR, 'templates/'),
|
||||
os.path.join(PROJECT_DIR, 'templates/digitalglarus/partials'),
|
||||
os.path.join(PROJECT_DIR, 'templates/cms'),
|
||||
os.path.join(PROJECT_DIR, 'templates/digitalglarus'),
|
||||
],
|
||||
'APP_DIRS': True,
|
||||
'OPTIONS': {
|
||||
'context_processors': [
|
||||
|
@ -122,6 +145,12 @@ TEMPLATES = [
|
|||
'django.template.context_processors.request',
|
||||
'django.contrib.auth.context_processors.auth',
|
||||
'django.contrib.messages.context_processors.messages',
|
||||
"django.core.context_processors.media",
|
||||
"django.core.context_processors.static",
|
||||
"django.core.context_processors.tz",
|
||||
"django.contrib.messages.context_processors.messages",
|
||||
'sekizai.context_processors.sekizai',
|
||||
'cms.context_processors.cms_settings',
|
||||
],
|
||||
},
|
||||
},
|
||||
|
@ -129,33 +158,12 @@ TEMPLATES = [
|
|||
|
||||
WSGI_APPLICATION = 'dynamicweb.wsgi.application'
|
||||
|
||||
# Deprecated since version 1.8.
|
||||
# callables take a request object as their argument and return a dictionary of
|
||||
# items to be merged into the context.
|
||||
TEMPLATE_CONTEXT_PROCESSORS = (
|
||||
"django.contrib.auth.context_processors.auth",
|
||||
"django.core.context_processors.debug",
|
||||
"django.core.context_processors.i18n",
|
||||
"django.core.context_processors.media",
|
||||
"django.core.context_processors.static",
|
||||
"django.core.context_processors.tz",
|
||||
"django.contrib.messages.context_processors.messages",
|
||||
"django.core.context_processors.request",
|
||||
'sekizai.context_processors.sekizai',
|
||||
'cms.context_processors.cms_settings',
|
||||
)
|
||||
|
||||
TEMPLATE_DIRS = (
|
||||
os.path.join(PROJECT_DIR, 'templates'),
|
||||
)
|
||||
TDIR = os.path.join(PROJECT_DIR, 'templates')
|
||||
|
||||
CMS_TEMPLATES_DIR = {
|
||||
1: os.path.join(TEMPLATE_DIRS[0], 'cms/'),
|
||||
1: os.path.join(TDIR, '')
|
||||
}
|
||||
|
||||
# Database
|
||||
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||
|
@ -273,23 +281,16 @@ MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')
|
|||
MEDIA_URL = APP_ROOT_ENDPOINT + 'media/'
|
||||
FILE_UPLOAD_PERMISSIONS = 0o644
|
||||
|
||||
# Templates confs
|
||||
TEMPLATE_DIRS = (
|
||||
os.path.join(PROJECT_DIR, "templates"),
|
||||
)
|
||||
|
||||
META_SITE_PROTOCOL = 'http'
|
||||
META_USE_SITES = True
|
||||
|
||||
MIGRATION_MODULES = {
|
||||
'cms': 'cms.migrations',
|
||||
'filer': 'filer.migrations_django',
|
||||
'menus': 'menus.migrations_django',
|
||||
# 'filer': 'filer.migrations_django',
|
||||
# 'menus': 'menus.migrations_django',
|
||||
'djangocms_flash': 'djangocms_flash.migrations_django',
|
||||
'djangocms_googlemap': 'djangocms_googlemap.migrations_django',
|
||||
'djangocms_inherit': 'djangocms_inherit.migrations_django',
|
||||
'djangocms_link': 'djangocms_link.migrations_django',
|
||||
'djangocms_snippet': 'djangocms_snippet.migrations_django',
|
||||
'djangocms_teaser': 'djangocms_teaser.migrations_django',
|
||||
'djangocms_column': 'djangocms_column.migrations_django',
|
||||
'djangocms_flash': 'djangocms_flash.migrations_django',
|
||||
|
@ -312,9 +313,9 @@ STATICFILES_FINDERS = (
|
|||
'compressor.finders.CompressorFinder',
|
||||
)
|
||||
|
||||
COMPRESS_PRECOMPILERS = (
|
||||
('text/less', 'lesscpy {infile}'),
|
||||
)
|
||||
#COMPRESS_PRECOMPILERS = (
|
||||
# ('text/less', 'lesscpy {infile}'),
|
||||
#)
|
||||
|
||||
THUMBNAIL_PROCESSORS = (
|
||||
'easy_thumbnails.processors.colorspace',
|
||||
|
@ -420,4 +421,26 @@ META_INCLUDE_KEYWORDS = ["ungleich", "hosting", "switzerland",
|
|||
"Schweiz", "Swiss", "cdist"]
|
||||
META_USE_SITES = True
|
||||
|
||||
PARLER_LANGUAGES = {1: ({'code': 'en-us'}, {'code': 'de'}, )}
|
||||
PARLER_LANGUAGES = {1: ({'code': 'en-us'}, {'code': 'de'},)}
|
||||
AUTH_USER_MODEL = 'membership.CustomUser'
|
||||
|
||||
|
||||
# PAYMENT
|
||||
|
||||
STRIPE_API_PUBLIC_KEY = 'pk_test_uvWyHNJgVL2IB8kjfgJkGjg4' # used in frontend to call from user browser
|
||||
STRIPE_API_PRIVATE_KEY = 'sk_test_uIPMdgXoRGydrcD7fkwcn7dj' # used in backend payment
|
||||
STRIPE_DESCRIPTION_ON_PAYMENT = "Payment for ungleich GmbH services"
|
||||
|
||||
# EMAIL MESSAGES
|
||||
REGISTRATION_MESSAGE = {'subject': "Validation mail",
|
||||
'message': 'Please validate Your account under this link http://localhost:8000/en-us/validate/{}',
|
||||
'from': 'test@test.com'}
|
||||
|
||||
DEBUG = True
|
||||
|
||||
if DEBUG:
|
||||
from .local import *
|
||||
else:
|
||||
from .prod import *
|
||||
#dont migrate test
|
||||
# SOUTH_TESTS_MIGRATE = False
|
||||
|
|
|
@ -4,12 +4,13 @@ ALLOWED_HOSTS = [
|
|||
"*"
|
||||
]
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.sqlite3',
|
||||
'NAME': 'app.db',
|
||||
}
|
||||
}
|
||||
# DATABASES = {
|
||||
# 'default': {
|
||||
# 'ENGINE': 'django.db.backends.sqlite3',
|
||||
# 'NAME': 'app.db',
|
||||
# }
|
||||
# }
|
||||
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
|
||||
|
||||
CACHES = {
|
||||
'default': {
|
||||
|
@ -18,4 +19,4 @@ CACHES = {
|
|||
}
|
||||
}
|
||||
|
||||
DEBUG = True
|
||||
MIDDLEWARE_CLASSES+=("debug_toolbar.middleware.DebugToolbarMiddleware",)
|
||||
|
|
|
@ -6,6 +6,7 @@ from django.conf.urls.static import static
|
|||
|
||||
from django.conf import settings
|
||||
from hosting.views import railshosting
|
||||
from membership import urls as membership_urls
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^hosting/', include('hosting.urls', namespace="hosting")),
|
||||
|
@ -13,15 +14,16 @@ urlpatterns = [
|
|||
url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')),
|
||||
url(r'^jsi18n/(?P<packages>\S+?)/$',
|
||||
'django.views.i18n.javascript_catalog'),
|
||||
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
|
||||
# note the django CMS URLs included via i18n_patterns
|
||||
urlpatterns += i18n_patterns('',
|
||||
url(r'^login/',include(membership_urls)),
|
||||
url(r'^admin/', include(admin.site.urls)),
|
||||
url(r'^digitalglarus/', include('digitalglarus.urls',
|
||||
namespace="digitalglarus")),
|
||||
namespace="digitalglarus"),name='digitalglarus'),
|
||||
url(r'^', include('cms.urls')),
|
||||
)
|
||||
)
|
||||
|
||||
if settings.DEBUG:
|
||||
urlpatterns += patterns('',
|
||||
|
|
|
@ -7,10 +7,13 @@ For more information on this file, see
|
|||
https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
import os,sys
|
||||
#sys.path.append(os.path.dirname(__file__))
|
||||
sys.path.append('/home/app/pyvenv/lib/python3.4/site-packages/')
|
||||
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dynamicweb.settings.prod")
|
||||
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
|
||||
|
||||
application = get_wsgi_application()
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.4 on 2016-03-13 20:58
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('digitalglarus', '0002_auto_20150522_0450'),
|
||||
('digitalglarus', '0002_auto_20150527_1023'),
|
||||
]
|
||||
|
||||
operations = [
|
25
hosting/migrations/0002_railsbetauser.py
Normal file
|
@ -0,0 +1,25 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.4 on 2016-03-13 21:39
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('hosting', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='RailsBetaUser',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('email', models.EmailField(max_length=254, unique=True)),
|
||||
('received_date', models.DateTimeField(verbose_name='date received')),
|
||||
],
|
||||
),
|
||||
]
|
0
hosting/migrations/__init__.py
Normal file
|
@ -3,7 +3,7 @@ import os
|
|||
import sys
|
||||
|
||||
if __name__ == "__main__":
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dynamicweb.settings.local")
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dynamicweb.settings")
|
||||
|
||||
from django.core.management import execute_from_command_line
|
||||
|
||||
|
|
After Width: | Height: | Size: 507 KiB |
After Width: | Height: | Size: 380 KiB |
After Width: | Height: | Size: 910 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 358 KiB |
After Width: | Height: | Size: 285 KiB |
After Width: | Height: | Size: 106 KiB |
After Width: | Height: | Size: 482 KiB |
After Width: | Height: | Size: 291 KiB |
After Width: | Height: | Size: 196 KiB |
After Width: | Height: | Size: 2.3 MiB |
After Width: | Height: | Size: 541 KiB |
After Width: | Height: | Size: 441 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 190 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 283 KiB |
After Width: | Height: | Size: 103 KiB |
After Width: | Height: | Size: 3.5 MiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 384 KiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 252 KiB |
After Width: | Height: | Size: 303 KiB |
After Width: | Height: | Size: 195 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 2.8 MiB |
After Width: | Height: | Size: 447 B |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 328 KiB |
After Width: | Height: | Size: 980 KiB |
After Width: | Height: | Size: 503 KiB |