diff --git a/.gitignore b/.gitignore index 45c723e1bb173b996282651d85dad658aea01ebf..864632c41da26f5672d194ba2c9dcc254e877f0e 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,7 @@ node_modules/ /npm-debug.log /.idea/ -salesforce.py +sf.env # Distribution / packaging .Python diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev index 587a757e4fdcc1de1d86dafa84bd8a78f2a85e4c..b66138df1b336ed813e02ba837613b87963dae0c 100644 --- a/docker/Dockerfile.dev +++ b/docker/Dockerfile.dev @@ -9,6 +9,8 @@ ENV DATABASE_URL postgres://hypha:hypha@db:5432/hypha ENV DJANGO_SETTINGS_MODULE hypha.settings.dev ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 + +# Salesforce Integration ENV SALESFORCE_INTEGRATION 1 # Set owner on /usr/local. diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index d36e65f4f667101fe63c5ffe23597a2a6fd23894..5402dbaa85369566c4c0a150746869f2dd4188dd 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -18,6 +18,8 @@ services: build: context: .. dockerfile: docker/Dockerfile.dev + env_file: + - sf.env ports: - 9001:9001 volumes: diff --git a/hypha/settings/base.py b/hypha/settings/base.py index 08bdafd94a5acd8a558c12bfd1a53b8082c878a1..e7d3de977770667438389bd9a8065e3722387d30 100644 --- a/hypha/settings/base.py +++ b/hypha/settings/base.py @@ -203,12 +203,34 @@ WSGI_APPLICATION = 'hypha.wsgi.application' # Database # https://docs.djangoproject.com/en/stable/ref/settings/#databases -DATABASES = { - 'default': dj_database_url.config( - conn_max_age=600, - default=f"postgres:///{APP_NAME}" - ) -} +if 'SALESFORCE_INTEGRATION' in env and env['SALESFORCE_INTEGRATION']: + DATABASES = { + 'default': dj_database_url.config( + conn_max_age=600, + default=f"postgres:///{APP_NAME}" + ), + 'salesforce': { + 'ENGINE': 'salesforce.backend', + 'CONSUMER_KEY': env['CONSUMER_KEY'], + 'CONSUMER_SECRET': env['CONSUMER_SECRET'], + 'USER': env['SALESFORCE_USER'], + 'PASSWORD': env['SALESFORCE_PASSWORD'], + 'HOST': env['SALESFORCE_LOGIN_URL'] + } + } + + SALESFORCE_QUERY_TIMEOUT = (30, 30) # (connect timeout, data timeout) + + DATABASE_ROUTERS = [ + "salesforce.router.ModelRouter" + ] +else: + DATABASES = { + 'default': dj_database_url.config( + conn_max_age=600, + default=f"postgres:///{APP_NAME}" + ) + } # Cache diff --git a/hypha/settings/dev.py b/hypha/settings/dev.py index f4a4f3fbb009b1072e9d554de2ac352e3dcf6df8..76926f9bfdb265e2ec1502f394837e728379d8ff 100644 --- a/hypha/settings/dev.py +++ b/hypha/settings/dev.py @@ -145,11 +145,3 @@ DEBUG_TOOLBAR_CONFIG = { WEBPACK_LOADER['DEFAULT'].update({ 'STATS_FILE': os.path.join(BASE_DIR, './hypha/static_compiled/app/webpack-stats.json'), }) - -# Salesforce Integration -if 'SALESFORCE_INTEGRATION' in env and env['SALESFORCE_INTEGRATION']: - try: - from .salesforce import * - except ImportError: - pass - DATABASES.update(SALESFORCE_DB) diff --git a/hypha/settings/production.py b/hypha/settings/production.py index 4111cec135e44adf768eac12085feadc6f03f78f..1c4a980951b00ae54b20a33ead879e7bc50123b1 100644 --- a/hypha/settings/production.py +++ b/hypha/settings/production.py @@ -39,11 +39,3 @@ if 'SENTRY_DSN' in env: if 'ON_HEROKU' in env: import django_heroku django_heroku.settings(locals()) - -# Salesforce Integration -if 'SALESFORCE_INTEGRATION' in env and env['SALESFORCE_INTEGRATION']: - try: - from .salesforce import * - except ImportError: - pass - DATABASES.update(SALESFORCE_DB) diff --git a/hypha/settings/salesforce.py.example b/hypha/settings/salesforce.py.example deleted file mode 100644 index 63bdb82ce5adac5d752628d7a9c11d2be3e383dc..0000000000000000000000000000000000000000 --- a/hypha/settings/salesforce.py.example +++ /dev/null @@ -1,14 +0,0 @@ -SALESFORCE_DB = { - 'ENGINE': 'salesforce.backend', - 'CONSUMER_KEY': 'Consumer Key from Salesforce App', - 'CONSUMER_SECRET': 'Consumer Secret from Salesforce APP', - 'USER': 'user@email.com', - 'PASSWORD': 'Password and security token concatenated', - 'HOST': 'https://login.salesforce.com' # Or test or URL of salesforce org -} - -SALESFORCE_QUERY_TIMEOUT = (30, 30) # (connect timeout, data timeout) - -DATABASE_ROUTERS = [ - "salesforce.router.ModelRouter" -] diff --git a/hypha/settings/test.py b/hypha/settings/test.py index cac29f9a76b3bb16c2af6e396aa9bf4e0c1a0bf9..610dc3b03352a6d17bfd0d2b6365675a515d929b 100644 --- a/hypha/settings/test.py +++ b/hypha/settings/test.py @@ -17,11 +17,3 @@ STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage' PASSWORD_HASHERS = [ 'django.contrib.auth.hashers.MD5PasswordHasher', ] - -# Salesforce Integration -if 'SALESFORCE_INTEGRATION' in env and env['SALESFORCE_INTEGRATION']: - try: - from .salesforce import * - except ImportError: - pass - DATABASES.update(SALESFORCE_DB)