Merge branch 'release/version-1.1'
This commit is contained in:
		
				commit
				
					
						0ee5eaba90
					
				
			
		
					 42 changed files with 1857 additions and 30 deletions
				
			
		
							
								
								
									
										16
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -1 +1,17 @@
 | 
				
			||||||
db.sqlite3
 | 
					db.sqlite3
 | 
				
			||||||
 | 
					*.pyc
 | 
				
			||||||
 | 
					build/
 | 
				
			||||||
 | 
					dist/
 | 
				
			||||||
 | 
					*.egg_info
 | 
				
			||||||
 | 
					#editors && utilites.
 | 
				
			||||||
 | 
					*.swp
 | 
				
			||||||
 | 
					*~
 | 
				
			||||||
 | 
					__pycache__/
 | 
				
			||||||
 | 
					.ropeproject/
 | 
				
			||||||
 | 
					#django
 | 
				
			||||||
 | 
					local_settings.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					media/*
 | 
				
			||||||
 | 
					!media/keep
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CACHE/
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										20
									
								
								digital_glarus/migrations/0002_auto_20150522_0450.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								digital_glarus/migrations/0002_auto_20150522_0450.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,20 @@
 | 
				
			||||||
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
 | 
					from __future__ import unicode_literals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.db import models, migrations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Migration(migrations.Migration):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies = [
 | 
				
			||||||
 | 
					        ('digital_glarus', '0001_initial'),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    operations = [
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='message',
 | 
				
			||||||
 | 
					            name='email',
 | 
				
			||||||
 | 
					            field=models.EmailField(max_length=75),
 | 
				
			||||||
 | 
					            preserve_default=True,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
							
								
								
									
										0
									
								
								dynamicweb/local/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								dynamicweb/local/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										13
									
								
								dynamicweb/local/local_settings.py.example
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								dynamicweb/local/local_settings.py.example
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					# from dynamicweb.settings import SITE_ROOT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEBUG = True
 | 
				
			||||||
 | 
					TEMPLATE_DEBUG = DEBUG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DATABASES = {
 | 
				
			||||||
 | 
					    'default': {
 | 
				
			||||||
 | 
						'ENGINE': 'django.db.backends.postgresql_psycopg2',
 | 
				
			||||||
 | 
						'NAME': 'db_name',
 | 
				
			||||||
 | 
						'USER': 'username',
 | 
				
			||||||
 | 
						'PASSWORD': 'password',
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,24 +1,27 @@
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
Django settings for dynamicweb project.
 | 
					Copyright 2015 Ungleich.
 | 
				
			||||||
 | 
					 | 
				
			||||||
Generated by 'django-admin startproject' using Django 1.8.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
For more information on this file, see
 | 
					 | 
				
			||||||
https://docs.djangoproject.com/en/1.8/topics/settings/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
For the full list of settings and their values, see
 | 
					 | 
				
			||||||
https://docs.djangoproject.com/en/1.8/ref/settings/
 | 
					 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 | 
					# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
 | 
					import logging
 | 
				
			||||||
import django.db.backends.postgresql_psycopg2
 | 
					import django.db.backends.postgresql_psycopg2
 | 
				
			||||||
 | 
					from django.utils.translation import ugettext_lazy as _
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gettext = lambda s: s
 | 
				
			||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
					BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
# Quick-start development settings - unsuitable for production
 | 
					# Quick-start development settings - unsuitable for production
 | 
				
			||||||
# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
 | 
					# 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# SECURITY WARNING: keep the secret key used in production secret!
 | 
					# SECURITY WARNING: keep the secret key used in production secret!
 | 
				
			||||||
SECRET_KEY = 'xlhyv_l5-z6e8_@q6)n0up1a0$5-aad7d)om2t8g$bi6*@q44i'
 | 
					SECRET_KEY = 'xlhyv_l5-z6e8_@q6)n0up1a0$5-aad7d)om2t8g$bi6*@q44i'
 | 
				
			||||||
| 
						 | 
					@ -34,13 +37,52 @@ ALLOWED_HOSTS = [
 | 
				
			||||||
# Application definition
 | 
					# Application definition
 | 
				
			||||||
 | 
					
 | 
				
			||||||
INSTALLED_APPS = (
 | 
					INSTALLED_APPS = (
 | 
				
			||||||
 | 
					    'djangocms_admin_style',
 | 
				
			||||||
    'django.contrib.admin',
 | 
					    'django.contrib.admin',
 | 
				
			||||||
    'django.contrib.auth',
 | 
					    'django.contrib.auth',
 | 
				
			||||||
    'django.contrib.contenttypes',
 | 
					    'django.contrib.contenttypes',
 | 
				
			||||||
    'django.contrib.sessions',
 | 
					    'django.contrib.sessions',
 | 
				
			||||||
    'django.contrib.messages',
 | 
					    'django.contrib.messages',
 | 
				
			||||||
    'django.contrib.staticfiles',
 | 
					    'django.contrib.staticfiles',
 | 
				
			||||||
    'digital_glarus'
 | 
					    'django.contrib.sites',
 | 
				
			||||||
 | 
					    'cms',  # django CMS itself
 | 
				
			||||||
 | 
					    'digital_glarus',
 | 
				
			||||||
 | 
					    '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',
 | 
				
			||||||
 | 
					    #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',
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MIDDLEWARE_CLASSES = (
 | 
					MIDDLEWARE_CLASSES = (
 | 
				
			||||||
| 
						 | 
					@ -51,7 +93,13 @@ MIDDLEWARE_CLASSES = (
 | 
				
			||||||
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 | 
					    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 | 
				
			||||||
    'django.contrib.messages.middleware.MessageMiddleware',
 | 
					    'django.contrib.messages.middleware.MessageMiddleware',
 | 
				
			||||||
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
 | 
					    'django.middleware.clickjacking.XFrameOptionsMiddleware',
 | 
				
			||||||
    'django.middleware.security.SecurityMiddleware',
 | 
					    'django.middleware.locale.LocaleMiddleware',
 | 
				
			||||||
 | 
					    # django-cms middlewares
 | 
				
			||||||
 | 
					    'cms.middleware.user.CurrentUserMiddleware',
 | 
				
			||||||
 | 
					    'cms.middleware.page.CurrentPageMiddleware',
 | 
				
			||||||
 | 
					    'cms.middleware.toolbar.ToolbarMiddleware',
 | 
				
			||||||
 | 
					    'cms.middleware.language.LanguageCookieMiddleware',
 | 
				
			||||||
 | 
					    # /djangocms-middlewares
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ROOT_URLCONF = 'dynamicweb.urls'
 | 
					ROOT_URLCONF = 'dynamicweb.urls'
 | 
				
			||||||
| 
						 | 
					@ -74,6 +122,31 @@ TEMPLATES = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
WSGI_APPLICATION = 'dynamicweb.wsgi.application'
 | 
					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(BASE_DIR, 'templates'),
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CMS_TEMPLATES_DIR = {
 | 
				
			||||||
 | 
					    1: os.path.join(TEMPLATE_DIRS[0], 'cms/ungleich.ch/'),
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Database
 | 
					# Database
 | 
				
			||||||
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
 | 
					# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
 | 
				
			||||||
| 
						 | 
					@ -86,9 +159,7 @@ DATABASES = {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Internationalization
 | 
					# Internationalization
 | 
				
			||||||
# https://docs.djangoproject.com/en/1.8/topics/i18n/
 | 
					# https://docs.djangoproject.com/en/1.7/topics/i18n/
 | 
				
			||||||
 | 
					 | 
				
			||||||
LANGUAGE_CODE = 'en-us'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
TIME_ZONE = 'UTC'
 | 
					TIME_ZONE = 'UTC'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -98,15 +169,138 @@ USE_L10N = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USE_TZ = True
 | 
					USE_TZ = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LANGUAGES = (
 | 
				
			||||||
 | 
					    ('en-us', _('US English')),
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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...'
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					try:
 | 
				
			||||||
 | 
					    from dynamicweb.local.local_settings import *
 | 
				
			||||||
 | 
					except ImportError:
 | 
				
			||||||
 | 
					    logging.warning("No local_settings file found.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if not APP_ROOT_ENDPOINT.endswith('/'):
 | 
				
			||||||
 | 
					    APP_ROOT += '/'
 | 
				
			||||||
 | 
					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)
 | 
					# Static files (CSS, JavaScript, Images)
 | 
				
			||||||
# https://docs.djangoproject.com/en/1.8/howto/static-files/
 | 
					# https://docs.djangoproject.com/en/1.7/howto/static-files/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STATIC_URL = '/static/'
 | 
					STATIC_URL = '/static/'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
 | 
					STATIC_ROOT = os.path.join(BASE_DIR, 'static')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
try:
 | 
					# Media files.
 | 
				
			||||||
    from .settings_local import *
 | 
					MEDIA_ROOT = os.path.abspath(os.path.join(BASE_DIR, '..', 'media'))
 | 
				
			||||||
except ImportError as e:
 | 
					MEDIA_URL = APP_ROOT_ENDPOINT + 'media/'
 | 
				
			||||||
    pass
 | 
					
 | 
				
			||||||
 | 
					# Templates confs
 | 
				
			||||||
 | 
					TEMPLATE_DIRS = (
 | 
				
			||||||
 | 
					    os.path.join(BASE_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_django',
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,21 @@
 | 
				
			||||||
from django.conf.urls import include, url
 | 
					from django.conf.urls import patterns, include, url
 | 
				
			||||||
from django.contrib import admin
 | 
					from django.contrib import admin
 | 
				
			||||||
 | 
					# deprecated in version 1.8
 | 
				
			||||||
 | 
					from django.conf.urls.i18n import i18n_patterns
 | 
				
			||||||
 | 
					from django.conf.urls.static import static
 | 
				
			||||||
 | 
					from dynamicweb import settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
urlpatterns = [
 | 
					urlpatterns = [
 | 
				
			||||||
    # Examples:
 | 
					 | 
				
			||||||
    # url(r'^$', 'dynamicweb.views.home', name='home'),
 | 
					 | 
				
			||||||
    # url(r'^blog/', include('blog.urls')),
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    url(r'^admin/', include(admin.site.urls)),
 | 
					    url(r'^admin/', include(admin.site.urls)),
 | 
				
			||||||
    url(r'^digital.glarus/', include('digital_glarus.urls', namespace="digital_glarus")),
 | 
					    url(r'^digital.glarus/', include('digital_glarus.urls',
 | 
				
			||||||
]
 | 
					                                     namespace="digital_glarus")),
 | 
				
			||||||
 | 
					    url(r'^', include('cms.urls')),
 | 
				
			||||||
 | 
					    url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')),
 | 
				
			||||||
 | 
					] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if settings.DEBUG:
 | 
				
			||||||
 | 
					    urlpatterns += patterns('',
 | 
				
			||||||
 | 
					                            url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
 | 
				
			||||||
 | 
					                                'document_root': settings.MEDIA_ROOT,
 | 
				
			||||||
 | 
					                            }),
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										0
									
								
								foo.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								foo.txt
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								media/keep
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								media/keep
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -1,2 +1,44 @@
 | 
				
			||||||
 | 
					# lib
 | 
				
			||||||
psycopg2>=2.6
 | 
					psycopg2>=2.6
 | 
				
			||||||
django>=1.7
 | 
					Pillow>=2
 | 
				
			||||||
 | 
					html5lib==0.999
 | 
				
			||||||
 | 
					six==1.3.0 #compat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# django
 | 
				
			||||||
 | 
					django==1.7.8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#django-assets
 | 
				
			||||||
 | 
					django-bootstrap3
 | 
				
			||||||
 | 
					lesscpy
 | 
				
			||||||
 | 
					django_compressor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# django apps
 | 
				
			||||||
 | 
					django-treebeard==3.0
 | 
				
			||||||
 | 
					django-sekizai==0.7
 | 
				
			||||||
 | 
					django-classy-tags==0.5
 | 
				
			||||||
 | 
					django-filer==0.9.9
 | 
				
			||||||
 | 
					django-reversion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# django-cms
 | 
				
			||||||
 | 
					django-cms
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# django-cms-plugins
 | 
				
			||||||
 | 
					djangocms-admin-style==0.2.5
 | 
				
			||||||
 | 
					djangocms-text-ckeditor>=2.4
 | 
				
			||||||
 | 
					-e git+git@github.com:applegrew/django-select2.git#egg=django-select2-py3
 | 
				
			||||||
 | 
					djangocms-blog>=0.4.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					djangocms-flash
 | 
				
			||||||
 | 
					djangocms-googlemap
 | 
				
			||||||
 | 
					djangocms-inherit
 | 
				
			||||||
 | 
					djangocms-teaser
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					djangocms-link
 | 
				
			||||||
 | 
					djangocms-snippet
 | 
				
			||||||
 | 
					djangocms-style
 | 
				
			||||||
 | 
					djangocms-column
 | 
				
			||||||
 | 
					djangocms-grid
 | 
				
			||||||
 | 
					djangocms-oembed
 | 
				
			||||||
 | 
					djangocms-table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cmsplugin-filer==0.10.1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										78
									
								
								stable_requirements.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								stable_requirements.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,78 @@
 | 
				
			||||||
 | 
					# lib
 | 
				
			||||||
 | 
					psycopg2==2.6
 | 
				
			||||||
 | 
					Pillow==2.8.1
 | 
				
			||||||
 | 
					html5lib==0.999
 | 
				
			||||||
 | 
					six==1.3.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# django
 | 
				
			||||||
 | 
					django==1.7.8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#django-assets
 | 
				
			||||||
 | 
					django-bootstrap3==5.4.0
 | 
				
			||||||
 | 
					lesscpy==0.10.2
 | 
				
			||||||
 | 
					django-compressor==1.5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# django apps
 | 
				
			||||||
 | 
					django-treebeard==3.0
 | 
				
			||||||
 | 
					django-sekizai==0.7
 | 
				
			||||||
 | 
					django-classy-tags==0.5
 | 
				
			||||||
 | 
					django-filer==0.9.9
 | 
				
			||||||
 | 
					django-reversion==1.8.7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# django-cms
 | 
				
			||||||
 | 
					django-cms==3.1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# django-cms-plugins
 | 
				
			||||||
 | 
					djangocms-admin-style==0.2.5
 | 
				
			||||||
 | 
					djangocms-text-ckeditor==2.4.3
 | 
				
			||||||
 | 
					djangocms-blog==0.4.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					djangocms-flash==0.2.0
 | 
				
			||||||
 | 
					djangocms-googlemap==0.2
 | 
				
			||||||
 | 
					djangocms-inherit==0.1
 | 
				
			||||||
 | 
					djangocms-teaser==0.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					djangocms-link==1.6.1
 | 
				
			||||||
 | 
					djangocms-snippet==1.5
 | 
				
			||||||
 | 
					djangocms-style==1.5
 | 
				
			||||||
 | 
					djangocms-column==1.5
 | 
				
			||||||
 | 
					djangocms-grid==1.2
 | 
				
			||||||
 | 
					djangocms-oembed==0.5
 | 
				
			||||||
 | 
					djangocms-table==1.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cmsplugin-filer==0.10.1
 | 
				
			||||||
 | 
					## The following requirements were added by pip freeze:
 | 
				
			||||||
 | 
					aldryn-blog==0.4.6
 | 
				
			||||||
 | 
					aldryn-boilerplates==0.7
 | 
				
			||||||
 | 
					aldryn-common==0.1.3
 | 
				
			||||||
 | 
					aldryn-search==0.2.7
 | 
				
			||||||
 | 
					cssselect==0.9.1
 | 
				
			||||||
 | 
					Django==1.7.8
 | 
				
			||||||
 | 
					django-admin-enhancer==1.0.0
 | 
				
			||||||
 | 
					django-appconf==1.0.1
 | 
				
			||||||
 | 
					django-appdata==0.1.4
 | 
				
			||||||
 | 
					django-haystack==2.3.1
 | 
				
			||||||
 | 
					django-hvad==1.2.1
 | 
				
			||||||
 | 
					django-meta==0.2.1
 | 
				
			||||||
 | 
					django-meta-mixin==0.1.1
 | 
				
			||||||
 | 
					django-mptt==0.6.1
 | 
				
			||||||
 | 
					django-parler==1.4
 | 
				
			||||||
 | 
					django-polymorphic==0.7.1
 | 
				
			||||||
 | 
					-e git+git@github.com:applegrew/django-select2.git@7850d52b648eaa6748f1640edbc9897114e4b3ac#egg=Django_Select2-master
 | 
				
			||||||
 | 
					django-sortedm2m==0.10.0
 | 
				
			||||||
 | 
					django-spurl==0.6
 | 
				
			||||||
 | 
					django-standard-form==1.1.1
 | 
				
			||||||
 | 
					django-taggit==0.14.0
 | 
				
			||||||
 | 
					django-taggit-autosuggest==0.2.7
 | 
				
			||||||
 | 
					django-taggit-templatetags==0.2.5
 | 
				
			||||||
 | 
					django-templatetag-sugar==1.0
 | 
				
			||||||
 | 
					easy-thumbnails==2.2
 | 
				
			||||||
 | 
					lxml==3.4.4
 | 
				
			||||||
 | 
					micawber==0.3.2
 | 
				
			||||||
 | 
					ply==3.6
 | 
				
			||||||
 | 
					pyquery==1.2.9
 | 
				
			||||||
 | 
					pytz==2015.4
 | 
				
			||||||
 | 
					South==1.0.2
 | 
				
			||||||
 | 
					Unidecode==0.4.17
 | 
				
			||||||
 | 
					URLObject==2.4.0
 | 
				
			||||||
 | 
					YURL==0.13
 | 
				
			||||||
							
								
								
									
										399
									
								
								static/blog.ungleich.ch/css/clean-blog.css
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										399
									
								
								static/blog.ungleich.ch/css/clean-blog.css
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,399 @@
 | 
				
			||||||
 | 
					/*!
 | 
				
			||||||
 | 
					 * 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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								static/blog.ungleich.ch/img/home-bg.jpg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								static/blog.ungleich.ch/img/home-bg.jpg
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 169 KiB  | 
							
								
								
									
										70
									
								
								static/blog.ungleich.ch/img/logo_white.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								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
									
								
								static/blog.ungleich.ch/js/navbar-scroll-up.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								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
									
								
								static/blog.ungleich.ch/less/clean-blog.less
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										458
									
								
								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
									
								
								static/blog.ungleich.ch/less/mixins.less
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								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
									
								
								static/blog.ungleich.ch/less/variables.less
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								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
									
								
								static/blog.ungleich.ch/vendor/js/jquery.min.js
									
										
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								static/blog.ungleich.ch/vendor/js/jquery.min.js
									
										
									
									
										vendored
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										0
									
								
								static/keep
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								static/keep
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										6
									
								
								templates/cms/ungleich.ch/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								templates/cms/ungleich.ch/__init__.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
 | 
					from django.utils.translation import ugettext_lazy as _
 | 
				
			||||||
 | 
					TEMPLATES = {
 | 
				
			||||||
 | 
					    'blog.html': _('Blog'),
 | 
				
			||||||
 | 
					    'page.html': _('Page'),
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										40
									
								
								templates/cms/ungleich.ch/_footer.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								templates/cms/ungleich.ch/_footer.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,40 @@
 | 
				
			||||||
 | 
					{% load cms_tags %}
 | 
				
			||||||
 | 
					<hr />
 | 
				
			||||||
 | 
					<!-- Footer -->
 | 
				
			||||||
 | 
					<footer>
 | 
				
			||||||
 | 
					  <div class="container">
 | 
				
			||||||
 | 
					    <div class="row">
 | 
				
			||||||
 | 
					      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
 | 
				
			||||||
 | 
						<ul class="list-inline text-center">
 | 
				
			||||||
 | 
						  <li>
 | 
				
			||||||
 | 
						    <a href="#">
 | 
				
			||||||
 | 
						      <span class="fa-stack fa-lg">
 | 
				
			||||||
 | 
							<i class="fa fa-circle fa-stack-2x"></i>
 | 
				
			||||||
 | 
							<i class="fa fa-twitter fa-stack-1x fa-inverse"></i>
 | 
				
			||||||
 | 
						      </span>
 | 
				
			||||||
 | 
						    </a>
 | 
				
			||||||
 | 
						  </li>
 | 
				
			||||||
 | 
						  <li>
 | 
				
			||||||
 | 
						    <a href="#">
 | 
				
			||||||
 | 
						      <span class="fa-stack fa-lg">
 | 
				
			||||||
 | 
							<i class="fa fa-circle fa-stack-2x"></i>
 | 
				
			||||||
 | 
							<i class="fa fa-linkedin fa-stack-1x fa-inverse"></i>
 | 
				
			||||||
 | 
						      </span>
 | 
				
			||||||
 | 
						    </a>
 | 
				
			||||||
 | 
						  </li>
 | 
				
			||||||
 | 
						  <li>
 | 
				
			||||||
 | 
						    <a href="#">
 | 
				
			||||||
 | 
						      <span class="fa-stack fa-lg">
 | 
				
			||||||
 | 
							<i class="fa fa-circle fa-stack-2x"></i>
 | 
				
			||||||
 | 
							<i class="fa fa-github fa-stack-1x fa-inverse"></i>
 | 
				
			||||||
 | 
						      </span>
 | 
				
			||||||
 | 
						    </a>
 | 
				
			||||||
 | 
						  </li>
 | 
				
			||||||
 | 
						</ul>
 | 
				
			||||||
 | 
						<p class="copyright text-muted text-centered">
 | 
				
			||||||
 | 
						  {% static_placeholder "footer_copyright" %}
 | 
				
			||||||
 | 
						</p>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</footer>
 | 
				
			||||||
							
								
								
									
										23
									
								
								templates/cms/ungleich.ch/_header_base.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								templates/cms/ungleich.ch/_header_base.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					{% load cms_tags staticfiles %}
 | 
				
			||||||
 | 
					<!-- Page Header -->
 | 
				
			||||||
 | 
					<!-- Set your background image for this header on the line below. -->
 | 
				
			||||||
 | 
					<header class="intro-header"
 | 
				
			||||||
 | 
						{% if request.current_page.ungleichpage %}
 | 
				
			||||||
 | 
						style="background-image: url('{{ request.current_page.ungleichpage.image.url }}');"
 | 
				
			||||||
 | 
						{% else %}
 | 
				
			||||||
 | 
						style="background-image: url('{% static 'blog.ungleich.ch/img/home-bg.jpg'  %}');"
 | 
				
			||||||
 | 
						{% endif %}
 | 
				
			||||||
 | 
						>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="container">
 | 
				
			||||||
 | 
					    <div class="row">
 | 
				
			||||||
 | 
					      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
 | 
				
			||||||
 | 
						<div class="site-heading">
 | 
				
			||||||
 | 
						  <h1> {% page_attribute 'page_title'  %}  </h1>
 | 
				
			||||||
 | 
						  <hr class="small">
 | 
				
			||||||
 | 
						  <span class="subheading"> {% page_attribute 'meta_description' %}</span>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</header>
 | 
				
			||||||
							
								
								
									
										36
									
								
								templates/cms/ungleich.ch/_menu.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								templates/cms/ungleich.ch/_menu.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					{% load menu_tags staticfiles cms_tags %}
 | 
				
			||||||
 | 
					<!-- Navigation -->
 | 
				
			||||||
 | 
					<nav class="navbar navbar-default navbar-custom navbar-fixed-top">
 | 
				
			||||||
 | 
					  <div class="container-fluid">
 | 
				
			||||||
 | 
					    <!-- Brand and toggle get grouped for better mobile display -->
 | 
				
			||||||
 | 
					    <div class="navbar-header page-scroll">
 | 
				
			||||||
 | 
					      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
 | 
				
			||||||
 | 
						<span class="sr-only">Toggle navigation</span>
 | 
				
			||||||
 | 
						<span class="icon-bar"></span>
 | 
				
			||||||
 | 
						<span class="icon-bar"></span>
 | 
				
			||||||
 | 
						<span class="icon-bar"></span>
 | 
				
			||||||
 | 
					      </button>
 | 
				
			||||||
 | 
					      <a class="navbar-brand" href="/">
 | 
				
			||||||
 | 
						<img src="{% static "blog.ungleich.ch/img/logo_white.svg" %}" />
 | 
				
			||||||
 | 
					      </a>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- Collect the nav links, forms, and other content for toggling -->
 | 
				
			||||||
 | 
					    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
 | 
				
			||||||
 | 
					      <ul class="nav navbar-nav navbar-right">
 | 
				
			||||||
 | 
						{% for child in children %}
 | 
				
			||||||
 | 
						<li class="child{% if child.selected %} selected{% endif %}{% if child.ancestor %} ancestor{% endif %}{% if child.sibling %} sibling{% endif %}{% if child.descendant %} descendant{% endif %}">
 | 
				
			||||||
 | 
						  <a href="{{ child.attr.redirect_url|default:child.get_absolute_url }}">{{ child.get_menu_title }}</a>
 | 
				
			||||||
 | 
						  {% if child.children %}
 | 
				
			||||||
 | 
						  <ul>
 | 
				
			||||||
 | 
						    {% show_menu from_level to_level extra_inactive extra_active template "" "" child %}
 | 
				
			||||||
 | 
						  </ul>
 | 
				
			||||||
 | 
						  {% endif %}
 | 
				
			||||||
 | 
						</li>
 | 
				
			||||||
 | 
						{% endfor %}
 | 
				
			||||||
 | 
					      </ul>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <!-- /.navbar-collapse -->
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					  <!-- /.container -->
 | 
				
			||||||
 | 
					</nav>
 | 
				
			||||||
							
								
								
									
										69
									
								
								templates/cms/ungleich.ch/base.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								templates/cms/ungleich.ch/base.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,69 @@
 | 
				
			||||||
 | 
					{% load cms_tags menu_tags sekizai_tags staticfiles bootstrap3 %}
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					  <head>
 | 
				
			||||||
 | 
					    <title>{% page_attribute "page_title" %}</title>
 | 
				
			||||||
 | 
					    {% addtoblock "external-css" %}
 | 
				
			||||||
 | 
					    {% bootstrap_css %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
 | 
				
			||||||
 | 
					    <link href='http://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
 | 
				
			||||||
 | 
					    <link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800'
 | 
				
			||||||
 | 
						  rel='stylesheet' type='text/css'>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
 | 
				
			||||||
 | 
					    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
 | 
				
			||||||
 | 
					    <!--[if lt IE 9]>
 | 
				
			||||||
 | 
						<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
 | 
				
			||||||
 | 
						<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
 | 
				
			||||||
 | 
						<![endif]-->
 | 
				
			||||||
 | 
					    {% endaddtoblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    {% addtoblock "css" %}
 | 
				
			||||||
 | 
					    <link href="{% static 'blog.ungleich.ch/css/clean-blog.css' %}" type="text/css"
 | 
				
			||||||
 | 
						  rel="stylesheet" medial="all" />
 | 
				
			||||||
 | 
					    {% endaddtoblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    {% render_block "external-css" %}
 | 
				
			||||||
 | 
					    {% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %}
 | 
				
			||||||
 | 
					  </head>
 | 
				
			||||||
 | 
					  <body>
 | 
				
			||||||
 | 
					    {% cms_toolbar %}
 | 
				
			||||||
 | 
					    {% show_menu 0 1 100 100 "cms/ungleich.ch/_menu.html" %}
 | 
				
			||||||
 | 
					    <!-- body -->
 | 
				
			||||||
 | 
					    <!-- Main Content -->
 | 
				
			||||||
 | 
					    {% block base_header %}
 | 
				
			||||||
 | 
					    {% include "cms/ungleich.ch/_header_base.html"  %}
 | 
				
			||||||
 | 
					    {% endblock %}
 | 
				
			||||||
 | 
					    <div class="container">
 | 
				
			||||||
 | 
					      <div class="row">
 | 
				
			||||||
 | 
						<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
 | 
				
			||||||
 | 
						  {% block base_content %}
 | 
				
			||||||
 | 
						  {% placeholder "default" %}
 | 
				
			||||||
 | 
						  {% endblock %}
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <!-- end body -->
 | 
				
			||||||
 | 
					    {% include "cms/ungleich.ch/_footer.html" %}
 | 
				
			||||||
 | 
					    {% addtoblock "external-js" %}
 | 
				
			||||||
 | 
					    {% bootstrap_javascript %}
 | 
				
			||||||
 | 
					    {% endaddtoblock %}
 | 
				
			||||||
 | 
					    {% addtoblock "js" %}
 | 
				
			||||||
 | 
					    <script>
 | 
				
			||||||
 | 
					      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 | 
				
			||||||
 | 
					      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 | 
				
			||||||
 | 
					      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 | 
				
			||||||
 | 
					      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      ga('create', 'UA-62285904-4', 'auto');
 | 
				
			||||||
 | 
					      ga('send', 'pageview');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    </script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <script src="{% static 'blog.ungleich.ch/vendor/js/jquery.min.js' %}" type="text/javascript" />
 | 
				
			||||||
 | 
					    <script src="{% static 'blog.ungleich.ch/js/navbar-scroll-up.js' %}" type="text/javascript" />
 | 
				
			||||||
 | 
					    {% endaddtoblock %}
 | 
				
			||||||
 | 
					    {% render_block "js" postprocessor "compressor.contrib.sekizai.compress" %}
 | 
				
			||||||
 | 
					    {% render_block "external-js" %}
 | 
				
			||||||
 | 
					  </body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										5
									
								
								templates/cms/ungleich.ch/blog.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								templates/cms/ungleich.ch/blog.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					{% extends "cms/ungleich.ch/base.html" %}
 | 
				
			||||||
 | 
					{% block base_content %}
 | 
				
			||||||
 | 
					{% block content %}
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
							
								
								
									
										3
									
								
								templates/cms/ungleich.ch/index.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								templates/cms/ungleich.ch/index.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					{% extends "cms/ungleich.ch/base.html" %}
 | 
				
			||||||
 | 
					{% block base_content %}
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
							
								
								
									
										5
									
								
								templates/cms/ungleich.ch/page.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								templates/cms/ungleich.ch/page.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					{% extends "cms/ungleich.ch/base.html" %}
 | 
				
			||||||
 | 
					{% load cms_tags %}
 | 
				
			||||||
 | 
					{% block base_content %}
 | 
				
			||||||
 | 
					{% placeholder "page_content" %}
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
							
								
								
									
										37
									
								
								templates/djangocms_blog/_header_post_detail.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								templates/djangocms_blog/_header_post_detail.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,37 @@
 | 
				
			||||||
 | 
					{% load cms_tags staticfiles %}
 | 
				
			||||||
 | 
					<!-- Page Header -->
 | 
				
			||||||
 | 
					<!-- Set your background image for this header on the line below. -->
 | 
				
			||||||
 | 
					<header class="intro-header"
 | 
				
			||||||
 | 
						{% if post.main_image_id  %}
 | 
				
			||||||
 | 
						style="background-image: url('{{ post.main_image.url }}');"
 | 
				
			||||||
 | 
						{% else %}
 | 
				
			||||||
 | 
						style="background-image: url('{% static 'blog.ungleich.ch/img/home-bg.jpg'  %}');"
 | 
				
			||||||
 | 
						{% endif %}
 | 
				
			||||||
 | 
						>
 | 
				
			||||||
 | 
					  <div class="container">
 | 
				
			||||||
 | 
					    <div class="row">
 | 
				
			||||||
 | 
					      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
 | 
				
			||||||
 | 
						<div class="post-heading">
 | 
				
			||||||
 | 
						  <h1> {% render_model post "title" %} </h1>
 | 
				
			||||||
 | 
						  <h2 class="subheading">
 | 
				
			||||||
 | 
						    {% render_model post "abstract" "" "" 'truncatewords_html:10'  %}
 | 
				
			||||||
 | 
						  </h2>
 | 
				
			||||||
 | 
						  <span class="meta">
 | 
				
			||||||
 | 
						    Posted
 | 
				
			||||||
 | 
						    {% if post.author %}
 | 
				
			||||||
 | 
						    by
 | 
				
			||||||
 | 
						    <a href="{% url 'djangocms_blog:posts-author' post.author.get_username %}">
 | 
				
			||||||
 | 
						      {% if post.author.get_full_name %}
 | 
				
			||||||
 | 
						      {{ post.author.get_full_name }}
 | 
				
			||||||
 | 
						      {% else %}
 | 
				
			||||||
 | 
						      {{ post.author }}
 | 
				
			||||||
 | 
						      {% endif %}
 | 
				
			||||||
 | 
						    </a>
 | 
				
			||||||
 | 
						    {% endif %}
 | 
				
			||||||
 | 
						    on {{ post.date_published|date:"DATE_FORMAT" }}
 | 
				
			||||||
 | 
						  </span>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
 | 
					</header>
 | 
				
			||||||
							
								
								
									
										11
									
								
								templates/djangocms_blog/base.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								templates/djangocms_blog/base.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					{% extends CMS_TEMPLATE %}
 | 
				
			||||||
 | 
					{% block meta %}
 | 
				
			||||||
 | 
					    {%  if meta %}
 | 
				
			||||||
 | 
						{% include "meta_mixin/meta.html" %}
 | 
				
			||||||
 | 
					    {% endif %}
 | 
				
			||||||
 | 
					{% endblock meta %}
 | 
				
			||||||
 | 
					{% block content %}
 | 
				
			||||||
 | 
					<div class="app app-blog span8">
 | 
				
			||||||
 | 
					  {% block content_blog %}{% endblock %}
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					{% endblock content %}
 | 
				
			||||||
							
								
								
									
										32
									
								
								templates/djangocms_blog/includes/blog_item.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								templates/djangocms_blog/includes/blog_item.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,32 @@
 | 
				
			||||||
 | 
					{% load i18n thumbnail cms_tags %}
 | 
				
			||||||
 | 
					{% load url from future %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div class="post-preview">
 | 
				
			||||||
 | 
					  <a href=" {{ post.get_absolute_url }} ">
 | 
				
			||||||
 | 
					    <h2 class="post-title">
 | 
				
			||||||
 | 
					      {{ post.title }}
 | 
				
			||||||
 | 
					    </h2>
 | 
				
			||||||
 | 
					    <h3 class="post-subtitle">
 | 
				
			||||||
 | 
					      {% if not TRUNCWORDS_COUNT %}
 | 
				
			||||||
 | 
					      {% render_model post "abstract" %}
 | 
				
			||||||
 | 
					      {% else %}
 | 
				
			||||||
 | 
					      {% render_model post "abstract" "" "" 'truncatewords_html:TRUNCWORDS_COUNT'  %}
 | 
				
			||||||
 | 
					      {% endif %}
 | 
				
			||||||
 | 
					    </h3>
 | 
				
			||||||
 | 
					  </a>
 | 
				
			||||||
 | 
					  <p class="post-meta">
 | 
				
			||||||
 | 
					    Posted
 | 
				
			||||||
 | 
					    {% if post.author %}
 | 
				
			||||||
 | 
					    by
 | 
				
			||||||
 | 
					    <a href="{% url 'djangocms_blog:posts-author' post.author.get_username %}">
 | 
				
			||||||
 | 
					      {% if post.author.get_full_name %}
 | 
				
			||||||
 | 
					      {{ post.author.get_full_name }}
 | 
				
			||||||
 | 
					      {% else %}
 | 
				
			||||||
 | 
					      {{ post.author }}
 | 
				
			||||||
 | 
					      {% endif %}
 | 
				
			||||||
 | 
					    </a>
 | 
				
			||||||
 | 
					    {% endif %}
 | 
				
			||||||
 | 
					    on {{ post.date_published|date:"DATE_FORMAT" }}
 | 
				
			||||||
 | 
					  </p>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					<hr>
 | 
				
			||||||
							
								
								
									
										22
									
								
								templates/djangocms_blog/post_detail.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								templates/djangocms_blog/post_detail.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					{% extends "djangocms_blog/base.html" %}
 | 
				
			||||||
 | 
					{% load i18n thumbnail cms_tags %}
 | 
				
			||||||
 | 
					{% load url from future %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block meta_description %}{{ post.meta_description }}{% endblock meta_description %}
 | 
				
			||||||
 | 
					{% block meta_keywords %}{{ post.meta_keywords }}{% endblock meta_keywords %}
 | 
				
			||||||
 | 
					{% block canonical_url %}<link rel="canonical" href="{{ SITE.domain }}{{ view.get_view_url }}"/>{% endblock canonical_url %}
 | 
				
			||||||
 | 
					{% block title %}{{ post.get_title }}{% endblock %}
 | 
				
			||||||
 | 
					<!-- page header -->
 | 
				
			||||||
 | 
					{% block base_header %}
 | 
				
			||||||
 | 
					{% include "djangocms_blog/_header_post_detail.html"  %}
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					<!-- page header  -->
 | 
				
			||||||
 | 
					{% block content_blog %}
 | 
				
			||||||
 | 
					<article>
 | 
				
			||||||
 | 
					  {% if use_placeholder %}
 | 
				
			||||||
 | 
					  <div class="blog-content">{% render_placeholder post.content %}</div>
 | 
				
			||||||
 | 
					  {% else %}
 | 
				
			||||||
 | 
					  <div class="blog-content">{% render_model post "post_text" "post_text" %}</div>
 | 
				
			||||||
 | 
					  {% endif %}
 | 
				
			||||||
 | 
					</article>
 | 
				
			||||||
 | 
					{% endblock content_blog %}
 | 
				
			||||||
							
								
								
									
										47
									
								
								templates/djangocms_blog/post_list.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								templates/djangocms_blog/post_list.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,47 @@
 | 
				
			||||||
 | 
					{% extends "djangocms_blog/base.html" %}
 | 
				
			||||||
 | 
					{% load i18n thumbnail %}{% spaceless %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block canonical_url %}<link rel="canonical" href="{{ SITE.domain }}{{ view.get_view_url }}"/>{% endblock canonical_url %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block content_blog %}
 | 
				
			||||||
 | 
					<section class="blog-list">
 | 
				
			||||||
 | 
					  {% block blog_title %}
 | 
				
			||||||
 | 
					  <header>
 | 
				
			||||||
 | 
					    <h2>
 | 
				
			||||||
 | 
					      {% if author %}{% trans "Articles by" %} {{ author.get_full_name }}
 | 
				
			||||||
 | 
					      {% elif archive_date %}{% trans "Archive" %} – {% if month %}{{ archive_date|date:'F' }} {% endif %}{{ year }}
 | 
				
			||||||
 | 
					      {% elif tagged_entries %}{% trans "Tag" %} – {{ tagged_entries|capfirst }}
 | 
				
			||||||
 | 
					      {% elif category %}{% trans "Category" %} – {{ category }}{% endif %}
 | 
				
			||||||
 | 
					    </h2>
 | 
				
			||||||
 | 
					  </header>
 | 
				
			||||||
 | 
					  {% endblock %}
 | 
				
			||||||
 | 
					  {% for post in post_list %}
 | 
				
			||||||
 | 
					  {% include "djangocms_blog/includes/blog_item.html" with post=post image="true" TRUNCWORDS_COUNT=TRUNCWORDS_COUNT %}
 | 
				
			||||||
 | 
					  {% empty %}
 | 
				
			||||||
 | 
					  <p class="blog-empty">{% trans "No article found." %}</p>
 | 
				
			||||||
 | 
					  {% endfor %}
 | 
				
			||||||
 | 
					  {% if author or archive_date or tagged_entries %}
 | 
				
			||||||
 | 
					  <p class="blog-back"><a href="{% url 'djangocms_blog:posts-latest' %}">{% trans "Back" %}</a></p>
 | 
				
			||||||
 | 
					  {% endif %}
 | 
				
			||||||
 | 
					  {% if is_paginated %}
 | 
				
			||||||
 | 
					  <!-- Pager -->
 | 
				
			||||||
 | 
					  <ul class="pager">
 | 
				
			||||||
 | 
					    {% if page_obj.has_previous %}
 | 
				
			||||||
 | 
					    <li class="previous">
 | 
				
			||||||
 | 
					      <a href="?{{ view.page_kwarg }}={{ page_obj.previous_page_number }}">
 | 
				
			||||||
 | 
						« {% trans "Newer Posts" %}
 | 
				
			||||||
 | 
					      </a>
 | 
				
			||||||
 | 
					    </li>
 | 
				
			||||||
 | 
					    {% endif %}
 | 
				
			||||||
 | 
					    {% if page_obj.has_next %}
 | 
				
			||||||
 | 
					    <li class="next">
 | 
				
			||||||
 | 
					      <a href="?{{ view.page_kwarg }}={{ page_obj.next_page_number }}">
 | 
				
			||||||
 | 
						{% trans "Older Posts" %} →
 | 
				
			||||||
 | 
					      </a>
 | 
				
			||||||
 | 
					    </li>
 | 
				
			||||||
 | 
					    {% endif %}
 | 
				
			||||||
 | 
					  </ul>
 | 
				
			||||||
 | 
					  {% endif %}
 | 
				
			||||||
 | 
					</section>
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					{% endspaceless %}
 | 
				
			||||||
							
								
								
									
										0
									
								
								ungleich/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								ungleich/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										12
									
								
								ungleich/admin.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								ungleich/admin.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					from django.contrib import admin
 | 
				
			||||||
 | 
					from cms.extensions import PageExtensionAdmin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Register your models here.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from .models import UngleichPage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class UngleichPageAdmin(PageExtensionAdmin):
 | 
				
			||||||
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					admin.site.register(UngleichPage, UngleichPageAdmin)
 | 
				
			||||||
							
								
								
									
										25
									
								
								ungleich/cms_toolbar.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								ungleich/cms_toolbar.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					from cms.extensions.toolbar import ExtensionToolbar
 | 
				
			||||||
 | 
					from django.utils.translation import ugettext_lazy as _
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from cms.toolbar_pool import toolbar_pool
 | 
				
			||||||
 | 
					from cms.toolbar_base import CMSToolbar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from .models import UngleichPage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@toolbar_pool.register
 | 
				
			||||||
 | 
					class UngleichPageToolbar(ExtensionToolbar):
 | 
				
			||||||
 | 
					    # defineds the model for the current toolbar
 | 
				
			||||||
 | 
					    model = UngleichPage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def populate(self):
 | 
				
			||||||
 | 
					        # setup the extension toolbar with permissions and sanity checks
 | 
				
			||||||
 | 
					        current_page_menu = self._setup_extension_toolbar()
 | 
				
			||||||
 | 
					        # if it's all ok
 | 
				
			||||||
 | 
					        if current_page_menu:
 | 
				
			||||||
 | 
					            # retrieves the instance of the current extension (if any) and the toolbar item url
 | 
				
			||||||
 | 
					            page_extension, url = self.get_page_extension_admin()
 | 
				
			||||||
 | 
					            if url:
 | 
				
			||||||
 | 
					                # adds a toolbar item
 | 
				
			||||||
 | 
					                current_page_menu.add_modal_item(_('Page Header'), url=url,
 | 
				
			||||||
 | 
					                    disabled=not self.toolbar.edit_mode)
 | 
				
			||||||
							
								
								
									
										27
									
								
								ungleich/migrations/0001_initial.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								ungleich/migrations/0001_initial.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
 | 
					from __future__ import unicode_literals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.db import models, migrations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Migration(migrations.Migration):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies = [
 | 
				
			||||||
 | 
					        ('cms', '0011_auto_20150419_1006'),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    operations = [
 | 
				
			||||||
 | 
					        migrations.CreateModel(
 | 
				
			||||||
 | 
					            name='UngleichPage',
 | 
				
			||||||
 | 
					            fields=[
 | 
				
			||||||
 | 
					                ('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
 | 
				
			||||||
 | 
					                ('image_header', models.ImageField(upload_to='image_header')),
 | 
				
			||||||
 | 
					                ('extended_object', models.OneToOneField(editable=False, to='cms.Page')),
 | 
				
			||||||
 | 
					                ('public_extension', models.OneToOneField(editable=False, related_name='draft_extension', null=True, to='ungleich.UngleichPage')),
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            options={
 | 
				
			||||||
 | 
					                'abstract': False,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            bases=(models.Model,),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
							
								
								
									
										22
									
								
								ungleich/migrations/0002_ungleichpage_image.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								ungleich/migrations/0002_ungleichpage_image.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
 | 
					from __future__ import unicode_literals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.db import models, migrations
 | 
				
			||||||
 | 
					import filer.fields.image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Migration(migrations.Migration):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies = [
 | 
				
			||||||
 | 
					        ('filer', '0002_auto_20150522_0450'),
 | 
				
			||||||
 | 
					        ('ungleich', '0001_initial'),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    operations = [
 | 
				
			||||||
 | 
					        migrations.AddField(
 | 
				
			||||||
 | 
					            model_name='ungleichpage',
 | 
				
			||||||
 | 
					            name='image',
 | 
				
			||||||
 | 
					            field=filer.fields.image.FilerImageField(null=True, related_name='ungleinch_page_image', to='filer.Image', blank=True),
 | 
				
			||||||
 | 
					            preserve_default=True,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
							
								
								
									
										18
									
								
								ungleich/migrations/0003_remove_ungleichpage_image_header.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								ungleich/migrations/0003_remove_ungleichpage_image_header.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
 | 
					from __future__ import unicode_literals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.db import models, migrations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Migration(migrations.Migration):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies = [
 | 
				
			||||||
 | 
					        ('ungleich', '0002_ungleichpage_image'),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    operations = [
 | 
				
			||||||
 | 
					        migrations.RemoveField(
 | 
				
			||||||
 | 
					            model_name='ungleichpage',
 | 
				
			||||||
 | 
					            name='image_header',
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
							
								
								
									
										0
									
								
								ungleich/migrations/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								ungleich/migrations/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										18
									
								
								ungleich/models.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								ungleich/models.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					from django.db import models
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from cms.extensions import PageExtension
 | 
				
			||||||
 | 
					from cms.extensions.extension_pool import extension_pool
 | 
				
			||||||
 | 
					from filer.fields.image import FilerImageField
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Create your models here.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class UngleichPage(PageExtension):
 | 
				
			||||||
 | 
					    #image_header = models.ImageField(upload_to='image_header')
 | 
				
			||||||
 | 
					    image = FilerImageField(null=True, blank=True,
 | 
				
			||||||
 | 
					                           related_name="ungleinch_page_image")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    class Meta:
 | 
				
			||||||
 | 
					        app_label = 'ungleich'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extension_pool.register(UngleichPage)
 | 
				
			||||||
							
								
								
									
										3
									
								
								ungleich/tests.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								ungleich/tests.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					from django.test import TestCase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Create your tests here.
 | 
				
			||||||
							
								
								
									
										3
									
								
								ungleich/views.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								ungleich/views.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					from django.shortcuts import render
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Create your views here.
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue