mirror of
https://github.com/jazzband/django-analytical.git
synced 2026-05-26 15:44:09 +00:00
Intercom: Set user_id field for authenticated users
This is one of Intercom's core user detail fields.
This commit is contained in:
parent
128c535550
commit
47cf9aac3e
3 changed files with 26 additions and 19 deletions
|
|
@ -66,6 +66,8 @@ class IntercomNode(Node):
|
|||
if 'email' not in params and user.email:
|
||||
params['email'] = user.email
|
||||
|
||||
params.setdefault('user_id', user.pk)
|
||||
|
||||
params['created_at'] = int(time.mktime(
|
||||
user.date_joined.timetuple()))
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -26,21 +26,21 @@ class IntercomTagTestCase(TagTestCase):
|
|||
|
||||
def test_node(self):
|
||||
now = datetime.datetime(2014, 4, 9, 15, 15, 0)
|
||||
rendered_tag = IntercomNode().render(Context({
|
||||
'user': User(
|
||||
username='test',
|
||||
first_name='Firstname',
|
||||
last_name='Lastname',
|
||||
email="test@example.com",
|
||||
date_joined=now),
|
||||
}))
|
||||
user = User.objects.create(
|
||||
username='test',
|
||||
first_name='Firstname',
|
||||
last_name='Lastname',
|
||||
email="test@example.com",
|
||||
date_joined=now,
|
||||
)
|
||||
rendered_tag = IntercomNode().render(Context({'user': user}))
|
||||
# Because the json isn't predictably ordered, we can't just test the whole thing verbatim.
|
||||
self.assertEqual("""
|
||||
<script id="IntercomSettingsScriptTag">
|
||||
window.intercomSettings = {"app_id": "abc123xyz", "created_at": 1397074500, "email": "test@example.com", "name": "Firstname Lastname"};
|
||||
window.intercomSettings = {"app_id": "abc123xyz", "created_at": 1397074500, "email": "test@example.com", "name": "Firstname Lastname", "user_id": %(user_id)s};
|
||||
</script>
|
||||
<script>(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://static.intercomcdn.com/intercom.v1.js';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})()</script>
|
||||
""", rendered_tag) # noqa
|
||||
""" % {'user_id': user.pk}, rendered_tag) # noqa
|
||||
|
||||
@override_settings(INTERCOM_APP_ID=None)
|
||||
def test_no_account_number(self):
|
||||
|
|
@ -52,18 +52,21 @@ class IntercomTagTestCase(TagTestCase):
|
|||
|
||||
def test_identify_name_email_and_created_at(self):
|
||||
now = datetime.datetime(2014, 4, 9, 15, 15, 0)
|
||||
user = User.objects.create(
|
||||
username='test',
|
||||
first_name='Firstname',
|
||||
last_name='Lastname',
|
||||
email="test@example.com",
|
||||
date_joined=now,
|
||||
)
|
||||
r = IntercomNode().render(Context({
|
||||
'user': User(
|
||||
username='test',
|
||||
first_name='Firstname',
|
||||
last_name='Lastname',
|
||||
email="test@example.com",
|
||||
date_joined=now),
|
||||
'user': user,
|
||||
}))
|
||||
self.assertTrue('window.intercomSettings = {'
|
||||
'"app_id": "abc123xyz", "created_at": 1397074500, '
|
||||
'"email": "test@example.com", "name": "Firstname Lastname"'
|
||||
'};' in r)
|
||||
'"email": "test@example.com", "name": "Firstname Lastname", '
|
||||
'"user_id": %(user_id)s'
|
||||
'};' % {'user_id': user.pk} in r, msg=r)
|
||||
|
||||
def test_custom(self):
|
||||
r = IntercomNode().render(Context({
|
||||
|
|
|
|||
|
|
@ -120,6 +120,8 @@ Context variable Description
|
|||
-------------------- -------------------------------------------
|
||||
``intercom_email`` The visitor's email address.
|
||||
-------------------- -------------------------------------------
|
||||
``intercom_user_id`` The visitor's user id.
|
||||
-------------------- -------------------------------------------
|
||||
``created_at`` The date the visitor created an account
|
||||
==================== ===========================================
|
||||
|
||||
|
|
@ -130,7 +132,7 @@ Context variable Description
|
|||
Identifying authenticated users
|
||||
-------------------------------
|
||||
|
||||
If you have not set the ``intercom_name`` or ``intercom_email`` variables
|
||||
If you have not set the ``intercom_name``, ``intercom_email``, or ``intercom_user_id`` variables
|
||||
explicitly, the username and email address of an authenticated user are
|
||||
passed to Intercom automatically. See :ref:`identifying-visitors`.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue