From 3c8eacd4407517b8829a0edcafe3924a0b822544 Mon Sep 17 00:00:00 2001 From: Waheed Ahmed Date: Thu, 17 Jul 2014 15:52:02 +0500 Subject: [PATCH] Disabled student view if course is not yet released for students. LMS-6617 --- lms/djangoapps/courseware/views.py | 18 +++++++++++++++++- .../courseware/course_navigation.html | 7 +++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/courseware/views.py b/lms/djangoapps/courseware/views.py index 20164db01f..c9b50d18b6 100644 --- a/lms/djangoapps/courseware/views.py +++ b/lms/djangoapps/courseware/views.py @@ -6,6 +6,7 @@ import logging import urllib import json +from datetime import datetime from collections import defaultdict from django.utils import translation from django.utils.translation import ugettext as _ @@ -16,6 +17,7 @@ from django.core.exceptions import PermissionDenied from django.core.urlresolvers import reverse from django.contrib.auth.models import User, AnonymousUser from django.contrib.auth.decorators import login_required +from django.utils.timezone import UTC from django.views.decorators.http import require_GET from django.http import Http404, HttpResponse from django.shortcuts import redirect @@ -27,7 +29,7 @@ from functools import wraps from markupsafe import escape from courseware import grades -from courseware.access import has_access +from courseware.access import has_access, _adjust_start_date_for_beta_testers from courseware.courses import get_courses, get_course, get_studio_url, get_course_with_access, sort_by_announcement from courseware.masquerade import setup_masquerade from courseware.model_data import FieldDataCache @@ -337,6 +339,13 @@ def index(request, course_id, chapter=None, section=None, 'reverifications': fetch_reverify_banner_info(request, course_key), } + now = datetime.now(UTC()) + effective_start = _adjust_start_date_for_beta_testers(user, course, course_key) + if staff_access and now < effective_start: + # Disable student view button if user is staff and + # course is not yet visible to students. + context['disable_student_access'] = True + has_content = course.has_children_at_depth(CONTENT_DEPTH) if not has_content: # Show empty courseware for a course with no units @@ -590,6 +599,13 @@ def course_info(request, course_id): 'url_to_enroll': url_to_enroll, } + now = datetime.now(UTC()) + effective_start = _adjust_start_date_for_beta_testers(request.user, course, course_key) + if staff_access and now < effective_start: + # Disable student view button if user is staff and + # course is not yet visible to students. + context['disable_student_access'] = True + return render_to_response('courseware/info.html', context) diff --git a/lms/templates/courseware/course_navigation.html b/lms/templates/courseware/course_navigation.html index 267bc6896a..248ef0f45d 100644 --- a/lms/templates/courseware/course_navigation.html +++ b/lms/templates/courseware/course_navigation.html @@ -62,6 +62,10 @@ def url_class(is_active):