diff --git a/.gitignore b/.gitignore index fe6b2ed34291ab03f55a5a57ec13dfe3954c0377..4e923ae09aa577dc6532f506509fce2cd95016a6 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ node_modules/ /npm-debug.log /.idea/ +salesforce.env # Distribution / packaging .Python diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev index 3e593bbde5cebb3ea7ee4072c344f348a999cc17..b66138df1b336ed813e02ba837613b87963dae0c 100644 --- a/docker/Dockerfile.dev +++ b/docker/Dockerfile.dev @@ -10,6 +10,9 @@ ENV DJANGO_SETTINGS_MODULE hypha.settings.dev ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 +# Salesforce Integration +ENV SALESFORCE_INTEGRATION 1 + # Set owner on /usr/local. RUN sudo chown -R circleci:circleci /usr/local diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index d36e65f4f667101fe63c5ffe23597a2a6fd23894..9d1a01f8945118409c38548aa04b8d6e481cbd4b 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -18,6 +18,8 @@ services: build: context: .. dockerfile: docker/Dockerfile.dev + env_file: + - salesforce.env ports: - 9001:9001 volumes: diff --git a/hypha/settings/base.py b/hypha/settings/base.py index 55956fa8407d8afd826f96d95e2518c873f2417a..e7d3de977770667438389bd9a8065e3722387d30 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', @@ -201,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/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