Skip to content
Snippets Groups Projects
Unverified Commit 5ce6ac9c authored by Michael Terry's avatar Michael Terry Committed by GitHub
Browse files

Merge pull request #24728 from edx/mikix/warn-on-is-past-due-prop

Warn if an xblock defines is_past_due as a property
parents e575a12e e0a0d4d6
Branches
Tags release-2020-08-07-12.57
No related merge requests found
import logging
from django.urls import reverse
from django.utils.translation import gettext as _
log = logging.getLogger(__name__)
class PersonalizedLearnerScheduleCallToAction:
CAPA_SUBMIT_DISABLED = 'capa_submit_disabled'
VERTICAL_BANNER = 'vertical_banner'
past_due_class_warnings = set()
def get_ctas(self, xblock, category):
"""
Return the calls to action associated with the specified category for the given xblock.
......@@ -58,10 +64,24 @@ class PersonalizedLearnerScheduleCallToAction:
else:
can_attempt = True
is_past_due = xblock.is_past_due() if callable(xblock.is_past_due) else xblock.is_past_due
if callable(xblock.is_past_due):
is_past_due = xblock.is_past_due()
else:
PersonalizedLearnerScheduleCallToAction._log_past_due_warning(type(xblock).__name__)
is_past_due = xblock.is_past_due
return xblock.self_paced and can_attempt and is_past_due
@staticmethod
def _log_past_due_warning(name):
if name in PersonalizedLearnerScheduleCallToAction.past_due_class_warnings:
return
log.warning('PersonalizedLearnerScheduleCallToAction has encountered an xblock that defines is_past_due '
'as a property. This is supported for now, but may not be in the future. Please change '
'%s.is_past_due into a method.', name)
PersonalizedLearnerScheduleCallToAction.past_due_class_warnings.add(name)
@staticmethod
def _make_reset_deadlines_cta(xblock):
from lms.urls import RESET_COURSE_DEADLINES_NAME
......
......@@ -145,7 +145,7 @@ lazy==1.4 # via -r requirements/edx/paver.txt, acid-xblock, lti-
lepl==5.1.3 # via rfc6266-parser
libsass==0.10.0 # via -r requirements/edx/paver.txt, ora2
loremipsum==1.0.5 # via ora2
lti-consumer-xblock==2.1.0 # via -r requirements/edx/base.in
lti-consumer-xblock==2.1.1 # via -r requirements/edx/base.in
lxml==4.5.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/../edx-sandbox/shared.txt, capa, edxval, lti-consumer-xblock, ora2, safe-lxml, xblock, xmlsec
mailsnake==1.6.4 # via -r requirements/edx/base.in
mako==1.1.3 # via -r requirements/edx/base.in, acid-xblock, lti-consumer-xblock, xblock-google-drive, xblock-utils
......
......@@ -174,7 +174,7 @@ lazy==1.4 # via -r requirements/edx/testing.txt, acid-xblock, bo
lepl==5.1.3 # via -r requirements/edx/testing.txt, rfc6266-parser
libsass==0.10.0 # via -r requirements/edx/testing.txt, ora2
loremipsum==1.0.5 # via -r requirements/edx/testing.txt, ora2
lti-consumer-xblock==2.1.0 # via -r requirements/edx/testing.txt
lti-consumer-xblock==2.1.1 # via -r requirements/edx/testing.txt
lxml==4.5.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt, capa, edxval, lti-consumer-xblock, ora2, pyquery, safe-lxml, xblock, xmlsec
m2r==0.2.1 # via sphinxcontrib-openapi
mailsnake==1.6.4 # via -r requirements/edx/testing.txt
......
......@@ -168,7 +168,7 @@ lazy==1.4 # via -r requirements/edx/base.txt, acid-xblock, bok-c
lepl==5.1.3 # via -r requirements/edx/base.txt, rfc6266-parser
libsass==0.10.0 # via -r requirements/edx/base.txt, ora2
loremipsum==1.0.5 # via -r requirements/edx/base.txt, ora2
lti-consumer-xblock==2.1.0 # via -r requirements/edx/base.txt
lti-consumer-xblock==2.1.1 # via -r requirements/edx/base.txt
lxml==4.5.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.txt, capa, edxval, lti-consumer-xblock, ora2, pyquery, safe-lxml, xblock, xmlsec
mailsnake==1.6.4 # via -r requirements/edx/base.txt
mako==1.1.3 # via -r requirements/edx/base.txt, acid-xblock, lti-consumer-xblock, xblock-google-drive, xblock-utils
......
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