80 lines
2.1 KiB
HTML
80 lines
2.1 KiB
HTML
<%page expression_filter="h"/>
|
|
<%!
|
|
from openedx.core.djangolib.js_utils import dump_js_escaped_json
|
|
from eventtracking import tracker
|
|
from opaque_keys.edx.keys import CourseKey
|
|
import six
|
|
%>
|
|
<%
|
|
user_metadata = {
|
|
key: context.get(key)
|
|
for key in (
|
|
'username',
|
|
'user_id',
|
|
'course_id',
|
|
'enrollment_mode',
|
|
'upgrade_link',
|
|
'upgrade_price',
|
|
'audit_access_deadline',
|
|
'course_duration',
|
|
'pacing_type',
|
|
'has_staff_access',
|
|
'forum_roles',
|
|
'partition_groups',
|
|
# TODO: clean up as part of REVO-28 (START)
|
|
'has_non_audit_enrollments',
|
|
# TODO: clean up as part of REVO-28 (END)
|
|
# TODO: clean up as part of REVEM-199 (START)
|
|
'program_key_fields',
|
|
# TODO: clean up as part of REVEM-199 (END)
|
|
)
|
|
}
|
|
|
|
if user:
|
|
user_metadata['username'] = user.username
|
|
user_metadata['user_id'] = user.id
|
|
if hasattr(user, 'email'):
|
|
user_metadata['email'] = user.email
|
|
|
|
for datekey in (
|
|
'schedule_start',
|
|
'enrollment_time',
|
|
'course_start',
|
|
'course_end',
|
|
'dynamic_upgrade_deadline',
|
|
'course_upgrade_deadline',
|
|
'audit_access_deadline',
|
|
):
|
|
user_metadata[datekey] = (
|
|
context.get(datekey).isoformat() if context.get(datekey) else None
|
|
)
|
|
|
|
for timedeltakey in (
|
|
'course_duration',
|
|
):
|
|
user_metadata[timedeltakey] = (
|
|
context.get(timedeltakey).total_seconds() if context.get(timedeltakey) else None
|
|
)
|
|
|
|
course_key = context.get('course_key')
|
|
if course and not course_key:
|
|
course_key = course.id
|
|
|
|
if course_key:
|
|
if isinstance(course_key, CourseKey):
|
|
user_metadata['course_key_fields'] = {
|
|
'org': course_key.org,
|
|
'course': course_key.course,
|
|
'run': course_key.run,
|
|
}
|
|
|
|
if not course_id:
|
|
user_metadata['course_id'] = six.text_type(course_key)
|
|
elif isinstance(course_key, six.string_types):
|
|
user_metadata['course_id'] = course_key
|
|
|
|
%>
|
|
<script type="application/json" id="user-metadata">
|
|
${user_metadata | n, dump_js_escaped_json}
|
|
</script>
|