Commit 5ca636e6 by Calen Pennington

Use the university profile page for courses and index if we are in a branded…

Use the university profile page for courses and index if we are in a branded subdomain. N.B. THIS DOESN'T WORK WITH MIT_SSL_AUTH
parent b841591b
...@@ -157,7 +157,7 @@ def edXauth_signup(request, eamap=None): ...@@ -157,7 +157,7 @@ def edXauth_signup(request, eamap=None):
log.debug('ExtAuth: doing signup for %s' % eamap.external_email) log.debug('ExtAuth: doing signup for %s' % eamap.external_email)
return student_views.main_index(request, extra_context=context) return student_views.index(request, extra_context=context)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# MIT SSL # MIT SSL
...@@ -193,7 +193,7 @@ def edXauth_ssl_login(request): ...@@ -193,7 +193,7 @@ def edXauth_ssl_login(request):
The certificate provides user email and fullname; this populates the ExternalAuthMap. The certificate provides user email and fullname; this populates the ExternalAuthMap.
The user is nevertheless still asked to complete the edX signup. The user is nevertheless still asked to complete the edX signup.
Else continues on with student.views.main_index, and no authentication. Else continues on with student.views.index, and no authentication.
""" """
certkey = "SSL_CLIENT_S_DN" # specify the request.META field to use certkey = "SSL_CLIENT_S_DN" # specify the request.META field to use
...@@ -207,7 +207,7 @@ def edXauth_ssl_login(request): ...@@ -207,7 +207,7 @@ def edXauth_ssl_login(request):
pass pass
if not cert: if not cert:
# no certificate information - go onward to main index # no certificate information - go onward to main index
return student_views.main_index(request) return student_views.index(request)
(user, email, fullname) = ssl_dn_extract_info(cert) (user, email, fullname) = ssl_dn_extract_info(cert)
...@@ -217,4 +217,4 @@ def edXauth_ssl_login(request): ...@@ -217,4 +217,4 @@ def edXauth_ssl_login(request):
credentials=cert, credentials=cert,
email=email, email=email,
fullname=fullname, fullname=fullname,
retfun = functools.partial(student_views.main_index, request)) retfun = functools.partial(student_views.index, request))
...@@ -22,7 +22,6 @@ from django.db import IntegrityError ...@@ -22,7 +22,6 @@ from django.db import IntegrityError
from django.http import HttpResponse, Http404 from django.http import HttpResponse, Http404
from django.shortcuts import redirect from django.shortcuts import redirect
from mitxmako.shortcuts import render_to_response, render_to_string from mitxmako.shortcuts import render_to_response, render_to_string
from django.core.urlresolvers import reverse
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
from django.core.cache import cache from django.core.cache import cache
...@@ -30,7 +29,6 @@ from django_future.csrf import ensure_csrf_cookie ...@@ -30,7 +29,6 @@ from django_future.csrf import ensure_csrf_cookie
from student.models import (Registration, UserProfile, from student.models import (Registration, UserProfile,
PendingNameChange, PendingEmailChange, PendingNameChange, PendingEmailChange,
CourseEnrollment) CourseEnrollment)
from util.cache import cache_if_anonymous
from xmodule.course_module import CourseDescriptor from xmodule.course_module import CourseDescriptor
from xmodule.modulestore.exceptions import ItemNotFoundError from xmodule.modulestore.exceptions import ItemNotFoundError
from xmodule.modulestore.django import modulestore from xmodule.modulestore.django import modulestore
...@@ -54,23 +52,7 @@ def csrf_token(context): ...@@ -54,23 +52,7 @@ def csrf_token(context):
' name="csrfmiddlewaretoken" value="%s" /></div>' % (csrf_token)) ' name="csrfmiddlewaretoken" value="%s" /></div>' % (csrf_token))
@ensure_csrf_cookie def index(request, extra_context={}, user=None):
@cache_if_anonymous
def index(request):
''' Redirects to main page -- info page if user authenticated, or marketing if not
'''
if settings.COURSEWARE_ENABLED and request.user.is_authenticated():
return redirect(reverse('dashboard'))
if settings.MITX_FEATURES.get('AUTH_USE_MIT_CERTIFICATES'):
from external_auth.views import edXauth_ssl_login
return edXauth_ssl_login(request)
return main_index(request, user=request.user)
def main_index(request, extra_context={}, user=None):
''' '''
Render the edX main page. Render the edX main page.
......
...@@ -26,17 +26,27 @@ def get_visible_courses(domain=None): ...@@ -26,17 +26,27 @@ def get_visible_courses(domain=None):
return courses return courses
def get_logo_url(domain=None): def get_university(domain=None):
""" """
Return the url for the branded logo image to be used Return the university name specified for the domain, or None
if no university was specified
""" """
if not settings.MITX_FEATURES['SUBDOMAIN_BRANDING'] or domain is None: if not settings.MITX_FEATURES['SUBDOMAIN_BRANDING'] or domain is None:
return '/static/images/header-logo.png' return None
subdomain = get_subdomain(domain) subdomain = get_subdomain(domain)
if subdomain not in settings.SUBDOMAIN_BRANDING: return settings.SUBDOMAIN_BRANDING.get(subdomain)
def get_logo_url(domain=None):
"""
Return the url for the branded logo image to be used
"""
university = get_university(domain)
if university is None:
return '/static/images/header-logo.png' return '/static/images/header-logo.png'
return '/static/images/{uni}-on-edx-logo.png'.format( return '/static/images/{uni}-on-edx-logo.png'.format(
uni=settings.SUBDOMAIN_BRANDING[subdomain] uni=university
) )
from django.conf import settings
from django.core.urlresolvers import reverse
from django.shortcuts import redirect
from django_future.csrf import ensure_csrf_cookie
import student.views
import branding
import courseware.views
from util.cache import cache_if_anonymous
@ensure_csrf_cookie
@cache_if_anonymous
def index(request):
'''
Redirects to main page -- info page if user authenticated, or marketing if not
'''
if settings.COURSEWARE_ENABLED and request.user.is_authenticated():
return redirect(reverse('dashboard'))
if settings.MITX_FEATURES.get('AUTH_USE_MIT_CERTIFICATES'):
from external_auth.views import edXauth_ssl_login
return edXauth_ssl_login(request)
university = branding.get_university(request.META.get('HTTP_HOST'))
if university is None:
return student.views.index(request, user=request.user)
return courseware.views.university_profile(request, university)
@ensure_csrf_cookie
@cache_if_anonymous
def courses(request):
"""
Render the "find courses" page. If subdomain branding is on, this is the
university profile page, otherwise it's the edX courseware.views.courses page
"""
university = branding.get_university(request.META.get('HTTP_HOST'))
if university is None:
return courseware.views.courses(request)
return courseware.views.university_profile(request, university)
...@@ -16,7 +16,7 @@ import branding ...@@ -16,7 +16,7 @@ import branding
<header class="global" aria-label="Global Navigation"> <header class="global" aria-label="Global Navigation">
%endif %endif
<nav> <nav>
<h1 class="logo"><a href="${reverse('root')}"><img src="${static.url(branding.get_logo_url(request.META['HTTP_HOST']))}"/></a></h1> <h1 class="logo"><a href="${reverse('root')}"><img src="${static.url(branding.get_logo_url(request.META.get('HTTP_HOST')))}"/></a></h1>
%if course: %if course:
<h2><span class="provider">${course.org}:</span> ${course.number} ${course.title}</h2> <h2><span class="provider">${course.org}:</span> ${course.number} ${course.title}</h2>
......
...@@ -10,7 +10,7 @@ if settings.DEBUG: ...@@ -10,7 +10,7 @@ if settings.DEBUG:
admin.autodiscover() admin.autodiscover()
urlpatterns = ('', urlpatterns = ('',
url(r'^$', 'student.views.index', name="root"), # Main marketing page, or redirect to courseware url(r'^$', 'branding.views.index', name="root"), # Main marketing page, or redirect to courseware
url(r'^dashboard$', 'student.views.dashboard', name="dashboard"), url(r'^dashboard$', 'student.views.dashboard', name="dashboard"),
url(r'^admin_dashboard$', 'dashboard.views.dashboard'), url(r'^admin_dashboard$', 'dashboard.views.dashboard'),
...@@ -115,7 +115,7 @@ if settings.COURSEWARE_ENABLED: ...@@ -115,7 +115,7 @@ if settings.COURSEWARE_ENABLED:
# url(r'^edit_circuit/(?P<circuit>[^/]*)$', 'circuit.views.edit_circuit'), # url(r'^edit_circuit/(?P<circuit>[^/]*)$', 'circuit.views.edit_circuit'),
# url(r'^save_circuit/(?P<circuit>[^/]*)$', 'circuit.views.save_circuit'), # url(r'^save_circuit/(?P<circuit>[^/]*)$', 'circuit.views.save_circuit'),
url(r'^courses/?$', 'courseware.views.courses', name="courses"), url(r'^courses/?$', 'branding.views.courses', name="courses"),
url(r'^change_enrollment$', url(r'^change_enrollment$',
'student.views.change_enrollment_view', name="change_enrollment"), 'student.views.change_enrollment_view', name="change_enrollment"),
......
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