Merge pull request #14 from ungleich/master

dynamicweb
This commit is contained in:
tmslav 2016-03-31 20:31:46 +02:00
commit 7b0f0db338
1039 changed files with 18831 additions and 687 deletions

View file

@ -41,7 +41,7 @@ configure the values for the ssh host, user, port and target directory.
Run: Run:
$ python manage.py makemigratoins $ python manage.py makemigratoins
$ python manage.py syncdb $ python manage.py migrate
7. Setup a circus configuration. 7. Setup a circus configuration.

View 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>

View 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 &nbsp;(360 CHF)</h5>
<h5>&nbsp; +2 free working days included &nbsp;(0 CHF)</h5>
<div class="page-header text-muted">
<h5>Valid 01.01.2016 - 31.12.2016&nbsp;</h5>
<h5>Coworker Name&nbsp;: Nico Schottelius&nbsp;</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>

View 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>

View 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>

File diff suppressed because it is too large Load diff

View 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!&nbsp;</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&amp;q=50&amp;fm=jpg&amp;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&amp;q=50&amp;fm=jpg&amp;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>

View 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 */

Binary file not shown.

After

Width:  |  Height:  |  Size: 473 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

View 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>

View file

@ -1,12 +1,12 @@
from django.contrib import admin from django.contrib import admin
from .models import Message, Supporter, DGGallery, DGPicture # from .models import Message, Supporter, DGGallery, DGPicture
class DGPictureInline(admin.StackedInline): # class DGPictureInline(admin.StackedInline):
model = DGPicture # model = DGPicture
#
class DGGalleryAdmin(admin.ModelAdmin): # class DGGalleryAdmin(admin.ModelAdmin):
inlines = [DGPictureInline] # inlines = [DGPictureInline]
#
admin.site.register(DGGallery, DGGalleryAdmin) # admin.site.register(DGGallery, DGGalleryAdmin)
admin.site.register(Message) # admin.site.register(Message)
admin.site.register(Supporter) # admin.site.register(Supporter)

View file

@ -1,33 +1,36 @@
from cms.plugin_base import CMSPluginBase # from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool # from cms.plugin_pool import plugin_pool
from .models import DGGalleryPlugin, DGSupportersPlugin, Supporter # from cms.wizards import wizard_base
from django.utils.translation import ugettext as _ # from .models import DGGalleryPlugin, DGSupportersPlugin, Supporter
# from django.utils.translation import ugettext as _
class CMSGalleryPlugin(CMSPluginBase): # class CMSGalleryPlugin(CMSPluginBase):
model = DGGalleryPlugin # model = DGGalleryPlugin
name = _("Digital Glarus Gallery") # name = _("Digital Glarus Gallery")
render_template = "digitalglarus/gallery.html" # 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): # plugin_pool.register_plugin(CMSGalleryPlugin)
context.update({ # plugin_pool.register_plugin(CMSSupportersPlugin)
'supporters': Supporter.objects.all().order_by('name'),
'object': instance,
'placeholder':placeholder
})
return context
plugin_pool.register_plugin(CMSGalleryPlugin)
plugin_pool.register_plugin(CMSSupportersPlugin)

View file

@ -1,19 +1,67 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2016-03-13 21:39
from __future__ import unicode_literals 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): class Migration(migrations.Migration):
initial = True
dependencies = [ dependencies = [
('filer', '0002_auto_20150606_2003'),
('cms', '0013_urlconfrevision'),
] ]
operations = [ 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( migrations.CreateModel(
name='Message', name='Message',
fields=[ 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)), ('name', models.CharField(max_length=200)),
('email', models.EmailField(max_length=254)), ('email', models.EmailField(max_length=254)),
('phone_number', models.CharField(max_length=200)), ('phone_number', models.CharField(max_length=200)),
@ -21,4 +69,12 @@ class Migration(migrations.Migration):
('received_date', models.DateTimeField(verbose_name='date received')), ('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)),
],
),
] ]

View file

@ -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,
),
]

View file

@ -1,19 +1,16 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2016-03-24 23:21
from __future__ import unicode_literals from __future__ import unicode_literals
from django.db import models, migrations from django.db import migrations
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
('cms', '0013_urlconfrevision'),
('digitalglarus', '0001_initial'), ('digitalglarus', '0001_initial'),
] ]
operations = [ operations = [
migrations.AlterField(
model_name='message',
name='email',
field=models.EmailField(max_length=75),
),
] ]

View 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',
),
]

View file

@ -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,),
),
]

View file

@ -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,
),
]

View file

@ -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,),
),
]

View file

@ -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,
),
]

View file

@ -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',),
),
]

View file

@ -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',
),
]

View file

@ -15,40 +15,40 @@ class Message(models.Model):
return "%s - %s - %s" % (self.name, self.email, self.received_date) return "%s - %s - %s" % (self.name, self.email, self.received_date)
class Supporter(models.Model): # class Supporter(models.Model):
name = models.CharField(max_length=200) # name = models.CharField(max_length=200)
description = models.TextField(null=True, blank=True) # 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): # class DGPicture(models.Model):
return "%s" % (self.name) # gallery = models.ForeignKey(DGGallery)
# image = FilerImageField(related_name='dg_gallery')
def get_absolute_url(self): # description = models.CharField(max_length=60)
return reverse('dgSupporters_view', args=[self.pk]) #
# def __str__(self):
# return "%s" % (self.image.name)
class DGGallery(models.Model): #
parent = models.ForeignKey('self', blank=True, null=True) # class DGGalleryPlugin(CMSPlugin):
name = models.CharField(max_length=30) # dgGallery = models.ForeignKey(DGGallery)
#
def __str__(self): # class DGSupportersPlugin(CMSPlugin):
return "%s" % (self.name) # pass
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

Binary file not shown.

View file

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 169 KiB

View file

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

View file

@ -1,4 +1,4 @@
{% extends "cms/digitalglarus/base.html" %} {% extends "digitalglarus/base.html" %}
{% load staticfiles cms_tags %} {% load staticfiles cms_tags %}
{% block title %}About{% endblock %} {% block title %}About{% endblock %}

View file

@ -51,7 +51,7 @@
{% cms_toolbar %} {% cms_toolbar %}
<div class="brand">Digital Glarus</div> <div class="brand">Digital Glarus</div>
<div class="address-bar"> <div class="address-bar">
{% placeholder 'digital_glarus_legend' %} {# {% placeholder 'digital_glarus_legend' %}#}
</div> </div>
<div class="center-block"> <div class="center-block">
<ul class="list-inline center-block language-chooser-list"> <ul class="list-inline center-block language-chooser-list">

View file

@ -1,4 +1,4 @@
{% extends "cms/digitalglarus/base.html" %} {% extends "digitalglarus/base.html" %}
{% load cms_tags %} {% load cms_tags %}
{% block title %}Contact{% endblock %} {% block title %}Contact{% endblock %}

View 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>&nbsp;</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>&nbsp;</p>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,4 +1,4 @@
{% extends "cms/digitalglarus/base.html" %} {% extends "digitalglarus/base.html" %}
{% load staticfiles cms_tags %} {% load staticfiles cms_tags %}
{% block title %}crowdfunding{% endblock %} {% block title %}crowdfunding{% endblock %}

View file

@ -1,4 +1,4 @@
{% extends "cms/digitalglarus/base.html" %} {% extends "digitalglarus/base.html" %}
{% load staticfiles cms_tags %} {% load staticfiles cms_tags %}
{% block title %}About{% endblock %} {% block title %}About{% endblock %}

View file

@ -18,9 +18,6 @@
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
{% show_menu 0 0 0 1 %} {% show_menu 0 0 0 1 %}
{% show_menu_below_id "digital-glarus-page" 0 %} {% show_menu_below_id "digital-glarus-page" 0 %}
<li>
<a href="{% url 'digitalglarus:blog' %}">Blog</a>
</li>
</ul> </ul>
</div> </div>
<!-- /.navbar-collapse --> <!-- /.navbar-collapse -->

View file

@ -23,8 +23,10 @@
<link href="{% static 'digitalglarus/css/business-casual.css' %}" rel="stylesheet"> <link href="{% static 'digitalglarus/css/business-casual.css' %}" rel="stylesheet">
<!-- Fonts --> <!-- 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=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
<link href="//fonts.googleapis.com/css?family=Josefin+Slab:100,300,400,600,700,100italic,300italic,400italic,600italic,700italic" rel="stylesheet" type="text/css"> 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 "css" postprocessor "compressor.contrib.sekizai.compress" %}
{% render_block "js" postprocessor "compressor.contrib.sekizai.compress" %} {% render_block "js" postprocessor "compressor.contrib.sekizai.compress" %}
@ -36,9 +38,16 @@
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]--> <![endif]-->
<script> <script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (function (i, s, o, g, r, a, m) {
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), i['GoogleAnalyticsObject'] = r;
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 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'); })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-62285904-2', 'auto'); ga('create', 'UA-62285904-2', 'auto');
@ -57,7 +66,8 @@
<div class="container"> <div class="container">
<!-- Brand and toggle get grouped for better mobile display --> <!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header"> <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="sr-only">Toggle navigation</span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
@ -73,9 +83,6 @@
{% show_menu_below_id "digital-glarus-page" 0 %} {% show_menu_below_id "digital-glarus-page" 0 %}
<li> <li>
<a href="{% url 'digitalglarus:supporters' %}">Supporters</a> <a href="{% url 'digitalglarus:supporters' %}">Supporters</a>
</li>
<li>
<a href="{% url 'digitalglarus:blog' %}">Blog</a>
</li> </li>
</ul> </ul>
</div> </div>
@ -93,7 +100,8 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-12 text-center"> <div class="col-lg-12 text-center">
<p class="text-center">Copyright &copy; <a href="http://www.ungleich.ch">ungleich GmbH 2015</a></p> <p class="text-center">Copyright &copy; <a href="http://www.ungleich.ch">ungleich GmbH
2015</a></p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,5 +1,4 @@
{% load i18n thumbnail %} {% load i18n thumbnail %}
<article id="post-{{ post.slug }}" class="post-item col-lg-12 text-center"> <article id="post-{{ post.slug }}" class="post-item col-lg-12 text-center">
{% if post.main_image %} {% if post.main_image %}
<div class="blog-visual"> <div class="blog-visual">
@ -10,7 +9,7 @@
<header> <header>
<hr></hr> <hr></hr>
<h2 class="text-center intro-text"> <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> <b>{{ post.title }}</b>
</a> </a>
<small> <small>
@ -28,6 +27,6 @@
</p> </p>
</div> </div>
<div class="read-more"> <div class="read-more">
<a class="lead" href="{% url 'digitalglarus:blog-detail' post.slug %}">{% trans "read more" %} &raquo;</a> <a class="lead" href="{% url 'djangocms_blog:post-detail' post.slug %}">{% trans "read more" %} &raquo;</a>
</div> </div>
</article> </article>

View file

@ -7,6 +7,7 @@
{% block title %}{{ post.get_title }}{% endblock %} {% block title %}{{ post.get_title }}{% endblock %}
{% block content_blog %}{% spaceless %} {% block content_blog %}{% spaceless %}
{% debug %}
<article id="post-{{ post.slug }}" class="post-item post-detail"> <article id="post-{{ post.slug }}" class="post-item post-detail">
{% if post.main_image_id %} {% if post.main_image_id %}
<div class="blog-visual"> <div class="blog-visual">
@ -17,7 +18,7 @@
<header class="text-center"> <header class="text-center">
<hr></hr> <hr></hr>
<h2 class="text-center intro-text"> <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> <b>{{ post.title }}</b>
</a> </a>
<small> <small>
@ -26,7 +27,7 @@
</h2> </h2>
<hr></hr> <hr></hr>
{% block blog_meta %} {% block blog_meta %}
{# include "glarus_blog/includes/blog_meta.html" #} include "glarus_blog/includes/blog_meta.html"
{% endblock %} {% endblock %}
</header> </header>
{% endspaceless %} {% endspaceless %}

View file

@ -9,6 +9,7 @@ urlpatterns = [
url(r'old_letscowork$', views.letscowork, name='letscowork'), url(r'old_letscowork$', views.letscowork, name='letscowork'),
url(r'old_home$', views.home, name='home'), url(r'old_home$', views.home, name='home'),
url(r'supporters/$', views.supporters, name='supporters'), 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'), url(r'^blog/(?P<slug>\w[-\w]*)/$', views.blog_detail, name='blog-detail'),
] ]

View file

@ -6,8 +6,9 @@ from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.utils.translation import get_language from django.utils.translation import get_language
from djangocms_blog.models import Post 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): class MessageForm(ModelForm):
required_css_class = 'form-control' required_css_class = 'form-control'

View 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" ,
]

View file

@ -0,0 +1 @@
from .base import *

View 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'}, )}

View file

@ -5,7 +5,9 @@ Copyright 2015 ungleich.
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Build paths inside the project like this: os.path.join(BASE_DIR, ...) # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os import os
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
# dotenv # dotenv
import dotenv import dotenv
@ -15,6 +17,7 @@ gettext = lambda s: s
def env(env_name): def env(env_name):
return os.environ.get(env_name) return os.environ.get(env_name)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PROJECT_DIR = os.path.abspath( PROJECT_DIR = os.path.abspath(
@ -37,13 +40,13 @@ LOGIN_REDIRECT_URL = None
EMAIL_HOST = "localhost" EMAIL_HOST = "localhost"
EMAIL_PORT = 25 EMAIL_PORT = 25
SECRET_KEY = env('DJANGO_SECRET_KEY') SECRET_KEY = env('DJANGO_SECRET_KEY')
# Application definition # Application definition
INSTALLED_APPS = ( INSTALLED_APPS = (
'djangocms_admin_style', #1st migrate
'membership',
'django.contrib.admin', 'django.contrib.admin',
'django.contrib.auth', 'django.contrib.auth',
'django.contrib.contenttypes', 'django.contrib.contenttypes',
@ -51,46 +54,60 @@ INSTALLED_APPS = (
'django.contrib.messages', 'django.contrib.messages',
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'django.contrib.sites', 'django.contrib.sites',
'easy_thumbnails',
'mptt',
'parler',
'taggit',
'taggit_autosuggest',
# 'django_select2',
'meta',
'meta_mixin',
'bootstrap3',
'compressor',
'filer',
'djangocms_blog',
'cms', # django CMS itself '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 'treebeard', # utilities for implementing a tree
'menus', # helper for model independent hierarchical website navigation
'sekizai', # for javascript and css management 'sekizai', # for javascript and css management
'menus', # helper for model independent hierarchical website navigation
'cmsplugin_filer_image',
#2nd migrate
# django-cms plugins # django-cms plugins
'djangocms_file',
'djangocms_picture',
'djangocms_video',
'djangocms_flash', 'djangocms_flash',
'djangocms_googlemap', 'djangocms_googlemap',
'djangocms_inherit', 'djangocms_inherit',
'djangocms_link', 'djangocms_link',
'djangocms_snippet',
'djangocms_teaser', 'djangocms_teaser',
'djangocms_page_meta', 'djangocms_page_meta',
# django-filer 'djangocms_text_ckeditor',
'djangocms_admin_style',
'cmsplugin_filer_file', 'cmsplugin_filer_file',
'cmsplugin_filer_folder', 'cmsplugin_filer_folder',
'cmsplugin_filer_link', 'cmsplugin_filer_link',
'cmsplugin_filer_teaser', 'cmsplugin_filer_teaser',
'cmsplugin_filer_video', 'cmsplugin_filer_video',
#
#blog
# versioning # versioning
'reversion', '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
'ungleich', 'ungleich',
'hosting', 'hosting',
'digitalglarus', 'digitalglarus',
'django_extensions',
'debug_toolbar'
) )
MIDDLEWARE_CLASSES = ( MIDDLEWARE_CLASSES = (
@ -114,7 +131,13 @@ ROOT_URLCONF = 'dynamicweb.urls'
TEMPLATES = [ TEMPLATES = [
{ {
'BACKEND': 'django.template.backends.django.DjangoTemplates', '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, 'APP_DIRS': True,
'OPTIONS': { 'OPTIONS': {
'context_processors': [ 'context_processors': [
@ -122,6 +145,12 @@ TEMPLATES = [
'django.template.context_processors.request', 'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth', 'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages', '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' WSGI_APPLICATION = 'dynamicweb.wsgi.application'
# Deprecated since version 1.8. TDIR = os.path.join(PROJECT_DIR, 'templates')
# 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 = { 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 = { DATABASES = {
'default': { 'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', 'ENGINE': 'django.db.backends.postgresql_psycopg2',
@ -273,23 +281,16 @@ MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')
MEDIA_URL = APP_ROOT_ENDPOINT + 'media/' MEDIA_URL = APP_ROOT_ENDPOINT + 'media/'
FILE_UPLOAD_PERMISSIONS = 0o644 FILE_UPLOAD_PERMISSIONS = 0o644
# Templates confs
TEMPLATE_DIRS = (
os.path.join(PROJECT_DIR, "templates"),
)
META_SITE_PROTOCOL = 'http' META_SITE_PROTOCOL = 'http'
META_USE_SITES = True META_USE_SITES = True
MIGRATION_MODULES = { MIGRATION_MODULES = {
'cms': 'cms.migrations', 'cms': 'cms.migrations',
'filer': 'filer.migrations_django', # 'filer': 'filer.migrations_django',
'menus': 'menus.migrations_django', # 'menus': 'menus.migrations_django',
'djangocms_flash': 'djangocms_flash.migrations_django', 'djangocms_flash': 'djangocms_flash.migrations_django',
'djangocms_googlemap': 'djangocms_googlemap.migrations_django', 'djangocms_googlemap': 'djangocms_googlemap.migrations_django',
'djangocms_inherit': 'djangocms_inherit.migrations_django', 'djangocms_inherit': 'djangocms_inherit.migrations_django',
'djangocms_link': 'djangocms_link.migrations_django', 'djangocms_link': 'djangocms_link.migrations_django',
'djangocms_snippet': 'djangocms_snippet.migrations_django',
'djangocms_teaser': 'djangocms_teaser.migrations_django', 'djangocms_teaser': 'djangocms_teaser.migrations_django',
'djangocms_column': 'djangocms_column.migrations_django', 'djangocms_column': 'djangocms_column.migrations_django',
'djangocms_flash': 'djangocms_flash.migrations_django', 'djangocms_flash': 'djangocms_flash.migrations_django',
@ -312,9 +313,9 @@ STATICFILES_FINDERS = (
'compressor.finders.CompressorFinder', 'compressor.finders.CompressorFinder',
) )
COMPRESS_PRECOMPILERS = ( #COMPRESS_PRECOMPILERS = (
('text/less', 'lesscpy {infile}'), # ('text/less', 'lesscpy {infile}'),
) #)
THUMBNAIL_PROCESSORS = ( THUMBNAIL_PROCESSORS = (
'easy_thumbnails.processors.colorspace', 'easy_thumbnails.processors.colorspace',
@ -421,3 +422,25 @@ META_INCLUDE_KEYWORDS = ["ungleich", "hosting", "switzerland",
META_USE_SITES = True 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

View file

@ -6,6 +6,7 @@ from django.conf.urls.static import static
from django.conf import settings from django.conf import settings
from hosting.views import railshosting from hosting.views import railshosting
from membership import urls as membership_urls
urlpatterns = [ urlpatterns = [
url(r'^hosting/', include('hosting.urls', namespace="hosting")), url(r'^hosting/', include('hosting.urls', namespace="hosting")),
@ -17,9 +18,10 @@ urlpatterns = [
# note the django CMS URLs included via i18n_patterns # note the django CMS URLs included via i18n_patterns
urlpatterns += i18n_patterns('', urlpatterns += i18n_patterns('',
url(r'^login/',include(membership_urls)),
url(r'^admin/', include(admin.site.urls)), url(r'^admin/', include(admin.site.urls)),
url(r'^digitalglarus/', include('digitalglarus.urls', url(r'^digitalglarus/', include('digitalglarus.urls',
namespace="digitalglarus")), namespace="digitalglarus"),name='digitalglarus'),
url(r'^', include('cms.urls')), url(r'^', include('cms.urls')),
) )

View file

@ -7,10 +7,13 @@ For more information on this file, see
https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/ https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/
""" """
import os import os,sys
#sys.path.append(os.path.dirname(__file__))
from django.core.wsgi import get_wsgi_application sys.path.append('/home/app/pyvenv/lib/python3.4/site-packages/')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dynamicweb.settings.prod") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dynamicweb.settings.prod")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application() application = get_wsgi_application()

View file

@ -1,14 +1,13 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2016-03-13 20:58
from __future__ import unicode_literals from __future__ import unicode_literals
from django.db import models, migrations from django.db import migrations
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
('digitalglarus', '0002_auto_20150522_0450'),
('digitalglarus', '0002_auto_20150527_1023'),
] ]
operations = [ operations = [

View 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')),
],
),
]

View file

View file

@ -3,7 +3,7 @@ import os
import sys import sys
if __name__ == "__main__": 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 from django.core.management import execute_from_command_line

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 910 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 980 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 942 KiB

Some files were not shown because too many files have changed in this diff Show more