Disable mailchimp integration for most segment identify requests

This commit is contained in:
Bill DeRusha
2016-02-17 13:40:36 -05:00
parent f58c2cd6b0
commit b686abc18d
4 changed files with 47 additions and 13 deletions

View File

@@ -5,10 +5,21 @@
// We can't use JQuery's on load method because it
// screws up RequireJS' JQuery initialization.
var onLoadCallback = function() {
analytics.identify("${user.id}", {
email: "${user.email}",
username: "${user.username}"
});
analytics.identify(
"${user.id}",
{
email: "${user.email}",
username: "${user.username}"
},
{
integrations: {
// Disable MailChimp because we don't want to update the user's email
// and username in MailChimp on every page load. We only need to capture
// this data on registration/activation.
MailChimp: false
}
}
);
};
if (window.addEventListener) {
window.addEventListener("load", onLoadCallback, false);

View File

@@ -136,6 +136,7 @@ class TestCreateAccount(TestCase):
'username': self.params['username'],
'name': self.params['name'],
'age': 13,
'yearOfBirth': year_of_birth,
'education': 'Associate degree',
'address': self.params['mailing_address'],
'gender': 'Other/Prefer Not to Say',

View File

@@ -1242,10 +1242,19 @@ def login_user(request, error=""): # pylint: disable=too-many-statements,unused
# Track the user's sign in
if hasattr(settings, 'LMS_SEGMENT_KEY') and settings.LMS_SEGMENT_KEY:
tracking_context = tracker.get_tracker().resolve_context()
analytics.identify(user.id, {
'email': email,
'username': username
})
analytics.identify(
user.id,
{
'email': email,
'username': username
},
{
# Disable MailChimp because we don't want to update the user's email
# and username in MailChimp on every page load. We only need to capture
# this data on registration/activation.
'MailChimp': False
}
)
analytics.track(
user.id,
@@ -1699,7 +1708,9 @@ def create_account_with_params(request, params):
'email': user.email,
'username': user.username,
'name': profile.name,
'age': profile.age,
# Mailchimp requires the age & yearOfBirth to be integers, we send a sane integer default if falsey.
'age': profile.age or -1,
'yearOfBirth': profile.year_of_birth or datetime.datetime.now(UTC).year,
'education': profile.level_of_education_display,
'address': profile.mailing_address,
'gender': profile.gender_display,

View File

@@ -3,10 +3,21 @@
<script type="text/javascript">
% if user.is_authenticated():
$(window).load(function() {
analytics.identify("${user.id}", {
email: "${user.email}",
username: "${user.username}"
});
analytics.identify(
"${user.id}",
{
email: "${user.email}",
username: "${user.username}"
},
{
integrations: {
// Disable MailChimp because we don't want to update the user's email
// and username in MailChimp on every page load. We only need to capture
// this data on registration/activation.
MailChimp: false
}
}
);
});
% endif
</script>