Skip to content

Commit 89ca0ea

Browse files
renzonrenzon
authored andcommitted
Created configuration to turn ActiveCampaign off
close #1908
1 parent 8df2853 commit 89ca0ea

File tree

4 files changed

+23
-4
lines changed

4 files changed

+23
-4
lines changed

contrib/env-sample

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ DISCOURSE_SSO_SECRET=
3232
# Active Campaign Config
3333
ACTIVE_CAMPAIGN_URL=
3434
ACTIVE_CAMPAIGN_KEY=
35+
# Make it False on dev to avoiding sending data to ActiveCampaign
36+
ACTIVE_CAMPAIGN_TURNED_ON=true
3537

3638
# Google Tag Manager Config
3739
GOOGLE_TAG_MANAGER_ID=GTM-ABC1234

pythonpro/conftest.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,12 @@ def use_db_always(db):
5454
pass
5555

5656

57+
@pytest.fixture(autouse=True)
58+
def turn_active_campaign_on(settings):
59+
"""
60+
This way test don't depend on local .env configuration
61+
"""
62+
settings.ACTIVE_CAMPAIGN_TURNED_ON = True
63+
64+
5765
pytest_plugins = ['pythonpro.modules.tests.test_topics_view']

pythonpro/email_marketing/facade.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ def _normalise_id(id):
4141

4242

4343
def _create_or_update(name: str, email: str, role: str, *tags, id='0'):
44+
if settings.ACTIVE_CAMPAIGN_TURNED_ON is False:
45+
return
4446
prospect_list_id = _get_lists()['Prospects']
4547
id = _normalise_id(id)
4648
tags = list(tags)
@@ -77,6 +79,8 @@ def _find_active_campaign_contact_id(id):
7779

7880

7981
def grant_role(email, id, role: str):
82+
if settings.ACTIVE_CAMPAIGN_TURNED_ON is False:
83+
return
8084
role = role.lower()
8185
if role not in _ROLES:
8286
raise ValueError(f'Role {role} must be one of {_ROLES}')
@@ -100,6 +104,8 @@ def grant_role(email, id, role: str):
100104

101105

102106
def tag_as(email: str, id: int, *tags):
107+
if settings.ACTIVE_CAMPAIGN_TURNED_ON is False:
108+
return
103109
data = _build_tags_array(tags)
104110
try:
105111
data['id'] = _find_active_campaign_contact_id(id)
@@ -116,6 +122,8 @@ def _build_tags_array(tags) -> dict:
116122

117123

118124
def remove_tags(email: str, id: int, *tags):
125+
if settings.ACTIVE_CAMPAIGN_TURNED_ON is False:
126+
return
119127
data = _build_tags_array(tags)
120128
try:
121129
data['id'] = _find_active_campaign_contact_id(id)

pythonpro/settings.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,19 +147,19 @@
147147
AUTH_PASSWORD_VALIDATORS = [
148148
{
149149
'NAME':
150-
'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
150+
'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
151151
},
152152
{
153153
'NAME':
154-
'django.contrib.auth.password_validation.MinimumLengthValidator',
154+
'django.contrib.auth.password_validation.MinimumLengthValidator',
155155
},
156156
{
157157
'NAME':
158-
'django.contrib.auth.password_validation.CommonPasswordValidator',
158+
'django.contrib.auth.password_validation.CommonPasswordValidator',
159159
},
160160
{
161161
'NAME':
162-
'django.contrib.auth.password_validation.NumericPasswordValidator',
162+
'django.contrib.auth.password_validation.NumericPasswordValidator',
163163
},
164164
]
165165

@@ -240,6 +240,7 @@
240240
# Active Campaign Configuration
241241
ACTIVE_CAMPAIGN_URL = config('ACTIVE_CAMPAIGN_URL')
242242
ACTIVE_CAMPAIGN_KEY = config('ACTIVE_CAMPAIGN_KEY')
243+
ACTIVE_CAMPAIGN_TURNED_ON = config('ACTIVE_CAMPAIGN_TURNED_ON', cast=bool, default=True)
243244

244245
# Google Tag Manager Configuration
245246
GOOGLE_TAG_MANAGER_ID = config('GOOGLE_TAG_MANAGER_ID')

0 commit comments

Comments
 (0)