Commit 7d6ab173 by Nimisha Asthagiri Committed by GitHub

Merge pull request #15316 from edx/ret/planning-prompt-population

Planning Prompts experiment: check content availability date
parents 5b400bc0 3bbeb75c
......@@ -5,10 +5,10 @@ import json
import logging
import urllib
from collections import OrderedDict, namedtuple
from datetime import datetime
from datetime import datetime, timedelta
from pytz import utc
import analytics
import waffle
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import AnonymousUser, User
......@@ -502,6 +502,9 @@ class CourseTabView(EdxFragmentView):
'upgrade_link': check_and_get_upgrade_link(request, request.user, course.id),
'upgrade_price': get_cosmetic_verified_display_price(course),
# ENDTODO
# TODO: (Experimental Code). See https://openedx.atlassian.net/wiki/display/RET/3.+Planning+Prompts
'display_planning_prompt': _should_display_planning_prompt(request, course),
# ENDTODO
}
def render_to_fragment(self, request, course=None, page_context=None, **kwargs):
......@@ -521,6 +524,24 @@ class CourseTabView(EdxFragmentView):
return render_to_response('courseware/tab-view.html', page_context)
# TODO: (Experimental Code). See https://openedx.atlassian.net/wiki/display/RET/3.+Planning+Prompts
def _should_display_planning_prompt(request, course_overview):
"""
A planning prompt is enabled in the experiment for all enrollments whose
content availability date is less than 14 days from today.
The content availability date is defined as either the course start date
or the enrollment date, whichever was most recent.
"""
enrollment = CourseEnrollment.get_enrollment(request.user, course_overview.id)
if enrollment:
content_availability_date = max(course_overview.start, enrollment.created)
return content_availability_date > (datetime.now(utc) - timedelta(days=14))
else:
return False
# ENDTODO
@ensure_csrf_cookie
@ensure_valid_course_key
def syllabus(request, course_id):
......
## TODO: (Experimental Code). See https://openedx.atlassian.net/wiki/display/RET/2.+In-course+Verification+Prompts
<%page expression_filter="h"/>
## TODO: (Experimental Code). See https://openedx.atlassian.net/wiki/display/RET/2.+In-course+Verification+Prompts
% if upgrade_link:
<script type="text/plain"
id="upgrade_user"
......@@ -9,3 +9,9 @@
</script>
% endif
## ENDTODO
## TODO: (Experimental Code). See https://openedx.atlassian.net/wiki/display/RET/3.+Planning+Prompts
% if display_planning_prompt:
<script type="text/plain" id="display_planning_prompt"></script>
% endif
## ENDTODO
......@@ -98,7 +98,7 @@ from pipeline_mako import render_require_js_path_overrides
<%block name="headextra"/>
<%block name="head_extra"/>
<%include file="/courseware/upgrade.html"/>
<%include file="/courseware/experiments.html"/>
<%static:optional_include_mako file="head-extra.html" is_theming_enabled="True" />
<%include file="widgets/optimizely.html" />
......
......@@ -124,7 +124,7 @@ class TestCourseUpdatesPage(SharedModuleStoreTestCase):
course_updates_url(self.course)
# Fetch the view and verify that the query counts haven't changed
with self.assertNumQueries(34):
with self.assertNumQueries(35):
with check_mongo_calls(4):
url = course_updates_url(self.course)
self.client.get(url)
"""
Views to show a course outline.
"""
from django.core.context_processors import csrf
from django.template.loader import render_to_string
from opaque_keys.edx.keys import CourseKey
from web_fragments.fragment import Fragment
from courseware.courses import get_course_overview_with_access
from lms.djangoapps.courseware.views.views import check_and_get_upgrade_link, get_cosmetic_verified_display_price
from openedx.core.djangoapps.plugin_api.views import EdxFragmentView
from ..utils import get_course_outline_block_tree
......@@ -32,10 +30,6 @@ class CourseOutlineFragmentView(EdxFragmentView):
'csrf': csrf(request)['csrf_token'],
'course': course_overview,
'blocks': course_block_tree,
# TODO: (Experimental Code). See https://openedx.atlassian.net/wiki/display/RET/2.+In-course+Verification+Prompts
'upgrade_link': check_and_get_upgrade_link(request, request.user, course_key),
'upgrade_price': get_cosmetic_verified_display_price(course_overview),
# ENDTODO
}
html = render_to_string('course_experience/course-outline-fragment.html', context)
return Fragment(html)
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