Commit 85267e6a by chrisndodge

Merge pull request #535 from edx/feature/cdodge/add-display-org-and-coursenum

add display_coursenumber and display_organization fields on the CourseModule
parents 2f808a92 18458bd9
......@@ -13,7 +13,7 @@
<h2 class="info-course">
<span class="sr">${_("Current Course:")}</span>
<a class="course-link" href="${reverse('course_index', kwargs=dict(org=ctx_loc.org, course=ctx_loc.course, name=ctx_loc.name))}">
<span class="course-org">${ctx_loc.org}</span><span class="course-number">${ctx_loc.course}</span>
<span class="course-org">${context_course.display_org_with_default | h}</span><span class="course-number">${context_course.display_number_with_default | h}</span>
<span class="course-title" title="${context_course.display_name_with_default}">${context_course.display_name_with_default}</span>
</a>
</h2>
......
......@@ -362,6 +362,11 @@ class CourseFields(object):
# Explicit comparison to True because we always want to return a bool.
hide_progress_tab = Boolean(help="DO NOT USE THIS", scope=Scope.settings)
display_organization = String(help="An optional display string for the course organization that will get rendered in the LMS",
scope=Scope.settings)
display_coursenumber = String(help="An optional display string for the course number that will get rendered in the LMS",
scope=Scope.settings)
class CourseDescriptor(CourseFields, SequenceDescriptor):
module_class = SequenceModule
......@@ -934,5 +939,25 @@ class CourseDescriptor(CourseFields, SequenceDescriptor):
return self.location.course
@property
def display_number_with_default(self):
"""
Return a display course number if it has been specified, otherwise return the 'course' that is in the location
"""
if self.display_coursenumber:
return self.display_coursenumber
return self.number
@property
def org(self):
return self.location.org
@property
def display_org_with_default(self):
"""
Return a display organization if it has been specified, otherwise return the 'org' that is in the location
"""
if self.display_organization:
return self.display_organization
return self.org
......@@ -53,7 +53,7 @@ def get_dummy_course(start, announcement=None, is_new=None, advertised_start=Non
end = to_attrb('end', end)
start_xml = '''
<course org="{org}" course="{course}"
<course org="{org}" course="{course}" display_organization="{org}_display" display_coursenumber="{course}_display"
graceperiod="1 day" url_name="test"
start="{start}"
{announcement}
......@@ -141,6 +141,16 @@ class IsNewCourseTestCase(unittest.TestCase):
print "Checking start=%s advertised=%s" % (s[0], s[1])
self.assertEqual(d.start_date_text, s[2])
def test_display_organization(self):
descriptor = get_dummy_course(start='2012-12-02T12:00', is_new=True)
self.assertNotEqual(descriptor.location.org, descriptor.display_org_with_default)
self.assertEqual(descriptor.display_org_with_default, "{0}_display".format(ORG))
def test_display_coursenumber(self):
descriptor = get_dummy_course(start='2012-12-02T12:00', is_new=True)
self.assertNotEqual(descriptor.location.course, descriptor.display_number_with_default)
self.assertEqual(descriptor.display_number_with_default, "{0}_display".format(COURSE))
def test_is_newish(self):
descriptor = get_dummy_course(start='2012-12-02T12:00', is_new=True)
assert(descriptor.is_newish is True)
......
<course org="edX" course="toy" url_name="2012_Fall"/>
\ No newline at end of file
<course org="edX" course="toy" url_name="2012_Fall" display_organization="edX_display" display_coursenum="2012_Fall_Display" />
\ No newline at end of file
import logging
import re
import cgi
from django.conf import settings
from django.contrib.sites.models import Site
......@@ -95,7 +96,7 @@ def course_wiki_redirect(request, course_id):
root,
course_slug,
title=course_slug,
content="This is the wiki for **{0}**'s _{1}_.".format(course.org, course.display_name_with_default),
content=cgi.escape("This is the wiki for **{0}**'s _{1}_.".format(course.display_org_with_default, course.display_name_with_default)),
user_message="Course page automatically created.",
user=None,
ip_address=None,
......
......@@ -174,9 +174,9 @@ def get_course_about_section(course, section_key):
elif section_key == "title":
return course.display_name_with_default
elif section_key == "university":
return course.location.org
return course.display_org_with_default
elif section_key == "number":
return course.number
return course.display_number_with_default
raise KeyError("Invalid about key " + str(section_key))
......
......@@ -14,13 +14,13 @@ from courseware.courses import course_image_url, get_course_about_section
<div class="inner-wrapper">
<header class="course-preview">
<hgroup>
<h2><span class="course-number">${course.number}</span> ${get_course_about_section(course, 'title')}</h2>
<h2><span class="course-number">${course.display_number_with_default | h}</span> ${get_course_about_section(course, 'title')}</h2>
</hgroup>
<div class="info-link">&#x2794;</div>
</header>
<section class="info">
<div class="cover-image">
<img src="${course_image_url(course)}" alt="${course.number} ${get_course_about_section(course, 'title')} Cover Image" />
<img src="${course_image_url(course)}" alt="${course.display_number_with_default | h} ${get_course_about_section(course, 'title')} Cover Image" />
</div>
<div class="desc">
<p>${get_course_about_section(course, 'short_description')}</p>
......
......@@ -66,7 +66,7 @@
<script src="${static.url('js/course_info.js')}"></script>
</%block>
<%block name="title"><title>${_("About {course.number}").format(course=course)}</title></%block>
<%block name="title"><title>${_("About {course.display_number_with_default}").format(course=course) | h}</title></%block>
<section class="course-info">
<header class="course-profile">
......@@ -75,7 +75,7 @@
<section class="intro">
<hgroup>
<h1>
${course.number}: ${get_course_about_section(course, "title")}
${course.display_number_with_default | h}: ${get_course_about_section(course, "title")}
% if not self.theme_enabled():
<a href="#">${get_course_about_section(course, "university")}</a>
% endif
......@@ -87,13 +87,15 @@
%if show_courseware_link:
<a href="${course_target}">
%endif
<span class="register disabled">${_("You are registered for this course {course.number}").format(course=course)}</span>
<span class="register disabled">${_("You are registered for this course {course.display_number_with_default}").format(course=course) | h}</span>
%if show_courseware_link:
<strong>${_("View Courseware")}</strong>
</a>
%endif
%else:
<a href="#" class="register">${_("Register for {course.number}").format(course=course)}</a>
<a href="#" class="register">${_("Register for {course.display_number_with_default}").format(course=course) | h}</a>
<div id="register_error"></div>
%endif
</div>
......@@ -162,7 +164,7 @@
</header>
<ol class="important-dates">
<li><div class="icon course-number"></div><p>${_("Course Number")}</p><span class="course-number">${course.number}</span></li>
<li><div class="icon course-number"></div><p>${_("Course Number")}</p><span class="course-number">${course.display_number_with_default | h}</span></li>
<li><div class="icon start"></div><p>${_("Classes Start")}</p><span class="start-date">${course.start_date_text}</span></li>
## We plan to ditch end_date (which is not stored in course metadata),
......
......@@ -2,7 +2,7 @@
<%inherit file="/main.html" />
<%namespace name='static' file='/static_content.html'/>
<%block name="bodyclass">courseware ${course.css_class}</%block>
<%block name="title"><title>${_("{course_number} Courseware").format(course_number=course.number)}</title></%block>
<%block name="title"><title>${_("{course_number} Courseware").format(course_number=course.display_number_with_default) | h}</title></%block>
<%block name="headextra">
<%static:css group='course'/>
......
......@@ -7,8 +7,7 @@
<%static:css group='course'/>
</%block>
<%block name="title"><title>${_("{course.number} Course Info").format(course=course)}</title></%block>
<%block name="title"><title>${_("{course.display_number_with_default} Course Info").format(course=course) | h}</title></%block>
<%include file="/courseware/course_navigation.html" args="active_page='info'" />
<%!
from courseware.courses import get_course_info_section
......
......@@ -8,7 +8,7 @@
<%inherit file="../mktg_iframe.html" />
<%block name="title"><title>${_("About {course_number}").format(course_number=course.number)}</title></%block>
<%block name="title"><title>${_("About {course_number}").format(course_number=course.display_number_with_default) | h}</title></%block>
<%block name="bodyclass">view-partial-mktgregister</%block>
......@@ -52,7 +52,7 @@
<div class="action is-registered">${_("You Are Registered")}</div>
%endif
%elif allow_registration:
<a class="action action-register register" href="#">${_("Register for")} <strong>${course.number}</strong></a>
<a class="action action-register register" href="#">${_("Register for")} <strong>${course.display_number_with_default | h}</strong></a>
%else:
<div class="action registration-closed is-disabled">${_("Registration Is Closed")}</div>
%endif
......
......@@ -8,7 +8,7 @@
<%namespace name="progress_graph" file="/courseware/progress_graph.js"/>
<%block name="title"><title>${_("{course_number} Progress").format(course_number=course.number)}</title></%block>
<%block name="title"><title>${_("{course_number} Progress").format(course_number=course.display_number_with_default) | h}</title></%block>
<%!
from django.core.urlresolvers import reverse
......
......@@ -6,7 +6,7 @@
<%static:css group='course'/>
</%block>
<%block name="title"><title>${course.number} ${tab['name']}</title></%block>
<%block name="title"><title>${course.display_number_with_default | h} ${tab['name']}</title></%block>
<%include file="/courseware/course_navigation.html" args="active_page='static_tab_{0}'.format(tab['url_slug'])" />
......
......@@ -6,7 +6,7 @@
<%static:css group='course'/>
</%block>
<%block name="title"><title>${_("{course.number} Course Info").format(course=course)}</title></%block>
<%block name="title"><title>${_("{course.display_number_with_default} Course Info").format(course=course) | h}</title></%block>
<%include file="/courseware/course_navigation.html" args="active_page='syllabus'" />
<%!
......
......@@ -140,7 +140,7 @@
% if course.id in show_courseware_links_for:
<a href="${course_target}" class="cover">
<img src="${course_image_url(course)}" alt="${_('{course_number} {course_name} Cover Image').format(course_number='${course.number}', course_name='${course.display_name_with_default}')}" />
<img src="${course_image_url(course)}" alt="${_('{course_number} {course_name} Cover Image').format(course_number='${course.number}', course_name='${course.display_name_with_default}') |h}" />
</a>
% else:
<div class="cover">
......@@ -162,9 +162,9 @@
<h2 class="university">${get_course_about_section(course, 'university')}</h2>
<h3>
% if course.id in show_courseware_links_for:
<a href="${course_target}">${course.number} ${course.display_name_with_default}</a>
<a href="${course_target}">${course.display_number_with_default | h} ${course.display_name_with_default}</a>
% else:
<span>${course.number} ${course.display_name_with_default}</span>
<span>${course.display_number_with_default | h} ${course.display_name_with_default}</span>
% endif
</h3>
</hgroup>
......@@ -202,7 +202,7 @@
link_start='<a href="{url}" id="exam_register_link">'.format(url=testcenter_register_target),
link_end='</a>')}</strong>
${_("Otherwise {link_start}contact edX at {email}{link_end} for further help.").format(
link_start='<a class="contact-link" href="mailto:{email}?subject=Pearson VUE Exam - {about} {number}">'.format(email="exam-help@edx.org", about=get_course_about_section(course, 'university'), number=course.number),
link_start='<a class="contact-link" href="mailto:{email}?subject=Pearson VUE Exam - {about} {number}">'.format(email="exam-help@edx.org", about=get_course_about_section(course, 'university'), number=course.display_number_with_default),
link_end='</a>',
email="exam-help@edx.org",
)}
......
......@@ -6,7 +6,7 @@
<%inherit file="../main.html" />
<%namespace name='static' file='../static_content.html'/>
<%block name="bodyclass">discussion</%block>
<%block name="title"><title>${_("Discussion - {course_number}").format(course_number=course.number) | h}</title></%block>
<%block name="title"><title>${_("Discussion - {course_number}").format(course_number=course.display_number_with_default) | h}</title></%block>
<%block name="headextra">
<%static:css group='course'/>
......
......@@ -7,7 +7,7 @@
<%inherit file="../main.html" />
<%namespace name='static' file='../static_content.html'/>
<%block name="bodyclass">discussion</%block>
<%block name="title"><title>${_("Discussion - {course_number}").format(course_number=course.number) | h}</title></%block>
<%block name="title"><title>${_("Discussion - {course_number}").format(course_number=course.display_number_with_default) | h}</title></%block>
<%block name="headextra">
<%static:css group='course'/>
......
......@@ -4,7 +4,7 @@
<%inherit file="../main.html" />
<%namespace name='static' file='../static_content.html'/>
<%block name="bodyclass">discussion</%block>
<%block name="title"><title>${_("Discussion - {course_number}").format(course_number=course.number) | h}</title></%block>
<%block name="title"><title>${_("Discussion - {course_number}").format(course_number=course.display_number_with_default) | h}</title></%block>
<%block name="headextra">
<%static:css group='course'/>
......
......@@ -7,7 +7,7 @@
<%static:css group='course'/>
</%block>
<%block name="title"><title>${_("{course_number} Staff Grading").format(course_number=course.number)}</title></%block>
<%block name="title"><title>${_("{course_number} Staff Grading").format(course_number=course.display_number_with_default) | h}</title></%block>
<%include file="/courseware/course_navigation.html" args="active_page='staff_grading'" />
......
......@@ -50,7 +50,7 @@ site_status_msg = get_site_status_msg(course_id)
</h1>
% if course:
<h2><span class="provider">${course.org}:</span> ${course.number} ${course.display_name_with_default}</h2>
<h2><span class="provider">${course.display_org_with_default | h}:</span> ${course.display_number_with_default | h} ${course.display_name_with_default}</h2>
% endif
% if user.is_authenticated():
......
......@@ -7,7 +7,7 @@
<%static:css group='course'/>
</%block>
<%block name="title"><title>${_("{course_number} Combined Notifications").format(course_number=course.number)}</title></%block>
<%block name="title"><title>${_("{course_number} Combined Notifications").format(course_number=course.display_number_with_default) | h}</title></%block>
<%include file="/courseware/course_navigation.html" args="active_page='open_ended'" />
......
......@@ -7,7 +7,7 @@
<%static:css group='course'/>
</%block>
<%block name="title"><title>${_("{course_number} Flagged Open Ended Problems").format(course_number=course.number)}</title></%block>
<%block name="title"><title>${_("{course_number} Flagged Open Ended Problems").format(course_number=course.display_number_with_default) | h}</title></%block>
<%include file="/courseware/course_navigation.html" args="active_page='open_ended_flagged_problems'" />
......
......@@ -7,7 +7,7 @@
<%static:css group='course'/>
</%block>
<%block name="title"><title>${_("{course_number} Open Ended Problems").format(course_number=course.number)}</title></%block>
<%block name="title"><title>${_("{course_number} Open Ended Problems").format(course_number=course.display_number_with_default) | h}</title></%block>
<%include file="/courseware/course_navigation.html" args="active_page='open_ended_problems'" />
......
......@@ -2,7 +2,7 @@
<%inherit file="main.html" />
<%namespace name='static' file='static_content.html'/>
<%block name="title"><title>${_('{course_number} Textbook').format(course_number=course.number)}</title>
<%block name="title"><title>${_('{course_number} Textbook').format(course_number=course.display_number_with_default) | h}</title>
</%block>
<%block name="headextra">
......
......@@ -5,7 +5,7 @@
<%block name="title">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>${_('{course_number} Textbook').format(course_number=course.number)}</title>
<title>${_('{course_number} Textbook').format(course_number=course.display_number_with_default) | h}</title>
</%block>
<%block name="headextra">
......
......@@ -2,7 +2,7 @@
<%inherit file="main.html" />
<%namespace name='static' file='static_content.html'/>
<%block name="title"><title>${_("{course_number} Textbook").format(course_number=course.number)}</title></%block>
<%block name="title"><title>${_("{course_number} Textbook").format(course_number=course.display_number_with_default) | h}</title></%block>
<%block name="headextra">
<%static:css group='course'/>
......
......@@ -95,7 +95,7 @@
<section class="introduction">
<header>
<hgroup>
<h2><a href="${reverse('dashboard')}">${get_course_about_section(course, 'university')} ${course.number} ${course.display_name_with_default}</a></h2>
<h2><a href="${reverse('dashboard')}">${get_course_about_section(course, 'university')} ${course.display_number_with_default | h} ${course.display_name_with_default | h}</a></h2>
% if registration:
<h1>${_('Your Pearson VUE Proctored Exam Registration')}</h1>
......@@ -442,7 +442,7 @@
% endif
<div class="details details-course">
<h4>${_("About {university} {course_number}").format(university=get_course_about_section(course, 'university'), course_number=course.number)}</h4>
<h4>${_("About {university} {course_number}").format(university=get_course_about_section(course, 'university'), course_number=course.course.display_number_with_default) | h}</h4>
<p>
% if course.has_ended():
<span class="label">${_('Course Completed:')}</span> <span class="value">${course.end_date_text}</span>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment