diff --git a/oneplus/context_processors.py b/oneplus/context_processors.py index a21d88ce..6b1a7ac2 100644 --- a/oneplus/context_processors.py +++ b/oneplus/context_processors.py @@ -1,6 +1,7 @@ def social_media(request): from django.conf import settings return { + 'SOCIAL_MEDIA_ACTIVE': settings.SOCIAL_MEDIA_ACTIVE, 'FB_APP_NUM': settings.FB_APP_NUM, 'FB_REDIRECT': settings.FB_REDIRECT, 'FB_SITE_TITLE': settings.FB_SITE_TITLE, diff --git a/oneplus/public_views.py b/oneplus/public_views.py index 8e67f7c0..e3b55bdc 100644 --- a/oneplus/public_views.py +++ b/oneplus/public_views.py @@ -2,7 +2,7 @@ import logging from django.conf import settings -from django.shortcuts import render +from django.shortcuts import redirect, render from auth.models import Learner from core.models import Participant, ParticipantBadgeTemplateRel from gamification.models import GamificationBadgeTemplate @@ -24,6 +24,9 @@ def get_learner_label(learner): @oneplus_check_user def badges(request, state, user): + if not settings.SOCIAL_MEDIA_ACTIVE: + return redirect('arrive') + def get(): badge_id = request.GET.get('b', None) participant_id = request.GET.get('p', None) @@ -77,6 +80,9 @@ def get(): @oneplus_check_user def level(request, state, user): + if not settings.SOCIAL_MEDIA_ACTIVE: + return redirect('arrive') + def get(): participant_id = request.GET.get('p', None) @@ -122,6 +128,9 @@ def get(): @oneplus_check_user def leaderboard(request, state, user, board_type=''): + if not settings.SOCIAL_MEDIA_ACTIVE: + return redirect('arrive') + def get(): participant_id = request.GET.get('p', None) max_uncollapsed = 3 diff --git a/oneplus/sharing_views.py b/oneplus/sharing_views.py index 4bb7d8a5..375452ae 100644 --- a/oneplus/sharing_views.py +++ b/oneplus/sharing_views.py @@ -9,6 +9,9 @@ @oneplus_participant_required def level(request, state, user, participant): + if not settings.SOCIAL_MEDIA_ACTIVE: + return redirect('arrive') + # get learner state _participant = participant learner = _participant.learner @@ -49,6 +52,9 @@ def get(): @oneplus_participant_required def leaderboard(request, state, user, participant, board_type=''): + if not settings.SOCIAL_MEDIA_ACTIVE: + return redirect('arrive') + max_uncollapsed = 3 if board_type == 'class': diff --git a/oneplus/templates/core/main.html b/oneplus/templates/core/main.html index 7cbb16d9..874bd504 100644 --- a/oneplus/templates/core/main.html +++ b/oneplus/templates/core/main.html @@ -58,41 +58,42 @@
  • Log out
  • {% endif %} - - + + + {% endif %} diff --git a/oneplus/templates/learn/home.html b/oneplus/templates/learn/home.html index 8cd548a0..4a5790da 100644 --- a/oneplus/templates/learn/home.html +++ b/oneplus/templates/learn/home.html @@ -17,7 +17,7 @@

    Hello, {{ user.name }}.

    Great to see you again.

    - {% comment %}Normal challenge{% endcomment %} + {# Normal challenge #} {% if state.home_tasks_today < state.home_required_tasks %} {% if not state.questions_complete %}
    @@ -35,7 +35,7 @@

    Ready for today's challenge?

    {% endif %} {% endif %} - {% comment %}Current challenge stats{% endcomment %} + {# Current challenge stats #}
    @@ -64,13 +64,13 @@

    {{ feedback_string }}

    {% endif %}
    - {% comment %}Overall stats{% endcomment %} + {# Overall stats #}
    - {% if public_sharing %} + {% if public_sharing and SOCIAL_MEDIA_ACTIVE %} Share level and badge {% endif %}

    Level

    @@ -106,7 +106,7 @@

    Level

    - {% comment %}Latest story{% endcomment %} + {# Latest story #} {% if post %}
    diff --git a/oneplus/templates/prog/leader.html b/oneplus/templates/prog/leader.html index d139261c..ccd78bfd 100644 --- a/oneplus/templates/prog/leader.html +++ b/oneplus/templates/prog/leader.html @@ -8,7 +8,7 @@ {% load oneplus_extras %}
    - {% if allow_sharing %} + {% if allow_sharing and SOCIAL_MEDIA_ACTIVE %}
    diff --git a/oneplus/templates/public/public_main.html b/oneplus/templates/public/public_main.html index 5313c96b..1b88f565 100644 --- a/oneplus/templates/public/public_main.html +++ b/oneplus/templates/public/public_main.html @@ -71,40 +71,42 @@ {% endif %} - + + + {% endif %} diff --git a/oneplus/tests/test_public.py b/oneplus/tests/test_public.py index 7c96f537..e72c48be 100644 --- a/oneplus/tests/test_public.py +++ b/oneplus/tests/test_public.py @@ -59,6 +59,7 @@ def create_badgetemplate(name='badge template name', **kwargs): **kwargs) +@override_settings(SOCIAL_MEDIA_ACTIVE=True) class TestPublicBadge(TestCase): def setUp(self): self.course = create_course() @@ -94,6 +95,13 @@ def setUp(self): self.badge_await = create_badgetemplate(name='Awaiting Badge #1') + @override_settings(SOCIAL_MEDIA_ACTIVE=False) + def test_no_sm_badges(self): + resp = self.client.get( + '{0:s}?p={1:d}&b={2:d}'.format(reverse('public:badges'), 1, 1), + follow=True) + self.assertRedirects(resp, reverse('misc.onboarding')) + def test_no_perm(self): self.learner.public_share = False self.learner.save() @@ -158,6 +166,7 @@ def test_invalid_badge(self): self.assertContains(resp, "No one's home") +@override_settings(SOCIAL_MEDIA_ACTIVE=True) class TestPublicLevel(TestCase): def setUp(self): self.course = create_course() @@ -178,6 +187,13 @@ def setUp(self): self.participant = create_participant(self.learner, self.classs, datejoined=datetime(2014, 7, 18, 1, 1)) self.module = create_module('module name', self.course) + @override_settings(SOCIAL_MEDIA_ACTIVE=False) + def test_no_sm_level(self): + resp = self.client.get( + '{0:s}?p={1:d}'.format(reverse('public:level'), 1), + follow=True) + self.assertRedirects(resp, reverse('misc.onboarding')) + def test_no_perm(self): self.learner.public_share = False self.learner.save() @@ -250,6 +266,7 @@ def test_level_max(self): self.assertContains(resp, '{0:s} {1:s} is awesome'.format(self.learner.first_name, self.learner.last_name)) +@override_settings(SOCIAL_MEDIA_ACTIVE=True, VUMI_GO_FAKE=True) class TestPublicLeaderboardSharing(TestCase): def setUp(self): self.course = create_course() @@ -272,7 +289,14 @@ def setUp(self): self.learner, self.classs, datejoined=datetime(2014, 7, 18, 1, 1)) self.module = create_module('module name', self.course) - @override_settings(VUMI_GO_FAKE=True) + @override_settings(SOCIAL_MEDIA_ACTIVE=False) + def test_no_sm_leader(self): + resp = self.client.get("{0:s}?p={1:d}".format(reverse('public:leaderboard', + kwargs={"board_type": 'class'}), + 1), + follow=True) + self.assertRedirects(resp, reverse('misc.onboarding')) + def test_leaderboard_class(self): #login learner self.client.get(reverse('auth.autologin', kwargs={'token': self.learner.unique_token})) @@ -333,4 +357,4 @@ def test_get_learner_label_all_names(self): self.learner.save() label = get_learner_label(self.learner) - self.assertEquals(label, 'blarg honk') + self.assertEquals(label, 'blarg honk') \ No newline at end of file diff --git a/oneplus/tests/test_sharing.py b/oneplus/tests/test_sharing.py index 97921ad2..b9b10510 100644 --- a/oneplus/tests/test_sharing.py +++ b/oneplus/tests/test_sharing.py @@ -57,7 +57,7 @@ def create_badgetemplate(name='badge template name', **kwargs): **kwargs) -@override_settings(VUMI_GO_FAKE=True) +@override_settings(SOCIAL_MEDIA_ACTIVE=True, VUMI_GO_FAKE=True) class TestLevelShare(TestCase): def setUp(self): self.course = create_course() @@ -144,8 +144,16 @@ def test_level_max(self): self.assertContains(resp, 'Level') self.assertContains(resp, '{0:s} {1:s} is awesome'.format(self.learner.first_name, self.learner.last_name)) + @override_settings(SOCIAL_MEDIA_ACTIVE=False) + def test_sm_inactive(self): + self.client.get(reverse('auth.autologin', kwargs={'token': self.learner.unique_token})) + self.learner.public_share = True + self.learner.save() + resp = self.client.get(reverse('share:level'), follow=True) + self.assertRedirects(resp, reverse('learn.home')) -@override_settings(VUMI_GO_FAKE=True) + +@override_settings(SOCIAL_MEDIA_ACTIVE=True, VUMI_GO_FAKE=True) class TestPermissionToShare(TestCase): def setUp(self): self.course = create_course() @@ -231,7 +239,16 @@ def test_permission_leaderboard(self): resp = self.client.get(reverse('prog.leader')) self.assertContains(resp, "Share my...") + @override_settings(SOCIAL_MEDIA_ACTIVE=False) + def test_sm_inactive(self): + self.client.get(reverse('auth.autologin', kwargs={'token': self.learner.unique_token})) + self.learner.public_share = True + self.learner.save() + resp = self.client.get(reverse('share:level'), follow=True) + self.assertRedirects(resp, reverse('learn.home')) + +@override_settings(SOCIAL_MEDIA_ACTIVE=True) class TestSharingLeaderboards(TestCase): def setUp(self): self.course = create_course() @@ -283,3 +300,11 @@ def test_leaderboard_national(self): resp = self.client.get(tmp_url) self.assertContains(resp, "Your national position") self.assertContains(resp, "National Leaderboard") + + @override_settings(SOCIAL_MEDIA_ACTIVE=False, VUMI_GO_FAKE=True) + def test_sm_inactive(self): + self.client.get(reverse('auth.autologin', kwargs={'token': self.learner.unique_token})) + self.learner.public_share = True + self.learner.save() + resp = self.client.get(reverse('share:level'), follow=True) + self.assertRedirects(resp, reverse('learn.home')) \ No newline at end of file diff --git a/oneplusmvp/settings.py b/oneplusmvp/settings.py index 52d7c131..407a4a48 100644 --- a/oneplusmvp/settings.py +++ b/oneplusmvp/settings.py @@ -276,6 +276,7 @@ def abspath(*args): MAX_LEVEL = 7 # Social media +SOCIAL_MEDIA_ACTIVE = False FB_APP_NUM = '1400713283294375' FB_REDIRECT = 'http://dig-it.me' FB_SITE_TITLE = 'dig-it'