Merge branch 'master' of github.com:ungleich/dynamicweb
							
								
								
									
										36
									
								
								Changelog
									
										
									
									
									
								
							
							
						
						|  | @ -1,20 +1,22 @@ | ||||||
| 1.0.0: 2017-05-25 | 1.0.5: 2017-06-06 | ||||||
|     * Initial stable release |     * [all] General cleanup | ||||||
|  |     * [datacenterlight] Add German translations | ||||||
|  |     * [datacenterlight] Change beta access to subscriptions  | ||||||
|  |     * [hosting] Add German translations  | ||||||
|  |     * [blog] Add German translation for header | ||||||
|  |     * [opennebula_api] Improve testing, add ssh key functions | ||||||
|  |     * [opennebula_api] Remove template views | ||||||
|  |     * [datacenterlight] Allow user to have multiple ssh keys  | ||||||
|  |     * [datacenterlight] Changed stripe.js v2 to v3 | ||||||
|  |     * [datacenterlight] Added support for stripe payment errors on current user language  | ||||||
|  | 1.0.4: 2017-06-05 | ||||||
|  |     * [all] Added new Domains to accept | ||||||
|  | 1.0.3: 2017-06-02 | ||||||
|  |     * [datacenterlight] Hotfix, remove footer on mobile devices | ||||||
|  | 1.0.2: 2017-05-28 | ||||||
|  |     * [datacenterlight] Fixed login redirecting to blank page after logout | ||||||
| 1.0.1: 2017-05-26 | 1.0.1: 2017-05-26 | ||||||
|     * [datacenterlight] Allow storage to shrink / grow only in 10th of GB |     * [datacenterlight] Allow storage to shrink / grow only in 10th of GB | ||||||
|     * [datacenterlight] Fix initially shown price |     * [datacenterlight] Fix initially shown price | ||||||
| 1.0.2: 2017-05-28 | 1.0.0: 2017-05-25 | ||||||
|     * [datacenterlight] Fixed login redirecting to blank page after logout |     * Initial stable release | ||||||
| 1.0.3: 2017-06-02 |  | ||||||
|     * [datacenterlight] Hotfix, remove footer on mobile devices |  | ||||||
| 
 |  | ||||||
| next: |  | ||||||
| 	* [datacenterlight] Add German translations |  | ||||||
| 	* [datacenterlight] Change beta access to subscriptions  |  | ||||||
| 	* [hosting] Add German translations  |  | ||||||
| 	* [blog] Add German translation for header |  | ||||||
| 	* [opennebula_api] Improve testing, add ssh key functions |  | ||||||
| 	* [opennebula_api] Remove template views |  | ||||||
| 	* [datacenterlight] Allow user to have multiple ssh keys  |  | ||||||
|         * [datacenterlight] Changed stripe.js v2 to v3 |  | ||||||
|         * [datacenterlight] Added support for stripe payment errors on current user language  |  | ||||||
|  |  | ||||||
|  | @ -1,69 +0,0 @@ | ||||||
| user www-data; |  | ||||||
| worker_processes 2; |  | ||||||
| pid /var/run/nginx.pid; |  | ||||||
| daemon off; |  | ||||||
| 
 |  | ||||||
| events { |  | ||||||
| 	worker_connections 512; |  | ||||||
| 	# multi_accept on; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| http { |  | ||||||
| 	sendfile on; |  | ||||||
| 	tcp_nopush on; |  | ||||||
| 	tcp_nodelay on; |  | ||||||
| 	keepalive_timeout 65; |  | ||||||
| 	types_hash_max_size 2048; |  | ||||||
| 	server_tokens off; |  | ||||||
| 	port_in_redirect on; |  | ||||||
| 
 |  | ||||||
| 	server_names_hash_bucket_size 128; |  | ||||||
| 	server_name_in_redirect off; |  | ||||||
| 
 |  | ||||||
| 	client_max_body_size 60m; |  | ||||||
| 
 |  | ||||||
| 	include /etc/nginx/mime.types; |  | ||||||
| 	default_type application/octet-stream; |  | ||||||
| 
 |  | ||||||
| 	send_timeout 300; |  | ||||||
| 	client_body_timeout   300; |  | ||||||
| 	client_header_timeout 300; |  | ||||||
| 
 |  | ||||||
| 	access_log /logs/access.log; |  | ||||||
| 	error_log /logs/error.log; |  | ||||||
| 
 |  | ||||||
| 	gzip on; |  | ||||||
| 	gzip_disable "msie6"; |  | ||||||
| 	gzip_vary on; |  | ||||||
| 	gzip_proxied any; |  | ||||||
| 	gzip_comp_level 6; |  | ||||||
| 	gzip_buffers 16 8k; |  | ||||||
| 	gzip_http_version 1.1; |  | ||||||
| 	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; |  | ||||||
| 
 |  | ||||||
| 	upstream django { |  | ||||||
| 		server 127.0.0.1:8000; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	server { |  | ||||||
| 		listen 80 default; |  | ||||||
| 		server_name localhost; |  | ||||||
| 		location / { |  | ||||||
| 			proxy_pass http://django; |  | ||||||
| 			include proxy_params; |  | ||||||
| 		} |  | ||||||
| 		location /media/ { |  | ||||||
| 			root /data; |  | ||||||
| 			expires max; |  | ||||||
| 			access_log off; |  | ||||||
| 		} |  | ||||||
| 		location /static/ { |  | ||||||
| 			root /data; |  | ||||||
| 			expires max; |  | ||||||
| 			access_log off; |  | ||||||
| 		} |  | ||||||
| 		location ~ /\.ht { deny  all; } |  | ||||||
| 		location ~ /\.hg { deny  all; } |  | ||||||
| 		location ~ /\.svn { deny  all; } |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  | @ -1,25 +0,0 @@ | ||||||
| server { |  | ||||||
|     listen  80; |  | ||||||
|     server_name dynamicweb-staging.ungleich.ch; |  | ||||||
| 
 |  | ||||||
|     location /static { |  | ||||||
| 	    alias /home/app/django/dynamicweb/static/; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     location /media { |  | ||||||
| 	    alias /home/app/django/dynamicweb/media/; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     location / { |  | ||||||
| 	proxy_pass http://127.0.0.1:8000/; |  | ||||||
| 	proxy_pass_header Server; |  | ||||||
| 	proxy_set_header Host $host; |  | ||||||
| 	proxy_set_header X-Forwarded-Host $host; |  | ||||||
| 	proxy_redirect off; |  | ||||||
| 	proxy_set_header X-Real-IP $remote_addr; |  | ||||||
| 	proxy_set_header X-Scheme $scheme; |  | ||||||
| 	proxy_connect_timeout 600; |  | ||||||
| 	proxy_send_timeout 600; |  | ||||||
| 	proxy_read_timeout 600; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -27,8 +27,8 @@ class PricingView(TemplateView): | ||||||
|             } |             } | ||||||
|         except: |         except: | ||||||
|             messages.error( request, |             messages.error( request, | ||||||
|                 'We could not load the VM templates due to a backend connection \ |                 'We have a temporary problem to connect to our backend. \ | ||||||
|                 error. Please try again in a few minutes' |                 Please try again in a few minutes' | ||||||
|                 ) |                 ) | ||||||
|             context = { |             context = { | ||||||
|                 'error' : 'connection' |                 'error' : 'connection' | ||||||
|  | @ -36,7 +36,6 @@ class PricingView(TemplateView): | ||||||
| 
 | 
 | ||||||
|         return render(request, self.template_name, context) |         return render(request, self.template_name, context) | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     def post(self, request): |     def post(self, request): | ||||||
| 
 | 
 | ||||||
|         cores = request.POST.get('cpu') |         cores = request.POST.get('cpu') | ||||||
|  | @ -151,43 +150,6 @@ class BetaProgramView(CreateView): | ||||||
| 
 | 
 | ||||||
|         messages.add_message(self.request, messages.SUCCESS, self.success_message) |         messages.add_message(self.request, messages.SUCCESS, self.success_message) | ||||||
|         return HttpResponseRedirect(self.get_success_url()) |         return HttpResponseRedirect(self.get_success_url()) | ||||||
|         # return super(BetaProgramView, self).form_valid(form) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|          |  | ||||||
| 
 |  | ||||||
|     # def form_valid(self, form): |  | ||||||
| 
 |  | ||||||
|     #     context = { |  | ||||||
|     #         'base_url': "{0}://{1}".format(self.request.scheme, self.request.get_host()) |  | ||||||
|     #     } |  | ||||||
| 
 |  | ||||||
|     #     email_data = { |  | ||||||
|     #         'subject': 'DatacenterLight Beta Access Request', |  | ||||||
|     #         'to': form.cleaned_data.get('email'), |  | ||||||
|     #         'context': context, |  | ||||||
|     #         'template_name': 'request_access_confirmation', |  | ||||||
|     #         'template_path': 'datacenterlight/emails/' |  | ||||||
|     #     } |  | ||||||
|     #     email = BaseEmail(**email_data) |  | ||||||
|     #     email.send() |  | ||||||
| 
 |  | ||||||
|     #     context.update({ |  | ||||||
|     #         'email': form.cleaned_data.get('email') |  | ||||||
|     #     }) |  | ||||||
| 
 |  | ||||||
|     #     email_data = { |  | ||||||
|     #         'subject': 'DatacenterLight Beta Access Request', |  | ||||||
|     #         'to': 'info@ungleich.ch', |  | ||||||
|     #         'context': context, |  | ||||||
|     #         'template_name': 'request_access_notification', |  | ||||||
|     #         'template_path': 'datacenterlight/emails/' |  | ||||||
|     #     } |  | ||||||
|     #     email = BaseEmail(**email_data) |  | ||||||
|     #     email.send() |  | ||||||
| 
 |  | ||||||
|     #     messages.add_message(self.request, messages.SUCCESS, self.success_message) |  | ||||||
|     #     return super(IndexView, self).form_valid(form) |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class IndexView(CreateView): | class IndexView(CreateView): | ||||||
|  |  | ||||||
							
								
								
									
										
											BIN
										
									
								
								dump.rdb
									
										
									
									
									
								
							
							
						
						|  | @ -1,423 +0,0 @@ | ||||||
| """ |  | ||||||
| Copyright 2015 ungleich. |  | ||||||
| """ |  | ||||||
| 
 |  | ||||||
| # -*- coding: utf-8 -*- |  | ||||||
| # Build paths inside the project like this: os.path.join(BASE_DIR, ...) |  | ||||||
| import os |  | ||||||
| from django.utils.translation import ugettext_lazy as _ |  | ||||||
| # dotenv |  | ||||||
| import dotenv |  | ||||||
| 
 |  | ||||||
| gettext = lambda s: s |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| def env(env_name): |  | ||||||
|     return os.environ.get(env_name) |  | ||||||
| 
 |  | ||||||
| BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |  | ||||||
| 
 |  | ||||||
| PROJECT_DIR = os.path.abspath( |  | ||||||
|     os.path.join(os.path.dirname(__file__), "../.."), |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| # load .env file |  | ||||||
| dotenv.read_dotenv("{0}/.env".format(PROJECT_DIR)) |  | ||||||
| 
 |  | ||||||
| # Quick-start development settings - unsuitable for production |  | ||||||
| # See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/ |  | ||||||
| 
 |  | ||||||
| SITE_ID = 1 |  | ||||||
| 
 |  | ||||||
| APP_ROOT_ENDPOINT = "/" |  | ||||||
| 
 |  | ||||||
| LOGIN_URL = None |  | ||||||
| LOGOUT_URL = None |  | ||||||
| LOGIN_REDIRECT_URL = None |  | ||||||
| 
 |  | ||||||
| EMAIL_HOST = "localhost" |  | ||||||
| EMAIL_PORT = 25 |  | ||||||
| 
 |  | ||||||
| SECRET_KEY = env('DJANGO_SECRET_KEY') |  | ||||||
| 
 |  | ||||||
| # Application definition |  | ||||||
| 
 |  | ||||||
| INSTALLED_APPS = ( |  | ||||||
|     'djangocms_admin_style', |  | ||||||
|     'django.contrib.admin', |  | ||||||
|     'django.contrib.auth', |  | ||||||
|     'django.contrib.contenttypes', |  | ||||||
|     'django.contrib.sessions', |  | ||||||
|     'django.contrib.messages', |  | ||||||
|     'django.contrib.staticfiles', |  | ||||||
|     'django.contrib.sites', |  | ||||||
|     'cms',  # django CMS itself |  | ||||||
|     'treebeard',  # utilities for implementing a tree |  | ||||||
|     'menus',  # helper for model independent hierarchical website navigation |  | ||||||
|     'sekizai',  # for javascript and css management |  | ||||||
|     # django-cms plugins |  | ||||||
|     'djangocms_flash', |  | ||||||
|     'djangocms_googlemap', |  | ||||||
|     'djangocms_inherit', |  | ||||||
|     'djangocms_link', |  | ||||||
|     'djangocms_snippet', |  | ||||||
|     'djangocms_teaser', |  | ||||||
|     'djangocms_page_meta', |  | ||||||
|     # django-filer |  | ||||||
|     'cmsplugin_filer_file', |  | ||||||
|     'cmsplugin_filer_folder', |  | ||||||
|     'cmsplugin_filer_link', |  | ||||||
|     'cmsplugin_filer_teaser', |  | ||||||
|     'cmsplugin_filer_video', |  | ||||||
|     # versioning |  | ||||||
|     'reversion', |  | ||||||
|     # ck-editor |  | ||||||
|     'djangocms_text_ckeditor', |  | ||||||
|     # djangocms-blog |  | ||||||
|     'filer', |  | ||||||
|     'easy_thumbnails', |  | ||||||
|     'cmsplugin_filer_image', |  | ||||||
|     'parler', |  | ||||||
|     'taggit', |  | ||||||
|     'taggit_autosuggest', |  | ||||||
|     'django_select2', |  | ||||||
|     'meta', |  | ||||||
|     'meta_mixin', |  | ||||||
| #    'admin_enhancer', |  | ||||||
|     'djangocms_blog', |  | ||||||
|     'bootstrap3', |  | ||||||
|     'compressor', |  | ||||||
|     # ungleich |  | ||||||
|     'ungleich', |  | ||||||
|     'hosting', |  | ||||||
|     'digitalglarus', |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| MIDDLEWARE_CLASSES = ( |  | ||||||
|     'django.contrib.sessions.middleware.SessionMiddleware', |  | ||||||
|     'django.middleware.common.CommonMiddleware', |  | ||||||
|     'django.middleware.csrf.CsrfViewMiddleware', |  | ||||||
|     'django.contrib.auth.middleware.AuthenticationMiddleware', |  | ||||||
|     'django.contrib.auth.middleware.SessionAuthenticationMiddleware', |  | ||||||
|     'django.contrib.messages.middleware.MessageMiddleware', |  | ||||||
|     'django.middleware.clickjacking.XFrameOptionsMiddleware', |  | ||||||
|     'django.middleware.locale.LocaleMiddleware', |  | ||||||
|     # django-cms middlewares |  | ||||||
|     'cms.middleware.user.CurrentUserMiddleware', |  | ||||||
|     'cms.middleware.page.CurrentPageMiddleware', |  | ||||||
|     'cms.middleware.toolbar.ToolbarMiddleware', |  | ||||||
|     'cms.middleware.language.LanguageCookieMiddleware', |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| ROOT_URLCONF = 'dynamicweb.urls' |  | ||||||
| 
 |  | ||||||
| TEMPLATES = [ |  | ||||||
|     { |  | ||||||
|         'BACKEND': 'django.template.backends.django.DjangoTemplates', |  | ||||||
|         'DIRS': [], |  | ||||||
|         'APP_DIRS': True, |  | ||||||
|         'OPTIONS': { |  | ||||||
|             'context_processors': [ |  | ||||||
|                 'django.template.context_processors.debug', |  | ||||||
|                 'django.template.context_processors.request', |  | ||||||
|                 'django.contrib.auth.context_processors.auth', |  | ||||||
|                 'django.contrib.messages.context_processors.messages', |  | ||||||
|             ], |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| WSGI_APPLICATION = 'dynamicweb.wsgi.application' |  | ||||||
| 
 |  | ||||||
| # Deprecated since version 1.8. |  | ||||||
| # callables take a request object as their argument and return a dictionary of |  | ||||||
| # items to be merged into the context. |  | ||||||
| TEMPLATE_CONTEXT_PROCESSORS = ( |  | ||||||
|     "django.contrib.auth.context_processors.auth", |  | ||||||
|     "django.core.context_processors.debug", |  | ||||||
|     "django.core.context_processors.i18n", |  | ||||||
|     "django.core.context_processors.media", |  | ||||||
|     "django.core.context_processors.static", |  | ||||||
|     "django.core.context_processors.tz", |  | ||||||
|     "django.contrib.messages.context_processors.messages", |  | ||||||
|     "django.core.context_processors.request", |  | ||||||
|     'sekizai.context_processors.sekizai', |  | ||||||
|     'cms.context_processors.cms_settings', |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| TEMPLATE_DIRS = ( |  | ||||||
|     os.path.join(PROJECT_DIR, 'templates'), |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| CMS_TEMPLATES_DIR = { |  | ||||||
|     1: os.path.join(TEMPLATE_DIRS[0], 'cms/'), |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Database |  | ||||||
| # https://docs.djangoproject.com/en/1.8/ref/settings/#databases |  | ||||||
| 
 |  | ||||||
| DATABASES = { |  | ||||||
|     'default': { |  | ||||||
|         'ENGINE': 'django.db.backends.postgresql_psycopg2', |  | ||||||
|         'NAME': 'app', |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Internationalization |  | ||||||
| # https://docs.djangoproject.com/en/1.7/topics/i18n/ |  | ||||||
| 
 |  | ||||||
| TIME_ZONE = 'UTC' |  | ||||||
| 
 |  | ||||||
| USE_I18N = True |  | ||||||
| 
 |  | ||||||
| USE_L10N = True |  | ||||||
| 
 |  | ||||||
| USE_TZ = True |  | ||||||
| 
 |  | ||||||
| LANGUAGES = ( |  | ||||||
|     ('en-us', _('English')), |  | ||||||
|     ('de', _('Deutsch')), |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| LANGUAGE_CODE = 'en-us' |  | ||||||
| 
 |  | ||||||
| CMS_PLACEHOLDER_CONF = { |  | ||||||
|     'logo_image': { |  | ||||||
|         'name': 'Logo Image', |  | ||||||
|         'plugins': ['FilerImagePlugin'], |  | ||||||
|         'limits': { |  | ||||||
|             'global': 1, |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     'page-title': { |  | ||||||
|         'name': 'Page Title', |  | ||||||
|         'plugins': ['TextPlugin'], |  | ||||||
|         'default_plugins': [ |  | ||||||
|             { |  | ||||||
|                 'plugin_type': 'TextPlugin', |  | ||||||
|                 'values': { |  | ||||||
|                     'body': 'Page Title...' |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         ], |  | ||||||
|         'limits': { |  | ||||||
|             'global': 1, |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     'page-subtitle': { |  | ||||||
|         'name': 'Page Subtitle', |  | ||||||
|         'inherit': 'page-title', |  | ||||||
|         'default_plugins': [ |  | ||||||
|             { |  | ||||||
|                 'plugin_type': 'TextPlugin', |  | ||||||
|                 'values': { |  | ||||||
|                     'body': 'Page subtitle...' |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         ], |  | ||||||
|     }, |  | ||||||
|     'footer_copyright': { |  | ||||||
|         'name': 'Copyright', |  | ||||||
|         'inherit': 'page-title', |  | ||||||
|         'default_plugins': [ |  | ||||||
|             { |  | ||||||
|                 'plugin_type': 'TextPlugin', |  | ||||||
|                 'values': { |  | ||||||
|                     'body': 'Copyright...' |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         ], |  | ||||||
|     }, |  | ||||||
|     'content': { |  | ||||||
|         'name': _('Content'), |  | ||||||
|         'default_plugins': [ |  | ||||||
|             { |  | ||||||
|                 'plugin_type': 'TextPlugin', |  | ||||||
|                 'values': {'body': '<p></p>'}, |  | ||||||
|             }, |  | ||||||
|         ] |  | ||||||
|     }, |  | ||||||
|     'post_content': { |  | ||||||
|         'name': _('Content'), |  | ||||||
|         'default_plugins': [ |  | ||||||
|             { |  | ||||||
|                 'plugin_type': 'TextPlugin', |  | ||||||
|                 'values': {'body': '<p></p>'}, |  | ||||||
|             }, |  | ||||||
|         ] |  | ||||||
|     }, |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| CACHES = { |  | ||||||
|     'default': { |  | ||||||
|         'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache', |  | ||||||
|         'LOCATION': '127.0.0.1:11211', |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| if LOGIN_URL is None: |  | ||||||
|     LOGIN_URL = APP_ROOT_ENDPOINT + 'accounts/login/' |  | ||||||
| if LOGOUT_URL is None: |  | ||||||
|     LOGOUT_URL = APP_ROOT_ENDPOINT + 'accounts/logout/' |  | ||||||
| if LOGIN_REDIRECT_URL is None: |  | ||||||
|     LOGIN_REDIRECT_URL = APP_ROOT_ENDPOINT |  | ||||||
| 
 |  | ||||||
| # Static files (CSS, JavaScript, Images) |  | ||||||
| # https://docs.djangoproject.com/en/1.7/howto/static-files/ |  | ||||||
| 
 |  | ||||||
| STATIC_URL = '/static/' |  | ||||||
| 
 |  | ||||||
| STATIC_ROOT = os.path.join(PROJECT_DIR, 'static') |  | ||||||
| 
 |  | ||||||
| MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media') |  | ||||||
| MEDIA_URL = APP_ROOT_ENDPOINT + 'media/' |  | ||||||
| FILE_UPLOAD_PERMISSIONS = 0o644 |  | ||||||
| 
 |  | ||||||
| # Templates confs |  | ||||||
| TEMPLATE_DIRS = ( |  | ||||||
|     os.path.join(PROJECT_DIR, "templates"), |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| META_SITE_PROTOCOL = 'http' |  | ||||||
| META_USE_SITES = True |  | ||||||
| 
 |  | ||||||
| MIGRATION_MODULES = { |  | ||||||
|     'cms': 'cms.migrations', |  | ||||||
|     'filer': 'filer.migrations_django', |  | ||||||
|     'menus': 'menus.migrations_django', |  | ||||||
|     'djangocms_flash': 'djangocms_flash.migrations_django', |  | ||||||
|     'djangocms_googlemap': 'djangocms_googlemap.migrations_django', |  | ||||||
|     'djangocms_inherit': 'djangocms_inherit.migrations_django', |  | ||||||
|     'djangocms_link': 'djangocms_link.migrations_django', |  | ||||||
|     'djangocms_snippet': 'djangocms_snippet.migrations_django', |  | ||||||
|     'djangocms_teaser': 'djangocms_teaser.migrations_django', |  | ||||||
|     'djangocms_column': 'djangocms_column.migrations_django', |  | ||||||
|     'djangocms_flash': 'djangocms_flash.migrations_django', |  | ||||||
|     'djangocms_googlemap': 'djangocms_googlemap.migrations_django', |  | ||||||
|     'djangocms_inherit': 'djangocms_inherit.migrations_django', |  | ||||||
|     'djangocms_style': 'djangocms_style.migrations_django', |  | ||||||
|     'cmsplugin_filer_image': 'cmsplugin_filer_image.migrations_django', |  | ||||||
|     'cmsplugin_filer_file': 'cmsplugin_filer_file.migrations_django', |  | ||||||
|     'cmsplugin_filer_folder': 'cmsplugin_filer_folder.migrations_django', |  | ||||||
|     'cmsplugin_filer_link': 'cmsplugin_filer_link.migrations_django', |  | ||||||
|     'cmsplugin_filer_teaser': 'cmsplugin_filer_teaser.migrations_django', |  | ||||||
|     'cmsplugin_filer_utils': 'cmsplugin_filer_utils.migrations_django', |  | ||||||
|     'cmsplugin_filer_video': 'cmsplugin_filer_video.migrations_django', |  | ||||||
|     'djangocms_text_ckeditor': 'djangocms_text_ckeditor.migrations', |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| STATICFILES_FINDERS = ( |  | ||||||
|     'django.contrib.staticfiles.finders.FileSystemFinder', |  | ||||||
|     'django.contrib.staticfiles.finders.AppDirectoriesFinder', |  | ||||||
|     'compressor.finders.CompressorFinder', |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| COMPRESS_PRECOMPILERS = ( |  | ||||||
|     ('text/less', 'lesscpy {infile}'), |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| THUMBNAIL_PROCESSORS = ( |  | ||||||
|     'easy_thumbnails.processors.colorspace', |  | ||||||
|     'easy_thumbnails.processors.autocrop', |  | ||||||
|     'filer.thumbnail_processors.scale_and_crop_with_subject_location', |  | ||||||
|     'easy_thumbnails.processors.filters', |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| # django-cms-text-ckeditor |  | ||||||
| TEXT_SAVE_IMAGE_FUNCTION = ( |  | ||||||
|     'cmsplugin_filer_image.integrations.ckeditor.create_image_plugin' |  | ||||||
| ) |  | ||||||
| TEXT_ADDITIONAL_TAGS = ('iframe',) |  | ||||||
| TEXT_ADDITIONAL_ATTRIBUTES = ('scrolling', 'allowfullscreen', 'frameborder') |  | ||||||
| USE_X_FORWARDED_HOST = True |  | ||||||
| 
 |  | ||||||
| # Django Bootstrap - Settings |  | ||||||
| # Added Configuration for bootstrap static files to load over https. |  | ||||||
| BOOTSTRAP3 = { |  | ||||||
| 
 |  | ||||||
|     # The URL to the jQuery JavaScript file |  | ||||||
|     'jquery_url': '//code.jquery.com/jquery.min.js', |  | ||||||
| 
 |  | ||||||
|     # The Bootstrap base URL |  | ||||||
|     'base_url': '//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/', |  | ||||||
| 
 |  | ||||||
|     # The complete URL to the Bootstrap CSS file |  | ||||||
|     # (None means derive it from base_url) |  | ||||||
|     'css_url': None, |  | ||||||
| 
 |  | ||||||
|     # The complete URL to the Bootstrap CSS file (None means no theme) |  | ||||||
|     'theme_url': None, |  | ||||||
| 
 |  | ||||||
|     # The complete URL to the Bootstrap JavaScript file |  | ||||||
|     # (None means derive it from base_url) |  | ||||||
|     'javascript_url': None, |  | ||||||
| 
 |  | ||||||
|     # Put JavaScript in the HEAD section of the HTML document |  | ||||||
|     # (only relevant if you use bootstrap3.html) |  | ||||||
|     'javascript_in_head': False, |  | ||||||
| 
 |  | ||||||
|     # Include jQuery with Bootstrap JavaScript |  | ||||||
|     # (affects django-bootstrap3 template tags) |  | ||||||
|     'include_jquery': False, |  | ||||||
| 
 |  | ||||||
|     # Label class to use in horizontal forms |  | ||||||
|     'horizontal_label_class': 'col-md-3', |  | ||||||
| 
 |  | ||||||
|     # Field class to use in horizontal forms |  | ||||||
|     'horizontal_field_class': 'col-md-9', |  | ||||||
| 
 |  | ||||||
|     # Set HTML required attribute on required fields |  | ||||||
|     'set_required': True, |  | ||||||
| 
 |  | ||||||
|     # Set HTML disabled attribute on disabled fields |  | ||||||
|     'set_disabled': False, |  | ||||||
| 
 |  | ||||||
|     # Set placeholder attributes to label if no placeholder is provided |  | ||||||
|     'set_placeholder': True, |  | ||||||
| 
 |  | ||||||
|     # Class to indicate required (better to set this in your Django form) |  | ||||||
|     'required_css_class': '', |  | ||||||
| 
 |  | ||||||
|     # Class to indicate error (better to set this in your Django form) |  | ||||||
|     'error_css_class': 'has-error', |  | ||||||
| 
 |  | ||||||
|     # Class to indicate success, meaning the field has valid input |  | ||||||
|     # (better to set this in your Django form) |  | ||||||
|     'success_css_class': 'has-success', |  | ||||||
| 
 |  | ||||||
|     # Renderers (only set these if you have studied the source and understand |  | ||||||
|     # the inner workings) |  | ||||||
|     'formset_renderers': { |  | ||||||
|         'default': 'bootstrap3.renderers.FormsetRenderer', |  | ||||||
|     }, |  | ||||||
|     'form_renderers': { |  | ||||||
|         'default': 'bootstrap3.renderers.FormRenderer', |  | ||||||
|     }, |  | ||||||
|     'field_renderers': { |  | ||||||
|         'default': 'bootstrap3.renderers.FieldRenderer', |  | ||||||
|         'inline': 'bootstrap3.renderers.InlineFieldRenderer', |  | ||||||
|     }, |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # djangocms_blog config |  | ||||||
| 
 |  | ||||||
| BLOG_ENABLE_COMMENTS = False |  | ||||||
| BLOG_USE_PLACEHOLDER = True |  | ||||||
| BLOG_IMAGE_THUMBNAIL_SIZE = {'size': '120x120', 'crop': True, 'upscale': False} |  | ||||||
| BLOG_IMAGE_FULL_SIZE = {'size': '640x120', 'crop': True, 'upscale': False} |  | ||||||
| BLOG_PAGINATION = 4 |  | ||||||
| BLOG_LATEST_POSTS = BLOG_PAGINATION |  | ||||||
| BLOG_POSTS_LIST_TRUNCWORDS_COUNT = 100 |  | ||||||
| BLOG_MULTISITE = True |  | ||||||
| BLOG_AUTHOR_DEFAULT = True |  | ||||||
| 
 |  | ||||||
| # django-meta |  | ||||||
| META_SITE_PROTOCOL = "https" |  | ||||||
| META_SITE_DOMAIN = "ungleich.ch" |  | ||||||
| META_SITE_TYPE = "website" |  | ||||||
| META_SITE_NAME = "ungleich" |  | ||||||
| META_INCLUDE_KEYWORDS = ["ungleich", "hosting", "switzerland", |  | ||||||
|                          "Schweiz", "Swiss", "cdist"] |  | ||||||
| META_USE_SITES = True |  | ||||||
| 
 |  | ||||||
| PARLER_LANGUAGES = {1: ({'code': 'en-us'}, {'code': 'de'}, )} |  | ||||||
|  | @ -1,441 +0,0 @@ | ||||||
| """ |  | ||||||
| Copyright 2015 ungleich. |  | ||||||
| """ |  | ||||||
| 
 |  | ||||||
| # -*- coding: utf-8 -*- |  | ||||||
| # Build paths inside the project like this: os.path.join(BASE_DIR, ...) |  | ||||||
| import os |  | ||||||
| 
 |  | ||||||
| from django.utils.translation import ugettext_lazy as _ |  | ||||||
| 
 |  | ||||||
| # dotenv |  | ||||||
| import dotenv |  | ||||||
| 
 |  | ||||||
| gettext = lambda s: s |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| def env(env_name): |  | ||||||
|     return os.environ.get(env_name) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |  | ||||||
| 
 |  | ||||||
| PROJECT_DIR = os.path.abspath( |  | ||||||
|     os.path.join(os.path.dirname(__file__), "../.."), |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| # load .env file |  | ||||||
| dotenv.read_dotenv("{0}/.env".format(PROJECT_DIR)) |  | ||||||
| 
 |  | ||||||
| # Quick-start development settings - unsuitable for production |  | ||||||
| # See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/ |  | ||||||
| 
 |  | ||||||
| SITE_ID = 1 |  | ||||||
| 
 |  | ||||||
| APP_ROOT_ENDPOINT = "/" |  | ||||||
| 
 |  | ||||||
| LOGIN_URL = None |  | ||||||
| LOGOUT_URL = None |  | ||||||
| LOGIN_REDIRECT_URL = None |  | ||||||
| 
 |  | ||||||
| EMAIL_HOST = "localhost" |  | ||||||
| EMAIL_PORT = 25 |  | ||||||
| 
 |  | ||||||
| SECRET_KEY = env('DJANGO_SECRET_KEY') |  | ||||||
| 
 |  | ||||||
| # Application definition |  | ||||||
| 
 |  | ||||||
| INSTALLED_APPS = ( |  | ||||||
|     #1st migrate |  | ||||||
|     'membership', |  | ||||||
|     'django.contrib.admin', |  | ||||||
|     'django.contrib.auth', |  | ||||||
|     'django.contrib.contenttypes', |  | ||||||
|     'django.contrib.sessions', |  | ||||||
|     'django.contrib.messages', |  | ||||||
|     'django.contrib.staticfiles', |  | ||||||
|     'django.contrib.sites', |  | ||||||
|     'easy_thumbnails', |  | ||||||
|     'mptt', |  | ||||||
|     'parler', |  | ||||||
|     'taggit', |  | ||||||
|     'taggit_autosuggest', |  | ||||||
|     'django_select2', |  | ||||||
|     'meta', |  | ||||||
|     'meta_mixin', |  | ||||||
| #   'admin_enhancer', |  | ||||||
|     'djangocms_blog', |  | ||||||
|     'bootstrap3', |  | ||||||
|     'compressor', |  | ||||||
|     'filer', |  | ||||||
|     'djangocms_blog', |  | ||||||
|     'cms',  # django CMS itself |  | ||||||
|     'treebeard',  # utilities for implementing a tree |  | ||||||
|     'sekizai',  # for javascript and css management |  | ||||||
|     'menus',  # helper for model independent hierarchical website navigation |  | ||||||
|     'cmsplugin_filer_image', |  | ||||||
| 
 |  | ||||||
|     #2nd migrate |  | ||||||
|     # django-cms plugins |  | ||||||
|    'djangocms_file', |  | ||||||
|    'djangocms_picture', |  | ||||||
|    'djangocms_video', |  | ||||||
|    'djangocms_flash', |  | ||||||
| 
 |  | ||||||
|    'djangocms_googlemap', |  | ||||||
|    'djangocms_inherit', |  | ||||||
|    'djangocms_link', |  | ||||||
|    'djangocms_teaser', |  | ||||||
|    'djangocms_page_meta', |  | ||||||
|    'djangocms_text_ckeditor', |  | ||||||
|    'djangocms_admin_style', |  | ||||||
|    'cmsplugin_filer_file', |  | ||||||
|    'cmsplugin_filer_folder', |  | ||||||
|    'cmsplugin_filer_link', |  | ||||||
|    'cmsplugin_filer_teaser', |  | ||||||
|    'cmsplugin_filer_video', |  | ||||||
|     # |  | ||||||
|     #blog |  | ||||||
|     # versioning |  | ||||||
|     'reversion', |  | ||||||
|     # ungleich |  | ||||||
|     'ungleich', |  | ||||||
|     'hosting', |  | ||||||
|     'digitalglarus', |  | ||||||
|     'django_extensions', |  | ||||||
|     'debug_toolbar' |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| MIDDLEWARE_CLASSES = ( |  | ||||||
|     'django.contrib.sessions.middleware.SessionMiddleware', |  | ||||||
|     'django.middleware.common.CommonMiddleware', |  | ||||||
|     'django.middleware.csrf.CsrfViewMiddleware', |  | ||||||
|     'django.contrib.auth.middleware.AuthenticationMiddleware', |  | ||||||
|     'django.contrib.auth.middleware.SessionAuthenticationMiddleware', |  | ||||||
|     'django.contrib.messages.middleware.MessageMiddleware', |  | ||||||
|     'django.middleware.clickjacking.XFrameOptionsMiddleware', |  | ||||||
|     'django.middleware.locale.LocaleMiddleware', |  | ||||||
|     # django-cms middlewares |  | ||||||
|     'cms.middleware.user.CurrentUserMiddleware', |  | ||||||
|     'cms.middleware.page.CurrentPageMiddleware', |  | ||||||
|     'cms.middleware.toolbar.ToolbarMiddleware', |  | ||||||
|     'cms.middleware.language.LanguageCookieMiddleware', |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| ROOT_URLCONF = 'dynamicweb.urls' |  | ||||||
| 
 |  | ||||||
| TEMPLATES = [ |  | ||||||
|     { |  | ||||||
|         'BACKEND': 'django.template.backends.django.DjangoTemplates', |  | ||||||
|         'DIRS': [ |  | ||||||
|             os.path.join(PROJECT_DIR, 'membership/'),  # membership template |  | ||||||
|             os.path.join(PROJECT_DIR, 'templates/'), |  | ||||||
|             os.path.join(PROJECT_DIR, 'templates/digitalglarus/partials'), |  | ||||||
|             os.path.join(PROJECT_DIR, 'templates/cms'), |  | ||||||
|             os.path.join(PROJECT_DIR, 'templates/digitalglarus'), |  | ||||||
|         ], |  | ||||||
|         'APP_DIRS': True, |  | ||||||
|         'OPTIONS': { |  | ||||||
|             'context_processors': [ |  | ||||||
|                 'django.template.context_processors.debug', |  | ||||||
|                 'django.template.context_processors.request', |  | ||||||
|                 'django.contrib.auth.context_processors.auth', |  | ||||||
|                 'django.contrib.messages.context_processors.messages', |  | ||||||
|                 "django.core.context_processors.media", |  | ||||||
|                 "django.core.context_processors.static", |  | ||||||
|                 "django.core.context_processors.tz", |  | ||||||
|                 "django.contrib.messages.context_processors.messages", |  | ||||||
|                 'sekizai.context_processors.sekizai', |  | ||||||
|                 'cms.context_processors.cms_settings', |  | ||||||
|             ], |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| WSGI_APPLICATION = 'dynamicweb.wsgi.application' |  | ||||||
| 
 |  | ||||||
| TDIR = os.path.join(PROJECT_DIR, 'templates') |  | ||||||
| 
 |  | ||||||
| CMS_TEMPLATES_DIR = { |  | ||||||
|     1: os.path.join(TDIR, '') |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| DATABASES = { |  | ||||||
|     'default': { |  | ||||||
|         'ENGINE': 'django.db.backends.postgresql_psycopg2', |  | ||||||
|         'NAME': 'app', |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Internationalization |  | ||||||
| # https://docs.djangoproject.com/en/1.7/topics/i18n/ |  | ||||||
| 
 |  | ||||||
| TIME_ZONE = 'UTC' |  | ||||||
| 
 |  | ||||||
| USE_I18N = True |  | ||||||
| 
 |  | ||||||
| USE_L10N = True |  | ||||||
| 
 |  | ||||||
| USE_TZ = True |  | ||||||
| 
 |  | ||||||
| LANGUAGES = ( |  | ||||||
|     ('en-us', _('English')), |  | ||||||
|     ('de', _('Deutsch')), |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| LANGUAGE_CODE = 'en-us' |  | ||||||
| 
 |  | ||||||
| CMS_PLACEHOLDER_CONF = { |  | ||||||
|     'logo_image': { |  | ||||||
|         'name': 'Logo Image', |  | ||||||
|         'plugins': ['FilerImagePlugin'], |  | ||||||
|         'limits': { |  | ||||||
|             'global': 1, |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     'page-title': { |  | ||||||
|         'name': 'Page Title', |  | ||||||
|         'plugins': ['TextPlugin'], |  | ||||||
|         'default_plugins': [ |  | ||||||
|             { |  | ||||||
|                 'plugin_type': 'TextPlugin', |  | ||||||
|                 'values': { |  | ||||||
|                     'body': 'Page Title...' |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         ], |  | ||||||
|         'limits': { |  | ||||||
|             'global': 1, |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     'page-subtitle': { |  | ||||||
|         'name': 'Page Subtitle', |  | ||||||
|         'inherit': 'page-title', |  | ||||||
|         'default_plugins': [ |  | ||||||
|             { |  | ||||||
|                 'plugin_type': 'TextPlugin', |  | ||||||
|                 'values': { |  | ||||||
|                     'body': 'Page subtitle...' |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         ], |  | ||||||
|     }, |  | ||||||
|     'footer_copyright': { |  | ||||||
|         'name': 'Copyright', |  | ||||||
|         'inherit': 'page-title', |  | ||||||
|         'default_plugins': [ |  | ||||||
|             { |  | ||||||
|                 'plugin_type': 'TextPlugin', |  | ||||||
|                 'values': { |  | ||||||
|                     'body': 'Copyright...' |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         ], |  | ||||||
|     }, |  | ||||||
|     'content': { |  | ||||||
|         'name': _('Content'), |  | ||||||
|         'default_plugins': [ |  | ||||||
|             { |  | ||||||
|                 'plugin_type': 'TextPlugin', |  | ||||||
|                 'values': {'body': '<p></p>'}, |  | ||||||
|             }, |  | ||||||
|         ] |  | ||||||
|     }, |  | ||||||
|     'post_content': { |  | ||||||
|         'name': _('Content'), |  | ||||||
|         'default_plugins': [ |  | ||||||
|             { |  | ||||||
|                 'plugin_type': 'TextPlugin', |  | ||||||
|                 'values': {'body': '<p></p>'}, |  | ||||||
|             }, |  | ||||||
|         ] |  | ||||||
|     }, |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| CACHES = { |  | ||||||
|     'default': { |  | ||||||
|         'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache', |  | ||||||
|         'LOCATION': '127.0.0.1:11211', |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| if LOGIN_URL is None: |  | ||||||
|     LOGIN_URL = APP_ROOT_ENDPOINT + 'accounts/login/' |  | ||||||
| if LOGOUT_URL is None: |  | ||||||
|     LOGOUT_URL = APP_ROOT_ENDPOINT + 'accounts/logout/' |  | ||||||
| if LOGIN_REDIRECT_URL is None: |  | ||||||
|     LOGIN_REDIRECT_URL = APP_ROOT_ENDPOINT |  | ||||||
| 
 |  | ||||||
| # Static files (CSS, JavaScript, Images) |  | ||||||
| # https://docs.djangoproject.com/en/1.7/howto/static-files/ |  | ||||||
| 
 |  | ||||||
| STATIC_URL = '/static/' |  | ||||||
| 
 |  | ||||||
| STATIC_ROOT = os.path.join(PROJECT_DIR, 'static') |  | ||||||
| 
 |  | ||||||
| MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media') |  | ||||||
| MEDIA_URL = APP_ROOT_ENDPOINT + 'media/' |  | ||||||
| FILE_UPLOAD_PERMISSIONS = 0o644 |  | ||||||
| 
 |  | ||||||
| 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_teaser': 'djangocms_teaser.migrations_django', |  | ||||||
|     'djangocms_column': 'djangocms_column.migrations_django', |  | ||||||
|     'djangocms_flash': 'djangocms_flash.migrations_django', |  | ||||||
|     'djangocms_googlemap': 'djangocms_googlemap.migrations_django', |  | ||||||
|     'djangocms_inherit': 'djangocms_inherit.migrations_django', |  | ||||||
|     'djangocms_style': 'djangocms_style.migrations_django', |  | ||||||
|     'cmsplugin_filer_image': 'cmsplugin_filer_image.migrations_django', |  | ||||||
|     'cmsplugin_filer_file': 'cmsplugin_filer_file.migrations_django', |  | ||||||
|     'cmsplugin_filer_folder': 'cmsplugin_filer_folder.migrations_django', |  | ||||||
|     'cmsplugin_filer_link': 'cmsplugin_filer_link.migrations_django', |  | ||||||
|     'cmsplugin_filer_teaser': 'cmsplugin_filer_teaser.migrations_django', |  | ||||||
|     'cmsplugin_filer_utils': 'cmsplugin_filer_utils.migrations_django', |  | ||||||
|     'cmsplugin_filer_video': 'cmsplugin_filer_video.migrations_django', |  | ||||||
|     'djangocms_text_ckeditor': 'djangocms_text_ckeditor.migrations', |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| STATICFILES_FINDERS = ( |  | ||||||
|     'django.contrib.staticfiles.finders.FileSystemFinder', |  | ||||||
|     'django.contrib.staticfiles.finders.AppDirectoriesFinder', |  | ||||||
|     'compressor.finders.CompressorFinder', |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| #COMPRESS_PRECOMPILERS = ( |  | ||||||
| #    ('text/less', 'lesscpy {infile}'), |  | ||||||
| #) |  | ||||||
| 
 |  | ||||||
| THUMBNAIL_PROCESSORS = ( |  | ||||||
|     'easy_thumbnails.processors.colorspace', |  | ||||||
|     'easy_thumbnails.processors.autocrop', |  | ||||||
|     'filer.thumbnail_processors.scale_and_crop_with_subject_location', |  | ||||||
|     'easy_thumbnails.processors.filters', |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| # django-cms-text-ckeditor |  | ||||||
| TEXT_SAVE_IMAGE_FUNCTION = ( |  | ||||||
|     'cmsplugin_filer_image.integrations.ckeditor.create_image_plugin' |  | ||||||
| ) |  | ||||||
| TEXT_ADDITIONAL_TAGS = ('iframe',) |  | ||||||
| TEXT_ADDITIONAL_ATTRIBUTES = ('scrolling', 'allowfullscreen', 'frameborder') |  | ||||||
| USE_X_FORWARDED_HOST = True |  | ||||||
| 
 |  | ||||||
| # Django Bootstrap - Settings |  | ||||||
| # Added Configuration for bootstrap static files to load over https. |  | ||||||
| BOOTSTRAP3 = { |  | ||||||
| 
 |  | ||||||
|     # The URL to the jQuery JavaScript file |  | ||||||
|     'jquery_url': '//code.jquery.com/jquery.min.js', |  | ||||||
| 
 |  | ||||||
|     # The Bootstrap base URL |  | ||||||
|     'base_url': '//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/', |  | ||||||
| 
 |  | ||||||
|     # The complete URL to the Bootstrap CSS file |  | ||||||
|     # (None means derive it from base_url) |  | ||||||
|     'css_url': None, |  | ||||||
| 
 |  | ||||||
|     # The complete URL to the Bootstrap CSS file (None means no theme) |  | ||||||
|     'theme_url': None, |  | ||||||
| 
 |  | ||||||
|     # The complete URL to the Bootstrap JavaScript file |  | ||||||
|     # (None means derive it from base_url) |  | ||||||
|     'javascript_url': None, |  | ||||||
| 
 |  | ||||||
|     # Put JavaScript in the HEAD section of the HTML document |  | ||||||
|     # (only relevant if you use bootstrap3.html) |  | ||||||
|     'javascript_in_head': False, |  | ||||||
| 
 |  | ||||||
|     # Include jQuery with Bootstrap JavaScript |  | ||||||
|     # (affects django-bootstrap3 template tags) |  | ||||||
|     'include_jquery': False, |  | ||||||
| 
 |  | ||||||
|     # Label class to use in horizontal forms |  | ||||||
|     'horizontal_label_class': 'col-md-3', |  | ||||||
| 
 |  | ||||||
|     # Field class to use in horizontal forms |  | ||||||
|     'horizontal_field_class': 'col-md-9', |  | ||||||
| 
 |  | ||||||
|     # Set HTML required attribute on required fields |  | ||||||
|     'set_required': True, |  | ||||||
| 
 |  | ||||||
|     # Set HTML disabled attribute on disabled fields |  | ||||||
|     'set_disabled': False, |  | ||||||
| 
 |  | ||||||
|     # Set placeholder attributes to label if no placeholder is provided |  | ||||||
|     'set_placeholder': True, |  | ||||||
| 
 |  | ||||||
|     # Class to indicate required (better to set this in your Django form) |  | ||||||
|     'required_css_class': '', |  | ||||||
| 
 |  | ||||||
|     # Class to indicate error (better to set this in your Django form) |  | ||||||
|     'error_css_class': 'has-error', |  | ||||||
| 
 |  | ||||||
|     # Class to indicate success, meaning the field has valid input |  | ||||||
|     # (better to set this in your Django form) |  | ||||||
|     'success_css_class': 'has-success', |  | ||||||
| 
 |  | ||||||
|     # Renderers (only set these if you have studied the source and understand |  | ||||||
|     # the inner workings) |  | ||||||
|     'formset_renderers': { |  | ||||||
|         'default': 'bootstrap3.renderers.FormsetRenderer', |  | ||||||
|     }, |  | ||||||
|     'form_renderers': { |  | ||||||
|         'default': 'bootstrap3.renderers.FormRenderer', |  | ||||||
|     }, |  | ||||||
|     'field_renderers': { |  | ||||||
|         'default': 'bootstrap3.renderers.FieldRenderer', |  | ||||||
|         'inline': 'bootstrap3.renderers.InlineFieldRenderer', |  | ||||||
|     }, |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # djangocms_blog config |  | ||||||
| 
 |  | ||||||
| BLOG_ENABLE_COMMENTS = False |  | ||||||
| BLOG_USE_PLACEHOLDER = True |  | ||||||
| BLOG_IMAGE_THUMBNAIL_SIZE = {'size': '120x120', 'crop': True, 'upscale': False} |  | ||||||
| BLOG_IMAGE_FULL_SIZE = {'size': '640x120', 'crop': True, 'upscale': False} |  | ||||||
| BLOG_PAGINATION = 4 |  | ||||||
| BLOG_LATEST_POSTS = BLOG_PAGINATION |  | ||||||
| BLOG_POSTS_LIST_TRUNCWORDS_COUNT = 100 |  | ||||||
| BLOG_MULTISITE = True |  | ||||||
| BLOG_AUTHOR_DEFAULT = True |  | ||||||
| 
 |  | ||||||
| # django-meta |  | ||||||
| META_SITE_PROTOCOL = "https" |  | ||||||
| META_SITE_DOMAIN = "ungleich.ch" |  | ||||||
| META_SITE_TYPE = "website" |  | ||||||
| META_SITE_NAME = "ungleich" |  | ||||||
| META_INCLUDE_KEYWORDS = ["ungleich", "hosting", "switzerland", |  | ||||||
|                          "Schweiz", "Swiss", "cdist"] |  | ||||||
| META_USE_SITES = True |  | ||||||
| 
 |  | ||||||
| PARLER_LANGUAGES = {1: ({'code': 'en-us'}, {'code': 'de'},)} |  | ||||||
| AUTH_USER_MODEL = 'membership.CustomUser' |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # PAYMENT |  | ||||||
| 
 |  | ||||||
| STRIPE_API_PUBLIC_KEY = 'pk_test_uvWyHNJgVL2IB8kjfgJkGjg4'  # used in frontend to call from user browser |  | ||||||
| STRIPE_API_PRIVATE_KEY = 'sk_test_uIPMdgXoRGydrcD7fkwcn7dj'  # used in backend payment |  | ||||||
| STRIPE_DESCRIPTION_ON_PAYMENT = "Payment for ungleich GmbH services" |  | ||||||
| 
 |  | ||||||
| # EMAIL MESSAGES |  | ||||||
| REGISTRATION_MESSAGE = {'subject': "Validation mail", |  | ||||||
|                         'message': 'Please validate Your account under this link http://localhost:8000/en-us/validate/{}', |  | ||||||
|                         'from': 'test@test.com'} |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| #dont migrate test |  | ||||||
| # SOUTH_TESTS_MIGRATE = False |  | ||||||
| 
 |  | ||||||
| STRIPE_API_PUBLIC_KEY = 'pk_test_uvWyHNJgVL2IB8kjfgJkGjg4'  # used in frontend to call from user browser |  | ||||||
| STRIPE_API_PRIVATE_KEY = 'sk_test_uIPMdgXoRGydrcD7fkwcn7dj'  # used in backend payment |  | ||||||
| STRIPE_DESCRIPTION_ON_PAYMENT = "Payment for ungleich GmbH services" |  | ||||||
|  | @ -1,12 +1,8 @@ | ||||||
| from .base import * | from .base import * | ||||||
| 
 | 
 | ||||||
| ADMINS = ( | # List of people that get admin messages | ||||||
|     ('Nico Schottelius', 'nico.schottelius@ungleich.ch'), | ADMINS = ( (x, x + "@ungleich.ch") for x in ["web-team"] ) | ||||||
|     ('Raul Ascencio', 'raul.ascencio@yandex.com'), |  | ||||||
|     ('Web team', 'web-team@ungleich.ch') |  | ||||||
| 
 | 
 | ||||||
| ) |  | ||||||
| #    ('Sanghee Kim', 'sanghee.kim@ungleich.ch'), |  | ||||||
| DEBUG=False | DEBUG=False | ||||||
| 
 | 
 | ||||||
| EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' | EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' | ||||||
|  | @ -17,6 +13,15 @@ REGISTRATION_MESSAGE['message'] = REGISTRATION_MESSAGE['message'].format(host='d | ||||||
| 
 | 
 | ||||||
| ALLOWED_HOSTS = [ | ALLOWED_HOSTS = [ | ||||||
|     ".ungleich.ch", |     ".ungleich.ch", | ||||||
|     "digital.glarus.ungleich.ch", |     ".datacenterlight.ch", | ||||||
|  |     ".rails-hosting.ch", | ||||||
|  |     ".django-hosting.ch", | ||||||
|  |     ".node-hosting.ch", | ||||||
|  |     ".devuanhosting.ch", | ||||||
|  |     ".digitalezukunft.ch", | ||||||
|  |     ".ipv6onlyhosting.ch", | ||||||
|  |     ".ipv6onlyhosting.com", | ||||||
|  |     ".ipv6onlyhosting.net", | ||||||
|  |     ".digitalglarus.ch", | ||||||
|     ".alplora.ch" |     ".alplora.ch" | ||||||
| ] | ] | ||||||
|  |  | ||||||
| Before Width: | Height: | Size: 507 KiB | 
| Before Width: | Height: | Size: 380 KiB | 
| Before Width: | Height: | Size: 910 KiB | 
| Before Width: | Height: | Size: 16 KiB | 
| Before Width: | Height: | Size: 18 KiB | 
| Before Width: | Height: | Size: 358 KiB | 
| Before Width: | Height: | Size: 285 KiB | 
| Before Width: | Height: | Size: 106 KiB | 
| Before Width: | Height: | Size: 482 KiB | 
| Before Width: | Height: | Size: 291 KiB | 
| Before Width: | Height: | Size: 196 KiB | 
| Before Width: | Height: | Size: 2.3 MiB | 
| Before Width: | Height: | Size: 541 KiB | 
| Before Width: | Height: | Size: 441 KiB | 
| Before Width: | Height: | Size: 56 KiB | 
| Before Width: | Height: | Size: 190 KiB | 
| Before Width: | Height: | Size: 114 KiB | 
| Before Width: | Height: | Size: 283 KiB | 
| Before Width: | Height: | Size: 103 KiB | 
| Before Width: | Height: | Size: 3.5 MiB | 
| Before Width: | Height: | Size: 1.3 MiB | 
| Before Width: | Height: | Size: 384 KiB | 
| Before Width: | Height: | Size: 1.2 MiB | 
| Before Width: | Height: | Size: 105 KiB | 
| Before Width: | Height: | Size: 252 KiB | 
| Before Width: | Height: | Size: 36 KiB | 
| Before Width: | Height: | Size: 303 KiB | 
| Before Width: | Height: | Size: 195 KiB | 
| Before Width: | Height: | Size: 5.5 KiB | 
| Before Width: | Height: | Size: 27 KiB | 
| Before Width: | Height: | Size: 2.8 MiB | 
| Before Width: | Height: | Size: 447 B | 
| Before Width: | Height: | Size: 58 KiB | 
| Before Width: | Height: | Size: 328 KiB | 
| Before Width: | Height: | Size: 980 KiB | 
| Before Width: | Height: | Size: 503 KiB | 
| Before Width: | Height: | Size: 942 KiB | 
| Before Width: | Height: | Size: 1.3 MiB | 
| Before Width: | Height: | Size: 557 KiB | 
| Before Width: | Height: | Size: 3.2 MiB | 
| Before Width: | Height: | Size: 833 KiB | 
| Before Width: | Height: | Size: 12 KiB | 
| Before Width: | Height: | Size: 893 KiB | 
| Before Width: | Height: | Size: 280 KiB | 
| Before Width: | Height: | Size: 2.7 MiB | 
| Before Width: | Height: | Size: 265 KiB | 
| Before Width: | Height: | Size: 3.4 MiB | 
| Before Width: | Height: | Size: 13 KiB | 
| Before Width: | Height: | Size: 415 KiB | 
| Before Width: | Height: | Size: 438 KiB | 
| Before Width: | Height: | Size: 2.1 MiB | 
| Before Width: | Height: | Size: 13 KiB | 
| Before Width: | Height: | Size: 824 KiB | 
| Before Width: | Height: | Size: 2.4 MiB | 
|  | @ -1,71 +0,0 @@ | ||||||
| <?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.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> |  | ||||||
| <svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" |  | ||||||
| 	 width="250px" height="70px" viewBox="0 0 250 70" enable-background="new 0 0 250 70" xml:space="preserve"> |  | ||||||
| <g> |  | ||||||
| 	<path fill="#010101" d="M72.846,59.448c0-0.947,0.333-1.869,1.003-2.77c0.67-0.899,1.625-1.709,2.866-2.425v-0.201 |  | ||||||
| 		c-0.649-0.356-1.224-0.854-1.717-1.492c-0.486-0.638-0.732-1.463-0.732-2.474c0-0.784,0.254-1.577,0.762-2.379 |  | ||||||
| 		c0.502-0.8,1.216-1.511,2.133-2.13V45.38c-0.853-0.619-1.572-1.446-2.161-2.476c-0.584-1.028-0.878-2.262-0.878-3.697 |  | ||||||
| 		c0-1.341,0.259-2.542,0.782-3.605c0.523-1.062,1.227-1.965,2.11-2.719c0.881-0.752,1.901-1.323,3.062-1.717 |  | ||||||
| 		c1.158-0.391,2.392-0.586,3.7-0.586c1.338,0,2.547,0.195,3.628,0.586h9.849v3.677h-5.979c0.493,0.523,0.932,1.17,1.323,1.935 |  | ||||||
| 		c0.394,0.771,0.589,1.629,0.589,2.576c0,1.309-0.244,2.472-0.734,3.479c-0.49,1.016-1.161,1.871-2.011,2.574 |  | ||||||
| 		c-0.852,0.703-1.846,1.232-2.988,1.59c-1.143,0.359-2.369,0.543-3.677,0.543c-0.586,0-1.216-0.066-1.889-0.198 |  | ||||||
| 		c-0.667-0.127-1.328-0.328-1.983-0.589c-1.112,0.721-1.666,1.552-1.666,2.501c0,0.881,0.409,1.521,1.224,1.912 |  | ||||||
| 		c0.815,0.394,1.993,0.589,3.529,0.589h5.096c3.142,0,5.464,0.452,6.988,1.346c1.518,0.899,2.277,2.383,2.277,4.438 |  | ||||||
| 		c0,1.146-0.32,2.222-0.955,3.234c-0.641,1.014-1.546,1.903-2.723,2.675c-1.175,0.764-2.597,1.37-4.266,1.811 |  | ||||||
| 		c-1.663,0.444-3.527,0.663-5.586,0.663c-3.4,0-6.076-0.548-8.036-1.646C73.827,63.184,72.846,61.57,72.846,59.448z M76.958,58.861 |  | ||||||
| 		c0,1.143,0.63,2.062,1.89,2.768c1.259,0.703,3.08,1.055,5.464,1.055c1.274,0,2.425-0.123,3.456-0.367 |  | ||||||
| 		c1.03-0.244,1.912-0.569,2.647-0.98c0.737-0.409,1.295-0.876,1.691-1.396c0.391-0.521,0.586-1.076,0.586-1.668 |  | ||||||
| 		c0-1.043-0.434-1.736-1.297-2.08c-0.866-0.346-2.166-0.516-3.897-0.516h-4.215c-0.751,0-1.419-0.023-2.006-0.074 |  | ||||||
| 		c-0.591-0.048-1.147-0.153-1.668-0.318c-0.983,0.556-1.666,1.13-2.062,1.716C77.159,57.586,76.958,58.204,76.958,58.861z |  | ||||||
| 		 M83.773,44.4c1.374,0,2.547-0.454,3.532-1.37c0.978-0.917,1.47-2.188,1.47-3.821c0-1.572-0.493-2.829-1.47-3.775 |  | ||||||
| 		c-0.985-0.948-2.158-1.423-3.532-1.423s-2.549,0.475-3.529,1.423c-0.978,0.946-1.47,2.203-1.47,3.775 |  | ||||||
| 		c0,1.633,0.493,2.905,1.47,3.821C81.225,43.946,82.399,44.4,83.773,44.4z"/> |  | ||||||
| </g> |  | ||||||
| <path fill="#010101" d="M36.09,55.784h-4.107l-0.404-4.104h-0.203c-1.219,1.42-2.546,2.559-3.98,3.424 |  | ||||||
| 	c-1.438,0.857-3.101,1.289-4.994,1.289c-2.94,0-5.088-0.851-6.439-2.559c-1.353-1.707-2.027-4.2-2.027-7.479V33.906l-6.562-0.127 |  | ||||||
| 	l11.632-4.478l-0.051,3.382v13.013c0,2.199,0.389,3.812,1.168,4.842c0.777,1.033,2.11,1.549,4.004,1.549 |  | ||||||
| 	c1.285,0,2.458-0.314,3.524-0.941c1.063-0.625,2.207-1.682,3.423-3.166V30.993h5.02L36.09,55.784L36.09,55.784z"/> |  | ||||||
| <path fill="#010101" d="M44.406,30.992h4.106l0.405,4.007h0.2c1.252-1.287,2.604-2.376,4.059-3.271 |  | ||||||
| 	c1.449-0.896,3.144-1.343,5.07-1.343c2.905,0,5.038,0.863,6.389,2.584c1.351,1.722,2.028,4.21,2.028,7.455v15.359h-5.021V41.082 |  | ||||||
| 	c0-2.161-0.387-3.761-1.163-4.789c-0.777-1.033-2.113-1.551-4.007-1.551c-1.32,0-2.501,0.335-3.551,0.99 |  | ||||||
| 	c-1.046,0.66-2.217,1.646-3.499,2.968v17.083h-5.017V30.992L44.406,30.992z"/> |  | ||||||
| <path fill="#010101" d="M122.687,43.416c0-2.029,0.355-3.848,1.064-5.452c0.71-1.604,1.654-2.976,2.841-4.106 |  | ||||||
| 	c1.181-1.132,2.532-1.996,4.058-2.587c1.52-0.591,3.093-0.886,4.71-0.886c1.828,0,3.439,0.287,4.849,0.863 |  | ||||||
| 	c1.397,0.574,2.592,1.374,3.571,2.402c0.982,1.036,1.726,2.268,2.23,3.708c0.507,1.435,0.763,3.014,0.763,4.737 |  | ||||||
| 	c0,0.513-0.026,0.988-0.078,1.445c-0.051,0.46-0.107,0.838-0.178,1.14h-18.66c0.17,2.435,1.074,4.338,2.717,5.706 |  | ||||||
| 	c1.639,1.369,3.705,2.052,6.208,2.052c1.354,0,2.61-0.186,3.778-0.56c1.168-0.368,2.31-0.891,3.42-1.565l1.774,3.191 |  | ||||||
| 	c-1.279,0.812-2.729,1.495-4.332,2.055c-1.606,0.557-3.375,0.834-5.302,0.834c-1.86,0-3.604-0.293-5.243-0.886 |  | ||||||
| 	c-1.644-0.591-3.066-1.44-4.285-2.559c-1.22-1.115-2.175-2.478-2.866-4.083C123.033,47.258,122.687,45.441,122.687,43.416z |  | ||||||
| 	 M142.105,41.237c0-2.234-0.577-3.941-1.725-5.126c-1.15-1.182-2.789-1.771-4.918-1.771c-1.859,0-3.517,0.589-4.97,1.771 |  | ||||||
| 	c-1.455,1.186-2.351,2.892-2.686,5.126H142.105z"/> |  | ||||||
| <path fill="#010101" d="M163.271,30.208l0.015,26.086h-5.02V37.248h-9.415L163.271,30.208z M160.344,25.094 |  | ||||||
| 	c-1.084,0-1.978-0.323-2.688-0.962c-0.707-0.643-1.062-1.506-1.062-2.587s0.354-1.95,1.062-2.61c0.711-0.66,1.604-0.988,2.688-0.988 |  | ||||||
| 	c1.08,0,1.979,0.328,2.688,0.988c0.709,0.66,1.066,1.529,1.066,2.61s-0.357,1.945-1.066,2.587 |  | ||||||
| 	C162.322,24.771,161.424,25.094,160.344,25.094z"/> |  | ||||||
| <path fill="#010101" d="M170.242,43.921c0-2.062,0.373-3.905,1.117-5.524c0.744-1.625,1.76-2.991,3.045-4.111 |  | ||||||
| 	c1.281-1.112,2.761-1.955,4.437-2.532c1.675-0.574,3.455-0.86,5.349-0.86c2.028,0,3.802,0.345,5.324,1.036 |  | ||||||
| 	c1.521,0.693,2.791,1.534,3.804,2.511l-2.434,3.194c-0.981-0.812-1.998-1.444-3.047-1.901c-1.043-0.457-2.179-0.684-3.396-0.684 |  | ||||||
| 	c-1.313,0-2.531,0.211-3.648,0.635c-1.112,0.422-2.071,1.021-2.862,1.799c-0.793,0.778-1.409,1.716-1.853,2.815 |  | ||||||
| 	c-0.438,1.097-0.657,2.31-0.657,3.623c0,1.318,0.211,2.529,0.635,3.628c0.422,1.098,1.028,2.034,1.824,2.812 |  | ||||||
| 	c0.795,0.773,1.732,1.38,2.814,1.801c1.081,0.419,2.279,0.63,3.6,0.63c1.521,0,2.892-0.285,4.105-0.858 |  | ||||||
| 	c1.217-0.576,2.312-1.267,3.297-2.08l2.13,3.246c-1.419,1.217-2.976,2.155-4.666,2.812c-1.688,0.658-3.448,0.988-5.272,0.988 |  | ||||||
| 	c-1.926,0-3.726-0.287-5.398-0.861c-1.674-0.571-3.117-1.419-4.337-2.536c-1.216-1.118-2.171-2.476-2.864-4.083 |  | ||||||
| 	C170.59,47.818,170.242,45.984,170.242,43.921z"/> |  | ||||||
| <path fill="#010101" d="M194.072,20.488l10.513-5.213v14.603l-0.306,5.576c1.252-1.282,2.603-2.366,4.06-3.245 |  | ||||||
| 	c1.453-0.876,3.144-1.315,5.069-1.315c2.904,0,5.035,0.86,6.388,2.584c1.351,1.724,2.026,4.209,2.026,7.456v15.36h-5.02V41.587 |  | ||||||
| 	c0-2.163-0.39-3.76-1.168-4.789c-0.774-1.03-2.107-1.549-4.002-1.549c-1.317,0-2.504,0.33-3.55,0.99 |  | ||||||
| 	c-1.049,0.659-2.217,1.647-3.5,2.968v17.085h-5.021l-0.104-36.017L194.072,20.488z"/> |  | ||||||
| <g> |  | ||||||
| 	<polygon fill="#070404" points="222.766,9.28 221.074,12.812 242.092,12.901 243.783,9.3 	"/> |  | ||||||
| 	<polygon fill="#070404" points="221.103,16.986 219.357,20.693 240.404,20.736 242.092,17.07 	"/> |  | ||||||
| 	<polygon fill="#070404" points="225.205,24.898 234.847,4.372 238.561,4.425 229.031,24.903 	"/> |  | ||||||
| </g> |  | ||||||
| <g> |  | ||||||
| 	<path fill="#010101" d="M110.112,47.722c0,1.663,0.416,2.867,1.251,3.604c0.833,0.732,1.917,1.104,3.258,1.104 |  | ||||||
| 		c0.652,0,1.325-0.084,2.012-0.248c0.686-0.164,1.455-0.425,2.304-0.785l1.176,3.631c-0.557,0.192-1.088,0.371-1.593,0.539 |  | ||||||
| 		c-0.512,0.162-1.021,0.297-1.544,0.412c-0.522,0.117-1.069,0.215-1.641,0.295c-0.574,0.08-1.202,0.125-1.888,0.125 |  | ||||||
| 		c-2.681,0-4.715-0.768-6.104-2.307c-1.389-1.536-2.081-3.755-2.081-6.665V14.792H97.42l12.691-8.943"/> |  | ||||||
| </g> |  | ||||||
| </svg> |  | ||||||
| Before Width: | Height: | Size: 6.6 KiB | 
| Before Width: | Height: | Size: 521 KiB | 
| Before Width: | Height: | Size: 628 KiB | 
| Before Width: | Height: | Size: 8.8 KiB | 
| Before Width: | Height: | Size: 189 KiB | 
| Before Width: | Height: | Size: 321 KiB | 
|  | @ -1,71 +0,0 @@ | ||||||
| <?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.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> |  | ||||||
| <svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" |  | ||||||
| 	 width="250px" height="70px" viewBox="0 0 250 70" enable-background="new 0 0 250 70" xml:space="preserve"> |  | ||||||
| <g> |  | ||||||
| 	<path fill="#010101" d="M72.846,59.448c0-0.947,0.333-1.869,1.003-2.77c0.67-0.899,1.625-1.709,2.866-2.425v-0.201 |  | ||||||
| 		c-0.649-0.356-1.224-0.854-1.717-1.492c-0.486-0.638-0.732-1.463-0.732-2.474c0-0.784,0.254-1.577,0.762-2.379 |  | ||||||
| 		c0.502-0.8,1.216-1.511,2.133-2.13V45.38c-0.853-0.619-1.572-1.446-2.161-2.476c-0.584-1.028-0.878-2.262-0.878-3.697 |  | ||||||
| 		c0-1.341,0.259-2.542,0.782-3.605c0.523-1.062,1.227-1.965,2.11-2.719c0.881-0.752,1.901-1.323,3.062-1.717 |  | ||||||
| 		c1.158-0.391,2.392-0.586,3.7-0.586c1.338,0,2.547,0.195,3.628,0.586h9.849v3.677h-5.979c0.493,0.523,0.932,1.17,1.323,1.935 |  | ||||||
| 		c0.394,0.771,0.589,1.629,0.589,2.576c0,1.309-0.244,2.472-0.734,3.479c-0.49,1.016-1.161,1.871-2.011,2.574 |  | ||||||
| 		c-0.852,0.703-1.846,1.232-2.988,1.59c-1.143,0.359-2.369,0.543-3.677,0.543c-0.586,0-1.216-0.066-1.889-0.198 |  | ||||||
| 		c-0.667-0.127-1.328-0.328-1.983-0.589c-1.112,0.721-1.666,1.552-1.666,2.501c0,0.881,0.409,1.521,1.224,1.912 |  | ||||||
| 		c0.815,0.394,1.993,0.589,3.529,0.589h5.096c3.142,0,5.464,0.452,6.988,1.346c1.518,0.899,2.277,2.383,2.277,4.438 |  | ||||||
| 		c0,1.146-0.32,2.222-0.955,3.234c-0.641,1.014-1.546,1.903-2.723,2.675c-1.175,0.764-2.597,1.37-4.266,1.811 |  | ||||||
| 		c-1.663,0.444-3.527,0.663-5.586,0.663c-3.4,0-6.076-0.548-8.036-1.646C73.827,63.184,72.846,61.57,72.846,59.448z M76.958,58.861 |  | ||||||
| 		c0,1.143,0.63,2.062,1.89,2.768c1.259,0.703,3.08,1.055,5.464,1.055c1.274,0,2.425-0.123,3.456-0.367 |  | ||||||
| 		c1.03-0.244,1.912-0.569,2.647-0.98c0.737-0.409,1.295-0.876,1.691-1.396c0.391-0.521,0.586-1.076,0.586-1.668 |  | ||||||
| 		c0-1.043-0.434-1.736-1.297-2.08c-0.866-0.346-2.166-0.516-3.897-0.516h-4.215c-0.751,0-1.419-0.023-2.006-0.074 |  | ||||||
| 		c-0.591-0.048-1.147-0.153-1.668-0.318c-0.983,0.556-1.666,1.13-2.062,1.716C77.159,57.586,76.958,58.204,76.958,58.861z |  | ||||||
| 		 M83.773,44.4c1.374,0,2.547-0.454,3.532-1.37c0.978-0.917,1.47-2.188,1.47-3.821c0-1.572-0.493-2.829-1.47-3.775 |  | ||||||
| 		c-0.985-0.948-2.158-1.423-3.532-1.423s-2.549,0.475-3.529,1.423c-0.978,0.946-1.47,2.203-1.47,3.775 |  | ||||||
| 		c0,1.633,0.493,2.905,1.47,3.821C81.225,43.946,82.399,44.4,83.773,44.4z"/> |  | ||||||
| </g> |  | ||||||
| <path fill="#010101" d="M36.09,55.784h-4.107l-0.404-4.104h-0.203c-1.219,1.42-2.546,2.559-3.98,3.424 |  | ||||||
| 	c-1.438,0.857-3.101,1.289-4.994,1.289c-2.94,0-5.088-0.851-6.439-2.559c-1.353-1.707-2.027-4.2-2.027-7.479V33.906l-6.562-0.127 |  | ||||||
| 	l11.632-4.478l-0.051,3.382v13.013c0,2.199,0.389,3.812,1.168,4.842c0.777,1.033,2.11,1.549,4.004,1.549 |  | ||||||
| 	c1.285,0,2.458-0.314,3.524-0.941c1.063-0.625,2.207-1.682,3.423-3.166V30.993h5.02L36.09,55.784L36.09,55.784z"/> |  | ||||||
| <path fill="#010101" d="M44.406,30.992h4.106l0.405,4.007h0.2c1.252-1.287,2.604-2.376,4.059-3.271 |  | ||||||
| 	c1.449-0.896,3.144-1.343,5.07-1.343c2.905,0,5.038,0.863,6.389,2.584c1.351,1.722,2.028,4.21,2.028,7.455v15.359h-5.021V41.082 |  | ||||||
| 	c0-2.161-0.387-3.761-1.163-4.789c-0.777-1.033-2.113-1.551-4.007-1.551c-1.32,0-2.501,0.335-3.551,0.99 |  | ||||||
| 	c-1.046,0.66-2.217,1.646-3.499,2.968v17.083h-5.017V30.992L44.406,30.992z"/> |  | ||||||
| <path fill="#010101" d="M122.687,43.416c0-2.029,0.355-3.848,1.064-5.452c0.71-1.604,1.654-2.976,2.841-4.106 |  | ||||||
| 	c1.181-1.132,2.532-1.996,4.058-2.587c1.52-0.591,3.093-0.886,4.71-0.886c1.828,0,3.439,0.287,4.849,0.863 |  | ||||||
| 	c1.397,0.574,2.592,1.374,3.571,2.402c0.982,1.036,1.726,2.268,2.23,3.708c0.507,1.435,0.763,3.014,0.763,4.737 |  | ||||||
| 	c0,0.513-0.026,0.988-0.078,1.445c-0.051,0.46-0.107,0.838-0.178,1.14h-18.66c0.17,2.435,1.074,4.338,2.717,5.706 |  | ||||||
| 	c1.639,1.369,3.705,2.052,6.208,2.052c1.354,0,2.61-0.186,3.778-0.56c1.168-0.368,2.31-0.891,3.42-1.565l1.774,3.191 |  | ||||||
| 	c-1.279,0.812-2.729,1.495-4.332,2.055c-1.606,0.557-3.375,0.834-5.302,0.834c-1.86,0-3.604-0.293-5.243-0.886 |  | ||||||
| 	c-1.644-0.591-3.066-1.44-4.285-2.559c-1.22-1.115-2.175-2.478-2.866-4.083C123.033,47.258,122.687,45.441,122.687,43.416z |  | ||||||
| 	 M142.105,41.237c0-2.234-0.577-3.941-1.725-5.126c-1.15-1.182-2.789-1.771-4.918-1.771c-1.859,0-3.517,0.589-4.97,1.771 |  | ||||||
| 	c-1.455,1.186-2.351,2.892-2.686,5.126H142.105z"/> |  | ||||||
| <path fill="#010101" d="M163.271,30.208l0.015,26.086h-5.02V37.248h-9.415L163.271,30.208z M160.344,25.094 |  | ||||||
| 	c-1.084,0-1.978-0.323-2.688-0.962c-0.707-0.643-1.062-1.506-1.062-2.587s0.354-1.95,1.062-2.61c0.711-0.66,1.604-0.988,2.688-0.988 |  | ||||||
| 	c1.08,0,1.979,0.328,2.688,0.988c0.709,0.66,1.066,1.529,1.066,2.61s-0.357,1.945-1.066,2.587 |  | ||||||
| 	C162.322,24.771,161.424,25.094,160.344,25.094z"/> |  | ||||||
| <path fill="#010101" d="M170.242,43.921c0-2.062,0.373-3.905,1.117-5.524c0.744-1.625,1.76-2.991,3.045-4.111 |  | ||||||
| 	c1.281-1.112,2.761-1.955,4.437-2.532c1.675-0.574,3.455-0.86,5.349-0.86c2.028,0,3.802,0.345,5.324,1.036 |  | ||||||
| 	c1.521,0.693,2.791,1.534,3.804,2.511l-2.434,3.194c-0.981-0.812-1.998-1.444-3.047-1.901c-1.043-0.457-2.179-0.684-3.396-0.684 |  | ||||||
| 	c-1.313,0-2.531,0.211-3.648,0.635c-1.112,0.422-2.071,1.021-2.862,1.799c-0.793,0.778-1.409,1.716-1.853,2.815 |  | ||||||
| 	c-0.438,1.097-0.657,2.31-0.657,3.623c0,1.318,0.211,2.529,0.635,3.628c0.422,1.098,1.028,2.034,1.824,2.812 |  | ||||||
| 	c0.795,0.773,1.732,1.38,2.814,1.801c1.081,0.419,2.279,0.63,3.6,0.63c1.521,0,2.892-0.285,4.105-0.858 |  | ||||||
| 	c1.217-0.576,2.312-1.267,3.297-2.08l2.13,3.246c-1.419,1.217-2.976,2.155-4.666,2.812c-1.688,0.658-3.448,0.988-5.272,0.988 |  | ||||||
| 	c-1.926,0-3.726-0.287-5.398-0.861c-1.674-0.571-3.117-1.419-4.337-2.536c-1.216-1.118-2.171-2.476-2.864-4.083 |  | ||||||
| 	C170.59,47.818,170.242,45.984,170.242,43.921z"/> |  | ||||||
| <path fill="#010101" d="M194.072,20.488l10.513-5.213v14.603l-0.306,5.576c1.252-1.282,2.603-2.366,4.06-3.245 |  | ||||||
| 	c1.453-0.876,3.144-1.315,5.069-1.315c2.904,0,5.035,0.86,6.388,2.584c1.351,1.724,2.026,4.209,2.026,7.456v15.36h-5.02V41.587 |  | ||||||
| 	c0-2.163-0.39-3.76-1.168-4.789c-0.774-1.03-2.107-1.549-4.002-1.549c-1.317,0-2.504,0.33-3.55,0.99 |  | ||||||
| 	c-1.049,0.659-2.217,1.647-3.5,2.968v17.085h-5.021l-0.104-36.017L194.072,20.488z"/> |  | ||||||
| <g> |  | ||||||
| 	<polygon fill="#070404" points="222.766,9.28 221.074,12.812 242.092,12.901 243.783,9.3 	"/> |  | ||||||
| 	<polygon fill="#070404" points="221.103,16.986 219.357,20.693 240.404,20.736 242.092,17.07 	"/> |  | ||||||
| 	<polygon fill="#070404" points="225.205,24.898 234.847,4.372 238.561,4.425 229.031,24.903 	"/> |  | ||||||
| </g> |  | ||||||
| <g> |  | ||||||
| 	<path fill="#010101" d="M110.112,47.722c0,1.663,0.416,2.867,1.251,3.604c0.833,0.732,1.917,1.104,3.258,1.104 |  | ||||||
| 		c0.652,0,1.325-0.084,2.012-0.248c0.686-0.164,1.455-0.425,2.304-0.785l1.176,3.631c-0.557,0.192-1.088,0.371-1.593,0.539 |  | ||||||
| 		c-0.512,0.162-1.021,0.297-1.544,0.412c-0.522,0.117-1.069,0.215-1.641,0.295c-0.574,0.08-1.202,0.125-1.888,0.125 |  | ||||||
| 		c-2.681,0-4.715-0.768-6.104-2.307c-1.389-1.536-2.081-3.755-2.081-6.665V14.792H97.42l12.691-8.943"/> |  | ||||||
| </g> |  | ||||||
| </svg> |  | ||||||
| Before Width: | Height: | Size: 6.6 KiB | 
| Before Width: | Height: | Size: 1.2 MiB | 
| Before Width: | Height: | Size: 879 KiB | 
| Before Width: | Height: | Size: 2.7 MiB | 
| Before Width: | Height: | Size: 1.1 MiB | 
| Before Width: | Height: | Size: 56 KiB | 
| Before Width: | Height: | Size: 618 KiB | 
| Before Width: | Height: | Size: 262 KiB | 
| Before Width: | Height: | Size: 506 KiB | 
| Before Width: | Height: | Size: 119 KiB | 
| Before Width: | Height: | Size: 26 KiB | 
| Before Width: | Height: | Size: 1.4 MiB | 
| Before Width: | Height: | Size: 1.3 MiB | 
| Before Width: | Height: | Size: 360 KiB | 
| Before Width: | Height: | Size: 833 KiB | 
| Before Width: | Height: | Size: 143 KiB | 
| Before Width: | Height: | Size: 27 KiB | 
| Before Width: | Height: | Size: 710 KiB | 
| Before Width: | Height: | Size: 665 KiB | 
| Before Width: | Height: | Size: 3.1 KiB | 
| Before Width: | Height: | Size: 436 KiB | 
| Before Width: | Height: | Size: 237 KiB | 
| Before Width: | Height: | Size: 1.2 MiB | 
| Before Width: | Height: | Size: 92 KiB | 
| Before Width: | Height: | Size: 269 KiB | 
| Before Width: | Height: | Size: 209 KiB | 
| Before Width: | Height: | Size: 114 KiB | 
| Before Width: | Height: | Size: 1.6 MiB | 
| Before Width: | Height: | Size: 184 KiB | 
| Before Width: | Height: | Size: 181 KiB |