From ed5168ec61079c344a070e9f49df1ec2b866c4ae Mon Sep 17 00:00:00 2001 From: Diana Huang <dkh@edx.org> Date: Thu, 3 Oct 2013 16:10:17 -0400 Subject: [PATCH] Move more dashboard logic into the views --- common/djangoapps/student/views.py | 7 +++++++ lms/templates/dashboard.html | 3 ++- lms/templates/dashboard/dashboard_course_listing.html | 9 ++------- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py index 8c84d9557e3..285509bf5a4 100644 --- a/common/djangoapps/student/views.py +++ b/common/djangoapps/student/views.py @@ -48,6 +48,7 @@ from certificates.models import CertificateStatuses, certificate_status_for_stud from xmodule.course_module import CourseDescriptor from xmodule.modulestore.exceptions import ItemNotFoundError from xmodule.modulestore.django import modulestore +from xmodule.modulestore import MONGO_MODULESTORE_TYPE from collections import namedtuple @@ -295,6 +296,11 @@ def dashboard(request): cert_statuses = {course.id: cert_info(request.user, course) for course, _enrollment in courses} + # only show email settings for Mongo course and when bulk email is turned on + show_email_settings_for = frozenset(course.id for course, _enrollment in courses + if (settings.MITX_FEATURES['ENABLE_INSTRUCTOR_EMAIL'] and + modulestore().get_modulestore_type(course.id) == MONGO_MODULESTORE_TYPE)) + # get info w.r.t ExternalAuthMap external_auth_map = None try: @@ -310,6 +316,7 @@ def dashboard(request): 'errored_courses': errored_courses, 'show_courseware_links_for': show_courseware_links_for, 'cert_statuses': cert_statuses, + 'show_email_settings_for': show_email_settings_for, } return render_to_response('dashboard.html', context) diff --git a/lms/templates/dashboard.html b/lms/templates/dashboard.html index d6d708a0c65..725841415af 100644 --- a/lms/templates/dashboard.html +++ b/lms/templates/dashboard.html @@ -157,7 +157,8 @@ % for course, enrollment in courses: <% show_courseware_link = (course.id in show_courseware_links_for) %> <% cert_status = cert_statuses.get(course.id) %> - <%include file='dashboard/dashboard_course_listing.html' args="course=course, enrollment=enrollment, show_courseware_link=show_courseware_link, cert_status=cert_status" /> + <% show_email_settings = (course.id in show_email_settings_for) %> + <%include file='dashboard/dashboard_course_listing.html' args="course=course, enrollment=enrollment, show_courseware_link=show_courseware_link, cert_status=cert_status, show_email_settings=show_email_settings" /> % endfor </ul> diff --git a/lms/templates/dashboard/dashboard_course_listing.html b/lms/templates/dashboard/dashboard_course_listing.html index 98cdebca3c4..c51f6e50158 100644 --- a/lms/templates/dashboard/dashboard_course_listing.html +++ b/lms/templates/dashboard/dashboard_course_listing.html @@ -1,4 +1,4 @@ -<%page args="course, enrollment, show_courseware_link, cert_status" /> +<%page args="course, enrollment, show_courseware_link, cert_status, show_email_settings" /> <%! from django.utils.translation import ugettext as _ %> <%! @@ -6,10 +6,6 @@ from courseware.courses import course_image_url, get_course_about_section from courseware.access import has_access from certificates.models import CertificateStatuses - - from xmodule.modulestore import MONGO_MODULESTORE_TYPE - from xmodule.modulestore.django import modulestore - import waffle %> <li class="course-item"> @@ -123,8 +119,7 @@ <a href="#unenroll-modal" class="unenroll" rel="leanModal" data-course-id="${course.id}" data-course-number="${course.number}">${_('Unregister')}</a> -% if settings.MITX_FEATURES['ENABLE_INSTRUCTOR_EMAIL'] and modulestore().get_modulestore_type(course.id) == MONGO_MODULESTORE_TYPE: - <!-- Only show the Email Settings link/modal if this course has bulk email feature enabled --> +% if show_email_settings: <a href="#email-settings-modal" class="email-settings" rel="leanModal" data-course-id="${course.id}" data-course-number="${course.number}" data-optout="${course.id in course_optouts}">${_('Email Settings')}</a> % endif -- GitLab