270 строки
7.9 KiB
Python
270 строки
7.9 KiB
Python
import os
|
|
|
|
from lib.settings_base import *
|
|
from mkt import asset_bundles
|
|
|
|
|
|
# We'll soon need a `settings_test_mkt` to override this.
|
|
APP_PREVIEW = True
|
|
|
|
WAFFLE_TABLE_SUFFIX = 'mkt'
|
|
LOG_TABLE_SUFFIX = '_mkt'
|
|
EVENT_TABLE_SUFFIX = '_mkt'
|
|
|
|
# So temporary. Allow us to link to new devhub URLs from `Addon.get_dev_url()`.
|
|
# Also used to determine if we add the /<app>/ to URLs.
|
|
MARKETPLACE = True
|
|
|
|
# 403 view to render for CSRF failures.
|
|
CSRF_FAILURE_VIEW = 'mkt.site.views.csrf_failure'
|
|
|
|
# Set log in/log out URLs for redirects to work.
|
|
LOGIN_URL = '/login'
|
|
LOGOUT_URL = '/logout'
|
|
|
|
# Let robots tear this place up.
|
|
ENGAGE_ROBOTS = True
|
|
|
|
MKT_REVIEWERS_EMAIL = 'app-reviews@mozilla.org'
|
|
MKT_SENIOR_EDITORS_EMAIL = 'amo-admin-reviews@mozilla.org'
|
|
MKT_SUPPORT_EMAIL = 'marketplace-developer-support@mozilla.org'
|
|
MARKETPLACE_EMAIL = 'amo-marketplace@mozilla.org'
|
|
ABUSE_EMAIL = 'Mozilla Marketplace <marketplace-abuse@mozilla.org>'
|
|
NOBODY_EMAIL = 'Mozilla Marketplace <nobody@mozilla.org>'
|
|
DEFAULT_FROM_EMAIL = 'Mozilla Marketplace <nobody@mozilla.org>'
|
|
|
|
# Default app name for our webapp as specified in `manifest.webapp`.
|
|
WEBAPP_MANIFEST_NAME = 'Mozilla Marketplace'
|
|
|
|
ROOT_URLCONF = 'mkt.urls'
|
|
|
|
INSTALLED_APPS = list(INSTALLED_APPS)
|
|
INSTALLED_APPS.remove('api')
|
|
INSTALLED_APPS.remove('browse')
|
|
INSTALLED_APPS.remove('compat')
|
|
INSTALLED_APPS.remove('discovery')
|
|
INSTALLED_APPS.remove('devhub')
|
|
INSTALLED_APPS.remove('search')
|
|
INSTALLED_APPS = tuple(INSTALLED_APPS)
|
|
|
|
INSTALLED_APPS += (
|
|
'devhub', # Put here so helpers.py doesn't get loaded first.
|
|
'django_appcache',
|
|
'mkt.site',
|
|
'mkt.account',
|
|
'mkt.browse',
|
|
'mkt.detail',
|
|
'mkt.developers',
|
|
'mkt.ecosystem',
|
|
'mkt.home',
|
|
'mkt.inapp_pay',
|
|
'mkt.lookup',
|
|
'mkt.purchase',
|
|
'mkt.ratings',
|
|
'mkt.receipts',
|
|
'mkt.reviewers',
|
|
'mkt.search',
|
|
'mkt.stats',
|
|
'mkt.submit',
|
|
'mkt.support',
|
|
'mkt.themes',
|
|
'mkt.zadmin',
|
|
'mkt.webapps',
|
|
)
|
|
|
|
SUPPORTED_NONLOCALES += (
|
|
'manifest.webapp',
|
|
'mozmarket.js',
|
|
'appcache',
|
|
'csrf',
|
|
)
|
|
|
|
MIDDLEWARE_CLASSES = list(MIDDLEWARE_CLASSES)
|
|
# TODO: I want to get rid of these eventually but it breaks some junk now.
|
|
# MIDDLEWARE_CLASSES.remove('mobility.middleware.DetectMobileMiddleware')
|
|
# MIDDLEWARE_CLASSES.remove('mobility.middleware.XMobileMiddleware')
|
|
# MIDDLEWARE_CLASSES.remove('cake.middleware.CookieCleaningMiddleware')
|
|
MIDDLEWARE_CLASSES += (
|
|
'mkt.site.middleware.VaryOnAJAXMiddleware',
|
|
|
|
# TODO: Remove this when we remove `request.can_view_consumer`.
|
|
'amo.middleware.DefaultConsumerMiddleware',
|
|
|
|
# Put this in your settings_local_mkt if you want the walled garden.
|
|
#'amo.middleware.NoConsumerMiddleware',
|
|
#'amo.middleware.LoginRequiredMiddleware',
|
|
)
|
|
|
|
TEMPLATE_DIRS += (path('mkt/templates'), path('mkt/zadmin/templates'))
|
|
TEMPLATE_CONTEXT_PROCESSORS = list(TEMPLATE_CONTEXT_PROCESSORS)
|
|
TEMPLATE_CONTEXT_PROCESSORS.remove('amo.context_processors.global_settings')
|
|
TEMPLATE_CONTEXT_PROCESSORS += [
|
|
'mkt.site.context_processors.global_settings',
|
|
]
|
|
|
|
# Tests.
|
|
NOSE_ARGS = [
|
|
'--with-fixture-bundling',
|
|
'--where=%s' % os.path.join(ROOT, 'mkt')
|
|
]
|
|
|
|
NO_ADDONS_MODULES = (
|
|
'addons.views',
|
|
'devhub.views.dashboard', # The apps dashboard is a different view.
|
|
'devhub.views.submit', # Addon submit not ok, app submit a-ok.
|
|
'browse.views.personas',
|
|
'browse.views.extensions',
|
|
'browse.views.language_tools',
|
|
'browse.views.themes',
|
|
)
|
|
|
|
# Next level, no consumer for you!
|
|
NO_CONSUMER_MODULES = (
|
|
'api',
|
|
'bandwagon.views',
|
|
'browse.views',
|
|
'compat.views',
|
|
'discovery.views',
|
|
'files.views',
|
|
'market.views',
|
|
'piston',
|
|
'users.views.edit',
|
|
'users.views.purchases',
|
|
'users.views.payments',
|
|
'sharing.views',
|
|
'tags.views',
|
|
'versions.views',
|
|
'mkt.account.views',
|
|
'mkt.browse.views',
|
|
'mkt.detail.views',
|
|
'mkt.ratings.views',
|
|
'mkt.payments.views',
|
|
'mkt.stats.views',
|
|
'mkt.support.views',
|
|
'mkt.search.views',
|
|
'mkt.webapps.views',
|
|
)
|
|
|
|
# Specific view modules and methods that we don't want to force login on.
|
|
NO_LOGIN_REQUIRED_MODULES = (
|
|
'csp.views.policy',
|
|
'csp.views.report',
|
|
'mkt.developers',
|
|
'mkt.lookup',
|
|
'mkt.reviewers',
|
|
'mkt.submit',
|
|
'django_appcache.views.manifest',
|
|
'django.views.i18n.javascript_catalog',
|
|
'django.contrib.auth.views.password_reset',
|
|
'django.contrib.auth.views.password_reset_done',
|
|
'jingo.views.direct_to_template',
|
|
'zadmin.views',
|
|
'users.browserid_login',
|
|
'mkt.ecosystem.views',
|
|
'mkt.site.views',
|
|
'mkt.zadmin.views',
|
|
# in-app views have their own login protection.
|
|
'mkt.inapp_pay.views',
|
|
'tastypie.resources.wrapper',
|
|
)
|
|
|
|
# Extend the bundles.
|
|
MINIFY_BUNDLES['css'].update(asset_bundles.CSS)
|
|
MINIFY_BUNDLES['js'].update(asset_bundles.JS)
|
|
|
|
CELERY_ROUTES.update({
|
|
# Devhub.
|
|
'mkt.developers.tasks.validator': {'queue': 'devhub'},
|
|
'mkt.developers.tasks.fetch_manifest': {'queue': 'devhub'},
|
|
'mkt.developers.tasks.fetch_icon': {'queue': 'devhub'},
|
|
'mkt.developers.tasks.file_validator': {'queue': 'devhub'},
|
|
|
|
# Images.
|
|
'mkt.developers.tasks.resize_icon': {'queue': 'images'},
|
|
'mkt.developers.tasks.resize_preview': {'queue': 'images'},
|
|
})
|
|
|
|
# Paths.
|
|
ADDON_ICONS_DEFAULT_PATH = os.path.join(MEDIA_ROOT, 'img/hub')
|
|
ADDON_ICONS_DEFAULT_URL = MEDIA_URL + '/img/hub'
|
|
|
|
# Directory path to where product images for in-app payments are stored.
|
|
INAPP_IMAGE_PATH = NETAPP_STORAGE + '/inapp-image'
|
|
|
|
# Base URL root to serve in-app product images from.
|
|
INAPP_IMAGE_URL = INAPP_IMAGE_PATH
|
|
|
|
# Tuple of (x, y) pixel sizes that an in-app product image should be
|
|
# resized to for display on the payment screen.
|
|
INAPP_IMAGE_SIZE = (150, 150)
|
|
|
|
# JWT identifier for this marketplace.
|
|
# This is used for in-app payments in two ways.
|
|
# 1. app must send JWTs with aud (the audience) set to this exact value.
|
|
# 2. apps will receive JWTs with iss (issuer) set to this value.
|
|
INAPP_MARKET_ID = 'marketplace.mozilla.org'
|
|
|
|
# If True, show verbose payment errors to developers.
|
|
# Consider this insecure.
|
|
INAPP_VERBOSE_ERRORS = False
|
|
|
|
# When False, the developer can toggle HTTPS on/off.
|
|
# This is useful for development and testing.
|
|
INAPP_REQUIRE_HTTPS = True
|
|
|
|
# Paths to key files for local AES encrypt/decrypt.
|
|
# Each dict key is a YYYY-MM-DD timestamp that we use to find the latest key.
|
|
INAPP_KEY_PATHS = {
|
|
# This is a scratch key for local development.
|
|
'2012-05-09': os.path.join(ROOT, 'mkt', 'inapp_pay', 'tests', 'resources',
|
|
'inapp-sample-pay.key')
|
|
}
|
|
|
|
STATSD_RECORD_KEYS = [
|
|
'window.performance.timing.domComplete',
|
|
'window.performance.timing.domInteractive',
|
|
'window.performance.timing.domLoading',
|
|
'window.performance.timing.fragment.loaded',
|
|
'window.performance.navigation.redirectCount',
|
|
'window.performance.navigation.type',
|
|
]
|
|
|
|
PISTON_DISPLAY_ERRORS = False
|
|
|
|
# Link to the appcache manifest (activate it) when True.
|
|
USE_APPCACHE = False
|
|
|
|
# These are absolute paths to add to the cache. Wildcards are not allowed here.
|
|
# These paths will be added as-is to the cache section.
|
|
APPCACHE_TO_CACHE = [
|
|
'/favicon.ico',
|
|
'https://browserid.org/include.js'
|
|
]
|
|
|
|
APPCACHE_NET_PATHS = [
|
|
'*'
|
|
]
|
|
|
|
# These are paths relative to MEDIA_ROOT that you want to explicitly
|
|
# cache. The browser will load *all* of these URLs when your app first loads
|
|
# so be mindful to only list essential media files. The actual URL of the path
|
|
# to cache will be determined using MEDIA_URL.
|
|
# If you use wildcards here the real paths to the file(s) will be
|
|
# expanded using glob.glob()
|
|
|
|
APPCACHE_MEDIA_TO_CACHE = [
|
|
'js/mkt/consumer-min.js',
|
|
'css/mkt/consumer-min.css'
|
|
]
|
|
|
|
APPCACHE_MEDIA_DEBUG = []
|
|
for f in list(asset_bundles.CSS['mkt/consumer']):
|
|
if f.endswith('.less'):
|
|
APPCACHE_MEDIA_DEBUG.append(f + '.css')
|
|
else:
|
|
APPCACHE_MEDIA_DEBUG.append(f)
|
|
APPCACHE_MEDIA_DEBUG.extend(asset_bundles.JS['mkt/consumer'])
|
|
|
|
# Are you working locally? place the following line in your settings_local:
|
|
# APPCACHE_MEDIA_TO_CACHE = APPCACHE_MEDIA_DEBUG
|