From 5d7befdebe015bbd7ee25c28fa4103b4c90935a1 Mon Sep 17 00:00:00 2001
From: Chris Rossi
Date: Tue, 17 Dec 2013 12:08:52 -0500
Subject: [PATCH] Generate certificate URLs.
---
.../linkedin/management/commands/mailusers.py | 36 +++++++++++++++++--
.../linkedin/templates/linkedin_email.html | 2 +-
2 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/lms/djangoapps/linkedin/management/commands/mailusers.py b/lms/djangoapps/linkedin/management/commands/mailusers.py
index b046bd0445..0cfdb85662 100644
--- a/lms/djangoapps/linkedin/management/commands/mailusers.py
+++ b/lms/djangoapps/linkedin/management/commands/mailusers.py
@@ -4,6 +4,7 @@ LinkedIn profiles.
"""
import json
+import urllib
from courseware.courses import get_course_by_id
from django.core.management.base import BaseCommand
@@ -14,6 +15,8 @@ from optparse import make_option
from certificates.models import GeneratedCertificate
from ...models import LinkedIn
+from . import LinkedinAPI
+
class Command(BaseCommand):
"""
@@ -58,6 +61,32 @@ class Command(BaseCommand):
emailed.append(certificate.course_id)
account.emailed_courses = json.dumps(emailed)
+def certificate_url(api, course, certificate, grandfather=False):
+ """
+ Generates a certificate URL based on LinkedIn's documentation. The
+ documentation is from a Word document: DAT_DOCUMENTATION_v3.12.docx
+ """
+ tracking_code = '-'.join([
+ 'eml',
+ 'prof', # the 'product'--no idea what that's supposed to mean
+ course.org, # Partner's name
+ course.number, # Certificate's name
+ 'gf' if grandfather else 'T'])
+ query = {
+ 'pfCertificationName': certificate.name,
+ 'pfAuthorityName': api.config['COMPANY_NAME'],
+ 'pfAuthorityId': api.config['COMPANY_ID'],
+ 'pfCertificationUrl': certificate.download_url,
+ 'pfLicenseNo': certificate.course_id,
+ 'pfCertStartDate': course.start.strftime('%Y%mI'),
+ 'pfCertFuture': certificate.created_date.strftime('%Y%m'),
+ '_mSplash': '1',
+ 'trk': tracking_code,
+ 'startTask': 'CERTIFICATION_name',
+ 'force': 'true',
+ }
+ return 'http://www.linkedin.com/profile/guided?' + urllib.urlencode(query)
+
def send_grandfather_email(user, certificates):
"""
@@ -72,10 +101,13 @@ def send_email(user, certificate):
Email a user that recently earned a certificate, inviting them to post their
certificate on their LinkedIn profile.
"""
+ api = LinkedinAPI()
template = get_template("linkedin_email.html")
course = get_course_by_id(certificate.course_id)
+ url = certificate_url(api, course, certificate)
context = Context({
'student_name': user.profile.name,
- 'course_name': 'XXX',
- 'url': '#'})
+ 'course_name': certificate.name,
+ 'url': url})
print template.render(context)
+ print url
diff --git a/lms/djangoapps/linkedin/templates/linkedin_email.html b/lms/djangoapps/linkedin/templates/linkedin_email.html
index 54db13d894..a845875dcd 100644
--- a/lms/djangoapps/linkedin/templates/linkedin_email.html
+++ b/lms/djangoapps/linkedin/templates/linkedin_email.html
@@ -17,7 +17,7 @@
certificate to your profile.
{% endblocktrans %}
-
+
in
{% blocktrans %}Add to profile{% endblocktrans %}