commit
				
					
						fb539cbe92
					
				
			
		
					 25 changed files with 1609 additions and 15449 deletions
				
			
		| 
						 | 
				
			
			@ -1,12 +1,12 @@
 | 
			
		|||
from django.contrib import admin
 | 
			
		||||
from .models import Message, Supporter, DGGallery, DGPicture
 | 
			
		||||
# from .models import Message, Supporter, DGGallery, DGPicture
 | 
			
		||||
 | 
			
		||||
class DGPictureInline(admin.StackedInline):
 | 
			
		||||
    model = DGPicture
 | 
			
		||||
 | 
			
		||||
class DGGalleryAdmin(admin.ModelAdmin):
 | 
			
		||||
    inlines = [DGPictureInline]
 | 
			
		||||
 | 
			
		||||
admin.site.register(DGGallery, DGGalleryAdmin)
 | 
			
		||||
admin.site.register(Message)
 | 
			
		||||
admin.site.register(Supporter)
 | 
			
		||||
# class DGPictureInline(admin.StackedInline):
 | 
			
		||||
#     model = DGPicture
 | 
			
		||||
#
 | 
			
		||||
# class DGGalleryAdmin(admin.ModelAdmin):
 | 
			
		||||
#     inlines = [DGPictureInline]
 | 
			
		||||
#
 | 
			
		||||
# admin.site.register(DGGallery, DGGalleryAdmin)
 | 
			
		||||
# admin.site.register(Message)
 | 
			
		||||
# admin.site.register(Supporter)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,36 +1,36 @@
 | 
			
		|||
from cms.plugin_base import CMSPluginBase
 | 
			
		||||
from cms.plugin_pool import plugin_pool
 | 
			
		||||
from cms.wizards import wizard_base
 | 
			
		||||
from .models import DGGalleryPlugin, DGSupportersPlugin, Supporter
 | 
			
		||||
from django.utils.translation import ugettext as _
 | 
			
		||||
# from cms.plugin_base import CMSPluginBase
 | 
			
		||||
# from cms.plugin_pool import plugin_pool
 | 
			
		||||
# from cms.wizards import wizard_base
 | 
			
		||||
# from .models import DGGalleryPlugin, DGSupportersPlugin, Supporter
 | 
			
		||||
# from django.utils.translation import ugettext as _
 | 
			
		||||
 | 
			
		||||
class CMSGalleryPlugin(CMSPluginBase):
 | 
			
		||||
    model = DGGalleryPlugin
 | 
			
		||||
    name = _("Digital Glarus Gallery")
 | 
			
		||||
    render_template = "digitalglarus/gallery.html"
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
# class CMSGalleryPlugin(CMSPluginBase):
 | 
			
		||||
#     model = DGGalleryPlugin
 | 
			
		||||
#     name = _("Digital Glarus Gallery")
 | 
			
		||||
#     render_template = "digitalglarus/gallery.html"
 | 
			
		||||
#
 | 
			
		||||
#     def render(self, context, instance, placeholder):
 | 
			
		||||
#         context.update({
 | 
			
		||||
#             'gallery':instance.dgGallery,
 | 
			
		||||
#             'object':instance,
 | 
			
		||||
#             'placeholder':placeholder
 | 
			
		||||
#         })
 | 
			
		||||
#         return context
 | 
			
		||||
#
 | 
			
		||||
# class CMSSupportersPlugin(CMSPluginBase):
 | 
			
		||||
#     name = _("Digital Glarus Supporters")
 | 
			
		||||
#     model = DGSupportersPlugin
 | 
			
		||||
#     render_template = "digitalglarus/supporters_plugin.html"
 | 
			
		||||
#
 | 
			
		||||
#     def render(self, context, instance, placeholder):
 | 
			
		||||
#         context.update({
 | 
			
		||||
#             'supporters': Supporter.objects.all().order_by('name'),
 | 
			
		||||
#             'object': instance,
 | 
			
		||||
#             'placeholder':placeholder
 | 
			
		||||
#         })
 | 
			
		||||
#         return context
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
plugin_pool.register_plugin(CMSGalleryPlugin)
 | 
			
		||||
plugin_pool.register_plugin(CMSSupportersPlugin)
 | 
			
		||||
# plugin_pool.register_plugin(CMSGalleryPlugin)
 | 
			
		||||
# plugin_pool.register_plugin(CMSSupportersPlugin)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										16
									
								
								digitalglarus/migrations/0002_auto_20160324_2321.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								digitalglarus/migrations/0002_auto_20160324_2321.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
# -*- coding: utf-8 -*-
 | 
			
		||||
# Generated by Django 1.9.4 on 2016-03-24 23:21
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
from django.db import migrations
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ('cms', '0013_urlconfrevision'),
 | 
			
		||||
        ('digitalglarus', '0001_initial'),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
    ]
 | 
			
		||||
							
								
								
									
										55
									
								
								digitalglarus/migrations/0003_auto_20160325_1659.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								digitalglarus/migrations/0003_auto_20160325_1659.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,55 @@
 | 
			
		|||
# -*- coding: utf-8 -*-
 | 
			
		||||
# Generated by Django 1.9.4 on 2016-03-25 16:59
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
from django.db import migrations
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ('cms', '0013_urlconfrevision'),
 | 
			
		||||
        ('digitalglarus', '0002_auto_20160324_2321'),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.RemoveField(
 | 
			
		||||
            model_name='dggallery',
 | 
			
		||||
            name='parent',
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.RemoveField(
 | 
			
		||||
            model_name='dggalleryplugin',
 | 
			
		||||
            name='cmsplugin_ptr',
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.RemoveField(
 | 
			
		||||
            model_name='dggalleryplugin',
 | 
			
		||||
            name='dgGallery',
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.RemoveField(
 | 
			
		||||
            model_name='dgpicture',
 | 
			
		||||
            name='gallery',
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.RemoveField(
 | 
			
		||||
            model_name='dgpicture',
 | 
			
		||||
            name='image',
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.RemoveField(
 | 
			
		||||
            model_name='dgsupportersplugin',
 | 
			
		||||
            name='cmsplugin_ptr',
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.DeleteModel(
 | 
			
		||||
            name='Supporter',
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.DeleteModel(
 | 
			
		||||
            name='DGGallery',
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.DeleteModel(
 | 
			
		||||
            name='DGGalleryPlugin',
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.DeleteModel(
 | 
			
		||||
            name='DGPicture',
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.DeleteModel(
 | 
			
		||||
            name='DGSupportersPlugin',
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
| 
						 | 
				
			
			@ -15,40 +15,40 @@ class Message(models.Model):
 | 
			
		|||
        return "%s - %s - %s" % (self.name, self.email, self.received_date)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Supporter(models.Model):
 | 
			
		||||
    name = models.CharField(max_length=200)
 | 
			
		||||
    description = models.TextField(null=True, blank=True)
 | 
			
		||||
# class Supporter(models.Model):
 | 
			
		||||
#     name = models.CharField(max_length=200)
 | 
			
		||||
#     description = models.TextField(null=True, blank=True)
 | 
			
		||||
#
 | 
			
		||||
#     def __str__(self):
 | 
			
		||||
#         return "%s" % (self.name)
 | 
			
		||||
#
 | 
			
		||||
#     def get_absolute_url(self):
 | 
			
		||||
#         return reverse('dgSupporters_view', args=[self.pk])
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
# class DGGallery(models.Model):
 | 
			
		||||
#     parent = models.ForeignKey('self', blank=True, null=True)
 | 
			
		||||
#     name = models.CharField(max_length=30)
 | 
			
		||||
#
 | 
			
		||||
#     def __str__(self):
 | 
			
		||||
#         return "%s" % (self.name)
 | 
			
		||||
#
 | 
			
		||||
#     def get_absolute_url(self):
 | 
			
		||||
#         return reverse('dgGallery_view', args=[self.pk])
 | 
			
		||||
#
 | 
			
		||||
#     class Meta:
 | 
			
		||||
#         verbose_name_plural = 'dgGallery'
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return "%s" % (self.name)
 | 
			
		||||
 | 
			
		||||
    def get_absolute_url(self):
 | 
			
		||||
        return reverse('dgSupporters_view', args=[self.pk])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class DGGallery(models.Model):
 | 
			
		||||
    parent = models.ForeignKey('self', blank=True, null=True)
 | 
			
		||||
    name = models.CharField(max_length=30)
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return "%s" % (self.name)
 | 
			
		||||
 | 
			
		||||
    def get_absolute_url(self):
 | 
			
		||||
        return reverse('dgGallery_view', args=[self.pk])
 | 
			
		||||
 | 
			
		||||
    class Meta:
 | 
			
		||||
        verbose_name_plural = 'dgGallery'
 | 
			
		||||
 | 
			
		||||
class DGPicture(models.Model):
 | 
			
		||||
    gallery = models.ForeignKey(DGGallery)
 | 
			
		||||
    image =  FilerImageField(related_name='dg_gallery')
 | 
			
		||||
    description = models.CharField(max_length=60)
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return "%s" % (self.image.name)
 | 
			
		||||
 | 
			
		||||
class DGGalleryPlugin(CMSPlugin):
 | 
			
		||||
    dgGallery = models.ForeignKey(DGGallery)
 | 
			
		||||
 | 
			
		||||
class DGSupportersPlugin(CMSPlugin):
 | 
			
		||||
    pass
 | 
			
		||||
# class DGPicture(models.Model):
 | 
			
		||||
#     gallery = models.ForeignKey(DGGallery)
 | 
			
		||||
#     image =  FilerImageField(related_name='dg_gallery')
 | 
			
		||||
#     description = models.CharField(max_length=60)
 | 
			
		||||
#
 | 
			
		||||
#     def __str__(self):
 | 
			
		||||
#         return "%s" % (self.image.name)
 | 
			
		||||
#
 | 
			
		||||
# class DGGalleryPlugin(CMSPlugin):
 | 
			
		||||
#     dgGallery = models.ForeignKey(DGGallery)
 | 
			
		||||
#
 | 
			
		||||
# class DGSupportersPlugin(CMSPlugin):
 | 
			
		||||
#     pass
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										
											BIN
										
									
								
								digitalglarus/static/blog.tar.gz
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								digitalglarus/static/blog.tar.gz
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										403
									
								
								digitalglarus/static/blog.ungleich.ch/css/clean-blog.css
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										403
									
								
								digitalglarus/static/blog.ungleich.ch/css/clean-blog.css
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,403 @@
 | 
			
		|||
/*!
 | 
			
		||||
 * Clean Blog v1.0.0 (http://startbootstrap.com)
 | 
			
		||||
 * Copyright 2014 Start Bootstrap
 | 
			
		||||
 * Licensed under Apache 2.0 (https://github.com/IronSummitMedia/startbootstrap/blob/gh-pages/LICENSE)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
body {
 | 
			
		||||
  font-family: 'Lora', 'Times New Roman', serif;
 | 
			
		||||
  font-size: 20px;
 | 
			
		||||
  color: #404040;
 | 
			
		||||
}
 | 
			
		||||
p {
 | 
			
		||||
  line-height: 1.5;
 | 
			
		||||
  margin: 30px 0;
 | 
			
		||||
}
 | 
			
		||||
p a {
 | 
			
		||||
  text-decoration: underline;
 | 
			
		||||
}
 | 
			
		||||
h1,
 | 
			
		||||
h2,
 | 
			
		||||
h3,
 | 
			
		||||
h4,
 | 
			
		||||
h5,
 | 
			
		||||
h6 {
 | 
			
		||||
  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
 | 
			
		||||
  font-weight: 800;
 | 
			
		||||
}
 | 
			
		||||
a {
 | 
			
		||||
  color: #404040;
 | 
			
		||||
}
 | 
			
		||||
a:hover,
 | 
			
		||||
a:focus {
 | 
			
		||||
  color: #0085a1;
 | 
			
		||||
}
 | 
			
		||||
a img:hover,
 | 
			
		||||
a img:focus {
 | 
			
		||||
  cursor: zoom-in;
 | 
			
		||||
}
 | 
			
		||||
blockquote {
 | 
			
		||||
  color: #808080;
 | 
			
		||||
  font-style: italic;
 | 
			
		||||
}
 | 
			
		||||
hr.small {
 | 
			
		||||
  max-width: 100px;
 | 
			
		||||
  margin: 15px auto;
 | 
			
		||||
  border-width: 4px;
 | 
			
		||||
  border-color: white;
 | 
			
		||||
}
 | 
			
		||||
.navbar-custom {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  z-index: 3;
 | 
			
		||||
  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
 | 
			
		||||
}
 | 
			
		||||
.navbar-custom .navbar-brand {
 | 
			
		||||
  font-weight: 800;
 | 
			
		||||
}
 | 
			
		||||
.navbar-custom .nav li a {
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
  font-weight: 800;
 | 
			
		||||
  letter-spacing: 1px;
 | 
			
		||||
}
 | 
			
		||||
@media only screen and (min-width: 768px) {
 | 
			
		||||
  .navbar-custom {
 | 
			
		||||
    background: transparent;
 | 
			
		||||
    border-bottom: 1px solid transparent;
 | 
			
		||||
  }
 | 
			
		||||
  .navbar-custom .navbar-brand {
 | 
			
		||||
    color: white;
 | 
			
		||||
    padding: 20px;
 | 
			
		||||
  }
 | 
			
		||||
  .navbar-custom .navbar-brand:hover,
 | 
			
		||||
  .navbar-custom .navbar-brand:focus {
 | 
			
		||||
    color: rgba(255, 255, 255, 0.8);
 | 
			
		||||
  }
 | 
			
		||||
  .navbar-custom .nav li a {
 | 
			
		||||
    color: white;
 | 
			
		||||
    padding: 20px;
 | 
			
		||||
  }
 | 
			
		||||
  .navbar-custom .nav li a:hover,
 | 
			
		||||
  .navbar-custom .nav li a:focus {
 | 
			
		||||
    color: rgba(255, 255, 255, 0.8);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@media only screen and (min-width: 1170px) {
 | 
			
		||||
  .navbar-custom {
 | 
			
		||||
    -webkit-transition: background-color 0.3s;
 | 
			
		||||
    -moz-transition: background-color 0.3s;
 | 
			
		||||
    transition: background-color 0.3s;
 | 
			
		||||
    /* Force Hardware Acceleration in WebKit */
 | 
			
		||||
    -webkit-transform: translate3d(0, 0, 0);
 | 
			
		||||
    -moz-transform: translate3d(0, 0, 0);
 | 
			
		||||
    -ms-transform: translate3d(0, 0, 0);
 | 
			
		||||
    -o-transform: translate3d(0, 0, 0);
 | 
			
		||||
    transform: translate3d(0, 0, 0);
 | 
			
		||||
    -webkit-backface-visibility: hidden;
 | 
			
		||||
    backface-visibility: hidden;
 | 
			
		||||
  }
 | 
			
		||||
  .navbar-custom.is-fixed {
 | 
			
		||||
    /* when the user scrolls down, we hide the header right above the viewport */
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    top: -61px;
 | 
			
		||||
    background-color: rgba(255, 255, 255, 0.9);
 | 
			
		||||
    border-bottom: 1px solid #f2f2f2;
 | 
			
		||||
    -webkit-transition: -webkit-transform 0.3s;
 | 
			
		||||
    -moz-transition: -moz-transform 0.3s;
 | 
			
		||||
    transition: transform 0.3s;
 | 
			
		||||
  }
 | 
			
		||||
  .navbar-custom.is-fixed .navbar-brand {
 | 
			
		||||
    color: #404040;
 | 
			
		||||
  }
 | 
			
		||||
  .navbar-custom.is-fixed .navbar-brand:hover,
 | 
			
		||||
  .navbar-custom.is-fixed .navbar-brand:focus {
 | 
			
		||||
    color: #0085a1;
 | 
			
		||||
  }
 | 
			
		||||
  .navbar-custom.is-fixed .nav li a {
 | 
			
		||||
    color: #404040;
 | 
			
		||||
  }
 | 
			
		||||
  .navbar-custom.is-fixed .nav li a:hover,
 | 
			
		||||
  .navbar-custom.is-fixed .nav li a:focus {
 | 
			
		||||
    color: #0085a1;
 | 
			
		||||
  }
 | 
			
		||||
  .navbar-custom.is-visible {
 | 
			
		||||
    /* if the user changes the scrolling direction, we show the header */
 | 
			
		||||
    -webkit-transform: translate3d(0, 100%, 0);
 | 
			
		||||
    -moz-transform: translate3d(0, 100%, 0);
 | 
			
		||||
    -ms-transform: translate3d(0, 100%, 0);
 | 
			
		||||
    -o-transform: translate3d(0, 100%, 0);
 | 
			
		||||
    transform: translate3d(0, 100%, 0);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
.intro-header {
 | 
			
		||||
  background-color: #808080;
 | 
			
		||||
  background: no-repeat center center;
 | 
			
		||||
  background-attachment: scroll;
 | 
			
		||||
  -webkit-background-size: cover;
 | 
			
		||||
  -moz-background-size: cover;
 | 
			
		||||
  background-size: cover;
 | 
			
		||||
  -o-background-size: cover;
 | 
			
		||||
  margin-bottom: 50px;
 | 
			
		||||
}
 | 
			
		||||
.intro-header .site-heading,
 | 
			
		||||
.intro-header .post-heading,
 | 
			
		||||
.intro-header .page-heading {
 | 
			
		||||
  padding: 100px 0 50px;
 | 
			
		||||
  color: white;
 | 
			
		||||
}
 | 
			
		||||
@media only screen and (min-width: 768px) {
 | 
			
		||||
  .intro-header .site-heading,
 | 
			
		||||
  .intro-header .post-heading,
 | 
			
		||||
  .intro-header .page-heading {
 | 
			
		||||
    padding: 150px 0;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
.intro-header .site-heading,
 | 
			
		||||
.intro-header .page-heading {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
.intro-header .site-heading h1,
 | 
			
		||||
.intro-header .page-heading h1 {
 | 
			
		||||
  margin-top: 0;
 | 
			
		||||
  font-size: 50px;
 | 
			
		||||
}
 | 
			
		||||
.intro-header .site-heading .subheading,
 | 
			
		||||
.intro-header .page-heading .subheading {
 | 
			
		||||
  font-size: 24px;
 | 
			
		||||
  line-height: 1.1;
 | 
			
		||||
  display: block;
 | 
			
		||||
  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
 | 
			
		||||
  font-weight: 300;
 | 
			
		||||
  margin: 10px 0 0;
 | 
			
		||||
}
 | 
			
		||||
@media only screen and (min-width: 768px) {
 | 
			
		||||
  .intro-header .site-heading h1,
 | 
			
		||||
  .intro-header .page-heading h1 {
 | 
			
		||||
    font-size: 80px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
.intro-header .post-heading h1 {
 | 
			
		||||
  font-size: 35px;
 | 
			
		||||
}
 | 
			
		||||
.intro-header .post-heading .subheading,
 | 
			
		||||
.intro-header .post-heading .meta {
 | 
			
		||||
  line-height: 1.1;
 | 
			
		||||
  display: block;
 | 
			
		||||
}
 | 
			
		||||
.intro-header .post-heading .subheading {
 | 
			
		||||
  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
 | 
			
		||||
  font-size: 24px;
 | 
			
		||||
  margin: 10px 0 30px;
 | 
			
		||||
  font-weight: 600;
 | 
			
		||||
}
 | 
			
		||||
.intro-header .post-heading .meta {
 | 
			
		||||
  font-family: 'Lora', 'Times New Roman', serif;
 | 
			
		||||
  font-style: italic;
 | 
			
		||||
  font-weight: 300;
 | 
			
		||||
  font-size: 20px;
 | 
			
		||||
}
 | 
			
		||||
.intro-header .post-heading .meta a {
 | 
			
		||||
  color: white;
 | 
			
		||||
}
 | 
			
		||||
@media only screen and (min-width: 768px) {
 | 
			
		||||
  .intro-header .post-heading h1 {
 | 
			
		||||
    font-size: 55px;
 | 
			
		||||
  }
 | 
			
		||||
  .intro-header .post-heading .subheading {
 | 
			
		||||
    font-size: 30px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
.post-preview > a {
 | 
			
		||||
  color: #404040;
 | 
			
		||||
}
 | 
			
		||||
.post-preview > a:hover,
 | 
			
		||||
.post-preview > a:focus {
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
  color: #0085a1;
 | 
			
		||||
}
 | 
			
		||||
.post-preview > a > .post-title {
 | 
			
		||||
  font-size: 30px;
 | 
			
		||||
  margin-top: 30px;
 | 
			
		||||
  margin-bottom: 10px;
 | 
			
		||||
}
 | 
			
		||||
.post-preview > a > .post-subtitle {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  font-weight: 300;
 | 
			
		||||
  margin-bottom: 10px;
 | 
			
		||||
}
 | 
			
		||||
.post-preview > .post-meta {
 | 
			
		||||
  color: #808080;
 | 
			
		||||
  font-size: 18px;
 | 
			
		||||
  font-style: italic;
 | 
			
		||||
  margin-top: 0;
 | 
			
		||||
}
 | 
			
		||||
.post-preview > .post-meta > a {
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
  color: #404040;
 | 
			
		||||
}
 | 
			
		||||
.post-preview > .post-meta > a:hover,
 | 
			
		||||
.post-preview > .post-meta > a:focus {
 | 
			
		||||
  color: #0085a1;
 | 
			
		||||
  text-decoration: underline;
 | 
			
		||||
}
 | 
			
		||||
@media only screen and (min-width: 768px) {
 | 
			
		||||
  .post-preview > a > .post-title {
 | 
			
		||||
    font-size: 36px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
.section-heading {
 | 
			
		||||
  font-size: 36px;
 | 
			
		||||
  margin-top: 60px;
 | 
			
		||||
  font-weight: 700;
 | 
			
		||||
}
 | 
			
		||||
.caption {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  padding: 10px;
 | 
			
		||||
  font-style: italic;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  display: block;
 | 
			
		||||
  border-bottom-right-radius: 5px;
 | 
			
		||||
  border-bottom-left-radius: 5px;
 | 
			
		||||
}
 | 
			
		||||
footer {
 | 
			
		||||
  padding: 50px 0 65px;
 | 
			
		||||
}
 | 
			
		||||
footer .list-inline {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
footer .copyright {
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  margin-bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
.floating-label-form-group {
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  margin-bottom: 0;
 | 
			
		||||
  padding-bottom: 0.5em;
 | 
			
		||||
  border-bottom: 1px solid #eeeeee;
 | 
			
		||||
}
 | 
			
		||||
.floating-label-form-group input,
 | 
			
		||||
.floating-label-form-group textarea {
 | 
			
		||||
  z-index: 1;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding-right: 0;
 | 
			
		||||
  padding-left: 0;
 | 
			
		||||
  border: none;
 | 
			
		||||
  border-radius: 0;
 | 
			
		||||
  font-size: 1.5em;
 | 
			
		||||
  background: none;
 | 
			
		||||
  box-shadow: none !important;
 | 
			
		||||
  resize: none;
 | 
			
		||||
}
 | 
			
		||||
.floating-label-form-group label {
 | 
			
		||||
  display: block;
 | 
			
		||||
  z-index: 0;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  top: 2em;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  font-size: 0.85em;
 | 
			
		||||
  line-height: 1.764705882em;
 | 
			
		||||
  vertical-align: middle;
 | 
			
		||||
  vertical-align: baseline;
 | 
			
		||||
  opacity: 0;
 | 
			
		||||
  -webkit-transition: top 0.3s ease,opacity 0.3s ease;
 | 
			
		||||
  -moz-transition: top 0.3s ease,opacity 0.3s ease;
 | 
			
		||||
  -ms-transition: top 0.3s ease,opacity 0.3s ease;
 | 
			
		||||
  transition: top 0.3s ease,opacity 0.3s ease;
 | 
			
		||||
}
 | 
			
		||||
.floating-label-form-group::not(:first-child) {
 | 
			
		||||
  padding-left: 14px;
 | 
			
		||||
  border-left: 1px solid #eeeeee;
 | 
			
		||||
}
 | 
			
		||||
.floating-label-form-group-with-value label {
 | 
			
		||||
  top: 0;
 | 
			
		||||
  opacity: 1;
 | 
			
		||||
}
 | 
			
		||||
.floating-label-form-group-with-focus label {
 | 
			
		||||
  color: #0085a1;
 | 
			
		||||
}
 | 
			
		||||
form .row:first-child .floating-label-form-group {
 | 
			
		||||
  border-top: 1px solid #eeeeee;
 | 
			
		||||
}
 | 
			
		||||
.btn {
 | 
			
		||||
  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  font-weight: 800;
 | 
			
		||||
  letter-spacing: 1px;
 | 
			
		||||
  border-radius: 0;
 | 
			
		||||
  padding: 15px 25px;
 | 
			
		||||
}
 | 
			
		||||
.btn-lg {
 | 
			
		||||
  font-size: 16px;
 | 
			
		||||
  padding: 25px 35px;
 | 
			
		||||
}
 | 
			
		||||
.btn-default:hover,
 | 
			
		||||
.btn-default:focus {
 | 
			
		||||
  background-color: #0085a1;
 | 
			
		||||
  border: 1px solid #0085a1;
 | 
			
		||||
  color: white;
 | 
			
		||||
}
 | 
			
		||||
.pager {
 | 
			
		||||
  margin: 20px 0 0;
 | 
			
		||||
}
 | 
			
		||||
.pager li > a,
 | 
			
		||||
.pager li > span {
 | 
			
		||||
  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  font-weight: 800;
 | 
			
		||||
  letter-spacing: 1px;
 | 
			
		||||
  padding: 15px 25px;
 | 
			
		||||
  background-color: white;
 | 
			
		||||
  border-radius: 0;
 | 
			
		||||
}
 | 
			
		||||
.pager li > a:hover,
 | 
			
		||||
.pager li > a:focus {
 | 
			
		||||
  color: white;
 | 
			
		||||
  background-color: #0085a1;
 | 
			
		||||
  border: 1px solid #0085a1;
 | 
			
		||||
}
 | 
			
		||||
.pager .disabled > a,
 | 
			
		||||
.pager .disabled > a:hover,
 | 
			
		||||
.pager .disabled > a:focus,
 | 
			
		||||
.pager .disabled > span {
 | 
			
		||||
  color: #808080;
 | 
			
		||||
  background-color: #404040;
 | 
			
		||||
  cursor: not-allowed;
 | 
			
		||||
}
 | 
			
		||||
::-moz-selection {
 | 
			
		||||
  color: white;
 | 
			
		||||
  text-shadow: none;
 | 
			
		||||
  background: #0085a1;
 | 
			
		||||
}
 | 
			
		||||
::selection {
 | 
			
		||||
  color: white;
 | 
			
		||||
  text-shadow: none;
 | 
			
		||||
  background: #0085a1;
 | 
			
		||||
}
 | 
			
		||||
img::selection {
 | 
			
		||||
  color: white;
 | 
			
		||||
  background: transparent;
 | 
			
		||||
}
 | 
			
		||||
img::-moz-selection {
 | 
			
		||||
  color: white;
 | 
			
		||||
  background: transparent;
 | 
			
		||||
}
 | 
			
		||||
body {
 | 
			
		||||
  webkit-tap-highlight-color: #0085a1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.text-center {
 | 
			
		||||
    text-align: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.blog-content img {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								digitalglarus/static/blog.ungleich.ch/img/home-bg.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								digitalglarus/static/blog.ungleich.ch/img/home-bg.jpg
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 169 KiB  | 
							
								
								
									
										70
									
								
								digitalglarus/static/blog.ungleich.ch/img/logo_white.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								digitalglarus/static/blog.ungleich.ch/img/logo_white.svg
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,70 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
 | 
			
		||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 | 
			
		||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 | 
			
		||||
	 width="130px" height="40px" viewBox="0 0 130 40" enable-background="new 0 0 130 40" xml:space="preserve">
 | 
			
		||||
<g>
 | 
			
		||||
	<path fill="#FFFFFF" d="M41.207,31.459c0-0.431,0.15-0.846,0.453-1.25c0.301-0.406,0.733-0.771,1.293-1.094v-0.09
 | 
			
		||||
		c-0.294-0.16-0.552-0.388-0.774-0.675c-0.22-0.287-0.331-0.66-0.331-1.116c0-0.354,0.115-0.711,0.345-1.074
 | 
			
		||||
		c0.227-0.36,0.55-0.681,0.963-0.96v-0.088c-0.386-0.281-0.709-0.655-0.975-1.121c-0.263-0.462-0.396-1.019-0.396-1.666
 | 
			
		||||
		c0-0.605,0.117-1.148,0.352-1.627c0.237-0.48,0.554-0.887,0.954-1.228c0.397-0.34,0.857-0.597,1.382-0.775
 | 
			
		||||
		c0.521-0.177,1.079-0.265,1.667-0.265c0.605,0,1.151,0.088,1.637,0.265h4.444v1.659h-2.698c0.222,0.235,0.42,0.528,0.596,0.874
 | 
			
		||||
		c0.178,0.348,0.267,0.734,0.267,1.161c0,0.592-0.11,1.115-0.332,1.571c-0.221,0.457-0.524,0.844-0.907,1.16
 | 
			
		||||
		c-0.384,0.319-0.833,0.56-1.349,0.717c-0.515,0.162-1.069,0.245-1.659,0.245c-0.263,0-0.548-0.027-0.853-0.088
 | 
			
		||||
		c-0.301-0.057-0.599-0.148-0.895-0.266c-0.502,0.326-0.751,0.701-0.751,1.128c0,0.396,0.184,0.686,0.552,0.861
 | 
			
		||||
		c0.368,0.18,0.899,0.265,1.591,0.265h2.299c1.418,0,2.465,0.205,3.153,0.608c0.685,0.405,1.027,1.075,1.027,2.001
 | 
			
		||||
		c0,0.517-0.145,1.001-0.432,1.46c-0.288,0.457-0.697,0.857-1.229,1.204c-0.529,0.346-1.172,0.621-1.924,0.817
 | 
			
		||||
		c-0.751,0.201-1.591,0.302-2.522,0.302c-1.533,0-2.742-0.249-3.625-0.744C41.65,33.143,41.207,32.416,41.207,31.459z
 | 
			
		||||
		 M43.062,31.193c0,0.516,0.284,0.932,0.853,1.249c0.568,0.317,1.39,0.477,2.464,0.477c0.575,0,1.095-0.056,1.56-0.167
 | 
			
		||||
		c0.464-0.109,0.863-0.257,1.195-0.441c0.333-0.186,0.584-0.395,0.763-0.628c0.177-0.235,0.263-0.485,0.263-0.755
 | 
			
		||||
		c0-0.47-0.196-0.782-0.584-0.939c-0.392-0.154-0.978-0.229-1.758-0.229h-1.902c-0.339,0-0.64-0.014-0.905-0.036
 | 
			
		||||
		c-0.267-0.019-0.518-0.066-0.752-0.143c-0.443,0.251-0.751,0.509-0.931,0.773C43.154,30.616,43.062,30.897,43.062,31.193z
 | 
			
		||||
		 M46.138,24.668c0.621,0,1.149-0.205,1.594-0.618c0.441-0.414,0.664-0.986,0.664-1.724c0-0.71-0.223-1.276-0.664-1.703
 | 
			
		||||
		c-0.445-0.428-0.973-0.642-1.594-0.642s-1.149,0.213-1.591,0.642c-0.441,0.427-0.663,0.995-0.663,1.703
 | 
			
		||||
		c0,0.737,0.223,1.31,0.663,1.724C44.988,24.462,45.518,24.668,46.138,24.668z"/>
 | 
			
		||||
</g>
 | 
			
		||||
<path fill="#FFFFFF" d="M24.624,29.806H22.77l-0.184-1.853h-0.09c-0.55,0.64-1.15,1.154-1.796,1.544
 | 
			
		||||
	c-0.649,0.387-1.4,0.581-2.254,0.581c-1.327,0-2.296-0.385-2.904-1.153c-0.612-0.772-0.916-1.896-0.916-3.376v-5.616l-2.962-0.058
 | 
			
		||||
	l5.249-2.02l-0.022,1.528v5.871c0,0.991,0.175,1.719,0.526,2.186c0.351,0.466,0.953,0.7,1.808,0.7c0.579,0,1.109-0.144,1.589-0.426
 | 
			
		||||
	c0.48-0.282,0.996-0.76,1.544-1.431v-7.665h2.265L24.624,29.806L24.624,29.806z"/>
 | 
			
		||||
<path fill="#FFFFFF" d="M28.376,18.619h1.851l0.184,1.807h0.091c0.565-0.58,1.174-1.072,1.832-1.476
 | 
			
		||||
	c0.654-0.404,1.418-0.605,2.287-0.605c1.312,0,2.274,0.39,2.882,1.165c0.61,0.777,0.917,1.9,0.917,3.365v6.93h-2.267V23.17
 | 
			
		||||
	c0-0.975-0.173-1.695-0.525-2.161c-0.349-0.468-0.953-0.701-1.808-0.701c-0.596,0-1.128,0.152-1.603,0.447
 | 
			
		||||
	c-0.471,0.298-1,0.743-1.579,1.339v7.709h-2.263L28.376,18.619L28.376,18.619z"/>
 | 
			
		||||
<path fill="#FFFFFF" d="M63.696,24.225c0-0.917,0.161-1.737,0.481-2.461s0.746-1.343,1.281-1.853c0.532-0.51,1.143-0.9,1.831-1.167
 | 
			
		||||
	c0.687-0.267,1.397-0.399,2.128-0.399c0.823,0,1.551,0.128,2.187,0.389c0.629,0.259,1.17,0.621,1.609,1.084
 | 
			
		||||
	c0.444,0.467,0.781,1.023,1.007,1.672c0.229,0.647,0.346,1.36,0.346,2.139c0,0.23-0.013,0.447-0.035,0.653
 | 
			
		||||
	c-0.022,0.208-0.049,0.378-0.08,0.514H66.03c0.076,1.098,0.483,1.956,1.225,2.574c0.74,0.618,1.673,0.928,2.802,0.928
 | 
			
		||||
	c0.611,0,1.178-0.087,1.705-0.254c0.527-0.166,1.041-0.403,1.541-0.708l0.803,1.439c-0.575,0.366-1.23,0.674-1.956,0.928
 | 
			
		||||
	c-0.724,0.25-1.521,0.376-2.392,0.376c-0.838,0-1.627-0.131-2.366-0.397c-0.74-0.268-1.384-0.652-1.933-1.156
 | 
			
		||||
	c-0.55-0.504-0.981-1.118-1.294-1.844C63.853,25.957,63.696,25.138,63.696,24.225z M72.459,23.241c0-1.01-0.263-1.777-0.78-2.312
 | 
			
		||||
	s-1.256-0.8-2.218-0.8c-0.84,0-1.586,0.266-2.241,0.8c-0.657,0.535-1.063,1.302-1.214,2.312H72.459z"/>
 | 
			
		||||
<path fill="#FFFFFF" d="M82.007,18.264l0.008,11.77h-2.267V21.44h-4.247L82.007,18.264z M80.688,15.958
 | 
			
		||||
	c-0.488,0-0.891-0.146-1.215-0.434c-0.316-0.29-0.478-0.68-0.478-1.167s0.161-0.879,0.478-1.177
 | 
			
		||||
	c0.324-0.297,0.725-0.446,1.215-0.446c0.486,0,0.894,0.148,1.212,0.446c0.323,0.298,0.483,0.69,0.483,1.177
 | 
			
		||||
	c0,0.487-0.16,0.878-0.483,1.167C81.581,15.811,81.174,15.958,80.688,15.958z"/>
 | 
			
		||||
<path fill="#FFFFFF" d="M85.153,24.45c0-0.928,0.169-1.762,0.505-2.491c0.336-0.733,0.795-1.351,1.374-1.855
 | 
			
		||||
	c0.577-0.503,1.244-0.882,2-1.143c0.756-0.258,1.56-0.388,2.413-0.388c0.916,0,1.715,0.155,2.402,0.467
 | 
			
		||||
	c0.689,0.312,1.261,0.692,1.717,1.132l-1.096,1.44c-0.444-0.365-0.903-0.652-1.377-0.857c-0.469-0.205-0.981-0.307-1.531-0.307
 | 
			
		||||
	c-0.593,0-1.143,0.095-1.648,0.286c-0.502,0.19-0.933,0.46-1.29,0.812c-0.359,0.352-0.639,0.773-0.834,1.269
 | 
			
		||||
	c-0.199,0.495-0.298,1.043-0.298,1.635c0,0.596,0.096,1.142,0.285,1.636c0.191,0.497,0.466,0.919,0.822,1.271
 | 
			
		||||
	c0.358,0.348,0.782,0.621,1.269,0.812c0.49,0.189,1.029,0.284,1.627,0.284c0.685,0,1.304-0.129,1.852-0.389
 | 
			
		||||
	c0.548-0.259,1.045-0.571,1.487-0.94l0.962,1.467c-0.641,0.548-1.343,0.973-2.104,1.269c-0.763,0.297-1.558,0.444-2.38,0.444
 | 
			
		||||
	c-0.87,0-1.681-0.128-2.437-0.388c-0.755-0.258-1.405-0.641-1.955-1.145c-0.552-0.504-0.982-1.119-1.294-1.843
 | 
			
		||||
	C85.311,26.21,85.153,25.383,85.153,24.45z"/>
 | 
			
		||||
<path fill="#FFFFFF" d="M95.906,13.877l4.743-2.351v6.589l-0.138,2.517c0.566-0.58,1.173-1.068,1.832-1.465
 | 
			
		||||
	c0.655-0.396,1.416-0.594,2.287-0.594c1.311,0,2.271,0.388,2.881,1.165c0.608,0.778,0.914,1.901,0.914,3.364v6.93h-2.264v-6.635
 | 
			
		||||
	c0-0.977-0.175-1.695-0.527-2.161c-0.351-0.466-0.95-0.699-1.807-0.699c-0.594,0-1.13,0.149-1.599,0.446
 | 
			
		||||
	c-0.477,0.299-1.001,0.745-1.581,1.34v7.709h-2.265l-0.05-16.251L95.906,13.877z"/>
 | 
			
		||||
<g>
 | 
			
		||||
	<polygon fill="#FFFFFF" points="108.854,8.822 108.09,10.416 117.573,10.456 118.336,8.831 	"/>
 | 
			
		||||
	<polygon fill="#FFFFFF" points="108.103,12.298 107.315,13.971 116.812,13.991 117.573,12.336 	"/>
 | 
			
		||||
	<polygon fill="#FFFFFF" points="109.955,15.869 114.305,6.606 115.98,6.631 111.682,15.871 	"/>
 | 
			
		||||
</g>
 | 
			
		||||
<g>
 | 
			
		||||
	<path fill="#FFFFFF" d="M58.023,26.167c0,0.749,0.188,1.293,0.564,1.625c0.375,0.333,0.864,0.499,1.47,0.499
 | 
			
		||||
		c0.294,0,0.598-0.039,0.907-0.112c0.309-0.074,0.657-0.191,1.038-0.354l0.53,1.639c-0.25,0.086-0.491,0.166-0.718,0.243
 | 
			
		||||
		c-0.23,0.072-0.462,0.134-0.696,0.186c-0.236,0.054-0.482,0.097-0.739,0.133c-0.26,0.037-0.542,0.057-0.852,0.057
 | 
			
		||||
		c-1.21,0-2.128-0.346-2.755-1.041c-0.626-0.691-0.939-1.693-0.939-3.007V11.309h-3.539l5.727-4.035"/>
 | 
			
		||||
</g>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 6.6 KiB  | 
							
								
								
									
										29
									
								
								digitalglarus/static/blog.ungleich.ch/js/navbar-scroll-up.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								digitalglarus/static/blog.ungleich.ch/js/navbar-scroll-up.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,29 @@
 | 
			
		|||
// Navigation Scripts to Show Header on Scroll-Up
 | 
			
		||||
jQuery(document).ready(function($) {
 | 
			
		||||
    var MQL = 1170;
 | 
			
		||||
 | 
			
		||||
    //primary navigation slide-in effect
 | 
			
		||||
    if ($(window).width() > MQL) {
 | 
			
		||||
	var headerHeight = $('.navbar-custom').height();
 | 
			
		||||
	$(window).on('scroll', {
 | 
			
		||||
	    previousTop: 0
 | 
			
		||||
	},
 | 
			
		||||
		     function() {
 | 
			
		||||
			 var currentTop = $(window).scrollTop();
 | 
			
		||||
			 //check if user is scrolling up
 | 
			
		||||
			 if (currentTop < this.previousTop) {
 | 
			
		||||
			     //if scrolling up...
 | 
			
		||||
			     if (currentTop > 0 && $('.navbar-custom').hasClass('is-fixed')) {
 | 
			
		||||
				 $('.navbar-custom').addClass('is-visible');
 | 
			
		||||
			     } else {
 | 
			
		||||
				 $('.navbar-custom').removeClass('is-visible is-fixed');
 | 
			
		||||
			     }
 | 
			
		||||
			 } else {
 | 
			
		||||
			     //if scrolling down...
 | 
			
		||||
			     $('.navbar-custom').removeClass('is-visible');
 | 
			
		||||
			     if (currentTop > headerHeight && !$('.navbar-custom').hasClass('is-fixed')) $('.navbar-custom').addClass('is-fixed');
 | 
			
		||||
			 }
 | 
			
		||||
			 this.previousTop = currentTop;
 | 
			
		||||
		     });
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										458
									
								
								digitalglarus/static/blog.ungleich.ch/less/clean-blog.less
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										458
									
								
								digitalglarus/static/blog.ungleich.ch/less/clean-blog.less
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,458 @@
 | 
			
		|||
@import "variables.less";
 | 
			
		||||
@import "mixins.less";
 | 
			
		||||
 | 
			
		||||
// Global Components
 | 
			
		||||
 | 
			
		||||
body {
 | 
			
		||||
	.serif;
 | 
			
		||||
	font-size: 20px;
 | 
			
		||||
	color: @gray-dark;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// -- Typography
 | 
			
		||||
 | 
			
		||||
p {
 | 
			
		||||
	line-height: 1.5;
 | 
			
		||||
	margin: 30px 0;
 | 
			
		||||
	a {
 | 
			
		||||
		text-decoration: underline;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h1,
 | 
			
		||||
h2,
 | 
			
		||||
h3,
 | 
			
		||||
h4,
 | 
			
		||||
h5,
 | 
			
		||||
h6 {
 | 
			
		||||
	.sans-serif;
 | 
			
		||||
	font-weight: 800;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a {
 | 
			
		||||
	color: @gray-dark;
 | 
			
		||||
	&:hover,
 | 
			
		||||
	&:focus {
 | 
			
		||||
		color: @brand-primary;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a img {
 | 
			
		||||
	&:hover,
 | 
			
		||||
	&:focus {
 | 
			
		||||
		cursor: zoom-in;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
blockquote {
 | 
			
		||||
	color: @gray;
 | 
			
		||||
	font-style: italic;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
hr.small {
 | 
			
		||||
	max-width: 100px;
 | 
			
		||||
	margin: 15px auto;
 | 
			
		||||
	border-width: 4px;
 | 
			
		||||
	border-color: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Navigation
 | 
			
		||||
 | 
			
		||||
.navbar-custom {
 | 
			
		||||
	position: absolute;
 | 
			
		||||
	top: 0;
 | 
			
		||||
	left: 0;
 | 
			
		||||
	width: 100%;
 | 
			
		||||
	z-index: 3;
 | 
			
		||||
	.sans-serif;
 | 
			
		||||
	.navbar-brand {
 | 
			
		||||
		font-weight: 800;
 | 
			
		||||
	}
 | 
			
		||||
	.nav {
 | 
			
		||||
		li {
 | 
			
		||||
			a {
 | 
			
		||||
				text-transform: uppercase;
 | 
			
		||||
				font-size: 12px;
 | 
			
		||||
				font-weight: 800;
 | 
			
		||||
				letter-spacing: 1px;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	@media only screen and (min-width: 768px) {
 | 
			
		||||
		background: transparent;
 | 
			
		||||
		border-bottom: 1px solid transparent;
 | 
			
		||||
		.navbar-brand {
 | 
			
		||||
			color: white;
 | 
			
		||||
			padding: 20px;
 | 
			
		||||
			&:hover,
 | 
			
		||||
			&:focus {
 | 
			
		||||
				color: @white-faded;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		.nav {
 | 
			
		||||
			li {
 | 
			
		||||
				a {
 | 
			
		||||
					color: white;
 | 
			
		||||
					padding: 20px;
 | 
			
		||||
					&:hover,
 | 
			
		||||
					&:focus {
 | 
			
		||||
						color: @white-faded;
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	@media only screen and (min-width: 1170px) {
 | 
			
		||||
		-webkit-transition: background-color 0.3s;
 | 
			
		||||
		-moz-transition: background-color 0.3s;
 | 
			
		||||
		transition: background-color 0.3s;
 | 
			
		||||
		/* Force Hardware Acceleration in WebKit */
 | 
			
		||||
		-webkit-transform: translate3d(0, 0, 0);
 | 
			
		||||
		-moz-transform: translate3d(0, 0, 0);
 | 
			
		||||
		-ms-transform: translate3d(0, 0, 0);
 | 
			
		||||
		-o-transform: translate3d(0, 0, 0);
 | 
			
		||||
		transform: translate3d(0, 0, 0);
 | 
			
		||||
		-webkit-backface-visibility: hidden;
 | 
			
		||||
		backface-visibility: hidden;
 | 
			
		||||
		&.is-fixed {
 | 
			
		||||
			/* when the user scrolls down, we hide the header right above the viewport */
 | 
			
		||||
			position: fixed;
 | 
			
		||||
			top: -61px;
 | 
			
		||||
			background-color: fade(white, 90%);
 | 
			
		||||
			border-bottom: 1px solid darken(white, 5%);
 | 
			
		||||
			-webkit-transition: -webkit-transform 0.3s;
 | 
			
		||||
			-moz-transition: -moz-transform 0.3s;
 | 
			
		||||
			transition: transform 0.3s;
 | 
			
		||||
			.navbar-brand {
 | 
			
		||||
				color: @gray-dark;
 | 
			
		||||
				&:hover,
 | 
			
		||||
				&:focus {
 | 
			
		||||
					color: @brand-primary;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			.nav {
 | 
			
		||||
				li {
 | 
			
		||||
					a {
 | 
			
		||||
						color: @gray-dark;
 | 
			
		||||
						&:hover,
 | 
			
		||||
						&:focus {
 | 
			
		||||
							color: @brand-primary;
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		&.is-visible {
 | 
			
		||||
			/* if the user changes the scrolling direction, we show the header */
 | 
			
		||||
			-webkit-transform: translate3d(0, 100%, 0);
 | 
			
		||||
			-moz-transform: translate3d(0, 100%, 0);
 | 
			
		||||
			-ms-transform: translate3d(0, 100%, 0);
 | 
			
		||||
			-o-transform: translate3d(0, 100%, 0);
 | 
			
		||||
			transform: translate3d(0, 100%, 0);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Header
 | 
			
		||||
 | 
			
		||||
.intro-header {
 | 
			
		||||
	background-color: @gray; 
 | 
			
		||||
	background: no-repeat center center; 
 | 
			
		||||
	background-attachment: scroll;
 | 
			
		||||
	.background-cover;
 | 
			
		||||
	// NOTE: Background images are set within the HTML using inline CSS!
 | 
			
		||||
	margin-bottom: 50px;
 | 
			
		||||
	.site-heading,
 | 
			
		||||
	.post-heading,
 | 
			
		||||
	.page-heading {
 | 
			
		||||
		padding: 100px 0 50px;
 | 
			
		||||
		color: white;
 | 
			
		||||
		@media only screen and (min-width: 768px) {
 | 
			
		||||
			padding: 150px 0;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	.site-heading,
 | 
			
		||||
	.page-heading {
 | 
			
		||||
		text-align: center;
 | 
			
		||||
		h1 {
 | 
			
		||||
			margin-top: 0;
 | 
			
		||||
			font-size: 50px;
 | 
			
		||||
		}
 | 
			
		||||
		.subheading {
 | 
			
		||||
			font-size: 24px;
 | 
			
		||||
			line-height: 1.1;
 | 
			
		||||
			display: block;
 | 
			
		||||
			.sans-serif;
 | 
			
		||||
			font-weight: 300;
 | 
			
		||||
			margin: 10px 0 0;
 | 
			
		||||
		}
 | 
			
		||||
		@media only screen and (min-width: 768px) {
 | 
			
		||||
			h1 {
 | 
			
		||||
				font-size: 80px;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	.post-heading {
 | 
			
		||||
		h1 {
 | 
			
		||||
			font-size: 35px;
 | 
			
		||||
		}
 | 
			
		||||
		.subheading,
 | 
			
		||||
		.meta {
 | 
			
		||||
			line-height: 1.1;
 | 
			
		||||
			display: block;
 | 
			
		||||
		}
 | 
			
		||||
		.subheading {
 | 
			
		||||
			.sans-serif;
 | 
			
		||||
			font-size: 24px;
 | 
			
		||||
			margin: 10px 0 30px;
 | 
			
		||||
			font-weight: 600;
 | 
			
		||||
		}
 | 
			
		||||
		.meta {
 | 
			
		||||
			.serif;
 | 
			
		||||
			font-style: italic;
 | 
			
		||||
			font-weight: 300;
 | 
			
		||||
			font-size: 20px;
 | 
			
		||||
			a {
 | 
			
		||||
				color: white;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		@media only screen and (min-width: 768px) {
 | 
			
		||||
			h1 {
 | 
			
		||||
				font-size: 55px;
 | 
			
		||||
			}
 | 
			
		||||
			.subheading {
 | 
			
		||||
				font-size: 30px;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Post Preview Pages
 | 
			
		||||
 | 
			
		||||
.post-preview {
 | 
			
		||||
	> a {
 | 
			
		||||
		color: @gray-dark;
 | 
			
		||||
		&:hover,
 | 
			
		||||
		&:focus {
 | 
			
		||||
			text-decoration: none;
 | 
			
		||||
			color: @brand-primary;
 | 
			
		||||
		}
 | 
			
		||||
		> .post-title {
 | 
			
		||||
			font-size: 30px;
 | 
			
		||||
			margin-top: 30px;
 | 
			
		||||
			margin-bottom: 10px;
 | 
			
		||||
		}
 | 
			
		||||
		> .post-subtitle {
 | 
			
		||||
			margin: 0;
 | 
			
		||||
			font-weight: 300;
 | 
			
		||||
			margin-bottom: 10px;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	> .post-meta {
 | 
			
		||||
		color: @gray;
 | 
			
		||||
		font-size: 18px;
 | 
			
		||||
		font-style: italic;
 | 
			
		||||
		margin-top: 0;
 | 
			
		||||
		> a {
 | 
			
		||||
			text-decoration: none;
 | 
			
		||||
			color: @gray-dark;
 | 
			
		||||
			&:hover,
 | 
			
		||||
			&:focus {
 | 
			
		||||
				color: @brand-primary;
 | 
			
		||||
				text-decoration: underline;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	@media only screen and (min-width: 768px) {
 | 
			
		||||
		> a {
 | 
			
		||||
			> .post-title {
 | 
			
		||||
				font-size: 36px;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Sections
 | 
			
		||||
 | 
			
		||||
.section-heading {
 | 
			
		||||
	font-size: 36px;
 | 
			
		||||
	margin-top: 60px;
 | 
			
		||||
	font-weight: 700;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.caption {
 | 
			
		||||
	text-align: center;
 | 
			
		||||
	font-size: 14px;
 | 
			
		||||
	padding: 10px;
 | 
			
		||||
	font-style: italic;
 | 
			
		||||
	margin: 0;
 | 
			
		||||
	display: block;
 | 
			
		||||
	border-bottom-right-radius: 5px;
 | 
			
		||||
	border-bottom-left-radius: 5px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
footer {
 | 
			
		||||
	padding: 50px 0 65px;
 | 
			
		||||
	.list-inline {
 | 
			
		||||
		margin: 0;
 | 
			
		||||
		padding: 0;
 | 
			
		||||
	}
 | 
			
		||||
	.copyright {
 | 
			
		||||
		font-size: 14px;
 | 
			
		||||
		text-align: center;
 | 
			
		||||
		margin-bottom: 0;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Contact Form Styles
 | 
			
		||||
 | 
			
		||||
.floating-label-form-group {
 | 
			
		||||
	font-size: 14px;
 | 
			
		||||
	position: relative;
 | 
			
		||||
	margin-bottom: 0;
 | 
			
		||||
	padding-bottom: 0.5em;
 | 
			
		||||
	border-bottom: 1px solid @gray-light;
 | 
			
		||||
	input,
 | 
			
		||||
	textarea {
 | 
			
		||||
		z-index: 1;
 | 
			
		||||
		position: relative;
 | 
			
		||||
		padding-right: 0;
 | 
			
		||||
		padding-left: 0;
 | 
			
		||||
		border: none;
 | 
			
		||||
		border-radius: 0;
 | 
			
		||||
		font-size: 1.5em;
 | 
			
		||||
		background: none;
 | 
			
		||||
		box-shadow: none !important;
 | 
			
		||||
		resize: none;
 | 
			
		||||
	}
 | 
			
		||||
	label {
 | 
			
		||||
		display: block;
 | 
			
		||||
		z-index: 0;
 | 
			
		||||
		position: relative;
 | 
			
		||||
		top: 2em;
 | 
			
		||||
		margin: 0;
 | 
			
		||||
		font-size: 0.85em;
 | 
			
		||||
		line-height: 1.764705882em;
 | 
			
		||||
		vertical-align: middle;
 | 
			
		||||
		vertical-align: baseline;
 | 
			
		||||
		opacity: 0;
 | 
			
		||||
		-webkit-transition: top 0.3s ease,opacity 0.3s ease;
 | 
			
		||||
		-moz-transition: top 0.3s ease,opacity 0.3s ease;
 | 
			
		||||
		-ms-transition: top 0.3s ease,opacity 0.3s ease;
 | 
			
		||||
		transition: top 0.3s ease,opacity 0.3s ease;
 | 
			
		||||
	}
 | 
			
		||||
	&::not(:first-child) {
 | 
			
		||||
		padding-left: 14px;
 | 
			
		||||
		border-left: 1px solid @gray-light;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.floating-label-form-group-with-value {
 | 
			
		||||
	label {
 | 
			
		||||
		top: 0;
 | 
			
		||||
		opacity: 1;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.floating-label-form-group-with-focus {
 | 
			
		||||
	label {
 | 
			
		||||
		color: @brand-primary;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
form .row:first-child .floating-label-form-group {
 | 
			
		||||
	border-top: 1px solid @gray-light;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Button Styles
 | 
			
		||||
 | 
			
		||||
.btn {
 | 
			
		||||
	.sans-serif;
 | 
			
		||||
	text-transform: uppercase;
 | 
			
		||||
	font-size: 14px;
 | 
			
		||||
	font-weight: 800;
 | 
			
		||||
	letter-spacing: 1px;
 | 
			
		||||
	border-radius: 0;
 | 
			
		||||
	padding: 15px 25px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.btn-lg {
 | 
			
		||||
	font-size: 16px;
 | 
			
		||||
	padding: 25px 35px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.btn-default {
 | 
			
		||||
	&:hover,
 | 
			
		||||
	&:focus {
 | 
			
		||||
		background-color: @brand-primary;
 | 
			
		||||
		border: 1px solid @brand-primary;
 | 
			
		||||
		color: white;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Pager Styling
 | 
			
		||||
 | 
			
		||||
.pager {
 | 
			
		||||
 | 
			
		||||
	margin: 20px 0 0;
 | 
			
		||||
 | 
			
		||||
	li {
 | 
			
		||||
		> a,
 | 
			
		||||
		> span {
 | 
			
		||||
			.sans-serif;
 | 
			
		||||
			text-transform: uppercase;
 | 
			
		||||
			font-size: 14px;
 | 
			
		||||
			font-weight: 800;
 | 
			
		||||
			letter-spacing: 1px;
 | 
			
		||||
			padding: 15px 25px;
 | 
			
		||||
			background-color: white;
 | 
			
		||||
			border-radius: 0;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		> a:hover,
 | 
			
		||||
		> a:focus {
 | 
			
		||||
			color: white;
 | 
			
		||||
			background-color: @brand-primary;
 | 
			
		||||
			border: 1px solid @brand-primary;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	.disabled {
 | 
			
		||||
		> a,
 | 
			
		||||
		> a:hover,
 | 
			
		||||
		> a:focus,
 | 
			
		||||
		> span {
 | 
			
		||||
			color: @gray;
 | 
			
		||||
			background-color: @gray-dark;
 | 
			
		||||
			cursor: not-allowed;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// -- Highlight Color Customization
 | 
			
		||||
 | 
			
		||||
::-moz-selection {
 | 
			
		||||
	color: white;
 | 
			
		||||
	text-shadow: none;
 | 
			
		||||
	background: @brand-primary;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
::selection {
 | 
			
		||||
	color: white;
 | 
			
		||||
	text-shadow: none;
 | 
			
		||||
	background: @brand-primary;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
img::selection {
 | 
			
		||||
	color: white;
 | 
			
		||||
	background: transparent;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
img::-moz-selection {
 | 
			
		||||
	color: white;
 | 
			
		||||
	background: transparent;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
body {
 | 
			
		||||
	webkit-tap-highlight-color: @brand-primary;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								digitalglarus/static/blog.ungleich.ch/less/mixins.less
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								digitalglarus/static/blog.ungleich.ch/less/mixins.less
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
// Mixins
 | 
			
		||||
 | 
			
		||||
.transition-all() {
 | 
			
		||||
    -webkit-transition: all 0.5s;
 | 
			
		||||
    -moz-transition: all 0.5s;
 | 
			
		||||
    transition: all 0.5s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.background-cover() {
 | 
			
		||||
    -webkit-background-size: cover;
 | 
			
		||||
    -moz-background-size: cover;
 | 
			
		||||
    background-size: cover;
 | 
			
		||||
    -o-background-size: cover;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.serif() {
 | 
			
		||||
	font-family: 'Lora', 'Times New Roman', serif;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.sans-serif () {
 | 
			
		||||
	font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								digitalglarus/static/blog.ungleich.ch/less/variables.less
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								digitalglarus/static/blog.ungleich.ch/less/variables.less
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
// Variables
 | 
			
		||||
 | 
			
		||||
@brand-primary: #0085A1;
 | 
			
		||||
@gray-dark: lighten(black, 25%);
 | 
			
		||||
@gray: lighten(black, 50%);
 | 
			
		||||
@white-faded: fade(white, 80%);
 | 
			
		||||
@gray-light: #eee;
 | 
			
		||||
							
								
								
									
										5
									
								
								digitalglarus/static/blog.ungleich.ch/vendor/js/jquery.min.js
									
										
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								digitalglarus/static/blog.ungleich.ch/vendor/js/jquery.min.js
									
										
									
									
										vendored
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
				
			
			@ -1,5 +1,4 @@
 | 
			
		|||
{% load i18n thumbnail %}
 | 
			
		||||
 | 
			
		||||
<article id="post-{{ post.slug }}" class="post-item col-lg-12 text-center">
 | 
			
		||||
  {% if post.main_image %}
 | 
			
		||||
  <div class="blog-visual">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,7 @@ urlpatterns = [
 | 
			
		|||
    url(r'old_letscowork$', views.letscowork, name='letscowork'),
 | 
			
		||||
    url(r'old_home$', views.home, name='home'),
 | 
			
		||||
    url(r'supporters/$', views.supporters, name='supporters'),
 | 
			
		||||
    url(r'', 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'', views.index, name='index'),
 | 
			
		||||
    url(r'blog/',views.blog,name='blog'),
 | 
			
		||||
    url(r'^blog/(?P<slug>\w[-\w]*)/$', views.blog_detail, name='blog-detail'),
 | 
			
		||||
]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,7 @@ from django.utils.translation import get_language
 | 
			
		|||
from djangocms_blog.models import Post
 | 
			
		||||
from django.core.urlresolvers import resolve
 | 
			
		||||
 | 
			
		||||
from .models import Message, Supporter
 | 
			
		||||
from .models import Message#, Supporter
 | 
			
		||||
 | 
			
		||||
class MessageForm(ModelForm):
 | 
			
		||||
    required_css_class = 'form-control'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
				
			
			@ -1,423 +1 @@
 | 
			
		|||
"""
 | 
			
		||||
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'}, )}
 | 
			
		||||
from .base import *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										423
									
								
								dynamicweb/settings/__init__old.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										423
									
								
								dynamicweb/settings/__init__old.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,423 @@
 | 
			
		|||
"""
 | 
			
		||||
Copyright 2015 ungleich.
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
# -*- coding: utf-8 -*-
 | 
			
		||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 | 
			
		||||
import os
 | 
			
		||||
from django.utils.translation import ugettext_lazy as _
 | 
			
		||||
# dotenv
 | 
			
		||||
import dotenv
 | 
			
		||||
 | 
			
		||||
gettext = lambda s: s
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def env(env_name):
 | 
			
		||||
    return os.environ.get(env_name)
 | 
			
		||||
 | 
			
		||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
			
		||||
 | 
			
		||||
PROJECT_DIR = os.path.abspath(
 | 
			
		||||
    os.path.join(os.path.dirname(__file__), "../.."),
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# load .env file
 | 
			
		||||
dotenv.read_dotenv("{0}/.env".format(PROJECT_DIR))
 | 
			
		||||
 | 
			
		||||
# Quick-start development settings - unsuitable for production
 | 
			
		||||
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
 | 
			
		||||
 | 
			
		||||
SITE_ID = 1
 | 
			
		||||
 | 
			
		||||
APP_ROOT_ENDPOINT = "/"
 | 
			
		||||
 | 
			
		||||
LOGIN_URL = None
 | 
			
		||||
LOGOUT_URL = None
 | 
			
		||||
LOGIN_REDIRECT_URL = None
 | 
			
		||||
 | 
			
		||||
EMAIL_HOST = "localhost"
 | 
			
		||||
EMAIL_PORT = 25
 | 
			
		||||
 | 
			
		||||
SECRET_KEY = env('DJANGO_SECRET_KEY')
 | 
			
		||||
 | 
			
		||||
# Application definition
 | 
			
		||||
 | 
			
		||||
INSTALLED_APPS = (
 | 
			
		||||
    'djangocms_admin_style',
 | 
			
		||||
    'django.contrib.admin',
 | 
			
		||||
    'django.contrib.auth',
 | 
			
		||||
    'django.contrib.contenttypes',
 | 
			
		||||
    'django.contrib.sessions',
 | 
			
		||||
    'django.contrib.messages',
 | 
			
		||||
    'django.contrib.staticfiles',
 | 
			
		||||
    'django.contrib.sites',
 | 
			
		||||
    'cms',  # django CMS itself
 | 
			
		||||
    'treebeard',  # utilities for implementing a tree
 | 
			
		||||
    'menus',  # helper for model independent hierarchical website navigation
 | 
			
		||||
    'sekizai',  # for javascript and css management
 | 
			
		||||
    # django-cms plugins
 | 
			
		||||
    'djangocms_flash',
 | 
			
		||||
    'djangocms_googlemap',
 | 
			
		||||
    'djangocms_inherit',
 | 
			
		||||
    'djangocms_link',
 | 
			
		||||
    'djangocms_snippet',
 | 
			
		||||
    'djangocms_teaser',
 | 
			
		||||
    'djangocms_page_meta',
 | 
			
		||||
    # django-filer
 | 
			
		||||
    'cmsplugin_filer_file',
 | 
			
		||||
    'cmsplugin_filer_folder',
 | 
			
		||||
    'cmsplugin_filer_link',
 | 
			
		||||
    'cmsplugin_filer_teaser',
 | 
			
		||||
    'cmsplugin_filer_video',
 | 
			
		||||
    # versioning
 | 
			
		||||
    'reversion',
 | 
			
		||||
    # ck-editor
 | 
			
		||||
    'djangocms_text_ckeditor',
 | 
			
		||||
    # djangocms-blog
 | 
			
		||||
    'filer',
 | 
			
		||||
    'easy_thumbnails',
 | 
			
		||||
    'cmsplugin_filer_image',
 | 
			
		||||
    'parler',
 | 
			
		||||
    'taggit',
 | 
			
		||||
    'taggit_autosuggest',
 | 
			
		||||
    'django_select2',
 | 
			
		||||
    'meta',
 | 
			
		||||
    'meta_mixin',
 | 
			
		||||
#    'admin_enhancer',
 | 
			
		||||
    'djangocms_blog',
 | 
			
		||||
    'bootstrap3',
 | 
			
		||||
    'compressor',
 | 
			
		||||
    # ungleich
 | 
			
		||||
    'ungleich',
 | 
			
		||||
    'hosting',
 | 
			
		||||
    'digitalglarus',
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
MIDDLEWARE_CLASSES = (
 | 
			
		||||
    'django.contrib.sessions.middleware.SessionMiddleware',
 | 
			
		||||
    'django.middleware.common.CommonMiddleware',
 | 
			
		||||
    'django.middleware.csrf.CsrfViewMiddleware',
 | 
			
		||||
    'django.contrib.auth.middleware.AuthenticationMiddleware',
 | 
			
		||||
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 | 
			
		||||
    'django.contrib.messages.middleware.MessageMiddleware',
 | 
			
		||||
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
 | 
			
		||||
    'django.middleware.locale.LocaleMiddleware',
 | 
			
		||||
    # django-cms middlewares
 | 
			
		||||
    'cms.middleware.user.CurrentUserMiddleware',
 | 
			
		||||
    'cms.middleware.page.CurrentPageMiddleware',
 | 
			
		||||
    'cms.middleware.toolbar.ToolbarMiddleware',
 | 
			
		||||
    'cms.middleware.language.LanguageCookieMiddleware',
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
ROOT_URLCONF = 'dynamicweb.urls'
 | 
			
		||||
 | 
			
		||||
TEMPLATES = [
 | 
			
		||||
    {
 | 
			
		||||
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
 | 
			
		||||
        'DIRS': [],
 | 
			
		||||
        'APP_DIRS': True,
 | 
			
		||||
        'OPTIONS': {
 | 
			
		||||
            'context_processors': [
 | 
			
		||||
                'django.template.context_processors.debug',
 | 
			
		||||
                'django.template.context_processors.request',
 | 
			
		||||
                'django.contrib.auth.context_processors.auth',
 | 
			
		||||
                'django.contrib.messages.context_processors.messages',
 | 
			
		||||
            ],
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
WSGI_APPLICATION = 'dynamicweb.wsgi.application'
 | 
			
		||||
 | 
			
		||||
# Deprecated since version 1.8.
 | 
			
		||||
# callables take a request object as their argument and return a dictionary of
 | 
			
		||||
# items to be merged into the context.
 | 
			
		||||
TEMPLATE_CONTEXT_PROCESSORS = (
 | 
			
		||||
    "django.contrib.auth.context_processors.auth",
 | 
			
		||||
    "django.core.context_processors.debug",
 | 
			
		||||
    "django.core.context_processors.i18n",
 | 
			
		||||
    "django.core.context_processors.media",
 | 
			
		||||
    "django.core.context_processors.static",
 | 
			
		||||
    "django.core.context_processors.tz",
 | 
			
		||||
    "django.contrib.messages.context_processors.messages",
 | 
			
		||||
    "django.core.context_processors.request",
 | 
			
		||||
    'sekizai.context_processors.sekizai',
 | 
			
		||||
    'cms.context_processors.cms_settings',
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
TEMPLATE_DIRS = (
 | 
			
		||||
    os.path.join(PROJECT_DIR, 'templates'),
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
CMS_TEMPLATES_DIR = {
 | 
			
		||||
    1: os.path.join(TEMPLATE_DIRS[0], 'cms/'),
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Database
 | 
			
		||||
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
 | 
			
		||||
 | 
			
		||||
DATABASES = {
 | 
			
		||||
    'default': {
 | 
			
		||||
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
 | 
			
		||||
        'NAME': 'app',
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Internationalization
 | 
			
		||||
# https://docs.djangoproject.com/en/1.7/topics/i18n/
 | 
			
		||||
 | 
			
		||||
TIME_ZONE = 'UTC'
 | 
			
		||||
 | 
			
		||||
USE_I18N = True
 | 
			
		||||
 | 
			
		||||
USE_L10N = True
 | 
			
		||||
 | 
			
		||||
USE_TZ = True
 | 
			
		||||
 | 
			
		||||
LANGUAGES = (
 | 
			
		||||
    ('en-us', _('English')),
 | 
			
		||||
    ('de', _('Deutsch')),
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
LANGUAGE_CODE = 'en-us'
 | 
			
		||||
 | 
			
		||||
CMS_PLACEHOLDER_CONF = {
 | 
			
		||||
    'logo_image': {
 | 
			
		||||
        'name': 'Logo Image',
 | 
			
		||||
        'plugins': ['FilerImagePlugin'],
 | 
			
		||||
        'limits': {
 | 
			
		||||
            'global': 1,
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    'page-title': {
 | 
			
		||||
        'name': 'Page Title',
 | 
			
		||||
        'plugins': ['TextPlugin'],
 | 
			
		||||
        'default_plugins': [
 | 
			
		||||
            {
 | 
			
		||||
                'plugin_type': 'TextPlugin',
 | 
			
		||||
                'values': {
 | 
			
		||||
                    'body': 'Page Title...'
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        ],
 | 
			
		||||
        'limits': {
 | 
			
		||||
            'global': 1,
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    'page-subtitle': {
 | 
			
		||||
        'name': 'Page Subtitle',
 | 
			
		||||
        'inherit': 'page-title',
 | 
			
		||||
        'default_plugins': [
 | 
			
		||||
            {
 | 
			
		||||
                'plugin_type': 'TextPlugin',
 | 
			
		||||
                'values': {
 | 
			
		||||
                    'body': 'Page subtitle...'
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        ],
 | 
			
		||||
    },
 | 
			
		||||
    'footer_copyright': {
 | 
			
		||||
        'name': 'Copyright',
 | 
			
		||||
        'inherit': 'page-title',
 | 
			
		||||
        'default_plugins': [
 | 
			
		||||
            {
 | 
			
		||||
                'plugin_type': 'TextPlugin',
 | 
			
		||||
                'values': {
 | 
			
		||||
                    'body': 'Copyright...'
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        ],
 | 
			
		||||
    },
 | 
			
		||||
    'content': {
 | 
			
		||||
        'name': _('Content'),
 | 
			
		||||
        'default_plugins': [
 | 
			
		||||
            {
 | 
			
		||||
                'plugin_type': 'TextPlugin',
 | 
			
		||||
                'values': {'body': '<p></p>'},
 | 
			
		||||
            },
 | 
			
		||||
        ]
 | 
			
		||||
    },
 | 
			
		||||
    'post_content': {
 | 
			
		||||
        'name': _('Content'),
 | 
			
		||||
        'default_plugins': [
 | 
			
		||||
            {
 | 
			
		||||
                'plugin_type': 'TextPlugin',
 | 
			
		||||
                'values': {'body': '<p></p>'},
 | 
			
		||||
            },
 | 
			
		||||
        ]
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
CACHES = {
 | 
			
		||||
    'default': {
 | 
			
		||||
        'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
 | 
			
		||||
        'LOCATION': '127.0.0.1:11211',
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if LOGIN_URL is None:
 | 
			
		||||
    LOGIN_URL = APP_ROOT_ENDPOINT + 'accounts/login/'
 | 
			
		||||
if LOGOUT_URL is None:
 | 
			
		||||
    LOGOUT_URL = APP_ROOT_ENDPOINT + 'accounts/logout/'
 | 
			
		||||
if LOGIN_REDIRECT_URL is None:
 | 
			
		||||
    LOGIN_REDIRECT_URL = APP_ROOT_ENDPOINT
 | 
			
		||||
 | 
			
		||||
# Static files (CSS, JavaScript, Images)
 | 
			
		||||
# https://docs.djangoproject.com/en/1.7/howto/static-files/
 | 
			
		||||
 | 
			
		||||
STATIC_URL = '/static/'
 | 
			
		||||
 | 
			
		||||
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
 | 
			
		||||
 | 
			
		||||
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')
 | 
			
		||||
MEDIA_URL = APP_ROOT_ENDPOINT + 'media/'
 | 
			
		||||
FILE_UPLOAD_PERMISSIONS = 0o644
 | 
			
		||||
 | 
			
		||||
# Templates confs
 | 
			
		||||
TEMPLATE_DIRS = (
 | 
			
		||||
    os.path.join(PROJECT_DIR, "templates"),
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
META_SITE_PROTOCOL = 'http'
 | 
			
		||||
META_USE_SITES = True
 | 
			
		||||
 | 
			
		||||
MIGRATION_MODULES = {
 | 
			
		||||
    'cms': 'cms.migrations',
 | 
			
		||||
    'filer': 'filer.migrations_django',
 | 
			
		||||
    'menus': 'menus.migrations_django',
 | 
			
		||||
    'djangocms_flash': 'djangocms_flash.migrations_django',
 | 
			
		||||
    'djangocms_googlemap': 'djangocms_googlemap.migrations_django',
 | 
			
		||||
    'djangocms_inherit': 'djangocms_inherit.migrations_django',
 | 
			
		||||
    'djangocms_link': 'djangocms_link.migrations_django',
 | 
			
		||||
    'djangocms_snippet': 'djangocms_snippet.migrations_django',
 | 
			
		||||
    'djangocms_teaser': 'djangocms_teaser.migrations_django',
 | 
			
		||||
    'djangocms_column': 'djangocms_column.migrations_django',
 | 
			
		||||
    'djangocms_flash': 'djangocms_flash.migrations_django',
 | 
			
		||||
    'djangocms_googlemap': 'djangocms_googlemap.migrations_django',
 | 
			
		||||
    'djangocms_inherit': 'djangocms_inherit.migrations_django',
 | 
			
		||||
    'djangocms_style': 'djangocms_style.migrations_django',
 | 
			
		||||
    'cmsplugin_filer_image': 'cmsplugin_filer_image.migrations_django',
 | 
			
		||||
    'cmsplugin_filer_file': 'cmsplugin_filer_file.migrations_django',
 | 
			
		||||
    'cmsplugin_filer_folder': 'cmsplugin_filer_folder.migrations_django',
 | 
			
		||||
    'cmsplugin_filer_link': 'cmsplugin_filer_link.migrations_django',
 | 
			
		||||
    'cmsplugin_filer_teaser': 'cmsplugin_filer_teaser.migrations_django',
 | 
			
		||||
    'cmsplugin_filer_utils': 'cmsplugin_filer_utils.migrations_django',
 | 
			
		||||
    'cmsplugin_filer_video': 'cmsplugin_filer_video.migrations_django',
 | 
			
		||||
    'djangocms_text_ckeditor': 'djangocms_text_ckeditor.migrations',
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
STATICFILES_FINDERS = (
 | 
			
		||||
    'django.contrib.staticfiles.finders.FileSystemFinder',
 | 
			
		||||
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
 | 
			
		||||
    'compressor.finders.CompressorFinder',
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
COMPRESS_PRECOMPILERS = (
 | 
			
		||||
    ('text/less', 'lesscpy {infile}'),
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
THUMBNAIL_PROCESSORS = (
 | 
			
		||||
    'easy_thumbnails.processors.colorspace',
 | 
			
		||||
    'easy_thumbnails.processors.autocrop',
 | 
			
		||||
    'filer.thumbnail_processors.scale_and_crop_with_subject_location',
 | 
			
		||||
    'easy_thumbnails.processors.filters',
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# django-cms-text-ckeditor
 | 
			
		||||
TEXT_SAVE_IMAGE_FUNCTION = (
 | 
			
		||||
    'cmsplugin_filer_image.integrations.ckeditor.create_image_plugin'
 | 
			
		||||
)
 | 
			
		||||
TEXT_ADDITIONAL_TAGS = ('iframe',)
 | 
			
		||||
TEXT_ADDITIONAL_ATTRIBUTES = ('scrolling', 'allowfullscreen', 'frameborder')
 | 
			
		||||
USE_X_FORWARDED_HOST = True
 | 
			
		||||
 | 
			
		||||
# Django Bootstrap - Settings
 | 
			
		||||
# Added Configuration for bootstrap static files to load over https.
 | 
			
		||||
BOOTSTRAP3 = {
 | 
			
		||||
 | 
			
		||||
    # The URL to the jQuery JavaScript file
 | 
			
		||||
    'jquery_url': '//code.jquery.com/jquery.min.js',
 | 
			
		||||
 | 
			
		||||
    # The Bootstrap base URL
 | 
			
		||||
    'base_url': '//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/',
 | 
			
		||||
 | 
			
		||||
    # The complete URL to the Bootstrap CSS file
 | 
			
		||||
    # (None means derive it from base_url)
 | 
			
		||||
    'css_url': None,
 | 
			
		||||
 | 
			
		||||
    # The complete URL to the Bootstrap CSS file (None means no theme)
 | 
			
		||||
    'theme_url': None,
 | 
			
		||||
 | 
			
		||||
    # The complete URL to the Bootstrap JavaScript file
 | 
			
		||||
    # (None means derive it from base_url)
 | 
			
		||||
    'javascript_url': None,
 | 
			
		||||
 | 
			
		||||
    # Put JavaScript in the HEAD section of the HTML document
 | 
			
		||||
    # (only relevant if you use bootstrap3.html)
 | 
			
		||||
    'javascript_in_head': False,
 | 
			
		||||
 | 
			
		||||
    # Include jQuery with Bootstrap JavaScript
 | 
			
		||||
    # (affects django-bootstrap3 template tags)
 | 
			
		||||
    'include_jquery': False,
 | 
			
		||||
 | 
			
		||||
    # Label class to use in horizontal forms
 | 
			
		||||
    'horizontal_label_class': 'col-md-3',
 | 
			
		||||
 | 
			
		||||
    # Field class to use in horizontal forms
 | 
			
		||||
    'horizontal_field_class': 'col-md-9',
 | 
			
		||||
 | 
			
		||||
    # Set HTML required attribute on required fields
 | 
			
		||||
    'set_required': True,
 | 
			
		||||
 | 
			
		||||
    # Set HTML disabled attribute on disabled fields
 | 
			
		||||
    'set_disabled': False,
 | 
			
		||||
 | 
			
		||||
    # Set placeholder attributes to label if no placeholder is provided
 | 
			
		||||
    'set_placeholder': True,
 | 
			
		||||
 | 
			
		||||
    # Class to indicate required (better to set this in your Django form)
 | 
			
		||||
    'required_css_class': '',
 | 
			
		||||
 | 
			
		||||
    # Class to indicate error (better to set this in your Django form)
 | 
			
		||||
    'error_css_class': 'has-error',
 | 
			
		||||
 | 
			
		||||
    # Class to indicate success, meaning the field has valid input
 | 
			
		||||
    # (better to set this in your Django form)
 | 
			
		||||
    'success_css_class': 'has-success',
 | 
			
		||||
 | 
			
		||||
    # Renderers (only set these if you have studied the source and understand
 | 
			
		||||
    # the inner workings)
 | 
			
		||||
    'formset_renderers': {
 | 
			
		||||
        'default': 'bootstrap3.renderers.FormsetRenderer',
 | 
			
		||||
    },
 | 
			
		||||
    'form_renderers': {
 | 
			
		||||
        'default': 'bootstrap3.renderers.FormRenderer',
 | 
			
		||||
    },
 | 
			
		||||
    'field_renderers': {
 | 
			
		||||
        'default': 'bootstrap3.renderers.FieldRenderer',
 | 
			
		||||
        'inline': 'bootstrap3.renderers.InlineFieldRenderer',
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# djangocms_blog config
 | 
			
		||||
 | 
			
		||||
BLOG_ENABLE_COMMENTS = False
 | 
			
		||||
BLOG_USE_PLACEHOLDER = True
 | 
			
		||||
BLOG_IMAGE_THUMBNAIL_SIZE = {'size': '120x120', 'crop': True, 'upscale': False}
 | 
			
		||||
BLOG_IMAGE_FULL_SIZE = {'size': '640x120', 'crop': True, 'upscale': False}
 | 
			
		||||
BLOG_PAGINATION = 4
 | 
			
		||||
BLOG_LATEST_POSTS = BLOG_PAGINATION
 | 
			
		||||
BLOG_POSTS_LIST_TRUNCWORDS_COUNT = 100
 | 
			
		||||
BLOG_MULTISITE = True
 | 
			
		||||
BLOG_AUTHOR_DEFAULT = True
 | 
			
		||||
 | 
			
		||||
# django-meta
 | 
			
		||||
META_SITE_PROTOCOL = "https"
 | 
			
		||||
META_SITE_DOMAIN = "ungleich.ch"
 | 
			
		||||
META_SITE_TYPE = "website"
 | 
			
		||||
META_SITE_NAME = "ungleich"
 | 
			
		||||
META_INCLUDE_KEYWORDS = ["ungleich", "hosting", "switzerland",
 | 
			
		||||
                         "Schweiz", "Swiss", "cdist"]
 | 
			
		||||
META_USE_SITES = True
 | 
			
		||||
 | 
			
		||||
PARLER_LANGUAGES = {1: ({'code': 'en-us'}, {'code': 'de'}, )}
 | 
			
		||||
| 
						 | 
				
			
			@ -40,7 +40,6 @@ LOGIN_REDIRECT_URL = None
 | 
			
		|||
 | 
			
		||||
EMAIL_HOST = "localhost"
 | 
			
		||||
EMAIL_PORT = 25
 | 
			
		||||
 | 
			
		||||
SECRET_KEY = env('DJANGO_SECRET_KEY')
 | 
			
		||||
 | 
			
		||||
# Application definition
 | 
			
		||||
| 
						 | 
				
			
			@ -60,15 +59,22 @@ INSTALLED_APPS = (
 | 
			
		|||
    'parler',
 | 
			
		||||
    'taggit',
 | 
			
		||||
    'taggit_autosuggest',
 | 
			
		||||
    'django_select2',
 | 
			
		||||
    # 'django_select2',
 | 
			
		||||
    'meta',
 | 
			
		||||
    'meta_mixin',
 | 
			
		||||
    'djangocms_blog',
 | 
			
		||||
    'bootstrap3',
 | 
			
		||||
    'compressor',
 | 
			
		||||
    'filer',
 | 
			
		||||
    'djangocms_blog',
 | 
			
		||||
    'cms',  # django CMS itself
 | 
			
		||||
    'aldryn_apphooks_config',
 | 
			
		||||
    'aldryn_boilerplates',
 | 
			
		||||
    'aldryn_categories',
 | 
			
		||||
    'aldryn_common',
 | 
			
		||||
    'aldryn_newsblog',
 | 
			
		||||
    'aldryn_people',
 | 
			
		||||
    'aldryn_reversion',
 | 
			
		||||
    'aldryn_translation_tools',
 | 
			
		||||
    'treebeard',  # utilities for implementing a tree
 | 
			
		||||
    'sekizai',  # for javascript and css management
 | 
			
		||||
    'menus',  # helper for model independent hierarchical website navigation
 | 
			
		||||
| 
						 | 
				
			
			@ -80,7 +86,6 @@ INSTALLED_APPS = (
 | 
			
		|||
   'djangocms_picture',
 | 
			
		||||
   'djangocms_video',
 | 
			
		||||
   'djangocms_flash',
 | 
			
		||||
 | 
			
		||||
   'djangocms_googlemap',
 | 
			
		||||
   'djangocms_inherit',
 | 
			
		||||
   'djangocms_link',
 | 
			
		||||
| 
						 | 
				
			
			@ -431,6 +436,11 @@ 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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										21
									
								
								membership/migrations/0002_auto_20160324_2336.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								membership/migrations/0002_auto_20160324_2336.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
# -*- coding: utf-8 -*-
 | 
			
		||||
# Generated by Django 1.9.4 on 2016-03-24 23:36
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
import django.db.models.deletion
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ('membership', '0001_initial'),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.AlterField(
 | 
			
		||||
            model_name='creditcards',
 | 
			
		||||
            name='user_id',
 | 
			
		||||
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='membership.CustomUser'),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
| 
						 | 
				
			
			@ -45,3 +45,5 @@ django-filer
 | 
			
		|||
cmsplugin-filer
 | 
			
		||||
django-reversion
 | 
			
		||||
pylibmc
 | 
			
		||||
django_extensions
 | 
			
		||||
django-debug-toolbar
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										0
									
								
								templates/cms/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								templates/cms/__init__.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -32,6 +32,6 @@
 | 
			
		|||
{#        {% endblock %}#}
 | 
			
		||||
    </header>
 | 
			
		||||
{% endspaceless %}
 | 
			
		||||
<div class="digitalglarus-blog-content">{{ post.abstract| safe }}</div>
 | 
			
		||||
<div class="digitalglarus-blog-content">{% render_placeholder post.content %}</div>
 | 
			
		||||
</article>
 | 
			
		||||
{% endblock content_blog %}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue