Skip to content
This repository has been archived by the owner on Aug 21, 2024. It is now read-only.

Commit

Permalink
feat: redirect if learner view has been disabled (#1266)
Browse files Browse the repository at this point in the history
* feat: redirect if learner view disabled

* style: dumb nit

* test: default disable learner view acceptance tests
  • Loading branch information
zacharis278 authored Feb 25, 2022
1 parent cd7cf7d commit 04da94c
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 3 deletions.
8 changes: 6 additions & 2 deletions analytics_dashboard/courses/tests/test_views/test_learners.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,12 @@ def test_success(self):
return response

@override_waffle_flag(DISPLAY_LEARNER_ANALYTICS, active=False)
def test_success_if_hidden(self):
self.test_success()
def test_redirect_if_disabled(self):
learners_payload = {'arbitrary_learners_key': ['arbitrary_value_1', 'arbitrary_value_2']}
course_metadata_payload = {'arbitrary_metadata_value': {'arbitrary_value_1': 'arbitrary_value_2'}}
self._register_uris(200, learners_payload, 200, course_metadata_payload)
response = self._get()
self.assertRedirects(response, '/courses', target_status_code=301)

@override_switch('enable_learner_download', active=False)
def test_disable_learner_download_button(self):
Expand Down
7 changes: 7 additions & 0 deletions analytics_dashboard/courses/views/learners.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@

from urllib.parse import urlencode
from django.conf import settings
from django.shortcuts import redirect
from django.urls import reverse
from django.utils.translation import ugettext_lazy as _
from requests.exceptions import ConnectionError as RequestsConnectionError
from requests.exceptions import Timeout
from waffle import switch_is_active

from analytics_dashboard.courses.views import CourseTemplateWithNavView, AnalyticsV0Mixin
from analytics_dashboard.courses.waffle import DISPLAY_LEARNER_ANALYTICS
from analytics_dashboard.learner_analytics_api.v0.clients import LearnerAPIClient

logger = logging.getLogger(__name__)
Expand All @@ -25,6 +27,11 @@ class LearnersView(AnalyticsV0Mixin, CourseTemplateWithNavView):
'depth': ''
}

def dispatch(self, request, *args, **kwargs):
if DISPLAY_LEARNER_ANALYTICS.is_enabled():
return super().dispatch(request, *args, **kwargs)
return redirect('/courses')

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['js_data']['course'].update({
Expand Down
1 change: 0 additions & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ passenv =
ENABLE_AUTO_AUTH
ENABLE_OAUTH_TESTS
ENABLE_ERROR_PAGE_TESTS
DISPLAY_LEARNER_ANALYTICS
ENABLE_COURSE_LIST_FILTERS
ENABLE_COURSE_LIST_PASSING
COVERAGE_DIR
Expand Down

0 comments on commit 04da94c

Please sign in to comment.