diff --git a/.gitignore b/.gitignore index fe6b2ed34291ab03f55a5a57ec13dfe3954c0377..45c723e1bb173b996282651d85dad658aea01ebf 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ node_modules/ /npm-debug.log /.idea/ +salesforce.py # Distribution / packaging .Python diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev index 3e593bbde5cebb3ea7ee4072c344f348a999cc17..587a757e4fdcc1de1d86dafa84bd8a78f2a85e4c 100644 --- a/docker/Dockerfile.dev +++ b/docker/Dockerfile.dev @@ -9,6 +9,7 @@ ENV DATABASE_URL postgres://hypha:hypha@db:5432/hypha ENV DJANGO_SETTINGS_MODULE hypha.settings.dev ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 +ENV SALESFORCE_INTEGRATION 1 # Set owner on /usr/local. RUN sudo chown -R circleci:circleci /usr/local diff --git a/hypha/settings/base.py b/hypha/settings/base.py index 55956fa8407d8afd826f96d95e2518c873f2417a..08bdafd94a5acd8a558c12bfd1a53b8082c878a1 100644 --- a/hypha/settings/base.py +++ b/hypha/settings/base.py @@ -136,6 +136,8 @@ INSTALLED_APPS = [ 'pagedown', 'webpack_loader', + 'salesforce', + 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', diff --git a/hypha/settings/dev.py b/hypha/settings/dev.py index 76926f9bfdb265e2ec1502f394837e728379d8ff..f4a4f3fbb009b1072e9d554de2ac352e3dcf6df8 100644 --- a/hypha/settings/dev.py +++ b/hypha/settings/dev.py @@ -145,3 +145,11 @@ 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 1c4a980951b00ae54b20a33ead879e7bc50123b1..4111cec135e44adf768eac12085feadc6f03f78f 100644 --- a/hypha/settings/production.py +++ b/hypha/settings/production.py @@ -39,3 +39,11 @@ 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 new file mode 100644 index 0000000000000000000000000000000000000000..63bdb82ce5adac5d752628d7a9c11d2be3e383dc --- /dev/null +++ b/hypha/settings/salesforce.py.example @@ -0,0 +1,14 @@ +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 610dc3b03352a6d17bfd0d2b6365675a515d929b..cac29f9a76b3bb16c2af6e396aa9bf4e0c1a0bf9 100644 --- a/hypha/settings/test.py +++ b/hypha/settings/test.py @@ -17,3 +17,11 @@ 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) diff --git a/requirements.txt b/requirements.txt index 85d1695a6ac5fcd6a696fa82cca091068767b04e..d5ef048c775800f7d1fd5ee43d369fb97b876742 100644 --- a/requirements.txt +++ b/requirements.txt @@ -41,3 +41,4 @@ tomd==0.1.3 wagtail==2.9 wagtail-cache==1.0.0 whitenoise==5.1.0 +django-salesforce==1.0