Merge pull request #24728 from edx/mikix/warn-on-is-past-due-prop
Warn if an xblock defines is_past_due as a property
This commit is contained in:
@@ -1,11 +1,17 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user