Merge branch 'master' of github.com:ungleich/dynamicweb
							
								
								
									
										24
									
								
								Changelog
									
										
									
									
									
								
							
							
						
						|  | @ -1,14 +1,5 @@ | |||
| 1.0.0: 2017-05-25 | ||||
|     * Initial stable release | ||||
| 1.0.1: 2017-05-26 | ||||
|     * [datacenterlight] Allow storage to shrink / grow only in 10th of GB | ||||
|     * [datacenterlight] Fix initially shown price | ||||
| 1.0.2: 2017-05-28 | ||||
|     * [datacenterlight] Fixed login redirecting to blank page after logout | ||||
| 1.0.3: 2017-06-02 | ||||
|     * [datacenterlight] Hotfix, remove footer on mobile devices | ||||
| 
 | ||||
| next: | ||||
| 1.0.5: 2017-06-06 | ||||
|     * [all] General cleanup | ||||
|     * [datacenterlight] Add German translations | ||||
|     * [datacenterlight] Change beta access to subscriptions  | ||||
|     * [hosting] Add German translations  | ||||
|  | @ -18,3 +9,14 @@ next: | |||
|     * [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 | ||||
|     * [datacenterlight] Allow storage to shrink / grow only in 10th of GB | ||||
|     * [datacenterlight] Fix initially shown price | ||||
| 1.0.0: 2017-05-25 | ||||
|     * Initial stable release | ||||
|  |  | |||
|  | @ -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: | ||||
|             messages.error( request, | ||||
|                 'We could not load the VM templates due to a backend connection \ | ||||
|                 error. Please try again in a few minutes' | ||||
|                 'We have a temporary problem to connect to our backend. \ | ||||
|                 Please try again in a few minutes' | ||||
|                 ) | ||||
|             context = { | ||||
|                 'error' : 'connection' | ||||
|  | @ -36,7 +36,6 @@ class PricingView(TemplateView): | |||
| 
 | ||||
|         return render(request, self.template_name, context) | ||||
| 
 | ||||
| 
 | ||||
|     def post(self, request): | ||||
| 
 | ||||
|         cores = request.POST.get('cpu') | ||||
|  | @ -151,43 +150,6 @@ class BetaProgramView(CreateView): | |||
| 
 | ||||
|         messages.add_message(self.request, messages.SUCCESS, self.success_message) | ||||
|         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): | ||||
|  |  | |||
							
								
								
									
										
											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 * | ||||
| 
 | ||||
| ADMINS = ( | ||||
|     ('Nico Schottelius', 'nico.schottelius@ungleich.ch'), | ||||
|     ('Raul Ascencio', 'raul.ascencio@yandex.com'), | ||||
|     ('Web team', 'web-team@ungleich.ch') | ||||
| # List of people that get admin messages | ||||
| ADMINS = ( (x, x + "@ungleich.ch") for x in ["web-team"] ) | ||||
| 
 | ||||
| ) | ||||
| #    ('Sanghee Kim', 'sanghee.kim@ungleich.ch'), | ||||
| DEBUG=False | ||||
| 
 | ||||
| EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' | ||||
|  | @ -17,6 +13,15 @@ REGISTRATION_MESSAGE['message'] = REGISTRATION_MESSAGE['message'].format(host='d | |||
| 
 | ||||
| ALLOWED_HOSTS = [ | ||||
|     ".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" | ||||
| ] | ||||
|  |  | |||
| 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 |