Revert "feat: Reimagine certificate_availability_date and certificates_display_behavior"
This commit is contained in:
@@ -47,7 +47,6 @@ from lms.djangoapps.certificates.utils import (
|
||||
has_html_certificates_enabled as _has_html_certificates_enabled
|
||||
)
|
||||
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
|
||||
from xmodule.data import CertificatesDisplayBehaviors
|
||||
|
||||
log = logging.getLogger("edx.certificate")
|
||||
User = get_user_model()
|
||||
@@ -268,7 +267,6 @@ def certificate_downloadable_status(student, course_key):
|
||||
if (
|
||||
not certificates_viewable_for_course(course_overview) and
|
||||
CertificateStatuses.is_passing_status(current_status['status']) and
|
||||
course_overview.certificates_display_behavior == CertificatesDisplayBehaviors.END_WITH_DATE and
|
||||
course_overview.certificate_available_date
|
||||
):
|
||||
response_data['earned_but_not_available'] = True
|
||||
@@ -596,18 +594,17 @@ def certificates_viewable_for_course(course):
|
||||
if course.self_paced:
|
||||
return True
|
||||
if (
|
||||
course.certificates_display_behavior == CertificatesDisplayBehaviors.EARLY_NO_INFO
|
||||
course.certificates_display_behavior in ('early_with_info', 'early_no_info')
|
||||
or course.certificates_show_before_end
|
||||
):
|
||||
return True
|
||||
if (
|
||||
course.certificates_display_behavior == CertificatesDisplayBehaviors.END_WITH_DATE
|
||||
and course.certificate_available_date
|
||||
course.certificate_available_date
|
||||
and course.certificate_available_date <= datetime.now(UTC)
|
||||
):
|
||||
return True
|
||||
if (
|
||||
course.certificates_display_behavior == CertificatesDisplayBehaviors.END
|
||||
course.certificate_available_date is None
|
||||
and course.has_ended()
|
||||
):
|
||||
return True
|
||||
|
||||
@@ -19,7 +19,6 @@ from freezegun import freeze_time
|
||||
from opaque_keys.edx.keys import CourseKey
|
||||
from opaque_keys.edx.locator import CourseLocator
|
||||
from testfixtures import LogCapture
|
||||
from xmodule.data import CertificatesDisplayBehaviors
|
||||
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase, SharedModuleStoreTestCase
|
||||
from xmodule.modulestore.tests.factories import CourseFactory
|
||||
|
||||
@@ -225,31 +224,19 @@ class CertificateDownloadableStatusTests(WebCertificateTestMixin, ModuleStoreTes
|
||||
'uuid': cert_status['uuid']}
|
||||
|
||||
@ddt.data(
|
||||
(True, timedelta(days=2), CertificatesDisplayBehaviors.END_WITH_DATE, True, None),
|
||||
(False, -timedelta(days=2), CertificatesDisplayBehaviors.EARLY_NO_INFO, True, None),
|
||||
(False, timedelta(days=2), CertificatesDisplayBehaviors.EARLY_NO_INFO, True, None),
|
||||
(False, -timedelta(days=2), CertificatesDisplayBehaviors.END, True, None),
|
||||
(False, timedelta(days=2), CertificatesDisplayBehaviors.END, True, None),
|
||||
(False, -timedelta(days=2), CertificatesDisplayBehaviors.END_WITH_DATE, True, None),
|
||||
(False, timedelta(days=2), CertificatesDisplayBehaviors.END_WITH_DATE, False, True),
|
||||
(False, timedelta(days=2), False, True),
|
||||
(False, -timedelta(days=2), True, None),
|
||||
(True, timedelta(days=2), True, None)
|
||||
)
|
||||
@ddt.unpack
|
||||
@patch.dict(settings.FEATURES, {'CERTIFICATES_HTML_VIEW': True})
|
||||
def test_cert_api_return(
|
||||
self,
|
||||
self_paced,
|
||||
cert_avail_delta,
|
||||
certificates_display_behavior,
|
||||
cert_downloadable_status,
|
||||
earned_but_not_available
|
||||
):
|
||||
def test_cert_api_return(self, self_paced, cert_avail_delta, cert_downloadable_status, earned_but_not_available):
|
||||
"""
|
||||
Test 'downloadable status'
|
||||
"""
|
||||
cert_avail_date = datetime.now(pytz.UTC) + cert_avail_delta
|
||||
self.course.self_paced = self_paced
|
||||
self.course.certificate_available_date = cert_avail_date
|
||||
self.course.certificates_display_behavior = certificates_display_behavior
|
||||
self.course.save()
|
||||
|
||||
self._setup_course_certificate()
|
||||
|
||||
@@ -24,7 +24,6 @@ from lms.djangoapps.certificates.tests.factories import GeneratedCertificateFact
|
||||
from lms.djangoapps.certificates.utils import get_certificate_url
|
||||
from openedx.core.djangoapps.site_configuration.tests.test_util import with_site_configuration
|
||||
from openedx.core.djangolib.testing.utils import CacheIsolationTestCase
|
||||
from xmodule.data import CertificatesDisplayBehaviors
|
||||
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
|
||||
from xmodule.modulestore.tests.factories import CourseFactory
|
||||
|
||||
@@ -212,8 +211,7 @@ class CertificatesViewsSiteTests(ModuleStoreTestCase):
|
||||
org='testorg',
|
||||
number='run1',
|
||||
display_name='refundable course',
|
||||
certificate_available_date=datetime.datetime.today() - datetime.timedelta(days=1),
|
||||
certificates_display_behavior=CertificatesDisplayBehaviors.END_WITH_DATE
|
||||
certificate_available_date=datetime.datetime.today() - datetime.timedelta(days=1)
|
||||
)
|
||||
self.course.cert_html_view_enabled = True
|
||||
self.course.save()
|
||||
|
||||
@@ -50,7 +50,6 @@ from openedx.core.djangoapps.site_configuration.tests.test_util import (
|
||||
from openedx.core.djangolib.js_utils import js_escaped_string
|
||||
from openedx.core.djangolib.testing.utils import CacheIsolationTestCase
|
||||
from openedx.core.lib.tests.assertions.events import assert_event_matches
|
||||
from xmodule.data import CertificatesDisplayBehaviors
|
||||
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
|
||||
from xmodule.modulestore.tests.factories import CourseFactory
|
||||
|
||||
@@ -82,7 +81,6 @@ class CommonCertificatesTestCase(ModuleStoreTestCase):
|
||||
number='run1',
|
||||
display_name='refundable course',
|
||||
certificate_available_date=datetime.datetime.today() - datetime.timedelta(days=1),
|
||||
certificates_display_behavior=CertificatesDisplayBehaviors.END_WITH_DATE
|
||||
)
|
||||
self.course_id = self.course.location.course_key
|
||||
self.user = UserFactory.create(
|
||||
|
||||
@@ -50,7 +50,6 @@ from openedx.core.djangoapps.lang_pref.api import get_closest_released_language
|
||||
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
|
||||
from openedx.core.lib.courses import course_image_url
|
||||
from openedx.core.lib.courses import get_course_by_id
|
||||
from xmodule.data import CertificatesDisplayBehaviors
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
_ = translation.ugettext
|
||||
@@ -333,14 +332,8 @@ def _get_user_certificate(request, user, course_key, course, preview_mode=None):
|
||||
if preview_mode:
|
||||
# certificate is being previewed from studio
|
||||
if request.user.has_perm(PREVIEW_CERTIFICATES, course):
|
||||
if (
|
||||
course.certificates_display_behavior == CertificatesDisplayBehaviors.END_WITH_DATE
|
||||
and course.certificate_available_date
|
||||
and not course.self_paced
|
||||
):
|
||||
if course.certificate_available_date and not course.self_paced:
|
||||
modified_date = course.certificate_available_date
|
||||
elif course.certificates_display_behavior == CertificatesDisplayBehaviors.END:
|
||||
modified_date = course.end
|
||||
else:
|
||||
modified_date = datetime.now().date()
|
||||
user_certificate = GeneratedCertificate(
|
||||
|
||||
@@ -99,7 +99,6 @@ from common.djangoapps.util.tests.test_date_utils import fake_pgettext, fake_uge
|
||||
from common.djangoapps.util.url import reload_django_url_config
|
||||
from common.djangoapps.util.views import ensure_valid_course_key
|
||||
from xmodule.course_module import COURSE_VISIBILITY_PRIVATE, COURSE_VISIBILITY_PUBLIC, COURSE_VISIBILITY_PUBLIC_OUTLINE
|
||||
from xmodule.data import CertificatesDisplayBehaviors
|
||||
from xmodule.graders import ShowCorrectness
|
||||
from xmodule.modulestore import ModuleStoreEnum
|
||||
from xmodule.modulestore.django import modulestore
|
||||
@@ -1289,7 +1288,6 @@ class ProgressPageBaseTests(ModuleStoreTestCase):
|
||||
grade_cutoffs={'çü†øƒƒ': 0.75, 'Pass': 0.5},
|
||||
end=datetime.now(),
|
||||
certificate_available_date=datetime.now(UTC),
|
||||
certificates_display_behavior=CertificatesDisplayBehaviors.END_WITH_DATE,
|
||||
**options
|
||||
)
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ from django.utils.translation import ugettext as _
|
||||
from openedx.core.djangolib.markup import HTML, Text
|
||||
from common.djangoapps.course_modes.models import CourseMode
|
||||
from lms.djangoapps.certificates.data import CertificateStatuses
|
||||
from xmodule.data import CertificatesDisplayBehaviors
|
||||
%>
|
||||
<%namespace name='static' file='../static_content.html'/>
|
||||
|
||||
@@ -37,12 +36,7 @@ else:
|
||||
<div class="message message-status ${status_css_class} is-shown">
|
||||
<p class="message-copy">
|
||||
<%
|
||||
if course_overview.certificates_display_behavior == CertificatesDisplayBehaviors.END_WITH_DATE:
|
||||
certificate_available_date_string = course_overview.certificate_available_date.strftime('%Y-%m-%dT%H:%M:%S%z')
|
||||
elif course_overview.certificates_display_behavior == CertificatesDisplayBehaviors.END:
|
||||
certificate_available_date_string = course_overview.end.strftime('%Y-%m-%dT%H:%M:%S%z')
|
||||
else:
|
||||
raise Exception(course_overview.certificate_available_date, course_overview.certificates_display_behavior)
|
||||
certificate_available_date_string = course_overview.certificate_available_date.strftime('%Y-%m-%dT%H:%M:%S%z')
|
||||
container_string = _("Your grade and certificate will be ready after {date}.")
|
||||
format = 'shortDate'
|
||||
%>
|
||||
|
||||
Reference in New Issue
Block a user